diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm index 1423580debe1..b054ebfc402b 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm @@ -1,1825 +1,2215 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"aa" = ( -/turf/template_noop, -/area/template_noop) "ab" = ( -/obj/structure/stone_tile/surrounding_tile{ - dir = 4 +/obj/structure/table/wood, +/obj/item/reagent_containers/cup/glass/bottle/moonshine{ + pixel_x = -5; + pixel_y = 7 }, -/turf/closed/mineral/volcanic/lava_land_surface, -/area/lavaland/surface/outdoors) -"ac" = ( -/obj/structure/stone_tile/block{ - dir = 1 +/obj/item/flashlight/flare/candle/infinite{ + pixel_x = 5; + pixel_y = -2 }, -/turf/closed/mineral/volcanic/lava_land_surface, -/area/lavaland/surface/outdoors) -"ad" = ( -/obj/structure/stone_tile/block{ - dir = 1 +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"aK" = ( +/obj/structure/water_source/puddle, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"bc" = ( +/obj/structure/stone_tile/surrounding_tile/cracked, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 4 }, -/obj/structure/stone_tile/cracked{ +/obj/structure/stone_tile/center, +/obj/structure/stone_tile/surrounding_tile{ dir = 8 }, -/turf/closed/mineral/volcanic/lava_land_surface, -/area/lavaland/surface/outdoors) -"ae" = ( -/obj/structure/stone_tile/block/cracked{ - dir = 1 - }, -/turf/closed/mineral/volcanic/lava_land_surface, -/area/lavaland/surface/outdoors) -"af" = ( -/obj/structure/stone_tile/block{ - dir = 1 - }, -/obj/structure/stone_tile{ - dir = 8 +/turf/open/lava/smooth/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"bH" = ( +/obj/structure/stone_tile/slab, +/obj/item/storage/bag/quiver, +/obj/structure/rack/shelf, +/obj/item/gun/ballistic/bow{ + pixel_y = 0; + pixel_x = 5 }, -/turf/closed/mineral/volcanic/lava_land_surface, -/area/lavaland/surface/outdoors) -"ag" = ( -/obj/structure/stone_tile/surrounding_tile/cracked{ - dir = 1 +/obj/item/gun/ballistic/bow{ + pixel_y = 0; + pixel_x = -4 }, -/turf/closed/mineral/volcanic/lava_land_surface, -/area/lavaland/surface/outdoors) -"ah" = ( -/turf/closed/mineral/volcanic/lava_land_surface, -/area/lavaland/surface/outdoors) -"ai" = ( -/obj/structure/stone_tile/surrounding_tile/cracked{ - dir = 4 +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"cm" = ( +/obj/item/flashlight/flare/torch{ + start_on = 1 }, -/turf/closed/mineral/volcanic/lava_land_surface, -/area/lavaland/surface/outdoors) -"aj" = ( -/obj/structure/stone_tile/slab, -/turf/closed/mineral/volcanic/lava_land_surface, -/area/lavaland/surface/outdoors) -"ak" = ( /turf/closed/indestructible/riveted/boss, /area/ruin/unpowered/ash_walkers) -"al" = ( -/obj/structure/stone_tile/surrounding_tile{ - dir = 1 - }, -/turf/closed/mineral/volcanic/lava_land_surface, -/area/lavaland/surface/outdoors) -"aq" = ( +"dw" = ( +/obj/structure/stone_tile/slab, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"eA" = ( +/obj/structure/closet/crate/wooden, +/obj/item/seeds/potato, +/obj/item/seeds/potato, +/obj/item/seeds/potato/sweet, +/obj/item/seeds/plump, +/obj/item/seeds/plump, +/obj/item/seeds/wheat, +/obj/item/seeds/wheat, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"eE" = ( /obj/structure/stone_tile/block/cracked{ - dir = 8 + dir = 4 }, -/obj/structure/stone_tile/surrounding_tile/cracked{ - dir = 1 +/turf/open/lava/smooth/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"eO" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/cup/primitive_centrifuge{ + pixel_x = -14; + pixel_y = -1 }, -/turf/closed/mineral/volcanic/lava_land_surface, -/area/lavaland/surface/outdoors) -"ar" = ( -/obj/structure/stone_tile/block/cracked{ - dir = 4 +/obj/item/reagent_containers/cup/mortar{ + pixel_y = 12; + pixel_x = -10 }, -/obj/structure/stone_tile{ - dir = 4 +/obj/item/reagent_containers/cup/glass/bottle/small{ + pixel_x = 7; + pixel_y = 12 + }, +/obj/item/reagent_containers/cup/glass/bottle/small{ + pixel_x = 3; + pixel_y = 5 }, -/turf/closed/mineral/volcanic/lava_land_surface, -/area/lavaland/surface/outdoors) -"as" = ( -/turf/closed/wall/mineral/wood, +/obj/structure/stone_tile/slab, +/turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) -"at" = ( -/obj/structure/stone_tile/block{ +"eU" = ( +/obj/item/cultivator/rake, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"fC" = ( +/obj/structure/headpike/bone, +/obj/effect/mapping_helpers/no_lava, +/turf/template_noop, +/area/template_noop) +"fV" = ( +/obj/structure/geyser, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"gn" = ( +/obj/structure/stone_tile/block/burnt{ dir = 8 }, -/obj/structure/stone_tile/block{ +/obj/structure/stone_tile/block/burnt{ dir = 4 }, -/turf/closed/mineral/volcanic/lava_land_surface, -/area/lavaland/surface/outdoors) -"au" = ( -/obj/structure/stone_tile, -/obj/structure/stone_tile{ - dir = 8 +/turf/open/lava/smooth/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"hr" = ( +/obj/structure/closet/crate/wooden, +/obj/item/screwdriver/ashwalker, +/obj/item/crowbar/ashwalker, +/obj/item/wrench/ashwalker, +/obj/item/wirecutters/ashwalker, +/obj/item/hatchet/wooden, +/obj/item/weldingtool/mini, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"hA" = ( +/obj/structure/stone_tile/slab, +/obj/item/reagent_containers/cup/bowl/mushroom_bowl{ + pixel_y = 7; + pixel_x = -5 }, -/obj/structure/stone_tile/cracked{ - dir = 4 +/obj/item/reagent_containers/cup/bowl/mushroom_bowl{ + pixel_y = 7; + pixel_x = 7 }, -/obj/structure/stone_tile/cracked{ - dir = 1 +/obj/item/reagent_containers/cup/bowl/mushroom_bowl{ + pixel_y = 11; + pixel_x = 1 }, -/obj/item/flashlight/flare/torch, -/turf/open/indestructible/boss, +/obj/structure/rack/shelf, +/turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) -"av" = ( -/obj/structure/stone_tile/block, -/obj/structure/stone_tile{ +"hL" = ( +/obj/structure/curtain/bounty, +/obj/structure/stone_tile/block{ dir = 1 }, -/obj/structure/stone_tile{ - dir = 4 - }, -/turf/open/indestructible/boss, +/turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) -"aw" = ( -/obj/structure/stone_tile/block, -/obj/structure/stone_tile{ +"hX" = ( +/obj/machinery/iv_drip, +/obj/structure/stone_tile/slab, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"hY" = ( +/obj/structure/stone_tile/block{ dir = 1 }, -/obj/structure/stone_tile{ - dir = 4 - }, -/obj/effect/decal/cleanable/blood, -/turf/open/indestructible/boss, +/obj/structure/stone_tile/block/burnt, +/turf/open/lava/smooth/lava_land_surface, /area/ruin/unpowered/ash_walkers) -"ax" = ( -/obj/structure/stone_tile/block, -/obj/structure/stone_tile/cracked{ - dir = 1 +"ij" = ( +/obj/item/reagent_containers/cup/glass/bottle/lizardwine, +/obj/item/reagent_containers/cup/glass/trophy/bronze_cup{ + pixel_x = -7 }, -/obj/structure/stone_tile{ - dir = 4 +/obj/item/reagent_containers/cup/glass/bottle{ + pixel_x = 6; + pixel_y = -2 }, -/turf/open/indestructible/boss, +/obj/structure/stone_tile/slab, +/obj/structure/rack/shelf, +/turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) -"ay" = ( -/obj/structure/stone_tile, -/obj/structure/stone_tile{ +"iI" = ( +/obj/structure/stone_tile/block{ dir = 1 }, -/obj/structure/stone_tile/cracked{ - dir = 4 - }, +/obj/structure/stone_tile/burnt, /obj/structure/stone_tile/cracked{ dir = 8 }, -/obj/item/flashlight/flare/torch, -/turf/open/indestructible/boss, +/turf/open/lava/smooth/lava_land_surface, /area/ruin/unpowered/ash_walkers) -"az" = ( -/obj/structure/stone_tile/block{ - dir = 4 - }, -/turf/closed/mineral/volcanic/lava_land_surface, -/area/lavaland/surface/outdoors) -"aF" = ( -/obj/structure/stone_tile/block{ - dir = 8 - }, -/turf/closed/mineral/volcanic/lava_land_surface, -/area/lavaland/surface/outdoors) -"aG" = ( -/obj/structure/stone_tile/block/cracked{ - dir = 4 +"iP" = ( +/obj/item/flashlight/flare/candle/infinite, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"iZ" = ( +/obj/structure/stone_tile/block/burnt{ + dir = 1 }, /obj/structure/stone_tile/cracked{ - dir = 4 - }, -/obj/structure/stone_tile{ dir = 8 }, -/turf/open/indestructible/boss, +/obj/structure/stone_tile/burnt, +/turf/open/lava/smooth/lava_land_surface, /area/ruin/unpowered/ash_walkers) -"aH" = ( -/obj/structure/stone_tile/surrounding_tile/cracked, -/obj/structure/stone_tile/center, -/obj/structure/stone_tile/surrounding_tile{ +"jm" = ( +/obj/structure/stone_tile/block/cracked, +/obj/structure/stone_tile/block{ dir = 1 }, -/obj/structure/stone_tile/surrounding_tile{ - dir = 8 +/obj/structure/statue/bone/rib{ + dir = 1 }, /turf/open/lava/smooth/lava_land_surface, /area/ruin/unpowered/ash_walkers) -"aI" = ( -/obj/structure/stone_tile/block/cracked, -/turf/open/lava/smooth/lava_land_surface, +"jL" = ( +/obj/structure/flora/ash/seraka, +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) -"aJ" = ( -/obj/structure/stone_tile/surrounding_tile/cracked, -/obj/structure/stone_tile/surrounding_tile/cracked{ +"ku" = ( +/obj/structure/stone_tile/block/cracked{ dir = 4 }, -/obj/structure/stone_tile/center, -/obj/structure/stone_tile/surrounding_tile{ +/obj/structure/chair/stool/bamboo{ dir = 8 }, -/turf/open/lava/smooth/lava_land_surface, +/turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) -"aK" = ( -/obj/structure/stone_tile/block/cracked{ +"kx" = ( +/obj/structure/stone_tile/block{ dir = 8 }, -/obj/structure/stone_tile/cracked{ +/obj/structure/stone_tile{ dir = 1 }, -/obj/structure/stone_tile, -/mob/living/basic/mining/gutlunch/milk, +/obj/structure/stone_tile/cracked, +/obj/item/flashlight/flare/candle/infinite, /turf/open/indestructible/boss, /area/ruin/unpowered/ash_walkers) -"aR" = ( +"ky" = ( +/mob/living/basic/mining/gutlunch/milk, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"lB" = ( /obj/structure/stone_tile/block{ dir = 8 }, /obj/structure/stone_tile/block/cracked{ dir = 4 }, -/turf/closed/mineral/volcanic/lava_land_surface, -/area/lavaland/surface/outdoors) -"aS" = ( +/turf/open/lava/smooth/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"lH" = ( +/mob/living/basic/mining/gutlunch/grub, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"mc" = ( +/obj/structure/closet/crate/wooden, +/obj/item/seeds/tobacco, +/obj/item/seeds/tobacco, +/obj/item/seeds/cannabis, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"mh" = ( +/obj/structure/closet/crate/wooden, +/obj/item/storage/bag/ore, +/obj/item/storage/bag/ore{ + pixel_y = 3 + }, +/obj/item/pickaxe, +/obj/item/pickaxe{ + pixel_y = 3 + }, +/obj/structure/stone_tile/slab, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"mu" = ( +/obj/structure/bed/maint, +/obj/structure/curtain/bounty, +/obj/structure/stone_tile/slab, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"mv" = ( +/turf/template_noop, +/area/template_noop) +"mS" = ( /obj/structure/stone_tile/block{ dir = 4 }, /obj/structure/stone_tile{ dir = 8 }, -/obj/structure/stone_tile{ - dir = 4 +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"mZ" = ( +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"nb" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/cup/beaker/large/ceramic{ + pixel_x = 9; + pixel_y = 11 + }, +/obj/item/reagent_containers/cup/beaker/large/blowing_glass{ + pixel_x = -4; + pixel_y = 6 + }, +/obj/item/reagent_containers/cup/beaker/large/blowing_glass, +/obj/structure/stone_tile/slab, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"nj" = ( +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 5 + }, +/obj/structure/stone_tile/surrounding/cracked{ + dir = 1 + }, +/obj/structure/stone_tile/center/burnt, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 8 }, -/obj/effect/decal/cleanable/blood, /turf/open/indestructible/boss, /area/ruin/unpowered/ash_walkers) -"aT" = ( -/obj/structure/stone_tile/block/cracked{ +"nt" = ( +/obj/structure/stone_tile/block{ dir = 4 }, -/turf/open/lava/smooth/lava_land_surface, -/area/ruin/unpowered/ash_walkers) -"aU" = ( -/obj/structure/lavaland/ash_walker, -/turf/open/lava/smooth/lava_land_surface, -/area/ruin/unpowered/ash_walkers) -"aV" = ( /obj/structure/stone_tile/block{ dir = 8 }, -/turf/open/lava/smooth/lava_land_surface, +/turf/open/indestructible/boss, /area/ruin/unpowered/ash_walkers) -"aW" = ( +"nx" = ( /obj/structure/stone_tile/block{ - dir = 8 + dir = 1 }, /obj/structure/stone_tile, /obj/structure/stone_tile{ - dir = 1 + dir = 8 }, +/obj/item/flashlight/flare/candle/infinite, /turf/open/indestructible/boss, /area/ruin/unpowered/ash_walkers) -"aY" = ( +"nI" = ( /obj/structure/stone_tile, /obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile/cracked{ dir = 4 }, -/obj/structure/stone_tile{ +/obj/structure/stone_tile/surrounding_tile/cracked{ dir = 8 }, -/obj/structure/stone_tile/cracked{ - dir = 1 - }, /turf/open/indestructible/boss, /area/ruin/unpowered/ash_walkers) -"bc" = ( +"nL" = ( /obj/structure/stone_tile/block{ - dir = 4 - }, -/obj/structure/stone_tile{ dir = 8 }, -/obj/structure/stone_tile{ - dir = 4 - }, -/mob/living/basic/mining/gutlunch/warrior, -/turf/open/indestructible/boss, +/turf/open/lava/smooth/lava_land_surface, /area/ruin/unpowered/ash_walkers) -"bd" = ( -/obj/structure/stone_tile/surrounding_tile/cracked{ - dir = 4 - }, -/obj/structure/stone_tile/center/cracked, -/obj/structure/stone_tile/surrounding_tile, -/obj/structure/stone_tile/surrounding_tile{ - dir = 1 +"oe" = ( +/obj/structure/bonfire/dense, +/obj/item/stack/rods{ + amount = 5 }, -/turf/open/lava/smooth/lava_land_surface, +/obj/structure/stone_tile/slab, +/turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) -"be" = ( +"ok" = ( +/obj/structure/stone_tile/block/cracked, /obj/structure/stone_tile/block{ dir = 1 }, +/obj/structure/statue/bone/rib, /turf/open/lava/smooth/lava_land_surface, /area/ruin/unpowered/ash_walkers) -"bf" = ( -/obj/structure/stone_tile/surrounding_tile/cracked{ - dir = 8 - }, -/obj/structure/stone_tile/center, +"ot" = ( /obj/structure/stone_tile/surrounding_tile{ dir = 1 }, -/obj/structure/stone_tile/surrounding_tile{ - dir = 4 +/obj/item/screwdriver/ashwalker, +/obj/item/crowbar/ashwalker, +/obj/item/wrench/ashwalker, +/obj/item/wirecutters/ashwalker, +/obj/item/hatchet/wooden, +/obj/item/weldingtool/mini, +/obj/structure/rack/shelf, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"pn" = ( +/obj/structure/chair/stool/bamboo{ + dir = 8 }, -/turf/open/lava/smooth/lava_land_surface, +/obj/structure/stone_tile/slab, +/turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) -"bg" = ( -/obj/structure/stone_tile/block{ +"px" = ( +/obj/structure/stone_tile/block/cracked{ dir = 8 }, -/obj/structure/stone_tile/cracked{ +/obj/structure/stone_tile/surrounding_tile{ dir = 1 }, -/obj/structure/stone_tile, -/turf/open/indestructible/boss, +/obj/structure/stone_tile/surrounding_tile, +/turf/open/lava/smooth/lava_land_surface, /area/ruin/unpowered/ash_walkers) -"bh" = ( -/obj/structure/stone_tile/block{ - dir = 4 +"pD" = ( +/obj/structure/stone_tile/surrounding/cracked{ + dir = 1 }, -/obj/structure/stone_tile{ +/obj/structure/stone_tile/center, +/obj/structure/stone_tile/surrounding_tile{ dir = 8 }, -/turf/closed/mineral/volcanic/lava_land_surface, -/area/lavaland/surface/outdoors) -"bi" = ( -/obj/structure/stone_tile/block/cracked{ - dir = 8 +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"pE" = ( +/turf/closed/indestructible/riveted/boss, +/area/ruin/unpowered/ash_walkers) +"pF" = ( +/obj/structure/table/wood, +/obj/structure/stone_tile/slab, +/obj/structure/chem_separator, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"qr" = ( +/obj/item/reagent_containers/cup/bowl/mushroom_bowl{ + pixel_y = -3 }, -/turf/closed/mineral/volcanic/lava_land_surface, -/area/lavaland/surface/outdoors) -"bj" = ( -/obj/structure/stone_tile/block/cracked{ +/obj/item/reagent_containers/cup/bowl/mushroom_bowl, +/obj/item/reagent_containers/cup/bowl/mushroom_bowl{ + pixel_y = 3 + }, +/obj/structure/stone_tile/slab, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"qs" = ( +/obj/structure/stone_tile/surrounding/cracked{ dir = 4 }, -/obj/structure/stone_tile{ +/obj/structure/stone_tile/surrounding_tile{ dir = 8 }, -/obj/structure/stone_tile/cracked{ - dir = 4 - }, -/obj/item/storage/bag/plants/portaseeder, -/turf/open/indestructible/boss, +/turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) -"bk" = ( -/obj/structure/stone_tile{ - dir = 4 - }, -/obj/structure/stone_tile, -/obj/structure/stone_tile/cracked{ +"qy" = ( +/obj/structure/stone_tile/block/cracked{ dir = 1 }, -/obj/structure/stone_tile/cracked{ - dir = 8 - }, -/obj/item/stack/marker_beacon/ten, -/turf/open/indestructible/boss, +/turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) -"bm" = ( -/obj/structure/stone_tile{ +"qW" = ( +/obj/structure/stone_tile/surrounding_tile, +/obj/item/flashlight/flare/candle/infinite, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"rE" = ( +/obj/structure/stone_tile/surrounding_tile/cracked, +/obj/structure/stone_tile/center, +/obj/structure/stone_tile/surrounding_tile{ dir = 1 }, -/obj/structure/stone_tile, -/obj/structure/stone_tile/cracked{ +/obj/structure/stone_tile/surrounding_tile{ dir = 8 }, -/obj/structure/stone_tile/cracked{ +/obj/structure/stone_tile/surrounding_tile/cracked, +/turf/open/lava/smooth/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"rP" = ( +/obj/structure/stone_tile/block{ dir = 4 }, -/obj/item/construction/rcd/loaded, -/turf/open/indestructible/boss, +/mob/living/basic/mining/gutlunch/warrior, +/turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) -"bp" = ( -/obj/structure/stone_tile, -/obj/structure/stone_tile{ +"rQ" = ( +/obj/structure/stone_tile/surrounding_tile/cracked{ dir = 8 }, -/obj/structure/stone_tile{ +/obj/structure/stone_tile/center, +/obj/structure/stone_tile/surrounding_tile{ dir = 1 }, -/obj/structure/stone_tile{ +/obj/structure/stone_tile/surrounding_tile{ dir = 4 }, -/obj/item/flashlight/flare/torch, -/turf/open/indestructible/boss, +/turf/open/lava/smooth/lava_land_surface, /area/ruin/unpowered/ash_walkers) -"bq" = ( -/obj/structure/stone_tile/block{ - dir = 1 +"sl" = ( +/obj/item/knife/combat/bone{ + pixel_y = -4 }, -/obj/structure/stone_tile/cracked, -/obj/structure/stone_tile{ - dir = 8 +/obj/item/knife/combat/bone{ + pixel_y = 2 }, -/turf/open/indestructible/boss, +/obj/item/knife/combat/bone{ + pixel_y = 8 + }, +/obj/structure/stone_tile/slab, +/obj/structure/rack/shelf, +/turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) -"br" = ( -/obj/structure/stone_tile/slab/cracked, -/turf/open/indestructible/boss, +"ss" = ( +/obj/structure/stone_tile/block/cracked, +/turf/open/lava/smooth/lava_land_surface, /area/ruin/unpowered/ash_walkers) -"bs" = ( -/obj/structure/stone_tile/block/cracked{ +"sI" = ( +/obj/structure/stone_tile/surrounding/cracked{ dir = 1 }, -/obj/structure/stone_tile{ +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"sS" = ( +/obj/structure/chair/stool/bamboo, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"tg" = ( +/obj/item/reagent_containers/cup/bottle/nutrient/rh{ + pixel_x = -6; + pixel_y = 6 + }, +/obj/item/reagent_containers/cup/bottle/nutrient/l4z{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/reagent_containers/cup/bottle/nutrient/ez{ + pixel_y = 4 + }, +/obj/item/reagent_containers/cup/bottle/nutrient/rh{ + pixel_x = -6; + pixel_y = 2 + }, +/obj/item/reagent_containers/cup/bottle/nutrient/l4z{ + pixel_x = 6; + pixel_y = 2 + }, +/obj/item/reagent_containers/cup/bottle/nutrient/ez, +/obj/structure/stone_tile/slab, +/obj/structure/rack/shelf, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"tl" = ( +/obj/item/spear/bonespear, +/obj/item/spear/bonespear{ + pixel_y = 5 + }, +/obj/structure/stone_tile/surrounding_tile{ + dir = 1 + }, +/obj/structure/stone_tile/surrounding_tile{ dir = 8 }, -/obj/structure/stone_tile, -/obj/effect/decal/cleanable/blood, -/turf/open/indestructible/boss, +/obj/structure/rack/shelf, +/turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) -"bt" = ( -/obj/structure/stone_tile, -/obj/structure/stone_tile{ +"tR" = ( +/obj/structure/bed/maint, +/obj/structure/curtain/bounty, +/obj/structure/stone_tile/surrounding_tile{ dir = 8 }, -/obj/structure/stone_tile{ +/obj/structure/stone_tile/surrounding_tile{ dir = 1 }, -/obj/structure/stone_tile/cracked{ - dir = 4 - }, -/obj/item/flashlight/flare/torch, -/turf/open/indestructible/boss, +/turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) -"bw" = ( +"ug" = ( /obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile{ dir = 1 }, -/obj/structure/stone_tile, -/obj/structure/stone_tile/cracked{ +/obj/structure/stone_tile/cracked, +/turf/open/indestructible/boss, +/area/ruin/unpowered/ash_walkers) +"uE" = ( +/obj/structure/lavaland/ash_walker, +/turf/open/lava/smooth/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"vB" = ( +/obj/structure/stone_tile/surrounding_tile{ dir = 8 }, -/obj/item/stack/sheet/mineral/wood, -/obj/item/stack/sheet/mineral/wood, -/obj/item/stack/sheet/mineral/wood, -/obj/item/stack/sheet/mineral/wood, -/turf/open/indestructible/boss, +/obj/structure/closet/crate/wooden, +/obj/item/stack/sheet/iron/twenty, +/obj/item/stack/sheet/leather{ + amount = 35 + }, +/obj/item/stack/sheet/cloth/ten, +/turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) -"bx" = ( -/obj/structure/stone_tile/slab/cracked, -/obj/effect/decal/cleanable/blood, -/turf/open/indestructible/boss, +"wc" = ( +/obj/structure/stone_tile/slab, +/obj/structure/machine/assembly_bench, +/turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) -"by" = ( -/obj/structure/closet/crate, +"wp" = ( /obj/structure/stone_tile/block/cracked{ dir = 1 }, /obj/structure/stone_tile{ dir = 8 }, -/obj/structure/stone_tile/cracked, -/obj/item/flashlight/flare/torch, -/obj/item/flashlight/flare/torch, -/obj/item/flashlight/flare/torch, +/obj/structure/stone_tile/surrounding_tile, /turf/open/indestructible/boss, /area/ruin/unpowered/ash_walkers) -"bz" = ( -/obj/structure/stone_tile{ - dir = 4 - }, -/obj/structure/stone_tile/cracked, -/obj/structure/stone_tile/cracked{ +"ww" = ( +/obj/structure/stone_tile/surrounding_tile{ dir = 1 }, -/obj/structure/stone_tile/cracked{ - dir = 8 - }, -/turf/open/indestructible/boss, +/obj/structure/stone_tile/surrounding_tile, +/turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) -"bB" = ( -/obj/structure/stone_tile/block{ - dir = 4 +"wM" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 1 }, /obj/structure/stone_tile/block/cracked{ dir = 8 }, /turf/open/indestructible/boss, /area/ruin/unpowered/ash_walkers) -"bC" = ( -/obj/structure/stone_tile/block/cracked{ - dir = 4 - }, -/turf/closed/mineral/volcanic/lava_land_surface, -/area/lavaland/surface/outdoors) -"bG" = ( -/turf/closed/indestructible/riveted/boss/see_through, +"wR" = ( +/obj/structure/flora/ash/cacti, +/turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) -"bH" = ( -/obj/structure/necropolis_gate, -/obj/structure/stone_tile/block{ +"wS" = ( +/obj/structure/stone_tile/surrounding_tile/cracked{ dir = 4 }, +/obj/structure/stone_tile/center/cracked, +/obj/structure/stone_tile/surrounding_tile, +/obj/structure/stone_tile/surrounding_tile{ + dir = 1 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"xl" = ( /obj/structure/stone_tile/block/cracked{ - dir = 8 + dir = 4 }, -/obj/structure/fans/tiny/invisible, -/obj/effect/decal/cleanable/blood, -/turf/open/indestructible/boss, +/turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) -"bI" = ( -/obj/structure/stone_tile/slab/cracked, -/turf/closed/mineral/volcanic/lava_land_surface, -/area/lavaland/surface/outdoors) -"bJ" = ( -/obj/structure/stone_tile/surrounding_tile, -/turf/closed/mineral/volcanic/lava_land_surface, -/area/lavaland/surface/outdoors) -"cp" = ( -/obj/structure/stone_tile/cracked, +"xW" = ( /obj/structure/stone_tile/block{ dir = 1 }, -/turf/closed/mineral/volcanic/lava_land_surface, -/area/lavaland/surface/outdoors) -"cF" = ( -/obj/structure/stone_tile/block{ +/turf/open/lava/smooth/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"yl" = ( +/obj/structure/stone_tile/block/burnt{ dir = 8 }, -/obj/structure/stone_tile, -/obj/structure/stone_tile{ +/obj/structure/stone_tile/burnt{ dir = 1 }, -/obj/structure/table/wood, -/obj/item/spear, -/obj/item/storage/belt/utility, -/turf/open/indestructible/boss, +/obj/structure/stone_tile/surrounding_tile/cracked, +/turf/open/lava/smooth/lava_land_surface, /area/ruin/unpowered/ash_walkers) -"cL" = ( -/obj/structure/stone_tile, -/obj/structure/stone_tile{ +"zI" = ( +/obj/structure/stone_tile/surrounding_tile{ dir = 8 }, -/obj/structure/stone_tile{ - dir = 1 - }, -/obj/structure/stone_tile{ +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"zV" = ( +/obj/structure/stone_tile/slab, +/obj/structure/stone_tile/surrounding_tile{ dir = 4 }, -/obj/structure/table/wood, -/obj/item/spear, -/obj/item/scythe, -/turf/open/indestructible/boss, +/obj/machinery/primitive_stove, +/turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) -"cM" = ( -/obj/structure/stone_tile/block{ +"Ao" = ( +/obj/structure/stone_tile/surrounding_tile{ dir = 1 }, -/obj/structure/stone_tile/cracked, -/obj/structure/stone_tile{ +/obj/structure/stone_tile/surrounding_tile, +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 + }, +/obj/structure/stone_tile/center, +/obj/structure/stone_tile/surrounding_tile{ dir = 8 }, -/obj/structure/table/wood, -/obj/item/spear, /turf/open/indestructible/boss, /area/ruin/unpowered/ash_walkers) -"cN" = ( -/obj/structure/stone_tile, -/obj/structure/stone_tile{ - dir = 8 +"Ar" = ( +/obj/structure/flora/ash/leaf_shroom, +/obj/structure/stone_tile/surrounding_tile, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Az" = ( +/obj/structure/stone_tile/block{ + dir = 4 }, /obj/structure/stone_tile{ - dir = 1 - }, -/obj/structure/stone_tile/cracked{ dir = 4 }, -/obj/structure/table/wood, -/obj/item/spear, -/obj/item/clothing/head/helmet/roman/legionnaire, -/turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) -"cO" = ( -/obj/structure/stone_tile/surrounding_tile/cracked{ +/obj/structure/stone_tile{ dir = 8 }, -/turf/closed/mineral/volcanic/lava_land_surface, -/area/lavaland/surface/outdoors) -"cP" = ( -/obj/structure/stone_tile/block, -/turf/closed/mineral/volcanic/lava_land_surface, -/area/lavaland/surface/outdoors) -"cQ" = ( -/obj/structure/stone_tile/block/cracked, -/turf/closed/mineral/volcanic/lava_land_surface, -/area/lavaland/surface/outdoors) -"cR" = ( -/obj/structure/stone_tile/surrounding_tile/cracked, -/turf/closed/mineral/volcanic/lava_land_surface, -/area/lavaland/surface/outdoors) -"cT" = ( -/obj/structure/stone_tile, +/turf/open/indestructible/boss, +/area/ruin/unpowered/ash_walkers) +"AG" = ( /obj/structure/stone_tile/block{ - dir = 1 - }, -/turf/closed/mineral/volcanic/lava_land_surface, -/area/lavaland/surface/outdoors) -"du" = ( -/obj/structure/stone_tile/cracked{ - dir = 1 - }, -/turf/closed/mineral/volcanic/lava_land_surface, -/area/lavaland/surface/outdoors) -"dz" = ( -/obj/structure/stone_tile/cracked{ - dir = 1 - }, -/obj/structure/stone_tile/cracked, -/turf/closed/mineral/volcanic/lava_land_surface, -/area/lavaland/surface/outdoors) -"dB" = ( -/obj/structure/stone_tile/surrounding_tile/cracked{ dir = 4 }, -/obj/structure/stone_tile/surrounding_tile/cracked{ - dir = 1 - }, -/obj/structure/stone_tile/surrounding_tile/cracked{ - dir = 8 - }, -/obj/structure/stone_tile/center/cracked, -/turf/closed/mineral/volcanic/lava_land_surface, -/area/lavaland/surface/outdoors) -"dC" = ( -/obj/structure/stone_tile, -/turf/closed/mineral/volcanic/lava_land_surface, -/area/lavaland/surface/outdoors) -"dD" = ( -/obj/structure/stone_tile/cracked{ - dir = 8 - }, -/turf/closed/mineral/volcanic/lava_land_surface, -/area/lavaland/surface/outdoors) -"dE" = ( -/obj/structure/stone_tile, -/obj/structure/stone_tile/cracked{ +/obj/structure/stone_tile/surrounding_tile{ dir = 8 }, -/turf/closed/mineral/volcanic/lava_land_surface, -/area/lavaland/surface/outdoors) -"dP" = ( -/obj/structure/stone_tile/block{ - dir = 4 - }, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) -"eu" = ( -/obj/structure/stone_tile, -/obj/effect/mapping_helpers/no_lava, -/turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"eC" = ( +"AZ" = ( /obj/structure/stone_tile/block{ - dir = 8 + dir = 4 }, -/obj/item/pickaxe, -/obj/effect/mapping_helpers/no_lava, -/turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"eG" = ( -/obj/structure/closet/crate/radiation, -/obj/structure/stone_tile/block/cracked{ - dir = 8 +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 }, -/obj/structure/stone_tile/cracked{ - dir = 1 +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 }, -/obj/item/flashlight/flare/torch, -/obj/item/flashlight/flare/torch, -/obj/item/flashlight/flare/torch, -/turf/open/misc/asteroid/basalt/lava_land_surface, +/turf/open/lava/smooth/lava_land_surface, /area/ruin/unpowered/ash_walkers) -"gi" = ( -/obj/structure/table/optable, -/obj/structure/stone_tile{ - dir = 1 - }, +"Bc" = ( +/obj/structure/stone_tile/block/cracked, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) -"hF" = ( -/obj/structure/stone_tile/block/cracked{ - dir = 8 +"Bs" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 }, -/obj/effect/mapping_helpers/no_lava, +/obj/structure/flora/ash/stem_shroom, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"id" = ( +/area/ruin/unpowered/ash_walkers) +"BJ" = ( +/obj/structure/stone_tile/cracked, /obj/structure/stone_tile{ dir = 8 }, -/obj/structure/stone_tile/cracked, -/obj/effect/decal/cleanable/blood, -/obj/effect/mapping_helpers/no_lava, -/turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"ie" = ( -/obj/machinery/growing/soil, /obj/structure/stone_tile/block/cracked{ dir = 1 }, -/obj/item/cultivator/rake, -/obj/effect/mapping_helpers/no_lava, -/turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"iy" = ( +/turf/open/indestructible/boss, +/area/ruin/unpowered/ash_walkers) +"Ch" = ( +/obj/structure/stone_tile/slab/cracked, +/obj/item/flashlight/flare/candle/infinite, +/turf/open/indestructible/boss, +/area/ruin/unpowered/ash_walkers) +"Cl" = ( /obj/structure/stone_tile/block{ - dir = 8 - }, -/obj/structure/stone_tile/block/cracked{ dir = 4 }, -/obj/effect/mapping_helpers/no_lava, -/turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"iW" = ( -/obj/structure/stone_tile/block, -/obj/structure/stone_tile/block{ - dir = 1 - }, -/obj/effect/mapping_helpers/no_lava, -/turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"kX" = ( /obj/structure/stone_tile/block/cracked{ - dir = 4 + dir = 8 }, -/obj/item/flashlight/flare/torch, -/turf/open/misc/asteroid/basalt/lava_land_surface, +/turf/open/indestructible/boss, /area/ruin/unpowered/ash_walkers) -"mm" = ( -/obj/structure/stone_tile, -/obj/structure/stone_tile{ - dir = 1 - }, -/obj/structure/stone_tile/cracked{ +"Cp" = ( +/obj/structure/stone_tile/surrounding_tile{ dir = 4 }, -/obj/structure/stone_tile/cracked{ - dir = 8 - }, -/obj/effect/decal/cleanable/blood, -/turf/open/misc/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) -"mp" = ( -/obj/structure/stone_tile/surrounding/cracked, +/obj/structure/stone_tile/surrounding_tile, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) -"mB" = ( -/obj/structure/stone_tile/surrounding/cracked{ - dir = 1 - }, -/obj/item/flashlight/lantern, +"Do" = ( +/obj/structure/millstone, +/obj/structure/stone_tile/slab, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) -"mL" = ( -/obj/effect/mob_spawn/corpse/human/damaged, -/obj/effect/decal/cleanable/blood, -/obj/structure/stone_tile/cracked{ - dir = 1 - }, -/turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"nB" = ( -/obj/effect/decal/cleanable/blood, -/obj/structure/stone_tile/block, -/obj/structure/stone_tile/cracked{ - dir = 4 - }, -/obj/structure/stone_tile/cracked{ - dir = 1 - }, -/obj/effect/mapping_helpers/no_lava, -/turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"oI" = ( -/obj/structure/stone_tile{ +"DL" = ( +/obj/structure/chair/stool/bamboo{ dir = 8 }, -/obj/effect/mapping_helpers/no_lava, -/turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"pT" = ( -/obj/structure/stone_tile/surrounding_tile/cracked, -/obj/structure/stone_tile/surrounding_tile/cracked{ - dir = 1 - }, -/obj/structure/stone_tile/surrounding_tile{ - dir = 8 - }, -/obj/structure/stone_tile/center, -/obj/effect/mapping_helpers/no_lava, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"qn" = ( -/obj/item/storage/box/rxglasses, +/area/ruin/unpowered/ash_walkers) +"DP" = ( +/obj/structure/stone_tile/block, /obj/structure/stone_tile{ dir = 1 }, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) -"qw" = ( +"EH" = ( +/obj/structure/closet/crate/wooden, +/obj/item/hemostat/ashwalker, +/obj/item/retractor/ashwalker{ + pixel_y = -9 + }, +/obj/item/scalpel/ashwalker{ + pixel_y = -4 + }, +/obj/item/surgicaldrill/ashwalker, +/obj/item/circular_saw/ashwalker, +/obj/item/cautery/ashwalker, +/obj/structure/stone_tile/slab, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"EL" = ( /obj/structure/stone_tile/slab, /obj/effect/decal/cleanable/blood, -/obj/effect/mapping_helpers/no_lava, +/obj/structure/headpike/bone, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"qV" = ( -/obj/structure/stone_tile/surrounding_tile{ - dir = 8 +/area/ruin/unpowered/ash_walkers) +"EQ" = ( +/obj/structure/table/wood, +/obj/item/food/rootdough{ + pixel_x = 3; + pixel_y = 2 }, -/obj/structure/stone_tile/surrounding_tile, -/obj/structure/stone_tile/center/cracked, -/obj/structure/stone_tile/surrounding_tile/cracked{ - dir = 4 +/obj/item/food/rootdough{ + pixel_x = -3 }, -/obj/effect/mapping_helpers/no_lava, +/obj/item/kitchen/rollingpin, +/obj/structure/stone_tile/slab, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Fz" = ( +/obj/structure/flora/ash/tall_shroom, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"FA" = ( +/turf/closed/indestructible/riveted/boss/see_through, +/area/ruin/unpowered/ash_walkers) +"FL" = ( +/obj/structure/fermenting_barrel, +/obj/structure/stone_tile/slab, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Gx" = ( +/obj/structure/table/wood, +/obj/item/cutting_board, +/obj/item/knife/hunting, +/obj/structure/stone_tile/slab, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"qZ" = ( +/area/ruin/unpowered/ash_walkers) +"GG" = ( +/obj/structure/necropolis_gate, /obj/structure/stone_tile/block{ dir = 4 }, /obj/structure/stone_tile/block/cracked{ dir = 8 }, -/obj/effect/mapping_helpers/no_lava, +/turf/open/indestructible/boss, +/area/ruin/unpowered/ash_walkers) +"Hr" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/syringe/crude{ + pixel_x = 4; + pixel_y = 19 + }, +/obj/item/reagent_containers/syringe/crude{ + pixel_x = 2; + pixel_y = 15 + }, +/obj/structure/stone_tile/slab, +/obj/item/paper_bin/bundlenatural, +/obj/item/pen/charcoal, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"rs" = ( -/obj/structure/stone_tile/surrounding_tile/cracked{ +/area/ruin/unpowered/ash_walkers) +"Hx" = ( +/obj/structure/stone_tile/block{ dir = 4 }, -/obj/structure/stone_tile/surrounding_tile/cracked, -/obj/structure/stone_tile/surrounding_tile{ +/obj/structure/stone_tile{ dir = 8 }, -/obj/structure/stone_tile/center, -/obj/item/hatchet/wooden, -/obj/effect/mapping_helpers/no_lava, -/turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"ry" = ( -/obj/structure/stone_tile/block, -/obj/effect/mapping_helpers/no_lava, -/turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"rZ" = ( -/obj/structure/stone_tile/slab/cracked{ +/obj/structure/stone_tile/surrounding_tile/cracked{ dir = 4 }, +/obj/item/flashlight/flare/candle/infinite, +/turf/open/indestructible/boss, +/area/ruin/unpowered/ash_walkers) +"HF" = ( +/obj/structure/stone_tile/surrounding_tile, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) -"sd" = ( +"Ie" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, /obj/structure/stone_tile/surrounding_tile{ dir = 4 }, /obj/structure/stone_tile/surrounding_tile{ dir = 1 }, -/obj/structure/stone_tile/surrounding_tile/cracked{ - dir = 8 - }, /obj/structure/stone_tile/center, -/obj/effect/decal/cleanable/blood, -/obj/effect/mapping_helpers/no_lava, -/turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"tY" = ( -/obj/structure/stone_tile/block/cracked{ - dir = 1 - }, -/obj/effect/mapping_helpers/no_lava, -/turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"ua" = ( -/obj/structure/stone_tile{ - dir = 4 - }, -/obj/structure/stone_tile/cracked{ +/obj/structure/stone_tile/surrounding_tile, +/turf/open/indestructible/boss, +/area/ruin/unpowered/ash_walkers) +"Je" = ( +/obj/structure/stone_tile/surrounding_tile{ dir = 8 }, -/obj/item/spear, -/obj/effect/mapping_helpers/no_lava, +/mob/living/basic/chicken{ + name = "\improper gunther"; + desc = "An odd looking gutlunch, this one seems to have feathers and lay eggs, not like you'd complain about that."; + unsuitable_atmos_damage = 0 + }, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"uv" = ( -/obj/structure/stone_tile/surrounding_tile{ +/area/ruin/unpowered/ash_walkers) +"Jh" = ( +/obj/structure/stone_tile/block{ dir = 8 }, -/obj/structure/stone_tile/block{ - dir = 4 +/obj/structure/table/wood, +/obj/item/plate/oven_tray/material/fake_tin, +/obj/item/reagent_containers/cup/soup_pot/material/fake_brass{ + pixel_y = 6; + pixel_x = -3 }, -/obj/effect/mapping_helpers/no_lava, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"vk" = ( -/obj/structure/stone_tile, +/area/ruin/unpowered/ash_walkers) +"JD" = ( +/obj/structure/flora/ash/leaf_shroom, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) -"vw" = ( -/obj/structure/stone_tile/cracked{ +"JN" = ( +/obj/structure/stone_tile/slab/burnt, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Kr" = ( +/obj/structure/stone_tile/surrounding_tile/cracked{ dir = 8 }, -/obj/structure/closet/crate, -/obj/item/flashlight/flare/torch, -/obj/item/flashlight/flare/torch, -/obj/item/flashlight/flare/torch, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) -"wB" = ( -/obj/structure/stone_tile/block, -/obj/structure/stone_tile{ - dir = 4 - }, -/obj/structure/stone_tile{ +"KS" = ( +/obj/structure/stone_tile/slab/cracked, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"KU" = ( +/obj/structure/stone_tile/block{ dir = 1 }, -/obj/effect/mapping_helpers/no_lava, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"wQ" = ( -/obj/structure/stone_tile/cracked{ - dir = 8 - }, -/obj/structure/stone_tile{ - dir = 4 - }, +/area/ruin/unpowered/ash_walkers) +"La" = ( +/obj/structure/table/wood, +/obj/structure/large_mortar, +/obj/item/pestle, +/obj/structure/stone_tile/slab, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) -"xd" = ( -/obj/structure/stone_tile/block/cracked, -/obj/item/storage/toolbox/syndicate, +"Ly" = ( +/turf/closed/wall/mineral/wood/nonmetal, +/area/ruin/unpowered/ash_walkers) +"Lz" = ( +/obj/structure/stone_tile/surrounding, +/obj/structure/anvil, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) -"xo" = ( -/obj/structure/stone_tile/cracked{ +"LC" = ( +/obj/structure/stone_tile/block/cracked{ dir = 8 }, -/obj/effect/mob_spawn/corpse/human/damaged, -/obj/effect/decal/cleanable/blood, -/obj/structure/stone_tile/cracked{ - dir = 1 - }, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"xH" = ( -/obj/item/spear, -/obj/structure/stone_tile{ - dir = 4 - }, -/obj/effect/mapping_helpers/no_lava, +/area/ruin/unpowered/ash_walkers) +"LE" = ( +/obj/structure/stone_tile/slab, +/obj/structure/closet/crate/wooden, +/obj/item/seeds/ambrosia, +/obj/item/seeds/ambrosia, +/obj/item/seeds/aloe, +/obj/item/seeds/aloe, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"zD" = ( -/obj/item/stack/sheet/mineral/wood, -/obj/structure/stone_tile{ - dir = 4 - }, -/obj/effect/mapping_helpers/no_lava, +/area/ruin/unpowered/ash_walkers) +"LI" = ( +/obj/structure/stone_tile/surrounding, +/obj/structure/reagent_forge, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"zR" = ( -/obj/structure/stone_tile/surrounding_tile, +/area/ruin/unpowered/ash_walkers) +"LO" = ( /obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/obj/structure/stone_tile/surrounding/cracked{ dir = 1 }, -/obj/structure/stone_tile/surrounding_tile/cracked{ +/obj/structure/stone_tile/surrounding_tile{ dir = 4 }, -/obj/structure/stone_tile/center, -/obj/effect/mapping_helpers/no_lava, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"Aj" = ( -/obj/structure/stone_tile/cracked{ +/area/ruin/unpowered/ash_walkers) +"Mk" = ( +/obj/structure/stone_tile/block/burnt{ dir = 1 }, -/obj/effect/mapping_helpers/no_lava, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"AV" = ( -/obj/item/pickaxe, -/obj/structure/stone_tile/cracked{ - dir = 1 - }, -/obj/effect/mapping_helpers/no_lava, +/area/ruin/unpowered/ash_walkers) +"Mq" = ( +/obj/structure/flora/ash/cap_shroom, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"Bc" = ( +/area/ruin/unpowered/ash_walkers) +"MD" = ( +/obj/structure/stone_tile/surrounding_tile/cracked, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"MF" = ( /obj/item/shovel, -/obj/structure/stone_tile/cracked{ - dir = 8 - }, -/obj/effect/mapping_helpers/no_lava, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"Bl" = ( -/obj/structure/stone_tile/surrounding_tile, -/obj/structure/stone_tile/center/cracked, -/obj/structure/stone_tile/surrounding_tile/cracked{ - dir = 1 - }, -/obj/structure/stone_tile/surrounding_tile/cracked{ - dir = 8 - }, -/obj/effect/mapping_helpers/no_lava, +/area/ruin/unpowered/ash_walkers) +"MR" = ( +/obj/machinery/smartfridge/drying_rack, +/obj/structure/stone_tile/slab, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"Bq" = ( -/obj/structure/stone_tile/cracked{ - dir = 4 - }, -/obj/effect/mapping_helpers/no_lava, +/area/ruin/unpowered/ash_walkers) +"Ne" = ( +/obj/structure/closet/crate/wooden, +/obj/item/seeds/chanter, +/obj/item/seeds/chanter, +/obj/item/seeds/coffee, +/obj/item/seeds/herbs, +/obj/item/seeds/herbs, +/obj/item/seeds/kronkus, +/obj/item/seeds/tea, +/obj/item/seeds/tea, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"Cg" = ( -/obj/structure/stone_tile/block/cracked{ - dir = 8 - }, +/area/ruin/unpowered/ash_walkers) +"Nf" = ( +/obj/structure/stone_tile/slab, +/obj/structure/rack/shelf, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) -"Dx" = ( -/obj/effect/decal/cleanable/blood, -/obj/structure/stone_tile/cracked{ +"Nm" = ( +/obj/structure/stone_tile/block/burnt{ + dir = 4 + }, +/obj/structure/stone_tile/burnt{ dir = 8 }, -/obj/structure/stone_tile/cracked{ +/obj/structure/stone_tile/burnt{ dir = 4 }, -/obj/effect/mapping_helpers/no_lava, +/turf/open/lava/smooth/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"NM" = ( +/obj/structure/barricade/wooden, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"Ee" = ( -/obj/structure/stone_tile/block/cracked, -/obj/structure/stone_tile{ +/area/ruin/unpowered/ash_walkers) +"NP" = ( +/obj/structure/bonfire/dense, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"NR" = ( +/obj/structure/stone_tile/surrounding_tile/cracked{ dir = 1 }, -/obj/structure/stone_tile{ +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"NV" = ( +/obj/structure/stone_tile/surrounding_tile{ dir = 4 }, -/obj/effect/mapping_helpers/no_lava, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"Fa" = ( +/area/ruin/unpowered/ash_walkers) +"Oc" = ( /obj/structure/stone_tile/block{ - dir = 4 + dir = 1 }, -/obj/effect/mapping_helpers/no_lava, -/turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"Fg" = ( -/obj/structure/stone_tile, /obj/structure/stone_tile{ dir = 8 }, -/obj/structure/stone_tile/cracked{ - dir = 1 - }, -/obj/item/spear, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) -"Fp" = ( -/obj/structure/stone_tile/slab, -/obj/effect/mapping_helpers/no_lava, -/turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"FJ" = ( -/obj/structure/stone_tile{ - dir = 1 - }, -/obj/item/weldingtool/experimental, +"Og" = ( +/obj/structure/stone_tile/surrounding/cracked, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) -"Go" = ( -/obj/structure/stone_tile/cracked{ +"Ol" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile/surrounding_tile{ dir = 4 }, -/obj/structure/stone_tile/cracked{ - dir = 1 - }, -/obj/effect/mapping_helpers/no_lava, -/turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"Gv" = ( -/obj/effect/mapping_helpers/no_lava, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"Gx" = ( -/obj/structure/stone_tile/block/cracked, -/obj/structure/stone_tile{ +/area/ruin/unpowered/ash_walkers) +"Os" = ( +/obj/structure/curtain/bounty, +/obj/structure/stone_tile/block{ dir = 4 }, -/obj/structure/closet/crate/hydroponics, -/obj/item/seeds/glowshroom, -/obj/item/seeds/glowshroom, -/obj/item/seeds/lavaland/porcini, -/obj/item/seeds/lavaland/porcini, -/obj/item/seeds/tree, -/obj/item/seeds/tree, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) -"GW" = ( -/obj/structure/stone_tile/surrounding_tile{ - dir = 8 - }, -/obj/effect/mapping_helpers/no_lava, +"Ov" = ( +/obj/structure/necropolis_gate, +/obj/structure/stone_tile/slab, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"HU" = ( +/area/ruin/unpowered/ash_walkers) +"Ox" = ( /obj/structure/stone_tile/block{ - dir = 8 + dir = 1 }, -/obj/effect/mapping_helpers/no_lava, +/obj/structure/stone_tile, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"Ic" = ( -/obj/machinery/growing/soil, -/obj/structure/stone_tile/surrounding_tile/cracked{ +/area/ruin/unpowered/ash_walkers) +"OG" = ( +/obj/structure/chair/stool/bamboo{ dir = 1 }, -/obj/structure/stone_tile/surrounding_tile, /obj/structure/stone_tile/surrounding_tile{ - dir = 4 - }, -/obj/structure/stone_tile/center, -/obj/effect/mapping_helpers/no_lava, -/turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"Ie" = ( -/obj/structure/stone_tile/cracked{ - dir = 4 + dir = 1 }, -/obj/structure/stone_tile{ +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"OJ" = ( +/obj/structure/stone_tile/surrounding_tile{ dir = 1 }, -/obj/structure/stone_tile{ +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"OR" = ( +/obj/structure/stone_tile/surrounding_tile, +/obj/structure/stone_tile/surrounding_tile{ dir = 8 }, -/obj/effect/decal/cleanable/blood, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) -"If" = ( -/obj/structure/stone_tile/cracked{ - dir = 8 +"Pr" = ( +/obj/item/bedsheet/black{ + pixel_x = 5 + }, +/obj/item/bedsheet/black{ + pixel_x = 5; + pixel_y = 4 }, -/obj/item/malf_upgrade, +/obj/item/bedsheet/black{ + pixel_x = 5; + pixel_y = 8 + }, +/obj/structure/stone_tile/slab, +/obj/structure/rack/shelf, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) -"Iy" = ( -/obj/structure/stone_tile/center, -/obj/effect/mapping_helpers/no_lava, -/obj/item/flashlight/flare/torch, +"PB" = ( +/obj/item/stack/sheet/iron/twenty, +/obj/structure/stone_tile/slab, +/obj/structure/rack/shelf, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"IS" = ( -/obj/structure/stone_tile/block, -/obj/item/spear, -/obj/effect/mapping_helpers/no_lava, +/area/ruin/unpowered/ash_walkers) +"PF" = ( +/obj/structure/closet/crate/wooden, +/obj/item/seeds/cotton, +/obj/item/seeds/cotton, +/obj/item/seeds/cotton, +/obj/item/seeds/korta_nut, +/obj/item/seeds/korta_nut, +/obj/item/seeds/korta_nut, +/obj/item/seeds/korta_nut/sweet, +/obj/item/seeds/korta_nut/sweet, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"Kt" = ( -/obj/structure/water_source/puddle{ - pixel_x = -3; - pixel_y = 1 - }, -/obj/effect/mapping_helpers/no_lava, +/area/ruin/unpowered/ash_walkers) +"PG" = ( +/obj/item/stack/sheet/mineral/coal/ten, +/obj/structure/stone_tile/slab, +/obj/structure/rack/shelf, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"KR" = ( -/obj/structure/stone_tile/block/cracked, -/obj/effect/mapping_helpers/no_lava, +/area/ruin/unpowered/ash_walkers) +"PJ" = ( +/obj/structure/flora/ash/seraka, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"Lb" = ( -/obj/structure/stone_tile/cracked{ - dir = 1 +/area/ruin/unpowered/ash_walkers) +"PK" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 }, +/obj/structure/flora/ash/cacti, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) -"LH" = ( -/obj/structure/stone_tile, -/obj/structure/stone_tile{ - dir = 8 +"Qe" = ( +/obj/structure/stone_tile/block{ + dir = 4 }, -/obj/effect/mapping_helpers/no_lava, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"LN" = ( -/obj/structure/stone_tile/surrounding_tile{ - dir = 4 +/area/ruin/unpowered/ash_walkers) +"Qw" = ( +/obj/structure/stone_tile/block{ + dir = 8 }, -/obj/structure/stone_tile/center/cracked, -/obj/structure/stone_tile/surrounding_tile/cracked, -/obj/structure/stone_tile/surrounding_tile/cracked{ +/obj/structure/stone_tile{ dir = 1 }, -/obj/effect/mapping_helpers/no_lava, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"MD" = ( -/obj/structure/stone_tile/block/cracked{ +/area/ruin/unpowered/ash_walkers) +"Qx" = ( +/obj/structure/stone_tile/block{ dir = 4 }, -/obj/structure/stone_tile/block{ +/obj/structure/stone_tile/block/burnt{ dir = 8 }, -/obj/effect/mapping_helpers/no_lava, +/turf/open/lava/smooth/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"QG" = ( +/obj/structure/stone_tile/slab/cracked, +/obj/structure/headpike/bone, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"MY" = ( -/obj/structure/stone_tile/cracked{ - dir = 4 - }, +/area/ruin/unpowered/ash_walkers) +"Ra" = ( +/obj/effect/ash_rune, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) -"Nv" = ( -/obj/structure/stone_tile/block/cracked, +"RR" = ( +/obj/machinery/vending/ashclothingvendor, +/obj/structure/stone_tile/slab, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"St" = ( /obj/structure/stone_tile/block{ - dir = 1 + dir = 4 }, -/obj/effect/mapping_helpers/no_lava, -/turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"NV" = ( /obj/structure/stone_tile{ - dir = 1 + dir = 4 }, -/obj/effect/mapping_helpers/no_lava, -/turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"Oe" = ( -/obj/structure/stone_tile/surrounding_tile/cracked, -/obj/structure/ore_box, -/obj/effect/mapping_helpers/no_lava, -/turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"OY" = ( -/obj/structure/stone_tile/surrounding_tile/cracked, -/obj/effect/mapping_helpers/no_lava, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"RE" = ( -/obj/structure/stone_tile/block/cracked{ +/area/ruin/unpowered/ash_walkers) +"SE" = ( +/obj/item/secateurs, +/obj/item/hatchet/wooden, +/obj/item/hatchet/wooden{ + pixel_y = 6 + }, +/obj/structure/stone_tile/slab, +/obj/structure/rack/shelf, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"SF" = ( +/obj/structure/closet/crate/wooden, +/obj/item/seeds/bamboo, +/obj/item/seeds/bamboo, +/obj/item/seeds/sugarcane, +/obj/item/seeds/sugarcane, +/obj/item/seeds/tower, +/obj/item/seeds/tower, +/obj/item/seeds/tower, +/obj/structure/stone_tile/surrounding_tile{ dir = 1 }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"SX" = ( +/obj/structure/table/wood, +/obj/item/flashlight/flare/candle/infinite{ + pixel_x = 11; + pixel_y = 12 + }, +/obj/item/reagent_containers/cup/glass/bottle/hooch{ + pixel_x = -2; + pixel_y = 11 + }, +/obj/item/food/rootroll{ + pixel_x = -3; + pixel_y = -1 + }, +/obj/structure/stone_tile/slab, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Ts" = ( /obj/structure/stone_tile/block, -/obj/effect/mapping_helpers/no_lava, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"RH" = ( +/area/ruin/unpowered/ash_walkers) +"Uh" = ( +/obj/structure/stone_tile/block, /obj/structure/stone_tile{ dir = 4 }, -/obj/effect/mapping_helpers/no_lava, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"Sf" = ( -/obj/structure/stone_tile/block/cracked{ - dir = 4 +/area/ruin/unpowered/ash_walkers) +"Um" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 1 }, -/obj/item/reagent_containers/cup/bucket/wooden, -/obj/effect/mapping_helpers/no_lava, +/obj/structure/stone_tile/surrounding_tile, +/obj/structure/fermenting_barrel, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"Sq" = ( -/obj/structure/stone_tile/cracked{ +/area/ruin/unpowered/ash_walkers) +"Uw" = ( +/obj/structure/stone_tile/surrounding/cracked{ dir = 4 }, -/obj/structure/stone_tile/cracked{ +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"UL" = ( +/obj/structure/stone_tile/block{ dir = 8 }, -/obj/effect/mapping_helpers/no_lava, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"Th" = ( -/obj/structure/stone_tile/block/cracked{ - dir = 1 - }, -/obj/structure/stone_tile/cracked, -/obj/structure/stone_tile/cracked{ +/area/ruin/unpowered/ash_walkers) +"UR" = ( +/obj/structure/stone_tile/slab, +/obj/machinery/oven/stone, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Vw" = ( +/obj/structure/stone_tile/surrounding/cracked{ dir = 8 }, -/obj/effect/mapping_helpers/no_lava, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"Tr" = ( -/obj/machinery/growing/soil, -/obj/structure/stone_tile/block{ +/area/ruin/unpowered/ash_walkers) +"VT" = ( +/obj/structure/stone_tile/block/burnt{ dir = 8 }, -/obj/effect/mapping_helpers/no_lava, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"TO" = ( -/obj/structure/stone_tile{ - dir = 4 +/area/ruin/unpowered/ash_walkers) +"VX" = ( +/obj/structure/closet/crate/miningcar, +/obj/item/stack/sheet/mineral/coal/ten, +/obj/structure/stone_tile/slab, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"WB" = ( +/obj/structure/closet/crate/wooden, +/obj/item/reagent_containers/blood/lizard{ + pixel_x = -2; + pixel_y = -2 + }, +/obj/item/reagent_containers/blood/lizard{ + pixel_x = 5; + pixel_y = -2 }, -/obj/structure/closet/crate/medical, -/obj/item/storage/medkit/regular, -/obj/item/reagent_containers/blood/random, -/obj/item/reagent_containers/blood/lizard, -/obj/item/reagent_containers/blood/lizard, /obj/item/stack/sheet/cloth/ten, +/obj/structure/stone_tile/slab, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) -"TY" = ( +"WD" = ( /obj/structure/stone_tile/surrounding_tile{ dir = 8 }, -/obj/structure/stone_tile/center, -/obj/structure/stone_tile/surrounding_tile/cracked{ - dir = 1 - }, -/obj/structure/stone_tile/surrounding_tile/cracked{ +/obj/structure/stone_tile/surrounding_tile, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"WJ" = ( +/obj/structure/stone_tile/surrounding/cracked{ dir = 4 }, -/obj/effect/mapping_helpers/no_lava, +/obj/structure/stone_tile/surrounding/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/center/burnt, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"Uh" = ( -/obj/structure/stone_tile/cracked{ +/area/ruin/unpowered/ash_walkers) +"WK" = ( +/obj/structure/flora/ash/seraka, +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"WM" = ( +/obj/structure/chair/stool/bamboo{ dir = 4 }, -/obj/structure/closet/crate/internals, -/obj/item/pickaxe, -/obj/item/pickaxe, -/obj/item/pickaxe, -/obj/item/pickaxe, -/obj/item/pickaxe, -/obj/item/pickaxe, -/obj/effect/mapping_helpers/no_lava, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"UI" = ( +/area/ruin/unpowered/ash_walkers) +"WW" = ( /obj/structure/stone_tile/block{ dir = 8 }, -/obj/machinery/iv_drip, -/obj/item/reagent_containers/cup/glass/waterbottle/large, +/obj/structure/stone_tile, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) -"UL" = ( -/obj/structure/stone_tile/cracked, -/obj/effect/mapping_helpers/no_lava, -/turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"Wh" = ( -/obj/structure/stone_tile/block, -/obj/structure/stone_tile/block/cracked{ - dir = 1 +"Xe" = ( +/obj/item/reagent_containers/cup/glass/bottle/small{ + pixel_x = -5; + pixel_y = 12 }, -/obj/effect/mapping_helpers/no_lava, -/turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"Xp" = ( -/obj/structure/stone_tile/cracked{ - dir = 8 +/obj/item/reagent_containers/cup/glass/bottle/small{ + pixel_x = 5; + pixel_y = 12 }, -/obj/effect/mapping_helpers/no_lava, +/obj/item/reagent_containers/cup/beaker/large/ceramic{ + pixel_x = 7; + pixel_y = -5 + }, +/obj/item/reagent_containers/cup/beaker/large/blowing_glass{ + pixel_y = -5; + pixel_x = -3 + }, +/obj/structure/stone_tile/slab, +/obj/structure/rack/shelf, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"YO" = ( -/obj/structure/bonfire/dense, +/area/ruin/unpowered/ash_walkers) +"Xs" = ( +/obj/structure/stone_tile/surrounding, /obj/structure/stone_tile/center, +/obj/item/knife/hunting, +/obj/structure/table/bronze, +/turf/open/lava/smooth/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"XQ" = ( +/obj/structure/stone_tile/block/burnt, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"XV" = ( /obj/effect/mapping_helpers/no_lava, +/turf/template_noop, +/area/template_noop) +"Yq" = ( +/obj/structure/flora/ash/stem_shroom, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Zn" = ( +/obj/structure/stone_tile/surrounding_tile, +/obj/structure/flora/ash/cacti, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"ZW" = ( +/obj/structure/stone_tile/block/burnt{ + dir = 4 + }, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) +/area/ruin/unpowered/ash_walkers) (1,1,1) = {" -aa -aa -aa -aa -ah -ah -ah -ah -ah -ah -ah -aa -aa -ah -ah -ah -ah -aa -aa -aa +mv +mv +mv +mv +mv +Ly +Ly +cm +Ly +Ly +mv +mv +mv +mv +mv +mv +mv +mv +mv +mv +mv +mv +mv "} (2,1,1) = {" -aa -ah -ah -ah -ah -ah -ah -bi -ah -bi -cO -ah -ah -ah -ah -ah -ah -ah -aa -aa +mv +mv +mv +Ly +cm +Ly +mu +mh +mu +Ly +Ly +mv +mv +mv +mv +mv +mv +mv +mv +mv +mv +mv +mv "} (3,1,1) = {" -aa -aa -ah -as -as -as -as -ak -as -as -cP -ah -ah -eu -oI -AV -ah -ah -ah -aa +mv +mv +Ly +Ly +mu +bH +AG +HF +OJ +Nf +Ly +NM +NM +NM +mv +mv +mv +Ly +Ly +Ly +cm +Ly +mv "} (4,1,1) = {" -aa -aa -ah -ak -If -MY -dP -bj -vw -ak -cP -eu -Bq -ua -Xp -Xp -xo -ah -ah -aa +mv +mv +Ly +sl +HF +NV +Qw +pn +WW +tR +cm +mZ +mZ +NM +NM +Ly +cm +Ly +MR +FL +FL +Ly +Ly "} (5,1,1) = {" -aa -aa -ac -as -Gx -FJ -aY -bk -bw -ak -NV -Sq -Bl -Fa -LN -oI -RH -NV -ah -ah +mv +mv +cm +LO +Vw +Oc +HF +mZ +OJ +Uh +WD +mZ +mZ +mZ +Ly +Ly +UR +PG +pD +ZW +Uw +La +Ly "} (6,1,1) = {" -aa -aa -cT -ak -xd -qn -mB -Lb -bx -dP -Fp -MD -KR -YO -tY -id -oI -Xp -ah -ah +mv +mv +Ly +mu +qs +dw +sS +NP +mZ +dw +KS +dw +WW +PJ +Ly +oe +dw +dw +XQ +mZ +NV +EQ +Ly "} (7,1,1) = {" -aa -aa -ae -as -gi -vk -Ie -bm -by -ak -KR +mv +mv +Ly +Ly +Vw +Ox +zI +WM NV -qV -HU -TY -eu -RH -Go -ah -ah +DP +OR +mZ +dw +NV +cm +Qe +ku +Qe +HF +ky +Gx +nb +Ly "} (8,1,1) = {" -aa -aa -ae -as -TO -UI -wQ -eG -bz -ak -NV -Dx -Aj -Nv -UL -zD -Sq -Bc -ah -ah +mv +mv +mv +Ly +RR +tl +St +dw +mS +HF +pE +mZ +dw +dw +KS +sS +ab +zV +Jh +zI +OJ +cm +pE "} (9,1,1) = {" -aa -ah -ah -as -ak -as -as -as -ak -ak -Bq -NV -Bq -Wh -RH -pT -Sf -Ic -dD -ah +mv +mv +mv +Ly +Ly +cm +Um +Qe +ww +cm +pE +mZ +KS +KU +dw +Vw +WM +KU +LI +Ts +DL +Mk +Ly "} (10,1,1) = {" -aa -ai -aq -at -aF -aR -aR -eC -HU -uv -OY -Bq -NV -nB -qZ -ry -Iy -ie -dE -ah +mv +mv +mv +mv +mv +NM +vB +JD +lH +ot +HF +Mq +WJ +OJ +cm +qr +Je +OJ +rP +HF +SX +OG +Ly "} (11,1,1) = {" -ab -aj -ak -ak -ak -ak -ak -ak -ak -qw -GW -NV -RH -Nv -NV -rs -Tr -dB -dC -aa +mv +mv +mv +mv +mv +NM +NM +hr +mZ +jL +zI +mZ +JN +mZ +Ly +Ly +Xe +ij +VT +UL +UL +Og +Ly "} (12,1,1) = {" -ac -ak -ak -ak -ak -ak -ak -ak -ak -ak -IS -RH -Aj -Nv -Kt -du -dz -dC -ah -aa +mv +mv +mv +mv +mv +mv +NM +zI +Mq +pE +HF +mZ +dw +mZ +mZ +Ly +Ly +cm +JN +KS +dw +Ly +Ly "} (13,1,1) = {" -ad -ak -ak -au -aG -aS -bc -bp -ak -ak -wB -Gv -mL -iW -ah -ah -ah -ah -ah -ah +mv +mv +mv +pE +pE +pE +pE +pE +UL +zI +mZ +Mq +St +dw +WW +mZ +mZ +OJ +Qe +Qe +xl +cm +mv "} (14,1,1) = {" -ae -ak -ak -av -aH -aT -bd -bq -ak -bG -zR -LH -Bq -RE -hF -ah -bi -bi -bi -cO +mv +pE +pE +cm +Qx +lB +yl +cm +pE +EL +mZ +mZ +mZ +mZ +KS +fV +mZ +Mq +mZ +mZ +pE +pE +mv "} (15,1,1) = {" -ac -ak -ak -aw -aI -aU -be -br -bB -bH -Fp -iy -qZ -Th -ak -ak -as -ak -ak -ah +pE +cm +hY +nj +ug +kx +wM +Ao +pE +cm +Kr +mZ +PK +Qw +dw +WW +zI +mZ +Fz +cm +pE +fC +mv "} (16,1,1) = {" -ac -ak -ak -ax -aJ -aV -bf -bs -ak -bG -sd -LH -Aj -iW -as -Fg -kX -cL -as -ah +pE +jm +iI +nx +rE +eE +wS +BJ +px +FA +KS +Kr +Oc +qW +mZ +OJ +Uh +mZ +NV +dw +pE +XV +XV "} (17,1,1) = {" -af -ak -ak -ay -aK -aW -bg -bt -ak -ak -Ee -Bq -xH -Fp -Cg -rZ -mp -cM -as -ah +pE +Xs +nt +nt +ss +uE +xW +Ch +Cl +GG +KU +KS +dw +mZ +Ra +iP +dw +dw +dw +dw +Ov +XV +XV "} (18,1,1) = {" -ac -ak -ak -ak -ak -ak -ak -ak -ak -ak -KR -Aj -eu -ah -as -mm -cF -cN -ak -cP +pE +ok +hY +nx +bc +nL +rQ +wp +AZ +FA +KS +MD +Ox +zI +iP +NV +DP +mZ +NR +dw +pE +XV +XV "} (19,1,1) = {" -ag -aj -ak -ak -ak -ak -ak -ak -ak -bI -Oe -Uh -ah -cp -as -as -as -ak -ak -cQ +pE +cm +iZ +nI +Az +Hx +Az +Ie +pE +cm +HF +mZ +OJ +St +dw +mS +Zn +mZ +mZ +cm +pE +fC +mv "} (20,1,1) = {" -aa -al -ar -az -az -az -bh -az -bC -bJ -ah -ah -ah -al -ah -ah -bC -ah -ah -cR +mv +pE +pE +cm +gn +Qx +Nm +cm +pE +QG +mZ +Bs +VT +UL +dw +UL +LC +zI +mZ +mZ +pE +pE +mv +"} +(21,1,1) = {" +mv +mv +mv +pE +pE +pE +pE +pE +Qe +HF +fV +KU +pE +pE +KS +Qe +cm +pE +zI +Mq +mZ +cm +mv +"} +(22,1,1) = {" +mv +mv +mv +mv +mv +mv +NM +Mq +mZ +mZ +mZ +qy +cm +Nf +NV +zI +Uw +dw +Ts +aK +mZ +Ly +Ly +"} +(23,1,1) = {" +mv +mv +mv +mv +mv +mv +NM +mZ +mZ +mZ +Mq +KU +PB +sI +OJ +HF +NV +dw +Bc +mZ +mZ +PF +Ly +"} +(24,1,1) = {" +mv +mv +mv +mv +mv +Ly +cm +Os +Os +cm +mZ +Mk +Ol +zI +mZ +mZ +dw +pE +HF +wR +MF +mZ +Ly +"} +(25,1,1) = {" +mv +mv +mv +pE +Ly +Ly +FL +mZ +mZ +hL +mZ +KU +pE +wc +zI +Og +dw +cm +eA +mZ +wR +mZ +Ly +"} +(26,1,1) = {" +mv +mv +Ly +Ly +mu +EH +Cp +UL +zI +hL +mZ +OJ +pE +cm +VX +dw +pE +pE +WK +mZ +wR +eU +cm +"} +(27,1,1) = {" +mv +mv +cm +Pr +sI +mZ +KU +Lz +Ts +cm +pE +mZ +mZ +pE +pE +cm +pE +Do +Ts +mc +mZ +mZ +Ly +"} +(28,1,1) = {" +mv +mv +Ly +Ts +mZ +mZ +OJ +Qe +HF +La +Ly +mZ +mZ +Yq +mZ +mZ +SF +Qe +Ar +PJ +mZ +Ly +Ly +"} +(29,1,1) = {" +mv +mv +Ly +mu +hX +Vw +Og +pF +Hr +eO +Ly +PJ +mZ +mZ +MF +Mq +wR +mZ +mZ +PJ +Ne +Ly +mv +"} +(30,1,1) = {" +mv +mv +Ly +Ly +Ly +WB +hA +Ly +cm +Ly +Ly +cm +mZ +NV +VT +UL +UL +zI +MF +mZ +Ly +Ly +mv +"} +(31,1,1) = {" +mv +mv +mv +mv +Ly +cm +Ly +Ly +mv +mv +mv +pE +Ly +Ly +LE +tg +SE +Ly +Ly +cm +Ly +mv +mv +"} +(32,1,1) = {" +mv +mv +mv +mv +mv +mv +mv +mv +mv +mv +mv +mv +mv +Ly +Ly +cm +Ly +Ly +mv +mv +mv +mv +mv "} diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker2.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker2.dmm new file mode 100644 index 000000000000..fdc44d7d3a23 --- /dev/null +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker2.dmm @@ -0,0 +1,4811 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"ac" = ( +/obj/structure/table/wood, +/obj/structure/stone_tile/block/cracked{ + dir = 1; + pixel_y = 0 + }, +/obj/structure/stone_tile/block/cracked{ + dir = 1; + pixel_y = 0 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"aq" = ( +/obj/structure/railing/wooden_fencing{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"ar" = ( +/obj/structure/wall_torch/spawns_lit/directional/north, +/obj/machinery/oven/stone, +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"as" = ( +/obj/structure/stone_tile/surrounding/cracked{ + dir = 1 + }, +/obj/structure/stone_tile/burnt{ + dir = 8; + pixel_y = 0; + pixel_x = 3 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"aB" = ( +/obj/structure/flora/ash/stem_shroom, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"aE" = ( +/obj/structure/falsewall/wood, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"aF" = ( +/obj/structure/stone_tile/block/burnt, +/obj/structure/closet/crate/wooden/storage_barrel, +/obj/item/surgicaldrill/ashwalker, +/obj/item/hemostat/ashwalker, +/obj/item/retractor/ashwalker, +/obj/item/cautery/ashwalker, +/obj/item/bonesetter/ashwalker, +/obj/item/circular_saw/ashwalker, +/obj/item/scalpel/ashwalker, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"aT" = ( +/obj/structure/stone_tile/block/cracked, +/turf/open/lava/smooth/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"bh" = ( +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/surrounding_tile{ + dir = 4; + pixel_x = -16; + pixel_y = 16 + }, +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"br" = ( +/obj/structure/necropolis_gate, +/obj/structure/stone_tile/slab, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"bx" = ( +/obj/structure/wall_torch/spawns_lit/directional/west, +/obj/structure/stone_tile/block/burnt, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"bI" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"cm" = ( +/obj/structure/stone_tile/block/burnt{ + dir = 4 + }, +/obj/structure/stone_tile/block/burnt{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"cn" = ( +/obj/structure/rack/wooden, +/obj/item/pickaxe, +/obj/item/pickaxe{ + pixel_x = 5 + }, +/obj/item/pickaxe{ + pixel_x = -5 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"cr" = ( +/obj/structure/stone_tile/block/burnt{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"cs" = ( +/obj/structure/rack/wooden, +/obj/item/clothing/under/costume/gladiator/ash_walker/ash_robes{ + pixel_x = -5; + pixel_y = 5 + }, +/obj/item/clothing/under/costume/gladiator/ash_walker/ash_robes{ + pixel_x = -10 + }, +/obj/item/clothing/under/costume/gladiator/ash_walker/ash_robes, +/obj/item/clothing/under/costume/gladiator/ash_walker/ash_robes{ + pixel_y = 5; + pixel_x = 5 + }, +/obj/structure/stone_tile/surrounding/cracked{ + dir = 1 + }, +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"ct" = ( +/obj/machinery/griddle/stone, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"cF" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 2 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"cH" = ( +/obj/structure/bed/maint, +/obj/structure/curtain/bounty, +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"cJ" = ( +/obj/structure/stone_tile/surrounding/cracked{ + dir = 1 + }, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/center/cracked, +/turf/open/lava/smooth/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"cM" = ( +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"cT" = ( +/obj/structure/closet/crate/wooden/storage_barrel, +/obj/item/food/rootdough, +/obj/item/food/meat/slab/goliath, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"cZ" = ( +/obj/structure/stone_tile/slab/burnt, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"di" = ( +/obj/structure/stone_tile/block/burnt{ + dir = 4 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"dn" = ( +/obj/structure/closet/crate/wooden/storage_barrel, +/obj/item/screwdriver/ashwalker, +/obj/item/wirecutters/ashwalker, +/obj/item/wrench/ashwalker, +/obj/item/crowbar/ashwalker, +/obj/item/weldingtool/mini, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"dt" = ( +/obj/structure/curtain/bounty, +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"dv" = ( +/obj/structure/stone_tile/block/burnt{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"dH" = ( +/obj/structure/rack/wooden, +/obj/item/stack/sheet/glass{ + amount = 15 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"dM" = ( +/obj/structure/table/wood, +/obj/structure/stone_tile/block/burnt{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"ed" = ( +/obj/structure/chair/stool/bamboo{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"ei" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 2 + }, +/obj/structure/closet/crate/wooden/storage_barrel, +/obj/item/stack/sheet/bronze{ + amount = 10 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"ev" = ( +/obj/structure/stone_tile/surrounding_tile/burnt, +/obj/structure/flora/ash/fireblossom, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"eF" = ( +/obj/structure/wall_torch/spawns_lit/directional/north, +/obj/structure/closet/crate/wooden, +/obj/item/storage/bag/ore{ + pixel_x = -2 + }, +/obj/item/storage/bag/ore{ + pixel_x = 2 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"eG" = ( +/obj/structure/railing/wooden_fencing{ + dir = 4 + }, +/obj/structure/water_source/puddle, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"eH" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/cup/glass/trophy{ + pixel_y = 10; + pixel_x = 8 + }, +/obj/item/flashlight/flare/candle/infinite{ + pixel_y = 7; + pixel_x = -6 + }, +/obj/item/food/rootroll{ + pixel_y = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"eL" = ( +/obj/structure/stone_tile/slab, +/obj/structure/necropolis_gate, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"eO" = ( +/obj/structure/wall_torch/spawns_lit/directional/south, +/obj/structure/rack/wooden, +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/item/storage/bag/tray, +/obj/item/reagent_containers/cup/soup_pot, +/obj/item/plate/oven_tray, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"ff" = ( +/obj/structure/closet/crate/wooden/storage_barrel{ + anchored = 1 + }, +/obj/item/melee/baton{ + name = "baton" + }, +/turf/open/floor/stone/lavaland, +/area/ruin/unpowered/ash_walkers) +"fn" = ( +/obj/structure/closet/crate/wooden/storage_barrel, +/obj/item/seeds/tower, +/obj/item/seeds/tower, +/obj/item/seeds/bamboo, +/obj/item/seeds/bamboo, +/obj/item/seeds/cotton, +/obj/item/seeds/cotton, +/obj/item/seeds/chanter, +/obj/item/seeds/chanter, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"fx" = ( +/obj/structure/curtain/bounty, +/obj/structure/stone_tile/block{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"fB" = ( +/obj/structure/flora/ash/seraka, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"fJ" = ( +/obj/item/chair/wood{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/structure/wall_torch/spawns_lit/directional/south, +/turf/open/floor/stone/lavaland, +/area/ruin/unpowered/ash_walkers) +"fU" = ( +/obj/structure/wall_torch/spawns_lit/directional/east, +/obj/structure/rack/wooden, +/obj/item/clothing/under/costume/gladiator/ash_walker{ + pixel_y = -7; + pixel_x = -5 + }, +/obj/item/clothing/under/costume/gladiator/ash_walker{ + pixel_y = -10; + pixel_x = 5 + }, +/obj/item/clothing/head/helmet/gladiator{ + pixel_y = 5; + pixel_x = 5 + }, +/obj/item/clothing/head/helmet/gladiator{ + pixel_x = -5; + pixel_y = 5 + }, +/obj/structure/stone_tile/burnt, +/obj/structure/stone_tile{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"gb" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"gj" = ( +/obj/structure/machine/assembly_bench, +/turf/open/floor/stone/lavaland, +/area/ruin/unpowered/ash_walkers) +"gx" = ( +/obj/structure/rack/wooden, +/obj/item/hatchet/wooden{ + pixel_y = 0 + }, +/obj/item/shovel, +/obj/item/hatchet/wooden{ + pixel_y = 0; + pixel_x = -5 + }, +/obj/item/hatchet/wooden{ + pixel_y = 0; + pixel_x = 5 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"gC" = ( +/obj/structure/stone_tile/surrounding/cracked{ + dir = 2 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"gX" = ( +/obj/structure/chair/pew/left{ + dir = 8 + }, +/obj/structure/stone_tile/block{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"hm" = ( +/obj/structure/table/wood, +/obj/structure/stone_tile/surrounding_tile, +/obj/item/flashlight/flare/candle/infinite{ + pixel_y = 12; + pixel_x = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"hn" = ( +/obj/structure/stone_tile/surrounding/cracked{ + dir = 1 + }, +/obj/structure/stone_tile/surrounding/cracked, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"hy" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"hE" = ( +/obj/structure/chair/wood{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"hH" = ( +/obj/structure/rack/wooden, +/obj/item/spear/bonespear{ + pixel_x = 5 + }, +/obj/item/spear/bonespear{ + pixel_x = -5 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"hJ" = ( +/obj/structure/closet/crate/wooden/storage_barrel, +/obj/item/seeds/carrot, +/obj/item/seeds/carrot, +/obj/item/seeds/onion, +/obj/item/seeds/onion, +/obj/item/seeds/garlic, +/obj/item/seeds/garlic, +/obj/item/seeds/soya, +/obj/item/seeds/soya, +/obj/item/seeds/cabbage, +/obj/item/seeds/cabbage, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"hS" = ( +/obj/structure/table/wood, +/obj/structure/curtain/bounty, +/obj/structure/stone_tile/block/cracked, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"ik" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 1 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"iK" = ( +/obj/structure/stone_tile/block/burnt{ + dir = 1 + }, +/obj/structure/curtain/bounty, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"iN" = ( +/obj/structure/water_source/puddle, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"iO" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 1; + pixel_y = 0 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"je" = ( +/obj/machinery/smartfridge/wooden/produce_bin, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"jg" = ( +/obj/structure/stone_tile/surrounding/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/surrounding_tile/burnt{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"jC" = ( +/obj/structure/stone_tile/block/cracked, +/obj/structure/stone_tile/burnt{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"jF" = ( +/obj/structure/stone_tile/block/burnt, +/obj/structure/stone_tile/burnt{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"jO" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/item/paper_bin/bundlenatural{ + pixel_x = 6 + }, +/obj/item/pen/charcoal{ + pixel_x = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/lavaland, +/area/ruin/unpowered/ash_walkers) +"jW" = ( +/obj/structure/fermenting_barrel, +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"jX" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/table/wood, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"kf" = ( +/obj/structure/wall_torch/spawns_lit/directional/north, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"km" = ( +/obj/structure/curtain/bounty, +/obj/structure/bed/maint, +/obj/structure/wall_torch/spawns_lit/directional/north, +/obj/structure/stone_tile/block{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"ko" = ( +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"kP" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/cup/bowl/mushroom_bowl{ + pixel_x = -4; + pixel_y = 1 + }, +/obj/item/reagent_containers/cup/glass/trophy{ + pixel_y = 18; + pixel_x = 9 + }, +/obj/item/flashlight/flare/candle/infinite{ + pixel_y = 14 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"kS" = ( +/obj/structure/stone_tile/block/burnt{ + dir = 1 + }, +/obj/structure/stone_tile/burnt{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"li" = ( +/turf/closed/indestructible/riveted/boss, +/area/lavaland/surface/outdoors) +"ll" = ( +/obj/structure/barricade/wooden, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"lr" = ( +/obj/structure/flora/ash/fireblossom, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"lL" = ( +/obj/structure/table/wood, +/obj/structure/stone_tile/block/burnt, +/obj/item/food/rootdough, +/obj/item/kitchen/rollingpin, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"lT" = ( +/obj/structure/table/wood, +/obj/item/plate/ceramic{ + pixel_y = 3; + pixel_x = -7 + }, +/obj/item/reagent_containers/cup/glass/trophy{ + pixel_x = 6; + pixel_y = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"ma" = ( +/obj/structure/statue/bone/rib{ + dir = 1 + }, +/obj/structure/stone_tile/block/cracked, +/turf/open/lava/smooth/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"mg" = ( +/obj/machinery/vending/ashclothingvendor, +/obj/structure/stone_tile/surrounding_tile{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"mv" = ( +/obj/structure/stone_tile/surrounding_tile/burnt{ + pixel_x = 17 + }, +/obj/structure/stone_tile/surrounding_tile/burnt{ + dir = 8; + pixel_y = 0; + pixel_x = -16 + }, +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"mA" = ( +/obj/structure/stone_tile/slab{ + pixel_y = 1; + pixel_x = 2 + }, +/turf/open/misc/asteroid/lavaland_atmos{ + name = "arena sand" + }, +/area/ruin/unpowered/ash_walkers) +"mE" = ( +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 4 + }, +/obj/structure/table/wood, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"mH" = ( +/obj/item/glassblowing/blowing_rod{ + pixel_y = 10; + pixel_x = -5 + }, +/obj/item/glassblowing/paddle{ + pixel_x = 5 + }, +/obj/item/glassblowing/shears{ + pixel_x = -5 + }, +/obj/item/glassblowing/metal_cup{ + pixel_x = 8 + }, +/obj/item/glassblowing/jacks{ + pixel_y = 5; + pixel_x = 5 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/table/sandstone, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"mJ" = ( +/obj/structure/railing/wooden_fencing{ + dir = 8 + }, +/obj/structure/railing/wooden_fencing{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"mO" = ( +/obj/structure/chair/pew, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"mT" = ( +/obj/structure/stone_tile/surrounding_tile, +/obj/structure/wall_torch/spawns_lit/directional/north, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"mZ" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 4; + pixel_y = 17 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"na" = ( +/obj/structure/wall_torch/spawns_lit/directional/south, +/obj/machinery/smartfridge/wooden/seed_shelf, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"nr" = ( +/obj/structure/stone_tile/block, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"nB" = ( +/obj/structure/table/wood, +/obj/structure/curtain/bounty, +/obj/structure/stone_tile/block/burnt{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"nM" = ( +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"nQ" = ( +/obj/structure/stone_tile/slab, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"nV" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/obj/structure/rack/wooden, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"ob" = ( +/obj/structure/stone_tile/surrounding_tile/cracked, +/obj/structure/stone_tile/center/burnt{ + pixel_y = -4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"oe" = ( +/obj/structure/closet/crate/wooden/storage_barrel, +/obj/item/seeds/wheat, +/obj/item/seeds/wheat, +/obj/item/seeds/corn, +/obj/item/seeds/corn, +/obj/item/seeds/wheat/rice, +/obj/item/seeds/wheat/rice, +/obj/item/seeds/olive, +/obj/item/seeds/olive, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"oH" = ( +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"oJ" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"oU" = ( +/obj/structure/chair/pew/left{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"oW" = ( +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"ph" = ( +/obj/structure/wall_torch/spawns_lit/directional/west, +/obj/structure/closet/crate/wooden, +/obj/item/stack/sheet/cloth/ten, +/obj/item/reagent_containers/blood/lizard{ + pixel_x = 5; + pixel_y = -2 + }, +/obj/item/reagent_containers/blood/lizard{ + pixel_x = 5; + pixel_y = -2 + }, +/obj/item/restraints/handcuffs/cable/sinew, +/obj/item/stack/sheet/mineral/bamboo{ + amount = 25 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"pk" = ( +/turf/closed/indestructible/riveted/boss/see_through, +/area/ruin/unpowered/ash_walkers) +"pn" = ( +/obj/structure/table/wood, +/obj/item/cutting_board, +/obj/item/knife/hunting, +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"pB" = ( +/obj/structure/railing/wooden_fencing{ + dir = 1 + }, +/obj/structure/ore_container/gutlunch_trough, +/obj/structure/stone_tile/block/cracked, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"pD" = ( +/obj/structure/stone_tile/block/burnt{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"pK" = ( +/obj/structure/wall_torch/spawns_lit/directional/south, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"pW" = ( +/obj/structure/necropolis_gate, +/obj/structure/stone_tile/slab/cracked, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"pX" = ( +/obj/structure/chair/pew/right{ + dir = 8 + }, +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"pY" = ( +/obj/structure/stone_tile/surrounding/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/surrounding/cracked{ + dir = 8 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"qb" = ( +/obj/structure/chair/pew/right{ + dir = 2 + }, +/obj/structure/wall_torch/spawns_lit/directional/east, +/obj/structure/stone_tile/surrounding/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/surrounding_tile/cracked, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"qd" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"qg" = ( +/obj/structure/table/wood, +/obj/structure/curtain/bounty, +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/cracked, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"qi" = ( +/obj/structure/curtain/bounty, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"ql" = ( +/obj/structure/wall_torch/spawns_lit/directional/west, +/obj/structure/bed/maint, +/obj/structure/curtain/bounty, +/obj/structure/stone_tile/block/cracked{ + dir = 1; + pixel_y = 0 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"qp" = ( +/obj/structure/stone_tile/block/burnt{ + dir = 1 + }, +/obj/structure/stone_tile/block/cracked, +/turf/open/lava/smooth/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"qu" = ( +/obj/structure/stone_tile/surrounding/cracked{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"qA" = ( +/obj/structure/stone_tile/surrounding_tile, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"qX" = ( +/obj/structure/stone_tile/surrounding_tile/burnt{ + dir = 8; + pixel_y = -16 + }, +/obj/structure/stone_tile/burnt{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"qY" = ( +/obj/structure/stone_tile/burnt, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"re" = ( +/obj/structure/chair/comfy/beige{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"rf" = ( +/obj/structure/wall_torch/spawns_lit/directional/east, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"rt" = ( +/obj/structure/chair/pew/left{ + dir = 2 + }, +/obj/structure/stone_tile/block, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"rv" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/item/flashlight/flare/candle/infinite, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"rw" = ( +/obj/item/chair/wood{ + dir = 8 + }, +/obj/structure/stone_tile/surrounding/cracked{ + dir = 2 + }, +/obj/structure/stone_tile/center/burnt, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"rD" = ( +/turf/closed/mineral/random/volcanic, +/area/lavaland/surface/outdoors) +"rN" = ( +/obj/structure/chair/wood/wings, +/obj/structure/stone_tile/block/burnt{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"rW" = ( +/obj/structure/chair/pew/right{ + dir = 2 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"sx" = ( +/obj/structure/table/wood, +/obj/structure/curtain/bounty, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"sI" = ( +/obj/structure/reagent_forge, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/stone/lavaland, +/area/ruin/unpowered/ash_walkers) +"sL" = ( +/obj/structure/stone_tile/center, +/obj/structure/stone_tile/surrounding_tile/burnt, +/obj/structure/stone_tile/surrounding_tile/burnt{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"sM" = ( +/obj/structure/stone_tile/slab/cracked, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"sQ" = ( +/turf/closed/wall/mineral/wood/nonmetal, +/area/ruin/unpowered/ash_walkers) +"sT" = ( +/obj/structure/railing/wooden_fencing{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"tb" = ( +/obj/structure/stone_tile/surrounding_tile/burnt{ + dir = 4 + }, +/obj/structure/stone_tile/surrounding_tile/burnt{ + dir = 8 + }, +/obj/structure/stone_tile/surrounding_tile/burnt{ + dir = 1 + }, +/obj/structure/stone_tile/center/burnt, +/turf/open/lava/smooth/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"tl" = ( +/obj/structure/rack/wooden, +/obj/item/stack/sheet/mineral/gold{ + amount = 5; + pixel_y = 1; + pixel_x = 7 + }, +/obj/item/stack/sheet/iron/twenty{ + pixel_x = -5; + pixel_y = 2 + }, +/turf/open/floor/stone/lavaland, +/area/ruin/unpowered/ash_walkers) +"ts" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"ty" = ( +/obj/item/chair/stool/bamboo, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/lavaland, +/area/ruin/unpowered/ash_walkers) +"tB" = ( +/obj/structure/stone_tile/surrounding_tile/burnt, +/obj/structure/stone_tile/surrounding_tile/burnt{ + dir = 8 + }, +/obj/structure/stone_tile/surrounding_tile/burnt{ + dir = 4 + }, +/obj/structure/stone_tile/surrounding_tile/burnt{ + dir = 1 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"tH" = ( +/obj/effect/ash_rune, +/obj/structure/stone_tile/surrounding/burnt, +/turf/open/lava/smooth/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"tJ" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/obj/structure/stone_tile/cracked, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"uc" = ( +/obj/structure/wall_torch/spawns_lit/directional/east, +/obj/structure/stone_tile/block/cracked, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"uf" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile/block{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"ul" = ( +/obj/structure/stone_tile/surrounding_tile, +/turf/open/floor/bamboo/lavaland, +/area/ruin/unpowered/ash_walkers) +"um" = ( +/turf/closed/wall/mineral/stone, +/area/ruin/unpowered/ash_walkers) +"uE" = ( +/obj/structure/wall_torch/spawns_lit/directional/east, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"uN" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 1; + pixel_y = 16; + pixel_x = 16 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"uP" = ( +/obj/structure/wall_torch/spawns_lit/directional/west, +/obj/item/bedsheet/black{ + pixel_x = 10; + pixel_y = -3 + }, +/obj/structure/rack/wooden, +/obj/structure/stone_tile/block/burnt, +/obj/item/bedsheet/black{ + pixel_x = 4; + pixel_y = -3 + }, +/obj/item/bedsheet/black{ + pixel_x = -2; + pixel_y = -3 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"uS" = ( +/obj/structure/stone_tile/slab{ + pixel_y = 1; + pixel_x = -1 + }, +/turf/open/misc/asteroid/lavaland_atmos{ + name = "arena sand" + }, +/area/ruin/unpowered/ash_walkers) +"uT" = ( +/obj/structure/table/wood, +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/obj/item/reagent_containers/cup/beaker/large/blowing_glass{ + pixel_y = -2 + }, +/obj/item/reagent_containers/cup/beaker/large/blowing_glass{ + pixel_x = -5; + pixel_y = 7 + }, +/obj/item/flashlight/flare/candle/infinite{ + pixel_y = -10; + pixel_x = 8 + }, +/turf/open/floor/bamboo/lavaland, +/area/ruin/unpowered/ash_walkers) +"uV" = ( +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"uW" = ( +/mob/living/basic/chicken{ + name = "\improper gunther"; + desc = "An odd looking gutlunch, this one seems to have feathers and lay eggs, not like you'd complain about that."; + unsuitable_atmos_damage = 0; + forced_gender = "female" + }, +/obj/structure/railing/wooden_fencing/gate{ + dir = 1 + }, +/turf/open/floor/grass/lavaland, +/area/ruin/unpowered/ash_walkers) +"uZ" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"vb" = ( +/obj/structure/stone_tile/surrounding_tile/cracked, +/obj/structure/stone_tile/surrounding_tile/cracked, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"ve" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"vf" = ( +/obj/structure/railing/wooden_fencing{ + dir = 1 + }, +/obj/structure/railing/wooden_fencing{ + dir = 4 + }, +/obj/structure/rack/wooden, +/obj/item/secateurs, +/obj/item/hatchet/wooden, +/obj/item/shovel, +/obj/item/reagent_containers/cup/watering_can/wood, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"vu" = ( +/turf/open/floor/bamboo/lavaland, +/area/ruin/unpowered/ash_walkers) +"vB" = ( +/obj/structure/stone_tile/surrounding_tile/cracked, +/obj/structure/stone_tile/center/burnt, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"vE" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/chem_separator, +/turf/open/floor/wood/lavaland, +/area/ruin/unpowered/ash_walkers) +"vI" = ( +/obj/structure/stone_tile/slab, +/obj/structure/wall_torch/spawns_lit/directional/east, +/turf/open/lava/smooth/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"vJ" = ( +/obj/structure/rack/wooden, +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 + }, +/obj/item/storage/bag/quiver{ + pixel_x = -5 + }, +/obj/item/storage/bag/quiver{ + pixel_x = -10 + }, +/obj/item/gun/ballistic/bow, +/obj/item/gun/ballistic/bow{ + pixel_y = 0; + pixel_x = 5 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"vM" = ( +/obj/structure/wall_torch/spawns_lit/directional/west, +/obj/structure/stone_tile/surrounding_tile/burnt, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"vT" = ( +/obj/structure/stone_tile/block/cracked, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"vU" = ( +/obj/structure/wall_torch/spawns_lit/directional/north, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"we" = ( +/obj/structure/wall_torch/spawns_lit/directional/west, +/obj/structure/chair/pew/right{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"wQ" = ( +/obj/structure/stone_tile/slab, +/obj/structure/wall_torch/spawns_lit/directional/west, +/turf/open/lava/smooth/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"wR" = ( +/obj/structure/wall_torch/spawns_lit/directional/south, +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 + }, +/obj/structure/rack/wooden, +/obj/item/fireaxe/boneaxe{ + pixel_y = 7 + }, +/obj/item/fireaxe/boneaxe{ + pixel_y = -7 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"wV" = ( +/obj/structure/bed/maint, +/obj/structure/curtain/bounty, +/obj/structure/stone_tile/block{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"xb" = ( +/obj/structure/rack/wooden, +/obj/structure/stone_tile/block/burnt{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"xc" = ( +/obj/structure/closet/crate/wooden/storage_barrel, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"xd" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/machinery/smartfridge/wooden/produce_bin, +/turf/open/floor/wood/lavaland, +/area/ruin/unpowered/ash_walkers) +"xk" = ( +/obj/structure/table/wood, +/obj/structure/stone_tile/block/burnt{ + dir = 1 + }, +/obj/structure/stone_tile/block/burnt{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"xl" = ( +/obj/structure/curtain/bounty, +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"xm" = ( +/obj/structure/stone_tile/surrounding/cracked, +/obj/structure/stone_tile/surrounding/cracked{ + dir = 1 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"xq" = ( +/obj/structure/wall_torch/spawns_lit/directional/north, +/obj/structure/stone_tile/block, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"xF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/anvil, +/turf/open/floor/stone/lavaland, +/area/ruin/unpowered/ash_walkers) +"xW" = ( +/obj/structure/railing/wooden_fencing{ + dir = 8 + }, +/obj/structure/flora/ash/tall_shroom, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"xX" = ( +/mob/living/basic/mining/gutlunch/grub, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"xZ" = ( +/obj/item/reagent_containers/cup/bottle/nutrient/rh{ + pixel_x = -6; + pixel_y = 6 + }, +/obj/item/reagent_containers/cup/bottle/nutrient/l4z{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/reagent_containers/cup/bottle/nutrient/ez{ + pixel_y = 4 + }, +/obj/item/reagent_containers/cup/bottle/nutrient/rh{ + pixel_x = -6; + pixel_y = 2 + }, +/obj/item/reagent_containers/cup/bottle/nutrient/l4z{ + pixel_x = 6; + pixel_y = 2 + }, +/obj/item/reagent_containers/cup/bottle/nutrient/ez, +/obj/structure/closet/crate/wooden/storage_barrel, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"yb" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"yk" = ( +/obj/structure/table/wood, +/obj/item/plate/ceramic{ + pixel_y = 5 + }, +/obj/item/flashlight/flare/candle/infinite{ + pixel_y = 2; + pixel_x = -13 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"ys" = ( +/obj/structure/curtain/bounty, +/obj/structure/stone_tile/block{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"yw" = ( +/obj/structure/stone_tile/surrounding_tile/burnt{ + dir = 4 + }, +/obj/structure/stone_tile/surrounding_tile/burnt{ + dir = 4 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/surrounding_tile/burnt{ + dir = 1; + pixel_x = 16; + pixel_y = 17 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"yy" = ( +/obj/structure/chair/wood{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"yB" = ( +/obj/structure/wall_torch/spawns_lit/directional/west, +/obj/structure/stone_tile/surrounding_tile, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"yF" = ( +/obj/structure/wall_torch/spawns_lit/directional/north, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"yG" = ( +/obj/structure/necropolis_arch, +/obj/structure/stone_tile/slab, +/obj/structure/necropolis_gate, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"yI" = ( +/obj/structure/wall_torch/spawns_lit/directional/east, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"yW" = ( +/obj/structure/closet/crate/wooden/storage_barrel, +/obj/item/stack/sheet/mineral/coal/ten, +/turf/open/floor/stone/lavaland, +/area/ruin/unpowered/ash_walkers) +"zb" = ( +/obj/structure/wall_torch/spawns_lit/directional/west, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"zd" = ( +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/surrounding_tile/burnt{ + dir = 1 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"ze" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 2 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/lavaland, +/area/ruin/unpowered/ash_walkers) +"zg" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/turf/closed/indestructible/riveted/boss, +/area/ruin/unpowered/ash_walkers) +"zu" = ( +/turf/closed/indestructible/riveted/boss/see_through, +/area/lavaland/surface/outdoors) +"zK" = ( +/obj/structure/stone_tile/surrounding_tile/cracked, +/obj/structure/wall_torch/spawns_lit/directional/north, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"zW" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/cup/glass/trophy/bronze_cup{ + pixel_y = 19; + pixel_x = -8 + }, +/obj/item/food/rootroll{ + pixel_y = 12 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"zX" = ( +/obj/structure/stone_tile/surrounding_tile, +/obj/structure/flora/ash/fireblossom, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Ad" = ( +/obj/structure/stone_tile/surrounding/burnt, +/turf/open/lava/smooth/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Ak" = ( +/obj/structure/stone_tile/slab/cracked, +/obj/item/flashlight/flare/candle/infinite, +/turf/open/lava/smooth/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Al" = ( +/obj/structure/flora/ash/tall_shroom, +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Ap" = ( +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 1 + }, +/obj/structure/chair/wood{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Au" = ( +/obj/structure/geyser, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"AG" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/large_mortar, +/obj/item/pestle, +/turf/open/floor/wood/lavaland, +/area/ruin/unpowered/ash_walkers) +"AJ" = ( +/obj/structure/chair/stool/bamboo, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"AK" = ( +/obj/structure/stone_tile/surrounding_tile/burnt{ + dir = 8 + }, +/obj/structure/stone_tile/surrounding_tile/burnt{ + dir = 4 + }, +/obj/structure/stone_tile/surrounding_tile/cracked, +/obj/structure/stone_tile/center/burnt, +/turf/open/lava/smooth/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"AX" = ( +/obj/structure/stone_tile/burnt, +/obj/structure/stone_tile{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"AZ" = ( +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Br" = ( +/obj/structure/wall_torch/spawns_lit/directional/east, +/obj/structure/fermenting_barrel, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Bs" = ( +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"BU" = ( +/obj/machinery/cauldron, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Cf" = ( +/obj/item/seeds/korta_nut, +/obj/item/seeds/korta_nut, +/obj/item/seeds/korta_nut/sweet, +/obj/item/seeds/korta_nut/sweet, +/obj/item/seeds/potato, +/obj/item/seeds/potato, +/obj/item/seeds/potato/sweet, +/obj/item/seeds/potato/sweet, +/obj/structure/closet/crate/wooden/storage_barrel, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"CP" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"CR" = ( +/obj/structure/table/wood, +/obj/structure/large_mortar, +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile, +/obj/item/pestle, +/obj/item/reagent_containers/cup/beaker/large/ceramic{ + pixel_y = 14; + pixel_x = 11 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"CW" = ( +/obj/structure/wall_torch/spawns_lit/directional/south, +/turf/open/floor/stone/lavaland, +/area/ruin/unpowered/ash_walkers) +"Db" = ( +/obj/structure/railing/wooden_fencing{ + dir = 4 + }, +/obj/structure/railing/wooden_fencing{ + dir = 1 + }, +/obj/structure/stone_tile/block, +/obj/item/reagent_containers/cup/bucket/wooden{ + pixel_x = -10 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Dh" = ( +/obj/structure/chair/pew/left{ + dir = 4 + }, +/obj/structure/stone_tile/block/burnt{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Di" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Do" = ( +/obj/structure/stone_tile/block/burnt{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Dq" = ( +/obj/structure/stone_tile/surrounding/burnt, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"DD" = ( +/obj/structure/wall_torch/spawns_lit/directional/east, +/obj/structure/stone_tile/surrounding/cracked{ + dir = 2 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"DI" = ( +/obj/structure/stone_tile/block/burnt{ + pixel_y = 0; + pixel_x = 15 + }, +/obj/structure/stone_tile/block/cracked{ + dir = 1; + pixel_y = -1; + pixel_x = -8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Ea" = ( +/obj/structure/stone_tile/block/cracked, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Eh" = ( +/obj/structure/wall_torch/spawns_lit/directional/west, +/obj/structure/stone_tile/surrounding_tile{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"El" = ( +/obj/structure/table/wood, +/obj/structure/throwing_wheel{ + pixel_y = 11 + }, +/obj/structure/stone_tile/block/burnt{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Ev" = ( +/obj/structure/closet/crate/wooden/storage_barrel, +/obj/structure/flora/ash/stem_shroom, +/obj/item/seeds/ambrosia, +/obj/item/seeds/ambrosia, +/obj/item/seeds/aloe, +/obj/item/seeds/aloe, +/obj/item/seeds/reishi, +/obj/item/seeds/reishi, +/obj/item/seeds/cannabis, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Ew" = ( +/obj/structure/stone_tile/block/burnt, +/obj/structure/curtain/bounty, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"ED" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"EH" = ( +/obj/structure/chair/pew/right{ + dir = 4 + }, +/obj/structure/stone_tile/block/burnt{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"EI" = ( +/obj/structure/stone_tile/surrounding_tile/burnt{ + dir = 8; + pixel_y = 0 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"EP" = ( +/obj/structure/stone_tile/surrounding/cracked{ + dir = 10 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"ET" = ( +/obj/structure/stone_tile/block/burnt{ + dir = 1 + }, +/obj/structure/stone_tile/block/burnt, +/turf/open/lava/smooth/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Fi" = ( +/obj/structure/wall_torch/spawns_lit/directional/north, +/obj/machinery/cauldron, +/obj/structure/stone_tile/block{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Fo" = ( +/obj/structure/chair/wood{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"FD" = ( +/obj/structure/bonfire/dense, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"FY" = ( +/obj/structure/stone_tile/burnt{ + dir = 1 + }, +/obj/structure/stone_tile/burnt{ + dir = 8; + pixel_y = 9 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Gd" = ( +/obj/structure/closet/crate/wooden/storage_barrel, +/obj/item/seeds/tea, +/obj/item/seeds/tea, +/obj/item/seeds/coffee, +/obj/item/seeds/coffee, +/obj/item/seeds/peanut, +/obj/item/seeds/peanut, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Gq" = ( +/obj/structure/flora/ash/seraka, +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"GH" = ( +/obj/structure/stone_tile/surrounding_tile, +/obj/structure/rack/wooden, +/obj/item/instrument/guitar, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"GM" = ( +/obj/structure/fermenting_barrel, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"GP" = ( +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"GS" = ( +/obj/structure/stone_tile/surrounding_tile/burnt, +/obj/structure/stone_tile/surrounding_tile/burnt{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"GT" = ( +/obj/structure/fermenting_barrel, +/obj/structure/flora/ash/seraka, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"GX" = ( +/obj/structure/stone_tile/slab{ + pixel_x = 2; + pixel_y = -1 + }, +/turf/open/misc/asteroid/lavaland_atmos{ + name = "arena sand" + }, +/area/ruin/unpowered/ash_walkers) +"Ha" = ( +/obj/structure/stone_tile/burnt{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Ho" = ( +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"Hv" = ( +/obj/structure/closet/crate/wooden/storage_barrel, +/obj/item/screwdriver/ashwalker, +/obj/item/wirecutters/ashwalker, +/obj/item/wrench/ashwalker, +/obj/item/crowbar/ashwalker, +/obj/item/weldingtool/mini, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"HA" = ( +/obj/structure/statue/bone/rib, +/obj/structure/stone_tile/block/burnt, +/turf/open/lava/smooth/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"HK" = ( +/obj/structure/closet/crate/wooden/storage_barrel, +/obj/structure/stone_tile/block, +/obj/item/clothing/shoes/bone_greaves, +/obj/item/clothing/gloves/bracer, +/obj/item/clothing/head/ash_headdress/winged, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"HT" = ( +/obj/structure/closet/crate/wooden/storage_barrel, +/obj/item/seeds/pumpkin, +/obj/item/seeds/pumpkin, +/obj/item/seeds/starthistle, +/obj/item/seeds/starthistle, +/obj/item/seeds/tobacco, +/obj/item/seeds/tobacco, +/obj/item/seeds/cannabis, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Ic" = ( +/obj/structure/wall_torch/spawns_lit/directional/north, +/obj/structure/stone_tile/surrounding_tile/burnt{ + dir = 8; + pixel_y = 0 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Ie" = ( +/obj/structure/table/bronze, +/obj/item/flashlight/flare/candle/infinite, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Ii" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/mineral_door/wood/large_gate, +/turf/open/floor/stone/lavaland, +/area/ruin/unpowered/ash_walkers) +"Il" = ( +/obj/structure/stone_tile/block, +/obj/structure/chair/stool/bamboo, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Io" = ( +/obj/structure/flora/ash/cacti, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"II" = ( +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"IM" = ( +/obj/structure/rack/wooden, +/obj/item/stack/medical/aloe{ + pixel_x = -5; + pixel_y = 12 + }, +/obj/item/food/grown/aloe, +/obj/item/food/grown/aloe{ + pixel_x = 5 + }, +/obj/item/food/grown/aloe{ + pixel_y = 0; + pixel_x = 10 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"IQ" = ( +/obj/structure/stone_tile/surrounding_tile/burnt{ + dir = 8 + }, +/obj/structure/flora/ash/fireblossom, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"IY" = ( +/obj/structure/stone_tile/block/burnt{ + dir = 1 + }, +/obj/structure/stone_tile/cracked, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Jn" = ( +/obj/structure/stone_tile/surrounding_tile/burnt{ + dir = 8; + pixel_y = 0 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Js" = ( +/obj/structure/stone_tile/burnt{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Jx" = ( +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/surrounding_tile/burnt{ + dir = 1 + }, +/obj/structure/stone_tile/surrounding_tile/burnt, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 8 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"JB" = ( +/obj/structure/closet/crate/wooden/storage_barrel, +/obj/item/stack/sheet/mineral/wood{ + amount = 30 + }, +/obj/item/stack/sheet/mineral/stone{ + amount = 40 + }, +/obj/item/stack/rods/twentyfive, +/obj/item/stack/sheet/iron/twenty, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"JC" = ( +/turf/closed/indestructible/riveted/boss, +/area/ruin/unpowered/ash_walkers) +"JV" = ( +/obj/structure/wall_torch/spawns_lit/directional/south, +/obj/structure/barricade/wooden, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Kd" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/cup/bowl/mushroom_bowl, +/obj/item/reagent_containers/cup/bowl/mushroom_bowl{ + pixel_x = -4; + pixel_y = 5 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Ks" = ( +/obj/structure/chair/pew/left{ + dir = 2 + }, +/obj/structure/wall_torch/spawns_lit/directional/west, +/obj/structure/stone_tile/surrounding/cracked{ + dir = 1 + }, +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Kw" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/block/burnt{ + dir = 4 + }, +/obj/item/flashlight/flare/candle/infinite, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Kz" = ( +/obj/structure/railing/wooden_fencing{ + dir = 4 + }, +/obj/structure/railing/wooden_fencing{ + dir = 1 + }, +/obj/structure/nestbox, +/turf/open/floor/grass/lavaland, +/area/ruin/unpowered/ash_walkers) +"KC" = ( +/obj/item/flashlight/lantern{ + pixel_y = 0 + }, +/obj/structure/closet/crate/wooden, +/obj/item/flashlight/lantern{ + pixel_y = 0; + pixel_x = -5 + }, +/obj/item/flashlight/lantern{ + pixel_y = 0; + pixel_x = 5 + }, +/obj/structure/stone_tile/block{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"KW" = ( +/turf/closed/indestructible/riveted/boss{ + desc = "A thick, seemingly indestructible stone wall. Some symbols are scratched into it. Even if you don't know the language, you still understand the meaning. Message reads: Thank you, my Kins. Chal, Zehs-Ast-Zeo, Mur, Ink, Slatko, Rikiki and Zur. I give this realm for you all, for you made it possible to be conjured. Your Defender, Luxuria." + }, +/area/ruin/unpowered/ash_walkers) +"KZ" = ( +/obj/structure/stone_tile/cracked{ + dir = 4; + pixel_y = 0; + pixel_x = -15 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Lm" = ( +/obj/machinery/smartfridge/drying_rack, +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Ln" = ( +/obj/structure/curtain/bounty, +/obj/structure/bed/maint, +/obj/structure/stone_tile/block/cracked, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Lq" = ( +/obj/structure/flora/ash/cap_shroom, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Ls" = ( +/obj/structure/stone_tile/block/burnt, +/turf/closed/indestructible/riveted/boss, +/area/ruin/unpowered/ash_walkers) +"Lx" = ( +/obj/structure/statue/bone/rib, +/obj/structure/stone_tile/block/cracked, +/turf/open/lava/smooth/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"LD" = ( +/obj/structure/railing/wooden_fencing{ + dir = 1 + }, +/obj/structure/stone_tile/block, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"LK" = ( +/obj/structure/table/wood, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"LP" = ( +/obj/structure/table/wood, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 1 + }, +/obj/item/reagent_containers/cup/primitive_centrifuge, +/obj/item/flashlight/flare/candle/infinite{ + pixel_x = 6; + pixel_y = 13 + }, +/turf/open/floor/bamboo/lavaland, +/area/ruin/unpowered/ash_walkers) +"Mh" = ( +/obj/structure/wall_torch/spawns_lit/directional/north, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Mz" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"MH" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"MI" = ( +/obj/structure/bed/maint, +/obj/structure/curtain/bounty, +/obj/structure/stone_tile/block/burnt{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"MJ" = ( +/obj/structure/stone_tile/block/cracked, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 1 + }, +/obj/item/flashlight/flare/candle/infinite, +/turf/open/lava/smooth/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"MO" = ( +/obj/item/shovel, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"MS" = ( +/obj/structure/stone_tile/surrounding/cracked{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"MW" = ( +/obj/structure/rack/wooden, +/obj/item/stack/sheet/mineral/wood{ + amount = 20 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/stone/lavaland, +/area/ruin/unpowered/ash_walkers) +"MZ" = ( +/obj/structure/stone_tile/slab, +/turf/open/lava/smooth/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Nj" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 1; + pixel_y = -3 + }, +/obj/structure/stone_tile/block/burnt, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Nk" = ( +/obj/structure/stone_tile/block/burnt{ + dir = 8 + }, +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Nl" = ( +/obj/structure/railing/wooden_fencing/gate{ + dir = 1 + }, +/obj/structure/stone_tile/block/cracked, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Nv" = ( +/obj/structure/chair/pew/left, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Nw" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/block/burnt, +/turf/open/lava/smooth/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"NK" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/lavaland, +/area/ruin/unpowered/ash_walkers) +"Ob" = ( +/obj/structure/wall_torch/spawns_lit/directional/south, +/obj/structure/rack/wooden, +/obj/structure/stone_tile/surrounding_tile{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Oq" = ( +/obj/item/cultivator/rake, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"OF" = ( +/obj/structure/statue/bone/rib{ + dir = 1 + }, +/obj/structure/stone_tile/block/burnt, +/turf/open/lava/smooth/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"ON" = ( +/obj/structure/wall_torch/spawns_lit/directional/west, +/obj/machinery/iv_drip, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"OR" = ( +/obj/structure/flora/ash/tall_shroom, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"OW" = ( +/obj/structure/wall_torch/spawns_lit/directional/east, +/obj/item/reagent_containers/cup/bucket/wooden{ + pixel_x = 10; + pixel_y = -5 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Pa" = ( +/obj/structure/stone_tile/block/burnt{ + pixel_y = 0; + pixel_x = 7 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"PS" = ( +/obj/effect/decal/cleanable/dirt, +/turf/closed/wall/mineral/stone, +/area/ruin/unpowered/ash_walkers) +"PW" = ( +/obj/structure/table/wood, +/obj/structure/curtain/bounty, +/obj/structure/stone_tile/block, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"PX" = ( +/obj/structure/stone_tile/slab{ + pixel_y = -2; + pixel_x = -1 + }, +/turf/open/misc/asteroid/lavaland_atmos{ + name = "arena sand" + }, +/area/ruin/unpowered/ash_walkers) +"PZ" = ( +/obj/structure/table/wood, +/obj/item/plate/ceramic{ + pixel_y = 0; + pixel_x = 3 + }, +/obj/item/reagent_containers/cup/glass/trophy{ + pixel_y = 1; + pixel_x = -6 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Ql" = ( +/obj/structure/loom, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Qm" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Qt" = ( +/obj/structure/table/bronze, +/obj/item/knife/hunting, +/obj/structure/stone_tile/block/cracked, +/turf/open/lava/smooth/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"QA" = ( +/obj/structure/chair/pew/right{ + dir = 2 + }, +/obj/structure/stone_tile, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"QV" = ( +/obj/structure/stone_tile/surrounding/cracked{ + dir = 1 + }, +/obj/structure/stone_tile/burnt{ + dir = 8; + pixel_y = 0; + pixel_x = 2 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Rc" = ( +/obj/structure/curtain/bounty, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Rr" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/item/reagent_containers/cup/glass/bottle/small{ + pixel_x = -10; + pixel_y = 12 + }, +/obj/item/reagent_containers/cup/glass/bottle/small{ + pixel_x = -5; + pixel_y = 14 + }, +/obj/item/reagent_containers/cup/glass/bottle/small{ + pixel_y = 15 + }, +/obj/item/flashlight/flare/candle/infinite{ + pixel_x = 11; + pixel_y = 3 + }, +/turf/open/floor/wood/lavaland, +/area/ruin/unpowered/ash_walkers) +"RA" = ( +/obj/structure/wall_torch/spawns_lit/directional/south, +/obj/structure/table/wood, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/item/flashlight/flare/candle/infinite{ + pixel_y = 7; + pixel_x = -6 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"RQ" = ( +/obj/structure/wall_torch/spawns_lit/directional/west, +/obj/structure/rack/wooden, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"RS" = ( +/mob/living/basic/mining/gutlunch/milk, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"RU" = ( +/obj/structure/wall_torch/spawns_lit/directional/north, +/obj/structure/mannequin/wood{ + anchored = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"RW" = ( +/obj/structure/table/wood, +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 + }, +/turf/open/floor/bamboo/lavaland, +/area/ruin/unpowered/ash_walkers) +"Ss" = ( +/obj/structure/closet/crate/wooden/storage_barrel, +/obj/item/flashlight/flare/torch, +/obj/item/flashlight/flare/torch, +/obj/item/flashlight/flare/torch, +/obj/item/flashlight/flare/torch, +/obj/item/flashlight/flare/torch, +/obj/item/flashlight/flare/torch, +/obj/item/flashlight/flare/torch, +/obj/item/flashlight/flare/torch, +/obj/item/stack/sheet/mineral/bamboo{ + amount = 20 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"St" = ( +/obj/machinery/vending/ashclothingvendor, +/obj/structure/stone_tile/surrounding_tile, +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Sx" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/obj/structure/stone_tile, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"SD" = ( +/obj/structure/table/wood, +/obj/structure/stone_tile/burnt{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"SN" = ( +/obj/structure/wormfarm, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"SS" = ( +/obj/structure/rack/wooden, +/obj/structure/wall_torch/spawns_lit/directional/west, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"SV" = ( +/obj/structure/wall_torch/spawns_lit/directional/west, +/obj/structure/rack/wooden, +/obj/item/reagent_containers/cup/primitive_centrifuge{ + pixel_y = -4; + pixel_x = -7 + }, +/obj/item/reagent_containers/cup/soup_pot{ + pixel_x = 7 + }, +/obj/item/reagent_containers/cup/mortar{ + pixel_y = 11; + pixel_x = -6 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"SX" = ( +/obj/structure/curtain/bounty, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile/burnt{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Td" = ( +/obj/structure/table/wood, +/obj/structure/stone_tile/block/burnt{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Te" = ( +/obj/structure/rack/wooden, +/obj/structure/stone_tile/block, +/obj/item/knife/combat/bone, +/obj/item/knife/combat/bone{ + pixel_x = -5; + pixel_y = 3 + }, +/obj/item/knife/combat/bone{ + pixel_x = 5; + pixel_y = -3 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Ti" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/obj/structure/stone_tile/cracked, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"To" = ( +/obj/structure/stone_tile/slab, +/obj/structure/necropolis_arch, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"Tr" = ( +/obj/structure/wall_torch/spawns_lit/directional/east, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 8 + }, +/obj/structure/flora/ash/fireblossom, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"TN" = ( +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 1 + }, +/obj/structure/rack/wooden, +/obj/item/bedsheet/brown{ + pixel_x = 2; + pixel_y = -2 + }, +/obj/item/bedsheet/brown{ + pixel_y = -3; + pixel_x = 8 + }, +/obj/item/pillow{ + pixel_x = 3; + pixel_y = 11 + }, +/obj/item/pillow{ + pixel_x = -1; + pixel_y = 7 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"TT" = ( +/obj/structure/stone_tile/surrounding/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/center/cracked{ + pixel_x = 2; + pixel_y = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"TV" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/cup/bowl/mushroom_bowl{ + pixel_x = 2; + pixel_y = 4 + }, +/obj/item/flashlight/flare/candle/infinite{ + pixel_y = 0; + pixel_x = -6 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Ue" = ( +/obj/machinery/primitive_stove, +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Uf" = ( +/obj/structure/curtain/bounty, +/obj/structure/bed/maint, +/obj/structure/wall_torch/spawns_lit/directional/north, +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Ug" = ( +/obj/structure/closet/crate/wooden/storage_barrel, +/obj/item/seeds/sugarcane, +/obj/item/seeds/sugarcane, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Ul" = ( +/obj/structure/stone_tile/burnt{ + dir = 8 + }, +/obj/structure/stone_tile/burnt{ + dir = 1 + }, +/obj/structure/stone_tile/burnt{ + dir = 4 + }, +/obj/structure/stone_tile/burnt{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Uw" = ( +/obj/structure/railing/wooden_fencing{ + dir = 8 + }, +/obj/structure/railing/wooden_fencing{ + dir = 1 + }, +/obj/structure/stone_tile/block, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"UD" = ( +/obj/structure/lavaland/ash_walker, +/turf/open/lava/smooth/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"UE" = ( +/obj/structure/closet/crate{ + desc = "A metal box, stolen from the ruins of old colony."; + name = "old cargo crate" + }, +/obj/item/clothing/head/utility/hardhat/white, +/obj/item/clothing/suit/hazardvest, +/obj/item/storage/box/tiziran_cans, +/obj/item/toy/plush/lizard_plushie, +/obj/item/storage/crayons, +/obj/item/toy/crayon/spraycan, +/obj/item/hand_labeler, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"UL" = ( +/obj/structure/millstone, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"UO" = ( +/obj/structure/stone_tile/surrounding/cracked{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"UT" = ( +/obj/structure/table/wood, +/obj/structure/stone_tile/block/cracked, +/obj/item/flashlight/flare/candle/infinite{ + pixel_y = 4; + pixel_x = -8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Vl" = ( +/obj/structure/wall_torch/spawns_lit/directional/east, +/obj/structure/closet/crate/wooden/storage_barrel, +/obj/item/fishing_hook/rescue, +/obj/item/fishing_rod/bone, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Vq" = ( +/obj/structure/bed/maint, +/obj/structure/curtain/bounty, +/obj/structure/stone_tile/block{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Vs" = ( +/obj/structure/rack/wooden, +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/item/reagent_containers/cup/glass/bottle/lizardwine{ + pixel_x = -8 + }, +/obj/item/reagent_containers/cup/glass/bottle/moonshine{ + pixel_x = 6; + pixel_y = -3 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"VN" = ( +/obj/structure/stone_tile/block/burnt, +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/obj/item/flashlight/flare/candle/infinite, +/turf/open/lava/smooth/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"VT" = ( +/obj/structure/wall_torch/spawns_lit/directional/north, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/lavaland, +/area/ruin/unpowered/ash_walkers) +"VX" = ( +/obj/structure/stone_tile/surrounding_tile/burnt{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Wf" = ( +/obj/structure/railing/wooden_fencing{ + dir = 4 + }, +/obj/structure/flora/ash/tall_shroom, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Wl" = ( +/obj/structure/stone_tile/block/burnt, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Wq" = ( +/obj/structure/railing/wooden_fencing/gate{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Wz" = ( +/obj/structure/table/wood, +/turf/open/floor/wood/lavaland, +/area/ruin/unpowered/ash_walkers) +"WD" = ( +/obj/structure/closet/crate/wooden/storage_barrel, +/obj/item/stack/sheet/iron/twenty, +/obj/item/stack/sheet/leather{ + amount = 40 + }, +/obj/item/stack/sheet/cloth/ten, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"WG" = ( +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"WJ" = ( +/obj/structure/stone_tile/surrounding_tile/cracked, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"WK" = ( +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"WU" = ( +/obj/structure/table/wood, +/obj/structure/curtain/bounty, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/burnt{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Xf" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Xp" = ( +/obj/structure/rack/wooden, +/obj/item/ore_sensor{ + pixel_x = -5; + pixel_y = -5 + }, +/obj/item/ore_sensor{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/ore_sensor, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Xr" = ( +/turf/open/misc/asteroid/lavaland_atmos{ + name = "arena sand" + }, +/area/ruin/unpowered/ash_walkers) +"XA" = ( +/obj/structure/stone_tile/surrounding_tile/burnt, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"XC" = ( +/obj/structure/barricade/wooden, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"XD" = ( +/obj/structure/stone_tile/surrounding/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/center/cracked{ + pixel_x = -2 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"XI" = ( +/obj/structure/closet/crate/wooden/storage_barrel, +/obj/item/seeds/eggplant, +/obj/item/seeds/eggplant, +/obj/item/seeds/chili, +/obj/item/seeds/chili, +/obj/item/seeds/tomato, +/obj/item/seeds/tomato, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"XM" = ( +/obj/structure/bed/maint, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/lavaland, +/area/ruin/unpowered/ash_walkers) +"XT" = ( +/obj/structure/stone_tile/slab, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) +"XU" = ( +/obj/machinery/smartfridge/wooden/ration_shelf, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Yb" = ( +/obj/structure/wall_torch/spawns_lit/directional/south, +/obj/structure/reagent_forge, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Yr" = ( +/obj/structure/table/wood, +/obj/item/plate/ceramic{ + pixel_y = 4; + pixel_x = 2 + }, +/obj/item/flashlight/flare/candle/infinite{ + pixel_x = 6; + pixel_y = -9 + }, +/obj/item/food/rootroll{ + pixel_y = 8; + pixel_x = 2 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Yw" = ( +/obj/structure/stone_tile/surrounding_tile/cracked, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile/surrounding_tile/burnt{ + dir = 4 + }, +/obj/structure/stone_tile/center/cracked, +/turf/open/lava/smooth/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"YB" = ( +/obj/structure/stone_tile/block/burnt{ + dir = 8 + }, +/obj/structure/stone_tile/block/burnt{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"YI" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/stone/lavaland, +/area/ruin/unpowered/ash_walkers) +"YK" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"YQ" = ( +/obj/structure/railing/wooden_fencing{ + dir = 8 + }, +/obj/structure/railing/wooden_fencing{ + dir = 1 + }, +/mob/living/basic/chicken{ + name = "\improper gunther"; + desc = "An odd looking gutlunch, this one seems to have feathers and lay eggs, not like you'd complain about that."; + unsuitable_atmos_damage = 0; + forced_gender = "male" + }, +/turf/open/floor/grass/lavaland, +/area/ruin/unpowered/ash_walkers) +"Zg" = ( +/obj/structure/stone_tile/surrounding_tile/burnt{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Zj" = ( +/obj/structure/fluff/drake_statue, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Zo" = ( +/obj/structure/flora/ash/leaf_shroom, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Zr" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 2; + pixel_y = 0 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"Zv" = ( +/obj/structure/table/wood, +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"ZY" = ( +/mob/living/basic/mining/gutlunch/warrior, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/ash_walkers) +"ZZ" = ( +/turf/open/floor/stone/lavaland, +/area/ruin/unpowered/ash_walkers) + +(1,1,1) = {" +li +JC +JC +JC +JC +JC +JC +li +li +li +li +li +li +JC +JC +JC +JC +GP +GP +GP +GP +GP +Ho +Ho +Ho +Ho +Ho +Ho +Ho +Ho +GP +GP +GP +"} +(2,1,1) = {" +JC +JC +ll +WK +ll +ll +JC +JC +JC +JC +JC +li +JC +JC +WK +WK +eL +GP +GP +GP +GP +GP +GP +GP +Ho +Ho +Ho +Ho +Ho +GP +GP +GP +GP +"} +(3,1,1) = {" +JC +ll +ll +WK +WK +WK +sQ +JC +MI +Td +JC +JC +JC +eF +WK +WK +JC +GP +GP +GP +GP +JC +JC +GP +GP +Ho +GP +Ho +Ho +GP +GP +GP +rD +"} +(4,1,1) = {" +JC +ll +WK +WK +WK +WK +ll +zb +WK +WK +ql +sQ +cn +WK +ED +pK +JC +um +um +um +JC +JC +JC +GP +GP +Ho +GP +GP +Ho +GP +GP +rD +rD +"} +(5,1,1) = {" +JC +WK +WK +WK +WK +WK +ll +WK +WK +WK +TN +sQ +Xp +WK +cr +WK +Lq +Uw +xW +sT +sQ +JC +GP +GP +Ho +Ho +Ho +Ho +Ho +GP +GP +rD +rD +"} +(6,1,1) = {" +JC +WK +WK +WK +WK +WK +sQ +JC +fx +dt +zg +JC +WK +Au +qX +WK +WK +LD +xX +WK +RS +um +GP +Ho +Ho +Ho +Ho +Ho +Ho +GP +GP +GP +GP +"} +(7,1,1) = {" +JC +JC +sQ +sQ +sQ +sQ +sQ +sQ +cr +AX +qA +sQ +sQ +xc +Do +IQ +WK +Nl +WK +WK +Zo +um +Ho +Ho +Ho +Ho +Ho +Ho +Ho +GP +GP +GP +GP +"} +(8,1,1) = {" +li +JC +JC +Uf +WJ +sQ +JC +GH +WK +WK +WK +Ob +JC +sQ +WK +mZ +WK +pB +fB +ZY +WK +um +Ho +Ho +Ho +Ho +Ho +Ho +Ho +GP +GP +rD +GP +"} +(9,1,1) = {" +li +JC +Ln +WK +WK +ys +Wl +WK +oW +qd +oH +WK +Ap +sQ +Nv +Wl +WK +Db +eG +Wf +sQ +um +Ho +Ho +Ho +Ho +Ho +Ho +GP +GP +rD +rD +GP +"} +(10,1,1) = {" +li +JC +Te +WK +WK +ys +Wl +CP +vu +vu +vu +oH +mE +sQ +mO +gC +pK +JC +sQ +sQ +sQ +um +JC +JC +Ho +Ho +Ho +Ho +GP +GP +rD +rD +rD +"} +(11,1,1) = {" +li +JC +JC +km +Zv +JC +mT +Do +vu +vu +vu +Il +RA +JC +rW +sM +vB +Ls +RU +ei +MW +CW +JC +JC +Ho +Ho +Ho +Ho +GP +GP +rD +rD +rD +"} +(12,1,1) = {" +li +JC +JC +sQ +sQ +sQ +hH +VX +vu +vu +vu +qA +mg +sQ +WK +GS +CP +Ew +WK +cF +YI +ZZ +xF +JC +Ho +Ho +Ho +Ho +Ho +GP +rD +rD +rD +"} +(13,1,1) = {" +JC +JC +um +um +PS +sQ +nV +WK +hy +ve +qA +WK +vJ +sQ +WK +IY +Qm +hS +WK +cF +gj +ZZ +sI +um +Ho +Ho +Ho +Ho +Ho +GP +GP +rD +GP +"} +(14,1,1) = {" +JC +um +XM +YI +ff +sQ +JC +Mh +WK +WK +WK +wR +JC +sQ +WK +vT +Mz +PW +WK +cF +tl +YI +yW +um +Ho +Ho +Ho +Ho +Ho +GP +GP +GP +GP +"} +(15,1,1) = {" +JC +um +VT +ZZ +fJ +um +sQ +sQ +xl +fx +Rc +sQ +sQ +fB +WK +WK +iO +qg +El +Jn +dH +ts +mH +JC +Ho +Ho +Ho +Ho +Ho +GP +GP +GP +GP +"} +(16,1,1) = {" +JC +JC +Io +WK +YI +Ii +WK +nM +bI +bI +ve +qA +SS +WK +ac +Wl +hy +JC +JC +xq +WK +WK +Yb +JC +JC +Ho +Ho +Ho +Ho +Ho +GP +GP +rD +"} +(17,1,1) = {" +JC +JC +JC +JC +JC +um +WK +lr +WK +DI +WK +WK +WK +ed +xk +Zr +WK +Hv +JC +sx +WU +nB +sQ +JC +JC +Ho +Ho +Ho +Ho +Ho +GP +GP +rD +"} +(18,1,1) = {" +JC +cs +RQ +WD +JC +JC +WK +WK +WK +gC +jC +qd +SD +dM +QV +vb +WK +Au +nM +ve +bI +ve +qA +JC +Ho +Ho +Ho +Ho +Ho +Ho +Ho +GP +rD +"} +(19,1,1) = {" +JC +HK +WK +WK +WK +pW +WK +mv +hn +sM +jF +ev +bI +bI +XA +WK +pD +EI +WK +lr +WK +ob +WK +um +Ho +Ho +Ho +Ho +Ho +Ho +Ho +GP +GP +"} +(20,1,1) = {" +JC +St +MH +yI +dn +JC +WK +WK +WK +WK +WK +rf +WK +WK +WK +WK +VX +cr +Io +qd +EP +WK +pK +um +um +Ho +Ho +Ho +Ho +Ho +Ho +GP +GP +"} +(21,1,1) = {" +JC +JC +cZ +JC +JC +JC +JC +JC +xc +JC +JC +JC +JC +JC +aB +WK +WK +WK +WK +WK +WK +Nj +Io +WK +um +JC +Ho +Ho +Ho +Ho +Ho +GP +GP +"} +(22,1,1) = {" +JC +JC +ET +ma +Kw +pD +YK +JC +JC +JC +Ie +WK +Ie +JC +JC +JC +kf +WK +ed +hE +WK +WK +FY +WK +Io +JC +JC +JC +Ho +Ho +zu +zu +yF +"} +(23,1,1) = {" +JC +OF +VN +Ad +ik +ma +nr +hy +ve +yB +oW +MH +YK +Eh +JC +pk +pk +WK +Yr +lT +TV +ed +ED +WK +pK +JC +WK +JC +JC +Ho +zu +zu +GP +"} +(24,1,1) = {" +JC +di +Yw +cJ +di +uN +Sx +qu +WK +WK +gb +pY +nr +WK +JC +pk +pk +WK +as +cr +TT +kP +WK +qY +WK +JC +WK +MZ +wQ +XT +XT +nQ +GP +"} +(25,1,1) = {" +JC +Zj +zd +aT +UD +Di +Ak +Qt +WK +WK +Jx +tH +tB +WK +uf +uf +yG +WK +Pa +FD +rN +zW +Fo +ED +cm +br +WK +MZ +MZ +XT +XT +To +GP +"} +(26,1,1) = {" +JC +yb +tb +AK +yb +bh +dv +MS +WK +WK +tJ +xm +oJ +WK +JC +pk +pk +WK +XD +pD +rw +yk +AJ +Ha +WK +JC +WK +MZ +vI +XT +XT +nQ +GP +"} +(27,1,1) = {" +JC +Lx +MJ +Ad +Nw +HA +Ea +oW +qd +uE +hy +ve +qA +DD +JC +pk +pk +WK +PZ +Kd +eH +WK +Zg +Ea +pK +JC +WK +JC +JC +Ho +zu +zu +GP +"} +(28,1,1) = {" +JC +KW +qp +HA +rv +bI +WJ +JC +JC +JC +Ie +WK +Ie +JC +JC +JC +kf +WK +yy +ed +re +ko +XA +fB +xc +JC +JC +JC +Ho +Ho +zu +zu +yF +"} +(29,1,1) = {" +li +JC +JC +JC +JC +JC +JC +JC +JC +JC +JC +JC +JC +JC +OR +Js +qu +Bs +WK +WK +WK +WG +WK +WK +um +JC +Ho +Ho +Ho +Ho +Ho +GP +GP +"} +(30,1,1) = {" +li +JC +JC +cH +jX +wV +JC +JC +JC +Io +Zo +we +oU +WK +Zg +IY +WJ +WK +oW +qd +pD +pD +Gq +sQ +um +Ho +Ho +Ho +Ho +Ho +Ho +GP +GP +"} +(31,1,1) = {" +li +JC +uP +WK +WK +WK +ON +sQ +aB +Lq +Io +WK +WK +lr +sM +XA +Io +JC +sQ +oJ +cr +Ti +sQ +sQ +JC +JC +Ho +Ho +Ho +Ho +Ho +GP +GP +"} +(32,1,1) = {" +li +JC +aF +WK +WK +WK +Vq +sQ +Io +fB +iN +WK +Zg +ko +XA +WK +JC +JC +Fi +qA +WK +hy +Vs +eO +JC +JC +Ho +Ho +Ho +Ho +GP +GP +GP +"} +(33,1,1) = {" +li +JC +JC +qi +qi +qi +JC +JC +Lq +Zo +WK +WK +kS +mJ +sT +sT +sQ +ct +WK +CP +MH +qd +oH +WK +cT +JC +Ho +Ho +Ho +Ho +GP +rD +GP +"} +(34,1,1) = {" +li +JC +SV +WK +WK +WK +ph +sQ +sQ +WK +WK +oW +KZ +aq +WK +WK +sQ +pn +WK +Qm +ul +LP +Ea +WK +YQ +um +Ho +Ho +Ho +Ho +GP +rD +rD +"} +(35,1,1) = {" +li +JC +vE +Rr +NK +WK +WK +IM +JC +Ic +WK +Nk +XA +aq +WK +WK +sQ +lL +WK +Qm +uT +RW +Ea +WK +uW +um +Ho +Ho +Ho +GP +GP +rD +rD +"} +(36,1,1) = {" +li +JC +Wz +ty +ze +WK +WK +WK +SX +Wl +jg +lr +WK +aq +WK +WK +sQ +CR +YK +hy +ve +ve +zX +WK +Kz +um +Ho +Ho +Ho +GP +GP +rD +rD +"} +(37,1,1) = {" +li +JC +AG +jO +xd +WK +WK +WK +iK +nr +sL +WK +WK +Wq +lr +Vl +JC +JC +ar +Ue +Lm +jW +WK +CP +sQ +um +Ho +Ho +Ho +GP +GP +GP +rD +"} +(38,1,1) = {" +li +JC +sQ +sQ +sQ +BU +WK +WK +JC +zK +cM +WK +WK +vf +xZ +JC +JC +JC +sQ +sQ +sQ +sQ +uf +Xf +sQ +um +Ho +Ho +Ho +GP +GP +GP +GP +"} +(39,1,1) = {" +li +JC +GM +aB +sQ +sQ +qi +sQ +sQ +WK +WK +Wl +WK +WK +JC +JC +SN +gx +XU +Ql +UL +Cf +WK +WK +je +JC +Ho +Ho +Ho +Ho +GP +GP +GP +"} +(40,1,1) = {" +li +JC +Br +WK +WK +WK +WK +OW +sQ +WK +WK +Dq +WK +Lq +JC +Gd +WK +WK +WK +WK +WK +WK +WK +WK +hJ +JC +JC +Ho +Ho +Ho +GP +rD +GP +"} +(41,1,1) = {" +li +JC +JC +GM +Ev +HT +GT +JC +JC +Au +WK +WK +YB +WK +JC +fn +WK +WK +WK +WK +MO +WK +WK +WK +oe +JC +JC +Ho +Ho +Ho +GP +rD +GP +"} +(42,1,1) = {" +li +JC +JC +sQ +aE +JC +JC +JC +Hv +WK +WK +WK +Ul +yw +JC +WK +WK +MO +WK +WK +WK +WK +WK +WK +na +JC +Ho +Ho +Ho +Ho +GP +GP +GP +"} +(43,1,1) = {" +li +li +JC +JC +JC +JC +WK +aB +WK +WK +lr +WK +UO +ED +bx +WK +WK +WK +WK +WK +WK +WK +WK +WK +Ug +um +Ho +Ho +Ho +Ho +Ho +GP +GP +"} +(44,1,1) = {" +li +JC +JC +EH +Dh +vM +CP +AZ +qd +qd +oH +WK +WK +Do +Wl +WK +WK +WK +Oq +WK +WK +WK +WK +XI +WK +um +XC +Ho +Ho +Ho +Ho +GP +rD +"} +(45,1,1) = {" +li +JC +Ks +CP +MH +CP +uS +Xr +Xr +Xr +PX +YK +WK +uV +uc +WK +WK +WK +WK +WK +WK +WK +WK +WK +WK +WK +XC +Ho +GP +GP +Ho +GP +rD +"} +(46,1,1) = {" +li +JC +QA +uZ +hm +Qm +Xr +Xr +Xr +Xr +Xr +nr +WK +Zo +JC +WK +ll +ll +WK +WK +ll +ll +WK +WK +WK +um +XC +Ho +GP +GP +Ho +GP +rD +"} +(47,1,1) = {" +li +JC +vU +ED +LK +Do +Xr +Xr +Xr +Xr +Xr +nr +WK +JC +JC +sQ +ll +JB +WK +WK +WK +WK +WK +WK +ll +um +Ho +Ho +GP +Ho +Ho +GP +GP +"} +(48,1,1) = {" +li +JC +rt +II +UT +Qm +Xr +Xr +Xr +Xr +Xr +Wl +pK +JC +JC +sQ +WK +WK +WK +WK +WK +WK +WK +WK +JV +JC +Ho +Ho +Ho +Ho +Ho +GP +GP +"} +(49,1,1) = {" +li +JC +qb +nM +bI +hy +mA +Xr +Xr +Xr +GX +XA +xc +JC +JC +sQ +Ss +WK +WK +WK +WK +WK +WK +WK +WK +JC +JC +Ho +Ho +Ho +Ho +GP +GP +"} +(50,1,1) = {" +li +JC +JC +gX +pX +Tr +hy +ve +cr +cr +XA +rf +JC +JC +JC +sQ +sQ +WK +WK +WK +WK +UE +WK +WK +WK +JC +JC +Ho +Ho +Ho +GP +GP +GP +"} +(51,1,1) = {" +li +li +JC +JC +JC +JC +Zg +pD +MH +MH +Al +JC +JC +li +JC +JC +sQ +sQ +sQ +sQ +sQ +sQ +sQ +WK +JC +JC +Ho +Ho +Ho +Ho +GP +rD +GP +"} +(52,1,1) = {" +li +li +li +li +li +JC +JC +xb +fU +KC +JC +JC +li +li +li +JC +JC +JC +JC +JC +JC +JC +JC +JC +JC +Ho +Ho +Ho +Ho +Ho +GP +rD +rD +"} +(53,1,1) = {" +li +li +li +li +li +li +JC +JC +JC +JC +JC +li +li +li +li +li +li +li +li +li +li +li +li +li +li +Ho +Ho +Ho +Ho +Ho +GP +rD +rD +"} diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm index 776b3c9f6a83..86dd9329f408 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm @@ -2657,8 +2657,8 @@ /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, /obj/machinery/firealarm/directional/east, -/obj/item/storage/box/vials, -/obj/item/storage/box/vials, +/obj/item/storage/box/tube, +/obj/item/storage/box/tube, /obj/item/device/antibody_scanner, /obj/item/device/antibody_scanner, /obj/item/clothing/gloves/latex, diff --git a/_maps/RandomRuins/SpaceRuins/anomaly_research.dmm b/_maps/RandomRuins/SpaceRuins/anomaly_research.dmm index 584b3f145de0..04de68a7eab4 100644 --- a/_maps/RandomRuins/SpaceRuins/anomaly_research.dmm +++ b/_maps/RandomRuins/SpaceRuins/anomaly_research.dmm @@ -146,7 +146,7 @@ /obj/structure/fireplace{ pixel_x = -32 }, -/obj/item/kirbyplants/fullysynthetic{ +/obj/item/kirbyplants/random/fullysynthetic{ pixel_x = 10; pixel_y = 19 }, @@ -1237,7 +1237,7 @@ /turf/open/floor/iron/dark, /area/misc/anomaly_research) "Gi" = ( -/obj/item/kirbyplants/fullysynthetic{ +/obj/item/kirbyplants/random/fullysynthetic{ pixel_x = -8; pixel_y = 21 }, diff --git a/_maps/RandomRuins/SpaceRuins/russian_derelict.dmm b/_maps/RandomRuins/SpaceRuins/russian_derelict.dmm index 9e99f0ba85f7..0439df9e3d60 100644 --- a/_maps/RandomRuins/SpaceRuins/russian_derelict.dmm +++ b/_maps/RandomRuins/SpaceRuins/russian_derelict.dmm @@ -839,7 +839,7 @@ /turf/open/floor/plating/airless, /area/ruin/space/ks13/engineering/secure_storage) "kA" = ( -/obj/item/kirbyplants/dead, +/obj/item/kirbyplants/random/dead, /obj/effect/mapping_helpers/broken_floor, /obj/machinery/light/small/directional/north, /turf/open/floor/plating/airless, @@ -997,7 +997,7 @@ /area/ruin/space/ks13/hallway/central) "mp" = ( /obj/structure/sign/departments/medbay/alt/directional/west, -/obj/item/kirbyplants/dead, +/obj/item/kirbyplants/random/dead, /turf/open/floor/iron/airless, /area/ruin/space/ks13/hallway/central) "mq" = ( @@ -3912,7 +3912,7 @@ "Cn" = ( /obj/structure/sign/departments/medbay/alt/directional/east, /obj/effect/decal/cleanable/dirt, -/obj/item/kirbyplants/dead, +/obj/item/kirbyplants/random/dead, /turf/open/floor/iron/airless, /area/ruin/space/ks13/hallway/central) "Co" = ( @@ -4285,7 +4285,7 @@ /turf/open/floor/plating/airless, /area/ruin/space/ks13/tool_storage) "Eg" = ( -/obj/item/kirbyplants/dead, +/obj/item/kirbyplants/random/dead, /turf/open/floor/plating/airless, /area/ruin/space/ks13/hallway/central) "Ei" = ( @@ -4642,7 +4642,7 @@ /turf/open/floor/plating/airless, /area/ruin/space/ks13/engineering/grav_gen) "Ge" = ( -/obj/item/kirbyplants/dead, +/obj/item/kirbyplants/random/dead, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/ruin/space/ks13/security/court) @@ -6126,7 +6126,7 @@ /turf/open/floor/iron/airless, /area/ruin/space/ks13/science/rnd) "Og" = ( -/obj/item/kirbyplants/dead, +/obj/item/kirbyplants/random/dead, /turf/open/floor/iron, /area/ruin/space/ks13/security/court) "Oh" = ( @@ -6519,7 +6519,7 @@ /turf/open/floor/plating/airless, /area/ruin/space/ks13/engineering/singulo) "PT" = ( -/obj/item/kirbyplants/dead, +/obj/item/kirbyplants/random/dead, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/ruin/space/ks13/command/bridge) @@ -7293,7 +7293,7 @@ /turf/open/floor/plating/airless, /area/ruin/space/ks13/security/sec) "TA" = ( -/obj/item/kirbyplants/dead, +/obj/item/kirbyplants/random/dead, /turf/open/floor/iron, /area/ruin/space/ks13/command/bridge_hall) "TB" = ( @@ -8024,7 +8024,7 @@ /area/ruin/space/ks13/science/genetics) "Xs" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/kirbyplants/dead, +/obj/item/kirbyplants/random/dead, /turf/open/floor/iron/airless, /area/ruin/space/ks13/service/cafe) "Xt" = ( diff --git a/_maps/blueshift.json b/_maps/blueshift.json new file mode 100644 index 000000000000..2a685910e3c0 --- /dev/null +++ b/_maps/blueshift.json @@ -0,0 +1,31 @@ +{ + "version": 1, + "map_name": "Blueshift", + "map_path": "map_files/Blueshift", + "map_file": "Blueshift.dmm", + "shuttles": { + "cargo": "cargo_nova", + "whiteship": "whiteship_blueshift", + "emergency": "emergency_nova" + }, + "traits": [ + { + "Up": true, + "Linkage": "Cross" + }, + { + "Down": true, + "Baseturf": "/turf/open/openspace", + "Linkage": "Cross" + } + ], + "orbit_shift_replacement": "Attention crew, it appears that someone has shifted your ship into more dangerous territory.", + "job_changes": { + "Cook": { + "additional_cqc_areas": ["/area/station/service/kitchen/diner"] + }, + "Captain": { + "special_charter": "ship" + } + } +} diff --git a/_maps/map_files/Blueshift/Blueshift.dmm b/_maps/map_files/Blueshift/Blueshift.dmm new file mode 100644 index 000000000000..a3c509373e77 --- /dev/null +++ b/_maps/map_files/Blueshift/Blueshift.dmm @@ -0,0 +1,256395 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aad" = ( +/obj/structure/table, +/obj/item/soap, +/obj/item/storage/bag/tray, +/obj/item/storage/box/condimentbottles{ + pixel_y = 10 + }, +/obj/item/storage/box/beakers{ + pixel_x = 5; + pixel_y = 3 + }, +/turf/open/floor/iron/kitchen, +/area/station/security/prison/mess) +"aap" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/structure/table/wood, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"aar" = ( +/turf/open/floor/engine/vacuum, +/area/station/maintenance/department/engineering/atmos_aux_port) +"aau" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"aaG" = ( +/turf/open/floor/iron/dark, +/area/station/ai_monitored/aisat/exterior) +"aaK" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/wood, +/area/station/service/library) +"aaN" = ( +/obj/effect/decal/cleanable/dirt, +/mob/living/basic/mothroach, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"aaR" = ( +/obj/machinery/camera/directional/north{ + c_tag = " Prison - East"; + dir = 2; + network = list("ss13","prison") + }, +/obj/effect/turf_decal/trimline/red/filled/line, +/obj/effect/turf_decal/trimline/red/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/side, +/area/station/security/prison/upper) +"aaU" = ( +/obj/structure/railing/wrestling{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/common/wrestling/arena) +"aaW" = ( +/obj/structure/closet, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"abj" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/engineering/atmos/pumproom) +"abk" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/medical/coldroom) +"abl" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/bed{ + pixel_y = 8 + }, +/obj/item/bedsheet{ + pixel_y = 8 + }, +/obj/machinery/camera/autoname/directional/east, +/turf/open/floor/iron/dark, +/area/station/security/brig) +"abA" = ( +/obj/effect/spawner/random/structure/crate, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"abB" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 9 + }, +/obj/structure/closet/secure_closet/hydroponics, +/obj/item/botanical_lexicon, +/obj/item/chicken_book, +/turf/open/floor/iron/dark/herringbone, +/area/station/common/night_club/back_stage) +"abG" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "evablastdoor"; + name = "East Bridge Blast Door" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/ai_monitored/command/storage/eva/upper) +"abH" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/spawner/random/trash/moisture_trap, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"abJ" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/machinery/airalarm/directional/north, +/obj/effect/turf_decal/trimline/red/filled/line{ + color = "#DE3A3A"; + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/line, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/brig) +"abU" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"ach" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Holodeck Door" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "rec-area" + }, +/turf/open/floor/iron, +/area/station/commons/fitness/recreation) +"acx" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "Luggagebelt" + }, +/turf/open/floor/plating, +/area/station/security/checkpoint/customs) +"acy" = ( +/turf/closed/wall/r_wall, +/area/station/science/explab) +"acB" = ( +/obj/machinery/power/smes/engineering, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/security/power_station) +"acE" = ( +/obj/machinery/holopad, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/carpet, +/area/station/service/chapel) +"acJ" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/aisat/exterior) +"acS" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/dark/corner, +/obj/effect/turf_decal/trimline/dark/corner{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark/corner, +/obj/effect/turf_decal/siding/thinplating_new/dark/corner{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured_edge{ + dir = 8 + }, +/area/station/security/prison/safe) +"acT" = ( +/obj/structure/chair/comfy/brown{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, +/obj/effect/landmark/start/captain, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/captain/private) +"acW" = ( +/obj/machinery/power/shuttle_engine/heater{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"acY" = ( +/turf/closed/wall/rust, +/area/station/maintenance/solars/starboard/fore) +"adb" = ( +/obj/structure/trash_pile, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/cafeteria, +/area/station/maintenance/abandon_diner) +"adi" = ( +/turf/closed/wall/rust, +/area/station/hallway/secondary/construction) +"adl" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_edge, +/area/station/engineering/supermatter/room) +"adm" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"ads" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/reagent_dispensers/plumbed{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"adt" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron/checker, +/area/station/service/janitor) +"adv" = ( +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/entry) +"adw" = ( +/obj/effect/turf_decal/siding/brown{ + dir = 1 + }, +/obj/machinery/computer/cargo{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/qm) +"adx" = ( +/obj/effect/turf_decal/trimline/purple/filled/line, +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/command/heads_quarters/rd) +"adA" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"adF" = ( +/obj/item/radio/intercom/directional/west, +/obj/structure/sink/directional/east, +/turf/open/floor/iron/cafeteria, +/area/station/commons/locker) +"adQ" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/command/heads_quarters/blueshield) +"adR" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/portable_atmospherics/canister, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/storage) +"adS" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/grunge{ + name = "Morgue" + }, +/obj/effect/mapping_helpers/airlock/access/all/medical/morgue, +/turf/open/floor/iron/dark/small, +/area/station/medical/morgue) +"adT" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"adY" = ( +/obj/structure/chair/comfy, +/obj/effect/landmark/start/scientist, +/turf/open/floor/carpet/purple, +/area/station/science/breakroom) +"aea" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/extinguisher_cabinet/directional/east, +/obj/structure/disposalpipe/segment, +/obj/machinery/camera/autoname/directional/east, +/turf/open/floor/iron/dark, +/area/station/security/brig) +"aed" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"aef" = ( +/obj/machinery/door/airlock/security/old{ + name = "Kitchen" + }, +/obj/effect/turf_decal/delivery/red, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron/dark, +/area/station/security/prison/mess) +"aeg" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/common/wrestling/lobby) +"aeo" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/flora/bush/sparsegrass, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/lavendergrass, +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/grass, +/area/station/hallway/secondary/command) +"aev" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/item/storage/fancy/cigarettes/cigars/havana, +/obj/item/storage/fancy/cigarettes/cigars/cohiba{ + pixel_y = 3 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Barshutters"; + name = "Bar Shutters" + }, +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/iron/dark, +/area/station/service/bar) +"aex" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/eva) +"aey" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/security/interrogation) +"aeM" = ( +/obj/machinery/light/directional/south, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) +"aeP" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/security/power_station) +"aeQ" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/chapel) +"aeU" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/structure/window/reinforced/tinted/spawner/directional/west, +/obj/machinery/requests_console/directional/north{ + department = "AI"; + name = "AI Requests Console" + }, +/obj/effect/mapping_helpers/requests_console/information, +/obj/effect/mapping_helpers/requests_console/assistance, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat_interior) +"afd" = ( +/obj/structure/table/wood, +/obj/item/paper_bin{ + pixel_y = 3 + }, +/obj/item/pen{ + pixel_y = 3 + }, +/turf/open/floor/wood, +/area/station/maintenance/abandon_office) +"afh" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"afi" = ( +/obj/machinery/light/directional/south, +/obj/structure/chair/stool/directional/west, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"afm" = ( +/obj/effect/spawner/random/trash/mess, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"afn" = ( +/obj/machinery/door/airlock/external{ + name = "External Thrusters Access"; + space_dir = 8 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "maintZ3-1" + }, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/external, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"afp" = ( +/obj/structure/chair/sofa/left/brown, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/open/floor/wood/parquet, +/area/station/service/theater) +"afr" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/closet/secure_closet/corrections_officer, +/obj/machinery/button/flasher{ + id = "IsolationFlash2"; + pixel_x = 10; + pixel_y = -24 + }, +/obj/machinery/button/flasher{ + id = "IsolationFlash"; + pixel_x = -10; + pixel_y = -24 + }, +/obj/machinery/computer/security/telescreen/interrogation{ + dir = 1; + name = "isolation room monitor"; + network = list("isolation"); + pixel_y = -36 + }, +/obj/effect/turf_decal/tile/purple/anticorner/contrasted{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/security/corrections_officer) +"afx" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass{ + amount = 30 + }, +/obj/item/stack/cable_coil, +/turf/open/floor/iron, +/area/station/maintenance/console_room) +"afC" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/cable, +/turf/open/floor/iron/large, +/area/station/cargo/lobby) +"afI" = ( +/obj/structure/cable, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/prison/upper) +"afL" = ( +/obj/structure/reagent_dispensers/wall/peppertank/directional/west, +/obj/machinery/light/directional/west, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/checkpoint/supply) +"afX" = ( +/obj/structure/bed{ + dir = 1 + }, +/obj/effect/spawner/random/bedsheet{ + dir = 1 + }, +/obj/machinery/light_switch/directional/west, +/turf/open/floor/carpet/black, +/area/station/commons/dorms/room5) +"aga" = ( +/obj/machinery/power/shuttle_engine/heater{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"agb" = ( +/obj/machinery/vending/wardrobe/atmos_wardrobe, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/office) +"agc" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/table/reinforced, +/obj/item/paper_bin, +/turf/open/floor/iron/dark, +/area/station/engineering/gravity_generator) +"agg" = ( +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/iron/stairs/right, +/area/station/commons/dorms) +"agk" = ( +/obj/machinery/door/firedoor, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/maintenance, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"agl" = ( +/turf/open/floor/iron/white, +/area/station/science) +"agt" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 4; + pixel_x = -12 + }, +/obj/structure/cable, +/turf/open/floor/iron/shuttle/evac/airless, +/area/station/solars/starboard/aft) +"agv" = ( +/obj/structure/transit_tube/curved{ + dir = 1 + }, +/turf/open/floor/iron/shuttle/arrivals/airless, +/area/space/nearstation) +"agy" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/open/floor/wood, +/area/station/hallway/primary/central) +"agB" = ( +/obj/structure/curtain/cloth, +/obj/machinery/duct, +/turf/open/floor/iron/freezer, +/area/station/security/prison/shower) +"agE" = ( +/obj/machinery/door/airlock/public/glass/incinerator/atmos_exterior, +/obj/effect/mapping_helpers/airlock/locked, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/maintenance/disposal/incinerator) +"agI" = ( +/obj/effect/spawner/liquids_spawner, +/turf/open/floor/lowered/iron/pool/cobble/side, +/area/station/common/pool) +"agJ" = ( +/obj/effect/turf_decal/stripes{ + dir = 9 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"agL" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/secondary/command) +"agN" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/ai_monitored/command/storage/eva/upper) +"agO" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/flowers_br, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/turf/open/floor/grass, +/area/station/security/prison/garden) +"agT" = ( +/obj/machinery/door/airlock/hop{ + id_tag = "HoPdoor"; + name = "Head of Personel's Quarters" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/command/hop, +/turf/open/floor/wood, +/area/station/command/heads_quarters/hop) +"agZ" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/computer/order_console/bitrunning, +/turf/open/floor/iron, +/area/station/security/prison/upper) +"ahd" = ( +/obj/effect/turf_decal/delivery/blue, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/window/brigdoor/security/holding/right/directional/south{ + name = "Holding Cell"; + req_access = list("security") + }, +/turf/open/floor/iron/dark, +/area/station/security/brig) +"ahg" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"ahn" = ( +/turf/closed/wall/r_wall, +/area/station/hallway/secondary/entry) +"ahz" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 5 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "roboticsprivacy"; + name = "Robotics Shutters" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/science/robotics) +"ahP" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/sunny, +/obj/structure/flora/bush/flowers_pp, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/grass, +/area/station/hallway/secondary/command) +"ahR" = ( +/obj/machinery/door/airlock/rd{ + name = "Research Director's Quarters" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/science/rd, +/obj/machinery/duct, +/turf/open/floor/carpet/purple, +/area/station/command/heads_quarters/rd) +"ahT" = ( +/obj/machinery/button/curtain{ + id = "prisoncell4"; + pixel_y = 21 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/structure/bed{ + dir = 4 + }, +/obj/item/bedsheet/orange{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/security/prison/safe) +"ahX" = ( +/obj/effect/decal/cleanable/blood/tracks, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"ahY" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron/white, +/area/station/science/research) +"aia" = ( +/obj/structure/window/reinforced/plasma/spawner/directional/south, +/obj/machinery/power/shuttle_engine/heater{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"aik" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/primary/central/fore) +"ail" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/sign/poster/random/directional/east, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"aiq" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 6 + }, +/turf/open/indestructible{ + base_icon_state = "reinf_glass"; + icon = 'icons/turf/floors/reinf_glass.dmi'; + icon_state = "reinf_glass-0"; + name = "Ultra Reinforced Glass Floor" + }, +/area/station/ai_monitored/turret_protected/aisat_interior) +"air" = ( +/mob/living/basic/cockroach, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"ait" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/security/checkpoint/science/research) +"aiu" = ( +/obj/item/radio/intercom/directional/north, +/obj/machinery/vending/hydroseeds{ + slogan_delay = 700 + }, +/turf/open/floor/iron/dark, +/area/station/security/prison/garden) +"aiC" = ( +/obj/machinery/suit_storage_unit/engine, +/turf/open/floor/iron/dark, +/area/station/engineering/break_room) +"aiG" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/station/service/electronic_marketing_den) +"aiK" = ( +/obj/structure/toilet{ + pixel_y = 10 + }, +/obj/machinery/button/door/directional/south{ + id = "Toilet4"; + name = "Lock Control"; + normaldoorcontrol = 1; + specialfunctions = 4 + }, +/obj/machinery/light/small/directional/west, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/commons/toilet/restrooms) +"aiN" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"aiP" = ( +/obj/machinery/atmospherics/components/trinary/mixer/airmix/flipped/inverse{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/end{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/station/engineering/atmos/upper) +"aiS" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 2 + }, +/obj/machinery/camera/autoname/directional/north, +/turf/open/floor/wood, +/area/station/hallway/primary/port) +"aiU" = ( +/obj/machinery/door/airlock/command/glass{ + name = "Customs Desk" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/effect/mapping_helpers/airlock/access/all/command/general, +/turf/open/floor/iron, +/area/station/security/checkpoint/customs/auxiliary) +"aiV" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/obj/structure/bed/roller{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/security/medical) +"ajc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/landmark/generic_maintenance_landmark, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/maintenance/aux_eva) +"ajh" = ( +/obj/structure/trash_pile, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"ajl" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/table/reinforced, +/obj/structure/window/reinforced/plasma/spawner/directional/south, +/turf/open/floor/iron/dark, +/area/station/maintenance/department/engineering/atmos_aux_port) +"ajn" = ( +/obj/structure/window/spawner/directional/north, +/obj/structure/window/spawner/directional/east, +/obj/structure/flora/bush, +/turf/open/floor/grass, +/area/station/hallway/primary/central/aft) +"ajp" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command/glass{ + name = "Gravity Generator Area" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/construction, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/engineering/gravity_generator) +"ajr" = ( +/obj/machinery/light/directional/east, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/structure/table, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/maintenance/xenobio_disposals) +"aju" = ( +/obj/structure/cable, +/turf/open/floor/iron/dark/telecomms, +/area/station/tcommsat/server) +"ajv" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating{ + dir = 8 + }, +/obj/effect/turf_decal/weather/sand, +/obj/structure/flora/bush/sunny, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"ajA" = ( +/obj/structure/hoop{ + layer = 3.3; + pixel_y = 17 + }, +/turf/open/floor/iron, +/area/station/security/prison/workout) +"ajB" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"ajD" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/central) +"ajH" = ( +/obj/structure/sign/warning/vacuum/external/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"ajI" = ( +/obj/structure/flora/bush/lavendergrass/style_4, +/obj/structure/flora/bush/flowers_pp, +/obj/structure/window/spawner/directional/south, +/obj/structure/window/spawner/directional/north, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Examshutters"; + name = "Exam Room Shutters" + }, +/turf/open/floor/grass, +/area/station/medical/exam_room) +"ajK" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/junction/flip{ + dir = 2 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"ajM" = ( +/obj/machinery/door/poddoor/preopen{ + name = "Retrograde Thruster Blast Door" + }, +/obj/effect/turf_decal/stripes, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"ajP" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"ajQ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/office) +"ajU" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/turf/open/floor/wood, +/area/station/hallway/primary/central) +"ajW" = ( +/obj/item/trash/semki, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"aka" = ( +/obj/structure/cable, +/turf/closed/wall/r_wall, +/area/station/ai_monitored/turret_protected/ai) +"akf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"akg" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain/private) +"akk" = ( +/obj/machinery/atmospherics/components/trinary/filter/flipped, +/turf/open/floor/iron/smooth_edge{ + dir = 4 + }, +/area/station/maintenance/disposal/incinerator) +"akl" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/public/glass{ + name = "Central Hallway" + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"ako" = ( +/obj/structure/chair/sofa/right/brown, +/obj/structure/window/spawner/directional/north, +/obj/machinery/computer/security/telescreen/entertainment/directional/west, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"akt" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"akv" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron, +/area/station/security/execution/transfer) +"akw" = ( +/obj/structure/chair/sofa/bench/right{ + dir = 8; + pixel_x = 5 + }, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 5 + }, +/obj/item/radio/intercom/directional/east, +/obj/machinery/camera/directional/east{ + c_tag = "Science - Starboard"; + name = "science camera"; + network = list("ss13","rd") + }, +/turf/open/floor/iron/white, +/area/station/science/research) +"aky" = ( +/turf/closed/wall/r_wall, +/area/station/command/heads_quarters/qm) +"akA" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"akL" = ( +/obj/machinery/light/small/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/catwalk_floor, +/area/station/engineering/atmos) +"akS" = ( +/obj/structure/chair/office{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/commons/vacant_room/commissary) +"akU" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/station/service/library/abandoned) +"akW" = ( +/obj/effect/spawner/random/structure/steam_vent, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/bar) +"ali" = ( +/obj/effect/spawner/random/trash/graffiti, +/turf/closed/wall, +/area/station/maintenance/rus_gambling) +"alq" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"als" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/security/upper) +"alt" = ( +/obj/structure/cable, +/obj/effect/landmark/start/botanist, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"alE" = ( +/obj/effect/landmark/start/roboticist, +/turf/open/floor/mineral/plastitanium, +/area/station/science/robotics/lab) +"alH" = ( +/obj/structure/table, +/obj/machinery/chem_dispenser/drinks{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/command/captain_dining) +"alQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/cigbutt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/service/electronic_marketing_den) +"alS" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/port/upper) +"alZ" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"ama" = ( +/obj/machinery/computer/nanite_cloud_controller, +/turf/open/floor/iron/dark/small, +/area/station/science/circuits) +"amb" = ( +/obj/structure/table/wood, +/obj/item/paper_bin, +/obj/item/pen, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/service/lawoffice) +"ame" = ( +/obj/vehicle/ridden/atv{ + desc = "An all-terrain vehicle built for traversing rough terrain with ease. This one looks rather old and well used, it's original company logo scratched out and repainted with the name Assistant Shredder."; + dir = 4; + name = "Assistant Shredder" + }, +/turf/open/floor/engine, +/area/station/cargo/miningdock) +"ami" = ( +/obj/machinery/duct, +/turf/closed/wall/r_wall, +/area/station/command/heads_quarters/blueshield) +"amk" = ( +/obj/structure/closet/secure_closet/engineering_chief, +/obj/structure/window/spawner/directional/east, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/ce) +"amm" = ( +/mob/living/basic/chicken{ + forced_gender = "female" + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/turf/open/floor/grass, +/area/station/common/night_club) +"amv" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/folder/yellow, +/turf/open/floor/iron, +/area/station/maintenance/thruster_room/central) +"amx" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"amB" = ( +/obj/structure/table/wood, +/obj/machinery/computer/libraryconsole, +/obj/structure/sign/painting/library{ + pixel_y = 32 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/carpet, +/area/station/service/library/printer) +"amG" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/machinery/power/port_gen/pacman/pre_loaded, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"amN" = ( +/obj/structure/chair/plastic, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"amS" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/dorms) +"ana" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/south, +/turf/open/floor/iron/dark, +/area/station/engineering/gravity_generator) +"anb" = ( +/obj/structure/window/reinforced/fulltile, +/obj/structure/flora/grass/jungle, +/turf/open/floor/grass, +/area/station/service/hydroponics) +"ani" = ( +/obj/structure/cable, +/turf/open/floor/circuit/telecomms/mainframe, +/area/station/tcommsat/server) +"ank" = ( +/obj/effect/turf_decal/stripes, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 4 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"ano" = ( +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/iron/shuttle/evac/airless, +/area/space/nearstation) +"anz" = ( +/obj/structure/table, +/obj/item/paper_bin, +/obj/item/stack/pipe_cleaner_coil/random, +/obj/item/stack/pipe_cleaner_coil/random, +/obj/item/stack/pipe_cleaner_coil/random, +/obj/item/stack/pipe_cleaner_coil/random, +/obj/item/stack/pipe_cleaner_coil/random, +/obj/item/canvas, +/obj/item/canvas, +/obj/item/canvas, +/obj/item/canvas, +/obj/item/canvas, +/obj/item/canvas, +/obj/item/chisel{ + pixel_y = 7 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/iron, +/area/station/commons/storage/art) +"anD" = ( +/obj/structure/table, +/obj/machinery/microwave{ + pixel_y = 8 + }, +/turf/open/floor/wood, +/area/station/commons/dorms/room5) +"anF" = ( +/obj/structure/table, +/obj/item/stack/package_wrap, +/obj/item/hand_labeler, +/obj/machinery/light/small/directional/north, +/turf/open/floor/plating, +/area/station/service/hydroponics/garden/abandoned) +"anJ" = ( +/obj/effect/spawner/random/trash/mess, +/obj/item/chair/plastic{ + pixel_y = 10 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"anN" = ( +/obj/item/cigbutt, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/eva) +"anR" = ( +/obj/structure/chair{ + dir = 1; + name = "Command Station" + }, +/obj/structure/cable, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/corrections_officer) +"anW" = ( +/obj/structure/anvil, +/obj/machinery/light/directional/north, +/obj/structure/sign/poster/random/directional/north, +/turf/open/floor/stone, +/area/station/service/forge) +"anZ" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 6 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"aob" = ( +/obj/structure/table, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/security/prison/mess) +"aoh" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/obj/structure/disposalpipe/sorting/mail{ + dir = 8; + name = "Genetics Junction"; + sortType = 23 + }, +/turf/open/floor/iron/white, +/area/station/science/research) +"aom" = ( +/obj/structure/table, +/obj/machinery/light/small/directional/west, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"aoo" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/commons/dorms/room2) +"aop" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/bridge_pipe/yellow/visible, +/turf/open/space/basic, +/area/space/nearstation) +"aor" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/dark/line{ + dir = 9 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark/corner, +/turf/open/floor/iron/dark/textured_corner, +/area/station/security/prison/safe) +"aox" = ( +/obj/machinery/power/port_gen/pacman/pre_loaded, +/obj/machinery/light/small/broken/directional/east, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_port) +"aoz" = ( +/obj/structure/table/reinforced, +/obj/item/storage/medkit/fire{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/storage/medkit/fire{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/medkit/regular, +/obj/item/storage/medkit/fire{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/machinery/door/window/left/directional/south{ + name = "First-Aid Supplies"; + req_access = list("medical") + }, +/turf/open/floor/iron, +/area/station/medical/storage) +"aoD" = ( +/obj/effect/turf_decal/trimline/blue/filled/corner, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/prison/workout) +"aoI" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron/dark/side{ + dir = 6 + }, +/area/station/security/prison) +"aoK" = ( +/obj/structure/closet/emcloset, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"aoO" = ( +/obj/machinery/button/door{ + id = "MainSurgeryTheatre"; + name = "Privacy Shutter Controll"; + pixel_x = 26 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/white, +/area/station/medical/surgery/theatre) +"aoR" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/carpet/blue, +/area/station/medical/break_room) +"aoT" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/modular_computer/preset/id{ + dir = 1 + }, +/obj/machinery/light/directional/south, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/cmo) +"aoU" = ( +/obj/effect/decal/remains/human, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/security/prison/upper) +"apa" = ( +/obj/machinery/vending/coffee, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/customs/auxiliary) +"apl" = ( +/obj/effect/turf_decal/trimline/red/filled/warning{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"apo" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/machinery/conveyor{ + dir = 4; + id = "garbage" + }, +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/disposal) +"apt" = ( +/obj/effect/turf_decal/trimline/purple/filled/corner{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron/white, +/area/station/science/research) +"apv" = ( +/obj/structure/urinal{ + pixel_y = 28 + }, +/turf/open/floor/iron/white, +/area/station/commons/toilet/restrooms) +"apw" = ( +/obj/structure/table, +/obj/effect/spawner/random/entertainment/cigarette_pack, +/turf/open/floor/plating, +/area/station/maintenance/central) +"apx" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/space_heater, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"apE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"apO" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/xenobio_disposals) +"apR" = ( +/turf/open/floor/wood, +/area/station/service/abandoned_gambling_den) +"apW" = ( +/obj/item/radio/intercom/directional/east, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/port) +"apX" = ( +/obj/effect/turf_decal/bot_white, +/obj/machinery/light/small/directional/south, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/machinery/status_display/evac/directional/south, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/command) +"aqa" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/trimline/red/filled/warning{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/line, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/prison/upper) +"aqb" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/iron/dark, +/area/station/science/robotics) +"aqd" = ( +/obj/machinery/button/massdriver{ + id = "ptrash"; + pixel_x = -6; + pixel_y = 6 + }, +/turf/closed/wall/r_wall, +/area/station/security/corrections_officer) +"aqf" = ( +/obj/machinery/door/airlock/external{ + name = "Atmospherics External Airlock"; + space_dir = 4 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/turf/open/floor/plating, +/area/station/engineering/atmos/upper) +"aqj" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/hedge/opaque, +/turf/open/floor/iron/dark/side, +/area/station/hallway/primary/central) +"aqk" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters{ + dir = 4; + id = "portbow_maint_shutters" + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"aqq" = ( +/turf/open/floor/iron, +/area/station/hallway/secondary/entry) +"aqt" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/security/checkpoint/customs/auxiliary) +"aqy" = ( +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"aqB" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"aqM" = ( +/obj/structure/chair/office, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/smooth_edge, +/area/station/security/brig) +"aqO" = ( +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/lavendergrass, +/obj/structure/flora/bush/flowers_pp, +/obj/structure/flora/bush/sunny, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/grass, +/area/station/hallway/secondary/exit/departure_lounge) +"aqQ" = ( +/obj/structure/chair/sofa/corp{ + dir = 1 + }, +/obj/effect/landmark/start/captain, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/captain) +"aqS" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 9 + }, +/obj/structure/closet/crate, +/obj/effect/spawner/random/maintenance/four, +/turf/open/floor/iron/dark/small, +/area/station/cargo/miningdock) +"aqV" = ( +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/item/wrench, +/obj/item/wrench, +/obj/item/wrench, +/obj/item/crowbar/large, +/obj/item/crowbar/large, +/obj/item/crowbar/large, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva/upper) +"aqZ" = ( +/obj/machinery/telecomms/message_server/preset, +/turf/open/floor/circuit/telecomms/mainframe, +/area/station/tcommsat/server) +"arc" = ( +/obj/machinery/button/door/directional/north{ + id = "teleportershutters"; + name = "Teleporter Shutters"; + req_access = list("command") + }, +/obj/structure/rack, +/obj/item/storage/toolbox/emergency, +/obj/item/wrench, +/obj/item/crowbar, +/obj/effect/turf_decal/bot, +/obj/machinery/light_switch/directional/north{ + pixel_x = -10 + }, +/obj/structure/cable, +/obj/machinery/light/directional/north, +/turf/open/floor/iron, +/area/station/command/teleporter) +"arj" = ( +/obj/structure/table, +/obj/structure/railing{ + dir = 10 + }, +/obj/item/clothing/head/utility/hardhat, +/turf/open/floor/iron, +/area/station/maintenance/thruster_room/central) +"arv" = ( +/obj/structure/flora/bush/stalky, +/obj/effect/landmark/start/hangover, +/turf/open/water/overlay, +/area/station/hallway/primary/central) +"arA" = ( +/turf/open/floor/iron/smooth_edge{ + dir = 4 + }, +/area/station/engineering/atmos/hfr_room) +"arB" = ( +/obj/structure/chair, +/obj/machinery/light_switch/directional/east, +/turf/open/floor/iron/dark, +/area/station/security/interrogation) +"arD" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/commons/dorms) +"arJ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/command/heads_quarters/ce) +"arP" = ( +/obj/structure/table/reinforced, +/obj/machinery/computer/records/security/laptop, +/obj/effect/turf_decal/tile/purple/half/contrasted{ + dir = 1 + }, +/obj/machinery/button/door{ + id = "PermaTrash"; + name = "Disposal Shutters"; + pixel_x = -16; + pixel_y = -4 + }, +/turf/open/floor/iron/dark, +/area/station/security/corrections_officer) +"arQ" = ( +/obj/structure/table/wood, +/obj/item/radio/intercom{ + broadcasting = 1; + dir = 8; + listening = 0; + name = "Station Intercom (Court)" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/security/courtroom) +"arT" = ( +/obj/machinery/computer/station_alert{ + dir = 1 + }, +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching the RD's goons and the AI's satellite from the safety of his office."; + dir = 1; + name = "Research Monitor"; + network = list("rd","minisat"); + pixel_y = -29 + }, +/turf/open/floor/iron/grimy, +/area/station/ai_monitored/turret_protected/aisat_interior) +"arX" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/poddoor/preopen{ + id = "Biohazard"; + name = "Biohazard Containment Door" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/science) +"asc" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/dark/small, +/area/station/security/brig) +"asd" = ( +/turf/closed/wall/r_wall, +/area/station/hallway/secondary/command) +"asg" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) +"ask" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/ai_monitored/command/storage/eva) +"ass" = ( +/turf/open/floor/iron/dark, +/area/station/engineering/gravity_generator) +"asu" = ( +/obj/structure/dresser, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/carpet/royalblack, +/area/station/service/chapel/office) +"asw" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/commons/vacant_room/commissary) +"asA" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"asF" = ( +/obj/effect/turf_decal/vg_decals/numbers/two, +/obj/effect/landmark/start/prisoner, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/security/prison/safe) +"asH" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/service/barber) +"asK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/landmark/generic_maintenance_landmark, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"asL" = ( +/turf/open/floor/iron/solarpanel/airless, +/area/station/solars/starboard/fore) +"asP" = ( +/obj/structure/table/glass, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/item/paper_bin{ + pixel_y = 3 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/transit_tube) +"asR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"asX" = ( +/obj/machinery/light/directional/south, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/storage) +"asY" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/wood, +/area/station/security/courtroom) +"atb" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/item/circuitboard/computer/bountypad, +/obj/item/circuitboard/computer/warrant, +/turf/open/floor/iron, +/area/station/maintenance/console_room) +"atf" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/dorms) +"atk" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/ai_monitored/command/storage/eva/upper) +"atm" = ( +/obj/structure/chair/comfy/teal{ + dir = 8 + }, +/obj/machinery/button/door/directional/south{ + id = "cmoshutter3"; + name = "CMO Quarters Shutters"; + pixel_x = 25; + pixel_y = 0; + req_access = list("cmo") + }, +/obj/machinery/light/directional/east, +/obj/effect/landmark/start/chief_medical_officer, +/turf/open/floor/carpet/blue, +/area/station/command/heads_quarters/cmo) +"att" = ( +/obj/machinery/light/directional/north, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"atu" = ( +/obj/structure/railing, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/common/night_club) +"atx" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/command/heads_quarters/captain) +"atF" = ( +/obj/structure/chair/comfy{ + color = "#596479"; + dir = 4 + }, +/turf/open/floor/carpet, +/area/station/security/prison/rec) +"atW" = ( +/obj/effect/turf_decal/trimline/blue/corner, +/obj/effect/landmark/start/assistant, +/turf/open/floor/iron, +/area/station/commons/fitness) +"atX" = ( +/turf/closed/wall, +/area/station/medical/treatment_center) +"aua" = ( +/obj/item/target, +/obj/item/target, +/obj/item/target/alien, +/obj/item/target/alien, +/obj/item/target/clown, +/obj/item/target/clown, +/obj/item/target/syndicate, +/obj/item/target/syndicate, +/obj/structure/closet/crate/secure{ + desc = "A secure crate containing various materials for building a customised test-site."; + name = "Firing Range Gear Crate"; + req_access = list("security") + }, +/obj/machinery/airalarm/directional/east, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/range) +"auv" = ( +/obj/effect/turf_decal/bot_white/left, +/obj/effect/spawner/random/structure/crate, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark/small, +/area/station/cargo/miningdock) +"auH" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green{ + pixel_y = 16 + }, +/obj/item/book/manual/wiki/security_space_law{ + pixel_y = -5 + }, +/turf/open/floor/carpet, +/area/station/command/meeting_room/council) +"auK" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/light/directional/east, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"auR" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/duct, +/obj/effect/turf_decal/trimline/red, +/turf/open/floor/iron/dark/small, +/area/station/security/prison/upper) +"auS" = ( +/obj/structure/table, +/obj/item/stack/package_wrap, +/obj/item/hand_labeler, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/green/filled/corner{ + dir = 8 + }, +/turf/open/floor/iron/dark/corner{ + dir = 1 + }, +/area/station/service/hydroponics) +"auZ" = ( +/obj/item/toy/plush/pim, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"avb" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/side, +/area/station/hallway/secondary/exit) +"avc" = ( +/obj/effect/turf_decal/caution/stand_clear, +/obj/effect/turf_decal/bot, +/obj/machinery/door/poddoor/preopen{ + id = "Biohazard"; + name = "Biohazard Containment Door" + }, +/obj/machinery/light/small/directional/south, +/obj/structure/sign/departments/science/directional/south, +/turf/open/floor/iron, +/area/station/science) +"ave" = ( +/obj/structure/table/glass, +/obj/item/folder/white, +/obj/item/pen/red, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 9 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron/white, +/area/station/medical/virology) +"avg" = ( +/obj/machinery/light/directional/north, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/machinery/newscaster/directional/north, +/turf/open/floor/carpet, +/area/station/security/courtroom) +"avj" = ( +/mob/living/basic/sheep, +/obj/structure/flora/bush/lavendergrass, +/turf/open/floor/grass, +/area/station/common/night_club) +"avr" = ( +/obj/structure/table/reinforced, +/obj/item/inducer, +/obj/item/construction/rld, +/obj/structure/window/spawner/directional/west, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) +"avw" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/service/bar/backroom) +"avy" = ( +/obj/effect/turf_decal/bot, +/obj/structure/bed/roller, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) +"avB" = ( +/obj/machinery/light/directional/north, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/engineering/atmos/office) +"avF" = ( +/turf/closed/wall, +/area/station/science/circuits) +"avI" = ( +/obj/structure/table, +/obj/effect/turf_decal/trimline/red/filled/corner{ + color = "#DE3A3A"; + dir = 8 + }, +/obj/item/book/manual/wiki/security_space_law, +/turf/open/floor/iron, +/area/station/command/heads_quarters/hos) +"avK" = ( +/obj/effect/turf_decal/siding/wood/corner, +/obj/structure/hedge/opaque, +/obj/machinery/light/directional/south, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/turf/open/floor/iron/dark/corner, +/area/station/hallway/primary/central) +"avL" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/structure/chair/sofa/bench/left{ + dir = 4; + layer = 2.8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 9 + }, +/area/station/commons/dorms) +"avP" = ( +/obj/structure/reagent_dispensers/fueltank/large, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"avQ" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/space_heater, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"avR" = ( +/obj/effect/landmark/carpspawn, +/turf/open/floor/iron/shuttle/arrivals/airless, +/area/space/nearstation) +"avX" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/chair/sofa/bench/left{ + dir = 8; + pixel_x = 5 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/checkpoint/escape) +"avY" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/dorms) +"awo" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/chair/office{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/security/detectives_office) +"awq" = ( +/obj/effect/landmark/start/assistant, +/turf/open/floor/iron/dark/side{ + dir = 6 + }, +/area/station/commons/fitness) +"awA" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/service/hydroponics/garden/abandoned) +"awC" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/maintenance/abandon_diner) +"awK" = ( +/obj/machinery/airalarm/directional/south, +/obj/structure/sink/directional/west, +/obj/effect/landmark/start/hangover, +/turf/open/floor/wood, +/area/station/common/pool) +"awQ" = ( +/obj/machinery/door/airlock/maintenance, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/unres, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"awV" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/security/checkpoint) +"awX" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/door/airlock/rd{ + id_tag = "RDdoor"; + name = "Research Director's Office" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/science/rd, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/command/heads_quarters/rd) +"axe" = ( +/obj/structure/table, +/obj/item/clipboard, +/obj/item/toy/figure/roboticist, +/obj/machinery/camera/directional/south{ + c_tag = "Science - Robotics Office"; + name = "science camera"; + network = list("ss13","rd") + }, +/obj/machinery/light/directional/south, +/obj/machinery/light_switch/directional/south, +/turf/open/floor/iron/dark, +/area/station/science/robotics) +"axg" = ( +/obj/machinery/chem_dispenser/drinks/beer, +/turf/closed/wall/r_wall, +/area/station/command/heads_quarters/nt_rep) +"axi" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/carpet, +/area/station/common/tailoring) +"axj" = ( +/obj/machinery/conveyor{ + id = "cargounload" + }, +/obj/machinery/camera/directional/east{ + c_tag = "Cargo Bay - Starboard"; + name = "cargo camera" + }, +/obj/machinery/light/directional/east, +/turf/open/floor/plating, +/area/station/cargo/storage) +"axk" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/qm) +"axm" = ( +/obj/machinery/duct, +/turf/open/floor/carpet/black, +/area/station/commons/dorms/room5) +"axq" = ( +/obj/structure/closet/lasertag/blue, +/obj/effect/turf_decal/tile/red/half/contrasted, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/common/laser_tag) +"axu" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 8 + }, +/obj/structure/table/wood, +/obj/item/food/grown/tomato{ + pixel_x = -4; + pixel_y = -10 + }, +/obj/item/food/grown/tomato{ + pixel_x = 4; + pixel_y = -10 + }, +/obj/item/plate, +/obj/item/food/meat/bacon, +/obj/item/food/meat/bacon, +/obj/item/food/meat/bacon, +/obj/item/storage/fancy/pickles_jar{ + pixel_x = 6; + pixel_y = 17 + }, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"axw" = ( +/obj/structure/dresser, +/obj/item/flashlight/lamp{ + pixel_x = 3; + pixel_y = 13 + }, +/turf/open/floor/iron/dark, +/area/station/security/detectives_office) +"axy" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/light/directional/west, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/station/hallway/primary/port) +"axB" = ( +/obj/structure/table/reinforced, +/obj/item/storage/medkit/regular, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"axH" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/engineering/storage_shared) +"axI" = ( +/obj/structure/sign/painting/library{ + pixel_y = -32 + }, +/turf/open/floor/carpet, +/area/station/service/library) +"axQ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/security/checkpoint/medical) +"axS" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 1 + }, +/turf/open/floor/wood/large, +/area/station/science/circuits) +"axU" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/light/directional/east, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"axW" = ( +/obj/structure/table, +/obj/item/wrench, +/turf/open/floor/iron, +/area/station/maintenance/solars/starboard/fore) +"aya" = ( +/obj/effect/turf_decal/stripes{ + dir = 9 + }, +/turf/open/floor/iron/smooth, +/area/station/engineering/atmos/hfr_room) +"ayf" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/stairs/medium{ + dir = 8 + }, +/area/station/medical/medbay/central) +"ayg" = ( +/obj/structure/table/reinforced, +/obj/item/storage/medkit/brute{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/storage/medkit/brute{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/medkit/regular, +/obj/item/storage/medkit/brute{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/machinery/light/directional/east, +/obj/structure/window/spawner/directional/south, +/turf/open/floor/iron, +/area/station/medical/storage) +"ayy" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat_interior) +"ayD" = ( +/obj/effect/decal/cleanable/generic, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"ayM" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/filled/warning{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/line, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/brig) +"ayO" = ( +/obj/structure/chair/pew/right{ + dir = 8 + }, +/obj/effect/landmark/start/assistant, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/service/chapel) +"ayU" = ( +/obj/effect/spawner/random/trash/food_packaging, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"ayV" = ( +/obj/structure/bookcase/random, +/turf/open/floor/wood/parquet, +/area/station/security/detectives_office) +"ayZ" = ( +/obj/structure/cable, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"azj" = ( +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/maintenance/port/upper) +"azk" = ( +/turf/closed/wall/r_wall, +/area/station/maintenance/department/crew_quarters/bar) +"azu" = ( +/obj/structure/bed/double, +/obj/item/bedsheet/captain/double, +/obj/machinery/light_switch/directional/east, +/turf/open/floor/carpet/blue, +/area/station/command/heads_quarters/captain/private) +"azy" = ( +/obj/machinery/light/small/directional/east, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/abandon_wrestle) +"azz" = ( +/obj/structure/table_frame, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"azB" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/junction/flip{ + dir = 2 + }, +/turf/open/floor/iron, +/area/station/command/bridge) +"azF" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/stairs/old, +/area/station/cargo/warehouse) +"azU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/moisture_trap, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"azW" = ( +/obj/machinery/door/airlock{ + id_tag = "Toilet1"; + name = "Stall 1" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/commons/toilet/restrooms) +"aAb" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/airalarm/directional/south, +/turf/open/floor/iron/dark, +/area/station/escapepodbay) +"aAe" = ( +/obj/structure/window/reinforced/plasma/spawner/directional/east, +/obj/machinery/atmospherics/components/unary/outlet_injector/layer2{ + dir = 4 + }, +/turf/open/floor/engine/vacuum, +/area/station/maintenance/department/engineering/atmos_aux_port) +"aAf" = ( +/obj/structure/closet, +/turf/open/floor/plating, +/area/station/maintenance/disposal) +"aAj" = ( +/obj/structure/window/spawner/directional/east, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos) +"aAk" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/primary/port) +"aAo" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat_interior) +"aAw" = ( +/obj/machinery/chem_dispenser/drinks, +/turf/closed/wall/r_wall, +/area/station/command/heads_quarters/nt_rep) +"aAF" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/lockers) +"aAH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/effect/spawner/random/contraband/narcotics, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"aAS" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Engineering Security Post" + }, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/security/checkpoint/engineering) +"aAT" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/machinery/duct, +/turf/open/floor/wood/parquet, +/area/station/science/breakroom) +"aAU" = ( +/obj/effect/spawner/random/entertainment/arcade, +/turf/open/floor/eighties/red, +/area/station/common/arcade) +"aBf" = ( +/turf/open/floor/plating, +/area/station/engineering/atmos/test_chambers) +"aBi" = ( +/obj/structure/closet/l3closet, +/obj/effect/turf_decal/bot, +/obj/item/radio/intercom/directional/south, +/obj/machinery/light/small/directional/east, +/turf/open/floor/iron, +/area/station/medical/virology) +"aBj" = ( +/obj/structure/chair/sofa/left/brown, +/turf/open/floor/carpet, +/area/station/medical/patients_rooms) +"aBl" = ( +/obj/structure/altar_of_gods, +/obj/structure/railing{ + dir = 4 + }, +/obj/item/storage/book/bible, +/turf/open/floor/carpet, +/area/station/service/chapel) +"aBo" = ( +/obj/effect/decal/remains/human, +/turf/open/floor/material/meat, +/area/station/maintenance/department/science/xenobiology) +"aBp" = ( +/obj/effect/spawner/random/trash/mess, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"aBz" = ( +/obj/item/storage/secure/safe/directional/east, +/turf/open/floor/carpet/green, +/area/station/command/heads_quarters/nt_rep) +"aBB" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/structure/railing{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 9 + }, +/area/station/ai_monitored/command/storage/eva) +"aBF" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Disposal Access" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/disposal) +"aBG" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"aBK" = ( +/obj/structure/cable, +/obj/machinery/light/directional/north, +/obj/machinery/duct, +/turf/open/floor/iron/white/textured, +/area/station/medical/aslyum) +"aBN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/door/airlock/maintenance, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"aBU" = ( +/obj/machinery/light/small/broken/directional/south, +/obj/structure/table, +/obj/item/taperecorder/empty, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"aBW" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 6 + }, +/turf/open/floor/iron/white, +/area/station/science/research) +"aBX" = ( +/obj/effect/turf_decal/tile/purple/half{ + dir = 8 + }, +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/iron/white/side{ + dir = 8 + }, +/area/station/science) +"aBZ" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"aCb" = ( +/obj/machinery/door/morgue{ + name = "Confession Booth"; + req_access = list("crematorium") + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/service/chapel/office) +"aCf" = ( +/obj/machinery/status_display/evac/directional/east, +/obj/structure/chair/stool/directional/north, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) +"aCi" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/closet/crate/bin, +/turf/open/floor/iron/dark/side{ + dir = 10 + }, +/area/station/hallway/secondary/exit) +"aCo" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/iron/dark, +/area/station/maintenance/disposal/incinerator) +"aCp" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/ai_monitored/turret_protected/aisat/hallway) +"aCt" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/loading_area{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/escapepodbay) +"aCu" = ( +/obj/item/kirbyplants/random, +/obj/machinery/light/directional/west, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/range) +"aCz" = ( +/turf/closed/wall/r_wall, +/area/station/engineering/atmos/hfr_room) +"aCA" = ( +/turf/closed/wall/r_wall, +/area/station/science/ordnance/storage) +"aCD" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/smooth, +/area/station/security/prison/upper) +"aCJ" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/plating, +/area/station/maintenance/abandon_holding_cell) +"aCP" = ( +/obj/structure/table/glass, +/obj/item/watertank, +/obj/machinery/camera/directional/west{ + c_tag = "Hydroponics Backroom"; + name = "service camera" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/machinery/newscaster/directional/west, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"aCS" = ( +/obj/structure/window/reinforced/plasma/spawner/directional/east, +/obj/machinery/power/shuttle_engine/heater{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"aCT" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/security/execution/transfer) +"aCY" = ( +/obj/structure/table/wood/fancy, +/obj/item/reagent_containers/cup/bowl{ + pixel_y = 4 + }, +/turf/open/floor/carpet, +/area/station/service/chapel) +"aDa" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/stairs/medium{ + dir = 8 + }, +/area/station/medical/medbay/lobby) +"aDb" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/component_printer, +/turf/open/floor/iron/dark/small, +/area/station/science/circuits) +"aDd" = ( +/obj/structure/chair/pew{ + dir = 1; + name = "Jury" + }, +/turf/open/floor/wood, +/area/station/security/courtroom) +"aDi" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/landmark/start/hangover, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"aDt" = ( +/obj/machinery/door/airlock/highsecurity{ + name = "Gravity Generator Room" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/sign/warning/radiation/directional/north, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "grav-gen" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/construction, +/obj/machinery/door/firedoor, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/engineering/gravity_generator) +"aDI" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/station/science/robotics/lab) +"aDM" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters{ + id = "SnacksKitchen"; + name = "Snack Bar Shutters" + }, +/turf/open/floor/iron/dark, +/area/station/common/wrestling/concessions) +"aDV" = ( +/turf/closed/wall, +/area/station/service/hydroponics/garden/abandoned) +"aDY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/spawner/random/trash/moisture_trap, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"aEa" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/iron/dark, +/area/station/medical/medbay/central) +"aEc" = ( +/obj/effect/spawner/structure/window/reinforced/tinted, +/obj/structure/sign/departments/court/directional/north, +/turf/open/floor/plating, +/area/station/security/courtroom) +"aEh" = ( +/obj/structure/sign/calendar/directional/east, +/obj/structure/chair/comfy/brown{ + color = "#A46106"; + dir = 8 + }, +/turf/open/floor/carpet, +/area/station/medical/patients_rooms) +"aEk" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 1 + }, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "greater-sec-maint-cluster" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/external, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"aEu" = ( +/obj/structure/table/glass, +/obj/item/stack/sheet/iron/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/package_wrap, +/obj/effect/turf_decal/tile/purple/half{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white/side{ + dir = 4 + }, +/area/station/science) +"aEv" = ( +/obj/item/kirbyplants/random, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/secondary/exit) +"aEy" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/cafeteria, +/area/station/maintenance/abandon_diner) +"aEz" = ( +/obj/machinery/door/airlock/virology{ + autoclose = 0; + frequency = 1449; + id_tag = "virology_airlock_interior"; + name = "Virology Interior Airlock" + }, +/obj/machinery/door_buttons/access_button{ + dir = 1; + idDoor = "virology_airlock_interior"; + idSelf = "virology_airlock_control"; + name = "Virology Access Button"; + pixel_y = -24; + req_access = list("pathology") + }, +/obj/effect/mapping_helpers/airlock/locked, +/obj/effect/turf_decal/trimline/green/filled/warning{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/green/filled/warning{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/medical/virology, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/virology) +"aEA" = ( +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/line, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/brig) +"aEL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/command/bridge) +"aEQ" = ( +/obj/effect/spawner/random/structure/closet_maintenance, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"aEX" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/athletic_mixed, +/obj/item/clothing/head/costume/sombrero, +/obj/item/clothing/head/helmet/toggleable/justice, +/obj/item/clothing/head/costume/rice_hat, +/obj/item/clothing/mask/joy, +/obj/item/clothing/mask/luchador/tecnicos, +/obj/item/clothing/mask/luchador/enzo, +/turf/open/floor/iron, +/area/station/common/wrestling/locker) +"aEY" = ( +/obj/machinery/dna_scannernew, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/science/genetics) +"aFb" = ( +/obj/structure/reagent_dispensers/water_cooler, +/turf/open/floor/iron/dark, +/area/station/tcommsat/computer) +"aFf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/structure/closet_maintenance, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"aFg" = ( +/obj/structure/bed/maint, +/turf/open/floor/plating, +/area/station/security/prison/upper) +"aFk" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/obj/machinery/status_display/evac/directional/east, +/obj/structure/railing, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/ai) +"aFn" = ( +/obj/machinery/door/poddoor/incinerator_atmos_main, +/turf/open/floor/engine/vacuum, +/area/station/maintenance/disposal/incinerator) +"aFx" = ( +/obj/structure/sign/shuttleg250, +/turf/open/floor/iron/dark/herringbone, +/area/station/cargo/storage) +"aFD" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/item/kirbyplants/random, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/command/secure_bunker) +"aFG" = ( +/obj/structure/closet/crate, +/obj/item/vending_refill/snack{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/vending_refill/cola, +/obj/item/screwdriver, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"aFO" = ( +/obj/machinery/power/shuttle_engine/heater, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"aFP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/dorms) +"aFR" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/flowers_yw, +/obj/machinery/door/firedoor/border_only, +/turf/open/floor/grass, +/area/station/security/prison/garden) +"aFV" = ( +/obj/structure/table/reinforced, +/obj/item/storage/box/donkpockets, +/obj/item/storage/box/donkpockets/donkpocketpizza{ + pixel_y = 5 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchencounter"; + name = "Kitchen Counter Shutters" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/dark, +/area/station/service/kitchen) +"aFW" = ( +/obj/machinery/computer/atmos_control, +/obj/machinery/light/directional/north, +/obj/machinery/light_switch/directional/north, +/obj/machinery/camera/autoname/directional/north, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/office) +"aGc" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/science/xenobiology) +"aGj" = ( +/obj/structure/chair/sofa/bench/right{ + pixel_y = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/red/filled/line{ + color = "#DE3A3A"; + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/line, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/brig) +"aGq" = ( +/obj/machinery/bookbinder, +/obj/structure/extinguisher_cabinet/directional/south, +/turf/open/floor/wood, +/area/station/service/library/printer) +"aGy" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/closet/crate/coffin, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/chapel) +"aGE" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/structure/sign/painting/library{ + pixel_y = 32 + }, +/obj/machinery/light/directional/north, +/obj/machinery/vending/games, +/turf/open/floor/wood, +/area/station/medical/patients_rooms) +"aGF" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/security/courtroom) +"aGI" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/science/auxlab/firing_range) +"aGL" = ( +/obj/structure/window/spawner/directional/north, +/obj/machinery/growing/tray, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics/garden) +"aGN" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/item/organ/internal/eyes, +/obj/item/pen{ + pixel_x = 5; + pixel_y = 8 + }, +/turf/open/floor/iron, +/area/station/maintenance/abandon_holding_cell) +"aGO" = ( +/obj/effect/turf_decal/trimline/purple/filled/corner{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/science) +"aGR" = ( +/obj/structure/table/wood/fancy/orange, +/obj/item/clipboard, +/obj/item/paper/monitorkey, +/obj/item/toy/figure/ce, +/obj/structure/cable, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/ce) +"aGS" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/secondary/command) +"aGV" = ( +/obj/structure/table/reinforced, +/obj/item/folder/blue{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/folder/blue, +/obj/item/aicard, +/obj/effect/turf_decal/tile/dark_blue/anticorner/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"aHd" = ( +/turf/closed/wall/rust, +/area/station/maintenance/department/security/greater) +"aHh" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain/private) +"aHi" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/effect/turf_decal/delivery, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/science/robotics) +"aHo" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"aHw" = ( +/obj/effect/turf_decal/stripes, +/obj/structure/table/glass, +/obj/item/reagent_containers/cup/beaker/large{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/reagent_containers/cup/beaker{ + pixel_x = 8; + pixel_y = 2 + }, +/obj/item/reagent_containers/dropper, +/turf/open/floor/iron, +/area/station/science/xenobiology) +"aHx" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/light/directional/west, +/obj/machinery/status_display/evac/directional/west, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat_interior) +"aHy" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood/parquet, +/area/station/security/detectives_office) +"aHz" = ( +/obj/structure/closet/l3closet/janitor, +/obj/item/grenade/chem_grenade/cleaner, +/obj/item/grenade/chem_grenade/cleaner, +/obj/item/grenade/chem_grenade/cleaner, +/obj/item/grenade/chem_grenade/cleaner, +/obj/item/grenade/chem_grenade/cleaner, +/obj/item/grenade/chem_grenade/cleaner, +/obj/item/storage/belt/janitor, +/obj/item/storage/belt/janitor, +/obj/item/clothing/shoes/galoshes/dry, +/obj/item/clothing/shoes/galoshes, +/obj/item/holosign_creator/janibarrier, +/obj/item/holosign_creator/janibarrier, +/obj/effect/turf_decal/siding/purple, +/turf/open/floor/iron/dark, +/area/station/service/janitor) +"aHJ" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Medbay Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/medical/surgery, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"aHN" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/green/visible{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/pumproom) +"aHO" = ( +/obj/structure/table/glass, +/obj/item/folder/white{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/folder, +/turf/open/floor/carpet, +/area/station/science/ordnance/office) +"aHS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"aHV" = ( +/obj/machinery/atmospherics/components/unary/cryo_cell, +/turf/open/floor/iron, +/area/station/medical/cryo) +"aHY" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/ordnance/storage) +"aHZ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"aIe" = ( +/obj/structure/railing/wooden_fencing{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/common/pool) +"aIi" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"aIv" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Science Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/research, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/maintenance/department/science/xenobiology) +"aIA" = ( +/obj/effect/landmark/start/virologist, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/machinery/duct, +/turf/open/floor/carpet/green, +/area/station/medical/virology/isolation) +"aIC" = ( +/turf/closed/wall/r_wall, +/area/station/maintenance/eva_shed/starboard) +"aIF" = ( +/obj/structure/table, +/obj/item/wrench, +/turf/open/floor/iron, +/area/station/security/execution/transfer) +"aIH" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/structure/sign/nanotrasen{ + pixel_x = 32 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/central/aft) +"aIS" = ( +/obj/structure/table/glass, +/obj/item/melee/flyswatter, +/obj/item/clothing/suit/utility/beekeeper_suit, +/obj/item/clothing/head/utility/beekeeper_head, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/service/hydroponics) +"aIV" = ( +/obj/structure/chair/stool/bar/directional/north, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen/diner) +"aIY" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/storage) +"aJc" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/obj/machinery/camera/directional/east{ + c_tag = "Medbay - Aft CEntral"; + name = "medbay camera"; + network = list("ss13","medbay") + }, +/obj/structure/noticeboard/cmo{ + dir = 4; + pixel_x = 32 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"aJl" = ( +/turf/open/floor/carpet, +/area/station/common/tailoring) +"aJo" = ( +/obj/structure/tank_dispenser/oxygen, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/dark/side{ + dir = 9 + }, +/area/station/security/lockers) +"aJr" = ( +/turf/closed/wall, +/area/station/maintenance/abandon_holding_cell) +"aJv" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron/white/corner{ + dir = 1 + }, +/area/station/command/heads_quarters/ce) +"aJC" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high, +/obj/machinery/newscaster/directional/west, +/obj/structure/extinguisher_cabinet/directional/south, +/turf/open/floor/iron, +/area/station/command/teleporter) +"aJG" = ( +/obj/item/kirbyplants/random, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/carpet, +/area/station/security/courtroom) +"aJL" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"aJN" = ( +/obj/structure/chair/sofa/bench{ + dir = 4; + pixel_x = -5 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/commons/dorms) +"aJU" = ( +/obj/machinery/vending/coffee, +/obj/effect/turf_decal/siding/thinplating_new, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/service) +"aJW" = ( +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/turf/open/floor/noslip, +/area/station/maintenance/gag_room) +"aKb" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/white, +/area/station/science/genetics) +"aKc" = ( +/obj/structure/table, +/obj/item/folder/yellow, +/obj/item/pen, +/turf/open/floor/plating, +/area/station/maintenance/solars/starboard/aft) +"aKh" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable/layer1, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"aKn" = ( +/obj/structure/railing, +/obj/machinery/door/firedoor/border_only, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark/corner, +/area/station/hallway/primary/upper) +"aKo" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/flowers_yw, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/curtain/cloth/fancy/mechanical{ + icon_state = "bounty-open"; + icon_type = "bounty"; + id = "prisonlibrarycurtain3"; + name = "curtain" + }, +/turf/open/floor/grass, +/area/station/command/heads_quarters/nt_rep) +"aKq" = ( +/turf/closed/wall, +/area/station/maintenance/law) +"aKr" = ( +/obj/machinery/button/door{ + id = "aux_base_shutters"; + name = "Public Shutters Control"; + pixel_x = 24; + req_access = list("aux_base") + }, +/turf/open/floor/iron, +/area/station/construction/mining/aux_base) +"aKt" = ( +/obj/structure/table, +/obj/item/food/cubannachos, +/obj/item/storage/medkit/regular, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/common/wrestling/arena) +"aKz" = ( +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/iron/stairs/right{ + dir = 4 + }, +/area/station/hallway/primary/starboard) +"aKE" = ( +/obj/item/kirbyplants/organic/plant22, +/turf/open/floor/wood, +/area/station/service/library) +"aKI" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/science/research) +"aKU" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/public/glass{ + name = "East RnD Wing" + }, +/turf/open/floor/iron, +/area/station/science/research) +"aLa" = ( +/obj/structure/closet/crate, +/obj/effect/turf_decal/bot, +/obj/machinery/light/small/directional/north, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/noslip, +/area/station/maintenance/gag_room) +"aLh" = ( +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/science/ordnance/testlab) +"aLo" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Detective's Office Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/security/detective, +/turf/open/floor/plating, +/area/station/security/courtroom) +"aLr" = ( +/obj/structure/closet/secure_closet{ + name = "contraband locker"; + req_access = list("armory") + }, +/obj/effect/spawner/random/maintenance/three, +/obj/effect/spawner/random/contraband/armory, +/obj/effect/turf_decal/bot, +/obj/effect/spawner/random/contraband/armory, +/obj/effect/spawner/random/contraband/armory, +/obj/effect/spawner/random/contraband/armory, +/obj/effect/spawner/random/contraband/armory, +/obj/effect/turf_decal/trimline/red/line{ + dir = 10 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark/corner{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured_corner{ + dir = 4 + }, +/area/station/ai_monitored/security/armory) +"aLu" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/filingcabinet/medical, +/turf/open/floor/carpet/blue, +/area/station/medical/exam_room) +"aLC" = ( +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/cell/high, +/obj/item/inducer, +/obj/item/inducer, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva/upper) +"aLP" = ( +/obj/structure/cable, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/structure/sign/poster/random/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"aLS" = ( +/obj/structure/chair, +/obj/machinery/light/directional/north, +/obj/effect/landmark/start/assistant, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/turf_decal/siding/thinplating/dark/corner, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 9 + }, +/turf/open/floor/iron/dark/textured_corner, +/area/station/common/night_club) +"aLU" = ( +/obj/effect/spawner/random/trash/grille_or_waste, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"aLY" = ( +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"aMc" = ( +/obj/structure/closet/secure_closet/personal/patient, +/obj/effect/turf_decal/bot, +/obj/structure/window/spawner/directional/north, +/obj/effect/turf_decal/siding/thinplating_new, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/medical/medbay/central) +"aMe" = ( +/obj/machinery/power/port_gen/pacman/pre_loaded, +/obj/machinery/light/small/directional/north, +/turf/open/floor/iron, +/area/station/maintenance/central) +"aMg" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/security/courtroom) +"aMl" = ( +/obj/item/kirbyplants/random, +/obj/machinery/camera/autoname/directional/east, +/turf/open/floor/wood, +/area/station/service/barber) +"aMt" = ( +/turf/closed/wall/r_wall, +/area/station/medical/chemistry) +"aMu" = ( +/obj/structure/window/spawner/directional/south, +/obj/structure/curtain, +/obj/structure/table/glass, +/obj/item/reagent_containers/pill/patch/aiuri{ + pixel_x = 4 + }, +/obj/item/reagent_containers/medigel/aiuri{ + pixel_x = -6 + }, +/turf/open/floor/iron, +/area/station/medical/patients_rooms) +"aMw" = ( +/obj/item/kirbyplants/organic/plant21, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/chapel, +/area/station/service/chapel) +"aMJ" = ( +/obj/item/kirbyplants/random, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron/dark, +/area/station/engineering/main) +"aML" = ( +/obj/structure/window/reinforced/plasma/spawner/directional/north, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"aMM" = ( +/obj/machinery/shower/directional/east, +/obj/structure/drain, +/turf/open/floor/iron/freezer, +/area/station/common/pool) +"aMQ" = ( +/obj/effect/landmark/start/hangover, +/turf/open/misc/beach/sand, +/area/station/hallway/primary/central) +"aMR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/maintenance/aux_eva) +"aMU" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood/parquet, +/area/station/science/breakroom) +"aNd" = ( +/obj/structure/table/wood, +/obj/item/folder, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/wood, +/area/station/maintenance/abandon_office) +"aNm" = ( +/turf/closed/wall, +/area/station/maintenance/port/upper) +"aNr" = ( +/obj/structure/dresser, +/obj/item/toy/dummy{ + pixel_x = -1; + pixel_y = 4 + }, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/iron, +/area/station/service/theater) +"aNt" = ( +/obj/structure/table, +/obj/item/storage/box/donkpockets{ + pixel_x = -3; + pixel_y = 5 + }, +/obj/item/reagent_containers/cup/glass/coffee{ + pixel_x = 13; + pixel_y = 8 + }, +/turf/open/floor/plating, +/area/station/cargo/storage) +"aNv" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating/airless, +/area/station/maintenance/port/upper) +"aNy" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"aND" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/science/research) +"aNI" = ( +/obj/item/cigbutt, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/pool_maintenance) +"aNO" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/machinery/newscaster/directional/east, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/port) +"aNS" = ( +/obj/machinery/power/shuttle_engine/huge, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"aNT" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/table, +/obj/item/folder/red, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/dark/side, +/area/station/security/checkpoint/escape) +"aNU" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/power/emitter, +/obj/effect/turf_decal/stripes{ + dir = 6 + }, +/turf/open/floor/iron/dark/side{ + dir = 6 + }, +/area/station/engineering/storage) +"aNX" = ( +/obj/item/trash/candle, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_port) +"aOd" = ( +/obj/machinery/smartfridge/chemistry/virology/preloaded, +/obj/machinery/light/directional/east, +/obj/structure/reagent_dispensers/wall/virusfood/directional/east, +/obj/effect/turf_decal/trimline/green/filled/end{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/virology) +"aOe" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron, +/area/station/science/robotics) +"aOh" = ( +/obj/item/kirbyplants/random, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/commons/fitness/recreation) +"aOj" = ( +/obj/item/cigbutt, +/obj/effect/spawner/random/trash/moisture_trap, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"aOv" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron, +/area/station/commons/dorms) +"aOC" = ( +/obj/structure/table/wood, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/item/flashlight/lamp/green{ + pixel_x = 12; + pixel_y = 7 + }, +/obj/item/paper_bin{ + pixel_y = 3 + }, +/obj/item/pen/fountain/captain{ + pixel_y = 4 + }, +/obj/machinery/newscaster/directional/north, +/turf/open/floor/carpet/blue, +/area/station/command/heads_quarters/captain/private) +"aOH" = ( +/obj/effect/turf_decal/stripes, +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/machinery/light/small/directional/south, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/engine, +/area/station/command/heads_quarters/rd) +"aOI" = ( +/mob/living/basic/mouse/gray, +/obj/item/food/cheese/wedge, +/turf/open/floor/grass, +/area/station/maintenance/department/medical) +"aOJ" = ( +/obj/structure/cable, +/obj/machinery/holopad, +/obj/effect/turf_decal/trimline/blue/filled/warning, +/turf/open/floor/iron/white, +/area/station/medical/cryo) +"aOT" = ( +/obj/effect/turf_decal/bot_white/right, +/turf/open/floor/iron/dark/small, +/area/station/cargo/miningdock) +"aOU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/station/maintenance/department/security/prison_upper) +"aOY" = ( +/obj/structure/chair/office/light, +/obj/effect/turf_decal/siding/purple{ + dir = 1 + }, +/obj/effect/landmark/start/research_director, +/turf/open/floor/iron, +/area/station/command/heads_quarters/rd) +"aPj" = ( +/obj/machinery/door/airlock{ + name = "Broom Closet" + }, +/turf/open/floor/iron, +/area/station/command/heads_quarters/nt_rep) +"aPk" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable, +/obj/machinery/light/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/commons/dorms) +"aPq" = ( +/obj/machinery/washing_machine, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/obj/effect/turf_decal/tile/blue/opposingcorners{ + dir = 8 + }, +/turf/open/floor/iron/cafeteria, +/area/station/commons/locker) +"aPt" = ( +/turf/closed/wall/r_wall, +/area/station/maintenance/department/engineering/lesser) +"aPu" = ( +/obj/structure/table/glass, +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/iron/white, +/area/station/science/research) +"aPw" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"aPx" = ( +/obj/effect/turf_decal/tile/purple/half{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron/white/side{ + dir = 4 + }, +/area/station/science/xenobiology) +"aPz" = ( +/obj/effect/turf_decal/vg_decals/numbers/six, +/obj/effect/landmark/start/prisoner, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/security/prison/safe) +"aPB" = ( +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/landmark/start/hangover/closet, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/hallway/primary/starboard) +"aPM" = ( +/obj/structure/table, +/obj/effect/turf_decal/bot, +/obj/item/book/manual/wiki/medicine, +/obj/item/clothing/neck/stethoscope, +/obj/item/wrench/medical, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 5 + }, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/iron/white, +/area/station/medical/cryo) +"aPS" = ( +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"aPU" = ( +/obj/effect/turf_decal/delivery, +/obj/item/kirbyplants/random, +/turf/open/floor/iron, +/area/station/science/explab) +"aPZ" = ( +/obj/structure/window/spawner/directional/east, +/obj/structure/window/spawner/directional/west, +/obj/structure/window/spawner/directional/south, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/flowers_br, +/turf/open/floor/grass, +/area/station/service/hydroponics) +"aQa" = ( +/obj/item/stack/sheet/cardboard, +/obj/machinery/light/small/broken/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"aQc" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/flora/bush/large, +/turf/open/floor/grass, +/area/station/medical/aslyum) +"aQd" = ( +/obj/machinery/door/airlock/highsecurity{ + name = "Secure Storage" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/ce, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden, +/turf/open/floor/iron, +/area/station/engineering/storage) +"aQk" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"aQo" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/structure/chair/sofa/bench/right{ + dir = 4; + layer = 2.8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only, +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/railing, +/turf/open/floor/iron/dark/side{ + dir = 10 + }, +/area/station/commons/dorms) +"aQp" = ( +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/corner, +/area/station/maintenance/department/engineering/engine_aft_starboard) +"aQq" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/machinery/computer/atmos_alert{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/hfr_room) +"aQr" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark/textured_large, +/area/station/ai_monitored/security/armory) +"aQu" = ( +/obj/structure/filingcabinet/chestdrawer/wheeled, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/iron/dark, +/area/station/engineering/transit_tube) +"aQw" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/field/generator, +/turf/open/floor/iron, +/area/station/engineering/storage) +"aQD" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/door/airlock/public/glass{ + name = "Dormitory Hallway" + }, +/turf/open/floor/iron, +/area/station/commons/dorms) +"aQO" = ( +/obj/structure/easel, +/obj/item/canvas/twentythree_twentythree{ + pixel_x = 3 + }, +/turf/open/floor/wood, +/area/station/maintenance/abandon_art_studio) +"aQY" = ( +/turf/closed/wall, +/area/station/medical/psychology) +"aRk" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/light/directional/east, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/structure/sign/poster/contraband/robust_softdrinks/directional/east, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"aRq" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/chair/stool/directional/west, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/station/maintenance/abandon_diner) +"aRB" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"aRD" = ( +/obj/structure/liquid_pump, +/obj/structure/railing, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) +"aSc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"aSf" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/commons/dorms) +"aSh" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing, +/turf/open/openspace, +/area/station/hallway/secondary/command) +"aSk" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/effect/turf_decal/delivery, +/obj/structure/sign/warning/vacuum/external/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"aSm" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/curtain/cloth/fancy/mechanical{ + icon_state = "bounty-open"; + icon_type = "bounty"; + id = "prisoncell7"; + name = "curtain" + }, +/turf/open/floor/plating, +/area/station/security/prison/safe) +"aSo" = ( +/obj/machinery/light/floor/has_bulb, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/storage) +"aSr" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/external, +/turf/open/floor/plating, +/area/station/maintenance/department/security/upper) +"aSt" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/door/poddoor/preopen{ + id = "surgery"; + name = "Surgery Shutter" + }, +/turf/open/floor/plating, +/area/station/medical/surgery) +"aSu" = ( +/obj/structure/chair/office, +/obj/effect/landmark/start/detective, +/turf/open/floor/carpet, +/area/station/security/detectives_office) +"aSz" = ( +/obj/machinery/seed_extractor, +/obj/effect/turf_decal/siding/blue/corner, +/turf/open/floor/iron/dark/textured_edge, +/area/station/security/prison/garden) +"aSB" = ( +/obj/effect/turf_decal/stripes/white/corner{ + dir = 1 + }, +/turf/open/floor/iron/shuttle/evac/airless, +/area/space/nearstation) +"aSG" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Plasma injector" + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron, +/area/station/engineering/atmos/test_chambers) +"aSL" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"aSV" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/port) +"aSZ" = ( +/obj/item/stack/cable_coil, +/turf/open/floor/plating, +/area/station/security/execution/transfer) +"aTe" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/pumproom) +"aTg" = ( +/obj/structure/bodycontainer/morgue, +/obj/effect/turf_decal/bot_white, +/obj/structure/window/spawner/directional/north, +/turf/open/floor/iron/dark/small, +/area/station/medical/morgue) +"aTj" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder{ + pixel_x = -5; + pixel_y = 9 + }, +/obj/item/kitchen/rollingpin, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"aTo" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/mob/living/simple_animal/bot/mulebot, +/turf/open/floor/iron/dark, +/area/station/cargo/warehouse) +"aTu" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/wood, +/area/station/hallway/secondary/service) +"aTw" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/dorms) +"aTD" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/security/courtroom) +"aTJ" = ( +/obj/structure/flora/bush/fullgrass, +/obj/structure/flora/bush/sunny, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/grass, +/area/station/science/genetics) +"aTK" = ( +/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/floor/iron, +/area/station/engineering/storage) +"aTP" = ( +/obj/effect/decal/cleanable/blood/gibs/up, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) +"aTT" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"aTU" = ( +/mob/living/basic/pig, +/obj/structure/flora/bush/sparsegrass{ + pixel_x = -6 + }, +/turf/open/floor/grass, +/area/station/common/night_club) +"aTW" = ( +/obj/structure/table/glass, +/obj/effect/turf_decal/tile/purple/half{ + dir = 1 + }, +/turf/open/floor/iron/white/side{ + dir = 1 + }, +/area/station/science/research) +"aTX" = ( +/obj/structure/window/spawner/directional/south, +/obj/structure/curtain, +/obj/structure/table/glass, +/obj/item/food/grown/banana/bunch, +/turf/open/floor/iron, +/area/station/medical/patients_rooms) +"aUe" = ( +/obj/effect/turf_decal/delivery/red, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"aUf" = ( +/obj/effect/turf_decal/bot, +/obj/structure/reagent_dispensers/water_cooler, +/obj/machinery/status_display/evac/directional/west, +/turf/open/floor/iron/dark, +/area/station/commons/fitness) +"aUg" = ( +/obj/structure/chair/stool/bar/directional{ + dir = 1 + }, +/obj/effect/turf_decal/tile/bar/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/security/prison/mess) +"aUj" = ( +/obj/machinery/holopad, +/obj/structure/cable, +/turf/open/floor/wood/tile, +/area/station/service/barber) +"aUr" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/machinery/light/directional/west, +/turf/open/floor/iron/shuttle/evac/airless, +/area/space/nearstation) +"aUy" = ( +/turf/closed/wall, +/area/station/service/hydroponics/garden) +"aUF" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/command/gateway) +"aUI" = ( +/obj/machinery/vending/boozeomat, +/turf/closed/wall/r_wall, +/area/station/command/heads_quarters/nt_rep) +"aUL" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) +"aUO" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/service{ + name = "Bar" + }, +/obj/effect/mapping_helpers/airlock/access/all/service/bar, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/service/bar/backroom) +"aUW" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/machinery/conveyor{ + dir = 4; + id = "Luggagebelt" + }, +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/plating, +/area/station/security/checkpoint/customs) +"aUX" = ( +/obj/effect/turf_decal/bot_white, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/arrows/white{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/entry) +"aUY" = ( +/turf/open/floor/iron, +/area/station/maintenance/port/upper) +"aVg" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"aVm" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plating, +/area/station/service/power_station) +"aVo" = ( +/obj/machinery/power/shuttle_engine/propulsion/burst, +/turf/open/floor/engine/hull/reinforced, +/area/space/nearstation) +"aVp" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/table/reinforced, +/obj/item/clothing/glasses/meson, +/turf/open/floor/iron/dark, +/area/station/engineering/gravity_generator) +"aVs" = ( +/turf/closed/wall/mineral/titanium, +/area/station/science/ordnance/bomb) +"aVv" = ( +/obj/structure/sink/directional/east, +/turf/open/floor/iron/kitchen{ + dir = 1 + }, +/area/station/security/prison/upper) +"aVy" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"aVB" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/security/range) +"aVH" = ( +/obj/structure/flora/bush/sparsegrass, +/obj/structure/flora/rock, +/turf/open/water/overlay, +/area/station/hallway/primary/central) +"aVI" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"aVJ" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/station/maintenance/law) +"aVL" = ( +/obj/structure/girder, +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"aVN" = ( +/obj/machinery/light/directional/west, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/primary/central/aft) +"aVO" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "Frontleftfloor2" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/external, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"aVT" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hallup5"; + location = "hallup4" + }, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/hallway/primary/upper) +"aWh" = ( +/obj/structure/chair/pew/left{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium, +/area/station/maintenance/cult_chapel_maint) +"aWi" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/trash_pile, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/wood, +/area/station/service/hydroponics/garden/abandoned) +"aWj" = ( +/obj/structure/bookcase/random/fiction, +/turf/open/floor/wood, +/area/station/security/prison/rec) +"aWp" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/break_room) +"aWr" = ( +/obj/machinery/door/airlock/medical/glass{ + name = "Cryogenics" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/medical/general, +/obj/effect/turf_decal/tile/blue/fourcorners, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) +"aWA" = ( +/obj/structure/cable, +/obj/effect/landmark/start/hangover, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/service/bar) +"aWD" = ( +/obj/item/flashlight/lamp/green{ + pixel_y = 6 + }, +/obj/machinery/light/directional/south, +/obj/structure/table/wood/fancy/red, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/commons/dorms/room6) +"aWL" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/iron/shuttle/arrivals/airless, +/area/space/nearstation) +"aWM" = ( +/obj/effect/turf_decal/delivery, +/turf/open/floor/iron/large, +/area/station/cargo/lobby) +"aWU" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"aXa" = ( +/mob/living/basic/mouse/gray{ + health = 0 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"aXb" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/hallway/primary/central) +"aXc" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 9 + }, +/obj/machinery/computer/department_orders/science{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/science/lab) +"aXj" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_starboard) +"aXk" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/gloves/latex, +/obj/item/clothing/gloves/latex, +/obj/item/clothing/mask/surgical, +/obj/item/clothing/mask/surgical, +/obj/item/reagent_containers/spray/cleaner, +/turf/open/floor/iron, +/area/station/medical/surgery) +"aXm" = ( +/obj/machinery/power/port_gen/pacman/pre_loaded, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"aXn" = ( +/obj/item/cigbutt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"aXo" = ( +/turf/closed/wall, +/area/station/command/heads_quarters/nt_rep) +"aXq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"aXs" = ( +/obj/effect/spawner/random/structure/table_or_rack, +/obj/machinery/airalarm/directional/west, +/obj/effect/spawner/random/maintenance, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/science/tele_sci) +"aXx" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 5 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/medical/surgery) +"aXB" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) +"aXD" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/engineering/atmos) +"aXG" = ( +/obj/structure/grille, +/obj/structure/barricade/wooden, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"aXM" = ( +/turf/closed/wall, +/area/station/security/power_station) +"aXP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/reagent_dispensers/plumbed{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"aXQ" = ( +/turf/open/floor/circuit/red, +/area/station/science/robotics/mechbay) +"aXS" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain) +"aXW" = ( +/obj/machinery/photocopier, +/obj/machinery/keycard_auth/directional/south, +/turf/open/floor/carpet/blue, +/area/station/command/heads_quarters/cmo) +"aXX" = ( +/obj/structure/chair/comfy/brown{ + dir = 4; + name = "Judge" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/item/clothing/suit/costume/judgerobe, +/obj/item/clothing/head/costume/powdered_wig{ + pixel_y = 11 + }, +/turf/open/floor/wood, +/area/station/security/courtroom) +"aYi" = ( +/obj/machinery/door/airlock/external{ + name = "Supply Dock Airlock" + }, +/obj/effect/mapping_helpers/airlock/access/all/supply/general, +/turf/open/floor/iron, +/area/station/cargo/storage) +"aYj" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"aYl" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/recharger{ + pixel_x = 8 + }, +/obj/item/folder/red{ + pixel_x = -5 + }, +/obj/item/pen{ + pixel_x = -5 + }, +/obj/structure/cable, +/obj/machinery/door/window/left/directional/south{ + name = "Warden's Desk" + }, +/obj/machinery/door/window/brigdoor/right/directional/north{ + name = "Warden's Desk"; + req_access = list("armory") + }, +/turf/open/floor/iron/dark, +/area/station/security/warden) +"aYz" = ( +/obj/machinery/light/small/directional/south, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"aYB" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/holopad, +/turf/open/floor/carpet, +/area/station/service/bar/atrium) +"aYM" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/effect/turf_decal/stripes, +/turf/open/floor/iron, +/area/station/science/research) +"aYN" = ( +/turf/open/floor/iron, +/area/station/security/prison/safe) +"aYR" = ( +/obj/structure/sink/directional/west, +/obj/machinery/camera/directional/east{ + c_tag = " Prison - Cell 4"; + network = list("ss13","prison") + }, +/obj/effect/landmark/start/prisoner, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/security/prison/safe) +"aYS" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/station/command/captain_dining) +"aYU" = ( +/obj/effect/turf_decal/stripes, +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/pumproom) +"aYY" = ( +/turf/closed/wall/rust, +/area/station/maintenance/pool_maintenance) +"aYZ" = ( +/obj/effect/decal/cleanable/oil/slippery, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"aZe" = ( +/obj/structure/table/wood, +/obj/item/lipstick/random{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/lipstick/random{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/lipstick/random, +/obj/machinery/requests_console/directional/west{ + department = "Theater"; + name = "Theater Requests Console" + }, +/turf/open/floor/wood, +/area/station/service/theater) +"aZh" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"aZm" = ( +/obj/machinery/door/airlock{ + name = "Store Counter" + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/common/gaskiosk) +"aZo" = ( +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/line, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/prison/upper) +"aZq" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/airalarm/directional/north, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/commons/dorms) +"aZx" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"aZz" = ( +/obj/machinery/air_sensor/incinerator_tank{ + pixel_x = 33; + pixel_y = -32 + }, +/obj/machinery/air_sensor/incinerator_tank{ + pixel_y = -32 + }, +/turf/open/floor/engine/vacuum, +/area/station/maintenance/disposal/incinerator) +"aZA" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/turf/open/space/basic, +/area/space/nearstation) +"aZG" = ( +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/obj/structure/mannequin/plastic{ + dir = 1 + }, +/turf/open/floor/wood/parquet, +/area/station/common/tailoring) +"aZM" = ( +/obj/machinery/airalarm/directional/south, +/obj/structure/extinguisher_cabinet/directional/west, +/obj/machinery/camera/directional/south{ + c_tag = "Bridge - Port"; + name = "command camera" + }, +/obj/structure/cable, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"aZP" = ( +/obj/structure/table/glass, +/obj/machinery/cell_charger, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 9 + }, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) +"aZR" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/table/reinforced, +/obj/effect/turf_decal/bot, +/obj/item/stack/rods/fifty, +/obj/item/stack/rods/fifty, +/obj/item/stack/cable_coil, +/obj/item/stack/cable_coil, +/obj/item/stack/cable_coil, +/turf/open/floor/iron/dark, +/area/station/commons/storage/primary) +"bac" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/science/research) +"bad" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/green/visible, +/obj/effect/spawner/structure/window/reinforced/plasma, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) +"baj" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Teleport Access" + }, +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/command/teleporter, +/turf/open/floor/iron, +/area/station/command/gateway) +"bao" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/door/airlock/glass{ + name = "Courtroom Lobby" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/navigate_destination, +/turf/open/floor/iron/dark, +/area/station/security/courtroom) +"bap" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/security/office) +"baw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table/wood, +/obj/item/clothing/gloves/color/white, +/obj/item/clothing/head/costume/rabbitears, +/obj/machinery/light/small/broken/directional/west, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/maintenance/clown_chamber) +"baD" = ( +/obj/structure/closet/crate/freezer, +/obj/item/food/meat/slab, +/obj/item/food/meat/slab, +/obj/item/food/meat/slab, +/obj/item/food/meat/slab, +/obj/item/food/raw_sausage, +/obj/item/food/raw_sausage, +/obj/item/food/raw_sausage, +/obj/item/food/raw_patty, +/obj/item/food/raw_patty, +/obj/item/food/raw_patty, +/obj/item/food/raw_patty, +/turf/open/misc/beach/sand, +/area/station/hallway/primary/central) +"baE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"baG" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/sign/poster/random/directional/south, +/turf/open/floor/iron, +/area/station/commons/dorms) +"baI" = ( +/obj/machinery/light/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/common/wrestling/arena) +"baQ" = ( +/obj/effect/spawner/random/trash/mess, +/turf/open/floor/plating, +/area/station/maintenance/central) +"bba" = ( +/obj/structure/closet/crate, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"bbi" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/security/upper) +"bbj" = ( +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/maintenance/department/engineering/engine_aft_port) +"bbm" = ( +/turf/closed/wall/r_wall, +/area/station/security/power_station) +"bbn" = ( +/obj/structure/filingcabinet/security, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/security/interrogation) +"bbr" = ( +/obj/effect/turf_decal/siding/thinplating/dark, +/turf/open/floor/iron/dark/herringbone, +/area/station/common/night_club/back_stage) +"bbu" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"bbz" = ( +/obj/machinery/computer/slot_machine, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/station/maintenance/rus_gambling) +"bbE" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/security/detectives_office) +"bbF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/spawner/random/trash/moisture, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"bbG" = ( +/obj/structure/table/reinforced, +/obj/item/binoculars, +/obj/effect/turf_decal/tile/dark_blue/half/contrasted, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"bbH" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"bbS" = ( +/obj/machinery/door/window/brigdoor/left/directional/west{ + name = "Firing Range"; + dir = 1 + }, +/turf/open/floor/plating, +/area/station/science/auxlab/firing_range) +"bbX" = ( +/obj/effect/turf_decal/nova_decals/departments/bridge{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/secondary/command) +"bcb" = ( +/obj/machinery/conveyor{ + dir = 9; + id = "Luggagebelt" + }, +/turf/open/floor/plating, +/area/station/security/checkpoint) +"bcc" = ( +/obj/machinery/door/airlock/bathroom{ + name = "Restroom" + }, +/obj/machinery/duct, +/turf/open/floor/iron/freezer, +/area/station/command/heads_quarters/cmo) +"bcd" = ( +/obj/structure/table, +/obj/item/surgicaldrill{ + pixel_y = 7 + }, +/obj/item/scalpel{ + pixel_y = 8 + }, +/obj/item/circular_saw, +/turf/open/floor/iron/dark, +/area/station/maintenance/department/security/prison_upper) +"bcl" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/effect/spawner/random/entertainment/toy, +/turf/open/floor/plating/reinforced{ + initial_gas_mix = "TEMP=2.7" + }, +/area/station/science/ordnance/bomb) +"bco" = ( +/obj/structure/fluff/metalpole/end/left{ + dir = 4 + }, +/obj/structure/fluff/metalpole{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) +"bcu" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/supply/vault, +/obj/machinery/door/airlock/public/glass{ + name = "Vault Entrance" + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/nuke_storage) +"bcx" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/machinery/light/directional/west, +/obj/machinery/camera/directional/west{ + c_tag = "Medbay - Port Psych Ward"; + dir = 10; + name = "medbay camera"; + network = list("ss13","medbay") + }, +/turf/open/floor/iron/white, +/area/station/medical/aslyum) +"bcy" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/engineering/storage_shared) +"bcA" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/structure/sign/departments/medbay/alt/directional/east, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"bcB" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable, +/obj/machinery/light/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/dorms) +"bcG" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/port) +"bcH" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/iron/smooth_large, +/area/station/command/secure_bunker) +"bcK" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/commons/dorms) +"bcN" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/commons/dorms) +"bcQ" = ( +/turf/closed/wall/r_wall, +/area/station/command/heads_quarters/cmo) +"bcV" = ( +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/engineering/general, +/obj/machinery/door/airlock/engineering/glass{ + name = "Supermatter Coolers" + }, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/engineering/supermatter/room) +"bcY" = ( +/obj/structure/window/spawner/directional/east, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/flowers_pp, +/turf/open/floor/grass, +/area/station/hallway/primary/port) +"bda" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/flora/bush/leafy, +/obj/structure/flora/bush/reed, +/turf/open/floor/grass, +/area/station/science/research) +"bdf" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"bdh" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/cyan/visible{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/engineering/atmos) +"bdo" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/chair/office, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet, +/area/station/maintenance/abandon_office) +"bdr" = ( +/turf/open/floor/iron/stairs/left{ + dir = 1 + }, +/area/station/hallway/secondary/command) +"bdt" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/security/execution/transfer) +"bdu" = ( +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/carpet/green, +/area/station/command/heads_quarters/nt_rep) +"bdx" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/science/research) +"bdF" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"bdH" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/machinery/newscaster/directional/north, +/obj/structure/disposalpipe/trunk{ + dir = 2 + }, +/obj/machinery/camera/directional/north{ + c_tag = "Medbay - Break Room"; + name = "medbay camera"; + network = list("ss13","medbay") + }, +/turf/open/floor/iron/white, +/area/station/medical/break_room) +"bdJ" = ( +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible/layer2, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) +"bdM" = ( +/obj/machinery/door/firedoor, +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "chemistbot"; + name = "Chemistry Side Shutters" + }, +/obj/item/folder/white, +/obj/machinery/door/window/left/directional/west{ + name = "Chemistry Desk"; + req_access = list("pharmacy") + }, +/obj/machinery/door/window/left/directional/east{ + name = "Chemistry Desk" + }, +/turf/open/floor/iron/dark, +/area/station/medical/pharmacy) +"bdO" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/trimline/purple/filled, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"bdS" = ( +/turf/closed/wall, +/area/station/command/heads_quarters/rd) +"bdW" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/chapel) +"bec" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/obj/structure/cable, +/obj/effect/landmark/start/virologist, +/turf/open/floor/iron, +/area/station/medical/virology/isolation) +"ben" = ( +/turf/closed/wall/r_wall, +/area/station/medical/virology) +"ber" = ( +/obj/structure/grille, +/obj/structure/barricade/wooden, +/turf/open/floor/plating, +/area/station/maintenance/pool_maintenance) +"bet" = ( +/obj/structure/closet/secure_closet/cytology, +/obj/effect/turf_decal/stripes/white/box, +/turf/open/floor/iron/dark, +/area/station/science/cytology) +"beu" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"bex" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/obj/machinery/door/airlock/atmos/glass{ + name = "Atmospherics" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/catwalk_floor/iron, +/area/station/engineering/atmos/office) +"beF" = ( +/obj/structure/table/wood, +/obj/item/paper_bin/carbon{ + pixel_x = -4; + pixel_y = 3 + }, +/obj/item/stamp{ + pixel_x = -3; + pixel_y = 9 + }, +/obj/item/stamp/hop{ + pixel_x = -3; + pixel_y = 6 + }, +/obj/item/stamp/denied{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/structure/cable, +/obj/machinery/recharger{ + pixel_x = 8; + pixel_y = 5 + }, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/hop) +"beI" = ( +/obj/structure/lattice, +/obj/structure/billboard/nanotrasen, +/turf/open/space/openspace, +/area/space/nearstation) +"beQ" = ( +/obj/effect/turf_decal/trimline/purple/filled/line, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/plumbing/ooze_compressor, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"beS" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/effect/spawner/random/maintenance, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"beZ" = ( +/obj/item/beacon, +/turf/open/indestructible{ + base_icon_state = "reinf_glass"; + icon = 'icons/turf/floors/reinf_glass.dmi'; + icon_state = "reinf_glass-0"; + name = "Ultra Reinforced Glass Floor" + }, +/area/station/ai_monitored/turret_protected/aisat_interior) +"bfo" = ( +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/station/command/heads_quarters/rd) +"bfq" = ( +/obj/structure/table, +/obj/item/stack/package_wrap, +/obj/item/hand_labeler, +/obj/machinery/newscaster/directional/north, +/obj/effect/turf_decal/tile/red/anticorner/contrasted{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/security/checkpoint/escape) +"bfA" = ( +/obj/machinery/computer/records/security{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red/anticorner/contrasted{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/security/checkpoint/escape) +"bfD" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/science/research/abandoned) +"bfG" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"bfP" = ( +/obj/structure/fluff/metalpole/end/left{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) +"bfQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"bfR" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/cargo/sorting) +"bga" = ( +/obj/structure/chair/office, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/event_spawn, +/turf/open/floor/wood, +/area/station/security/detectives_office/private_investigators_office) +"bgi" = ( +/turf/closed/wall, +/area/station/engineering/engine_smes) +"bgp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/space_heater/improvised_chem_heater, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"bgt" = ( +/obj/effect/turf_decal/tile/purple/half{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/turf/open/floor/iron/white/side{ + dir = 8 + }, +/area/station/science/xenobiology) +"bgu" = ( +/obj/structure/railing/wrestling, +/turf/open/floor/iron/dark/side, +/area/station/common/wrestling/arena) +"bgw" = ( +/obj/item/kirbyplants/random, +/obj/machinery/camera/directional/west{ + c_tag = "Arrivals - Lounge 2"; + name = "arrivals camera" + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/secondary/entry) +"bgx" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/machinery/light/small/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/maintenance/solars/starboard/fore) +"bgA" = ( +/turf/closed/wall, +/area/station/commons/fitness/recreation) +"bgI" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/eighties, +/area/station/maintenance/abandon_arcade) +"bgP" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"bgS" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/command/secure_bunker) +"bgX" = ( +/obj/item/radio/intercom/directional/north, +/obj/structure/frame/computer, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/iron/smooth, +/area/station/maintenance/starboard/fore) +"bhb" = ( +/obj/structure/chair/wood{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/station/service/library/printer) +"bhf" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/carpet/green, +/area/station/command/heads_quarters/nt_rep) +"bhk" = ( +/obj/structure/table, +/obj/item/folder/red, +/obj/item/pen, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/security/interrogation) +"bho" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/sign/departments/chemistry/pharmacy/directional/east, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"bhB" = ( +/obj/machinery/door/airlock/external{ + space_dir = 1 + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"bhN" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/brig) +"bhV" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/sign/departments/court/directional/west, +/turf/open/floor/iron/stairs/left, +/area/station/hallway/primary/central) +"bhW" = ( +/obj/machinery/duct, +/turf/open/floor/iron/freezer, +/area/station/security/prison/shower) +"bie" = ( +/obj/effect/spawner/random/trash/grille_or_waste, +/turf/open/floor/plating, +/area/station/maintenance/pool_maintenance) +"bii" = ( +/turf/closed/wall/r_wall, +/area/station/security/medical) +"bin" = ( +/obj/structure/table/glass, +/obj/item/reagent_containers/cup/beaker, +/obj/item/reagent_containers/syringe, +/obj/item/reagent_containers/dropper, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 10 + }, +/obj/machinery/camera/autoname/directional/west{ + network = list("ss13","medbay") + }, +/turf/open/floor/iron/white, +/area/station/medical/virology) +"bio" = ( +/obj/structure/table/reinforced, +/obj/machinery/computer/records/medical/laptop, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/effect/turf_decal/tile/blue/half/contrasted, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/customs/auxiliary) +"bit" = ( +/obj/item/kirbyplants/random, +/obj/machinery/airalarm/directional/north{ + pixel_y = 20 + }, +/obj/machinery/light/directional/north, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/machinery/camera/autoname/directional/north, +/turf/open/floor/iron/grimy, +/area/station/command/heads_quarters/captain) +"biv" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/maintenance, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"biz" = ( +/obj/machinery/door/airlock/virology/glass{ + name = "Virology Lab" + }, +/obj/effect/turf_decal/trimline/green/filled/warning, +/obj/effect/turf_decal/trimline/green/filled/warning{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/medical/virology, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/virology) +"biA" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 4 + }, +/obj/machinery/requests_console/directional/east{ + department = "Xenobiology"; + name = "Xenobiology Requests Console" + }, +/obj/effect/mapping_helpers/requests_console/ore_update, +/obj/structure/cable, +/obj/machinery/light/directional/east, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology/control) +"biE" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/port/central) +"biH" = ( +/obj/machinery/recharge_station, +/obj/effect/landmark/start/cyborg, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/station/science/robotics/mechbay) +"biL" = ( +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/atmos/test_chambers) +"biN" = ( +/obj/structure/window/spawner/directional/south, +/obj/structure/flora/bush/fullgrass/style_random, +/obj/machinery/door/firedoor/border_only, +/obj/structure/chair/stool/directional/north, +/turf/open/floor/grass, +/area/station/medical/patients_rooms) +"biU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"biV" = ( +/obj/structure/table, +/obj/item/clothing/suit/jacket/straight_jacket, +/obj/item/clothing/suit/jacket/straight_jacket, +/obj/item/clothing/mask/muzzle, +/obj/item/clothing/mask/muzzle, +/obj/item/clothing/glasses/blindfold, +/obj/item/clothing/glasses/blindfold, +/obj/item/restraints/legcuffs, +/obj/item/restraints/legcuffs, +/obj/item/storage/box/prisoner, +/obj/item/storage/box/prisoner{ + pixel_y = 8 + }, +/obj/item/paper/fluff/genpop_instructions, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/prison) +"biW" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_y = 3 + }, +/obj/item/pen{ + pixel_y = 3 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/commons/vacant_room/commissary) +"bjc" = ( +/obj/machinery/chem_master, +/obj/machinery/light/directional/east, +/obj/structure/noticeboard/directional/east, +/obj/structure/window/spawner/directional/south, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/pharmacy) +"bjl" = ( +/obj/structure/table/reinforced, +/obj/machinery/status_display/ai/directional/south, +/obj/item/storage/belt/utility, +/obj/item/clothing/glasses/welding, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) +"bjt" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/door/poddoor/shutters/window{ + id = "BrigBigEntrance"; + name = "Brig Shutters" + }, +/obj/machinery/door/poddoor/preopen{ + id = "brigfront"; + name = "Brig Blast Door" + }, +/turf/open/floor/iron/dark, +/area/station/security/brig) +"bjv" = ( +/obj/structure/flora/bush/flowers_yw, +/turf/open/floor/grass, +/area/station/security/prison/garden) +"bjx" = ( +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/security/checkpoint/escape) +"bjE" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes, +/obj/machinery/ammo_workbench, +/turf/open/floor/engine, +/area/station/command/secure_bunker) +"bjF" = ( +/obj/structure/grille/broken, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"bjL" = ( +/obj/structure/chair/sofa/bench/right, +/obj/effect/turf_decal/siding/thinplating_new, +/obj/structure/sign/poster/random/directional/north, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/upper) +"bjM" = ( +/obj/effect/turf_decal/vg_decals/atmos/carbon_dioxide, +/turf/open/floor/engine/co2, +/area/station/engineering/atmos) +"bjO" = ( +/obj/machinery/power/shuttle_engine/large{ + dir = 8 + }, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"bjS" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/purple/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/service/barber) +"bjW" = ( +/obj/effect/turf_decal/caution/stand_clear, +/obj/effect/turf_decal/bot, +/obj/machinery/door/poddoor/shutters{ + id = "evashutters"; + name = "E.V.A. Storage Shutter" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva) +"bka" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "cargounload" + }, +/obj/machinery/door/poddoor{ + id = "cargounload"; + name = "Supply Dock Unloading Door" + }, +/turf/open/floor/iron/dark, +/area/station/cargo/storage) +"bkc" = ( +/obj/structure/cable, +/obj/machinery/airalarm/directional/south, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/pumproom) +"bkh" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/junction{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/science/ordnance) +"bki" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_edge, +/area/station/engineering/supermatter/room) +"bks" = ( +/obj/structure/window/spawner/directional/east, +/obj/structure/window/spawner/directional/north, +/obj/structure/flora/bush/sparsegrass, +/obj/structure/flora/bush/flowers_yw, +/turf/open/floor/grass, +/area/station/service/cafeteria) +"bkv" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/service/cafeteria) +"bkw" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/camera/directional/east, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"bkx" = ( +/obj/structure/railing, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"bkA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/maintenance/clown_chamber) +"bkC" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/security/prison/upper) +"bkG" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/machinery/airalarm/directional/north, +/obj/structure/disposalpipe/trunk{ + dir = 2 + }, +/turf/open/floor/iron/dark, +/area/station/security/warden) +"bkM" = ( +/turf/closed/wall, +/area/station/medical/exam_room) +"bkN" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/service/bar) +"bkP" = ( +/turf/open/floor/iron/dark, +/area/station/hallway/primary/central/fore) +"bkQ" = ( +/obj/item/folder/white{ + pixel_x = -17; + pixel_y = 3 + }, +/obj/item/folder/white{ + pixel_x = -18 + }, +/obj/machinery/computer/records/pathology{ + dir = 2 + }, +/turf/open/floor/iron, +/area/station/medical/virology/isolation) +"bkT" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/effect/spawner/random/engineering/tool, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"bkZ" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Lasertag Prep Room" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/common/laser_tag) +"blr" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/obj/structure/cable, +/obj/machinery/newscaster/directional/west, +/obj/machinery/camera/autoname/directional/west{ + network = list("ss13","medbay") + }, +/turf/open/floor/iron/white, +/area/station/medical/virology) +"blx" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/trimline/red/filled/line{ + color = "#DE3A3A" + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark, +/turf/open/floor/iron/dark/side, +/area/station/security/brig) +"blB" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) +"blD" = ( +/obj/effect/turf_decal/box/red, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister, +/obj/effect/turf_decal/stripes/end, +/turf/open/floor/engine, +/area/station/science/ordnance) +"blR" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/machinery/status_display/door_timer{ + id = "IsolationCell_2"; + name = "Isolation Cell 2"; + pixel_y = -32 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/dark/line{ + dir = 10 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark/corner{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured_corner{ + dir = 4 + }, +/area/station/security/prison/safe) +"blS" = ( +/turf/open/misc/beach/sand, +/area/station/command/heads_quarters/captain) +"blV" = ( +/obj/effect/turf_decal/bot, +/obj/structure/table/reinforced, +/obj/item/storage/box/lights/mixed{ + pixel_x = 7 + }, +/obj/item/storage/box/shipping{ + pixel_x = -8 + }, +/turf/open/floor/iron/dark, +/area/station/commons/storage/primary) +"blX" = ( +/obj/machinery/duct, +/turf/open/floor/iron/freezer, +/area/station/commons/dorms/room2) +"bma" = ( +/obj/structure/chair/office, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/effect/decal/cleanable/generic, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"bml" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/access/all/engineering, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_starboard) +"bmn" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood/corner, +/obj/effect/landmark/start/hangover, +/turf/open/floor/wood, +/area/station/hallway/primary/central) +"bmu" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"bmA" = ( +/obj/structure/table, +/obj/effect/spawner/random/clothing/mafia_outfit, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"bmB" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/stairs/left{ + dir = 8 + }, +/area/station/medical/medbay/lobby) +"bmD" = ( +/obj/structure/table/glass, +/obj/item/storage/bag/plants/portaseeder, +/obj/machinery/light/directional/east, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/service/hydroponics) +"bmI" = ( +/turf/open/floor/iron/stairs/right, +/area/station/maintenance/port/upper) +"bmK" = ( +/obj/machinery/door/airlock/research{ + name = "Ordnance Secure Storage" + }, +/obj/machinery/door/firedoor/heavy, +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/science/ordnance_storage, +/turf/open/floor/iron/white, +/area/station/science/ordnance/storage) +"bmN" = ( +/obj/machinery/camera/directional/north{ + c_tag = "Security - Power Station"; + name = "engineering camera"; + network = list("ss13","ce") + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/power/port_gen/pacman/pre_loaded, +/turf/open/floor/iron/dark, +/area/station/security/power_station) +"bmP" = ( +/obj/machinery/door/airlock/maintenance/glass, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/maintenance/disposal/incinerator) +"bmT" = ( +/obj/machinery/photocopier, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/obj/machinery/airalarm/directional/east, +/turf/open/floor/iron/white, +/area/station/command/heads_quarters/rd) +"bmV" = ( +/obj/structure/disposalpipe/sorting/mail{ + dir = 8; + name = "HoS Junction"; + sortType = 8 + }, +/turf/open/floor/iron/dark/small, +/area/station/security/brig) +"bng" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/fans/tiny/forcefield, +/obj/machinery/door/poddoor/preopen{ + id = "securityblast2"; + name = "Shuttle Bay Blast Door" + }, +/turf/open/floor/plating, +/area/station/security/execution/transfer) +"bnj" = ( +/turf/open/floor/iron/dark/side{ + dir = 6 + }, +/area/station/hallway/primary/port) +"bnk" = ( +/obj/structure/cable, +/turf/open/floor/wood/parquet, +/area/station/common/tailoring) +"bnl" = ( +/obj/structure/filingcabinet/chestdrawer/wheeled, +/turf/open/floor/iron, +/area/station/maintenance/console_room) +"bnq" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/secondary/command) +"bnr" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/port/central) +"bns" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/security/prison/rec) +"bnx" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted, +/obj/machinery/airalarm/directional/south, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"bnG" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, +/obj/machinery/meter, +/obj/effect/turf_decal/stripes/box, +/turf/open/floor/plating/airless, +/area/station/engineering/atmos/upper) +"bnL" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/cable, +/obj/effect/landmark/start/hangover, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"bnM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/blobstart, +/obj/machinery/power/port_gen/pacman/pre_loaded, +/turf/open/floor/plating, +/area/station/maintenance/night_club) +"bnQ" = ( +/obj/structure/table/wood, +/obj/item/instrument/piano_synth, +/obj/item/instrument/banjo, +/obj/item/instrument/harmonica, +/obj/item/instrument/guitar, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/station/security/prison/mess) +"bnS" = ( +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/item/pipe_dispenser, +/obj/item/pipe_dispenser, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva/upper) +"bnU" = ( +/obj/structure/table/wood, +/obj/item/book/manual/wiki/security_space_law, +/obj/item/lighter, +/turf/open/floor/carpet/blue, +/area/station/command/heads_quarters/captain) +"bnW" = ( +/obj/machinery/camera/directional/south{ + c_tag = "Holodeck - Aft 1"; + name = "holodeck camera" + }, +/turf/open/floor/engine{ + name = "Holodeck Projector Floor" + }, +/area/station/holodeck/rec_center) +"bnX" = ( +/obj/machinery/door/airlock/security{ + name = "Evidence Storage" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/obj/structure/cable, +/obj/machinery/door/firedoor, +/turf/open/floor/iron, +/area/station/security/interrogation) +"bnZ" = ( +/obj/machinery/smartfridge/organ, +/turf/open/floor/iron/white, +/area/station/medical/surgery) +"boc" = ( +/obj/structure/rack/shelf, +/obj/effect/turf_decal/bot, +/obj/item/beacon, +/obj/item/beacon, +/obj/item/gps/science, +/obj/item/gps/science, +/obj/item/gps/science, +/obj/item/gps/science, +/obj/item/gps/science, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/science/tele_sci) +"bog" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/commons/fitness/recreation) +"boj" = ( +/obj/machinery/door/poddoor/shutters/window/preopen{ + id = "Xeno11"; + name = "Containment Breach Shutters" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/stairs/right{ + dir = 8 + }, +/area/station/science/xenobiology) +"bol" = ( +/obj/structure/table/reinforced, +/obj/item/paper_bin{ + pixel_y = 3 + }, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) +"boo" = ( +/obj/machinery/requests_console/directional/west{ + department = "Toxins Lab"; + name = "Toxins Requests Console" + }, +/obj/effect/mapping_helpers/requests_console/information, +/obj/effect/mapping_helpers/requests_console/assistance, +/obj/effect/mapping_helpers/requests_console/information, +/obj/effect/mapping_helpers/requests_console/assistance, +/obj/effect/turf_decal/bot, +/obj/structure/table, +/obj/item/computer_disk{ + pixel_x = -5; + pixel_y = 8 + }, +/obj/item/computer_disk{ + pixel_x = 7; + pixel_y = 2 + }, +/obj/item/computer_disk{ + pixel_x = -8; + pixel_y = -3 + }, +/obj/item/computer_disk, +/turf/open/floor/iron, +/area/station/science/ordnance) +"bop" = ( +/obj/effect/turf_decal/tile/dark_blue/half/contrasted{ + dir = 1 + }, +/obj/structure/table, +/obj/item/poster/random_official{ + pixel_y = 10 + }, +/obj/item/poster/random_official, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron/dark, +/area/station/security/mechbay) +"bos" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/retractor, +/obj/item/hemostat, +/turf/open/floor/iron/freezer, +/area/station/maintenance/abandon_kitchen_upper) +"boA" = ( +/obj/effect/turf_decal/siding/thinplating/light, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/door/airlock/asylum{ + name = "Asylum" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/medical/psychology, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/medical/aslyum) +"boB" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/north, +/obj/structure/window/spawner/directional/west, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"boE" = ( +/obj/structure/table/wood, +/obj/item/tape, +/obj/item/tape, +/obj/item/taperecorder, +/turf/open/floor/wood, +/area/station/service/lawoffice) +"boG" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/machinery/disposal/delivery_chute{ + dir = 4 + }, +/obj/structure/plasticflaps, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/door/window/right/directional/east{ + req_access = list("cargo"); + name = "Engineering Deliveries" + }, +/turf/open/floor/iron/dark, +/area/station/cargo/sorting) +"boH" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/stairs/old{ + dir = 8 + }, +/area/station/engineering/atmos) +"boI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/eva) +"boK" = ( +/obj/structure/falsewall, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"boN" = ( +/obj/structure/window/spawner/directional/north, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/structure/chair/wood, +/obj/effect/landmark/start/assistant, +/turf/open/floor/wood, +/area/station/service/cafeteria) +"boP" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/vg_decals/numbers/two, +/obj/machinery/door/window/brigdoor/security/cell/right/directional/west{ + name = "Cell 2" + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/brig) +"boQ" = ( +/obj/structure/closet/cardboard, +/obj/effect/spawner/random/maintenance/two, +/turf/open/floor/plating, +/area/station/maintenance/port/central) +"boS" = ( +/obj/machinery/light/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/item/radio/intercom/directional/south, +/obj/structure/cable, +/turf/open/floor/iron/dark/side, +/area/station/security/prison) +"boW" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/window/spawner/directional/west, +/obj/structure/closet/secure_closet/personal/cabinet, +/turf/open/floor/carpet/red, +/area/station/commons/dorms/room6) +"bpg" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tcomms) +"bpj" = ( +/obj/machinery/iv_drip, +/obj/structure/bed/roller{ + dir = 1 + }, +/obj/machinery/defibrillator_mount/directional/south, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) +"bpn" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/machinery/light/directional/east, +/obj/machinery/door/window/brigdoor/right/directional/north{ + name = "Command Chair"; + req_access = list("command") + }, +/turf/open/floor/iron/stairs, +/area/station/command/secure_bunker) +"bpo" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"bpp" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"bpv" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/holopad/secure, +/turf/open/floor/iron/dark, +/area/station/security/office) +"bpA" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/command/captain_dining) +"bpC" = ( +/obj/structure/cable, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/holopad, +/turf/open/floor/carpet, +/area/station/service/library) +"bpF" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/structure/lattice/catwalk, +/turf/open/openspace, +/area/station/maintenance/port/upper) +"bpH" = ( +/obj/effect/turf_decal/stripes, +/obj/structure/cable, +/turf/open/floor/circuit, +/area/station/command/gateway) +"bpN" = ( +/obj/structure/closet/crate/hydroponics, +/obj/item/seeds/banana, +/obj/item/seeds/carrot, +/obj/item/seeds/carrot/parsnip, +/obj/item/seeds/chili, +/obj/item/seeds/lemon, +/obj/item/seeds/lime, +/obj/item/seeds/orange, +/obj/item/seeds/pineapple, +/obj/item/seeds/watermelon, +/obj/item/seeds/wheat/oat, +/obj/item/seeds/wheat/rice, +/obj/item/seeds/eggplant, +/obj/item/seeds/berry, +/obj/item/seeds/cherry/blue, +/obj/item/seeds/cherry, +/obj/item/seeds/grape, +/obj/item/seeds/grape/green, +/obj/item/seeds/grass, +/obj/item/seeds/pumpkin, +/obj/item/seeds/tomato, +/obj/machinery/light/directional/north, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/effect/spawner/random/contraband/prison, +/turf/open/floor/iron/dark, +/area/station/security/prison/garden) +"bpT" = ( +/obj/machinery/shower/directional/west, +/obj/structure/drain, +/obj/machinery/light/small/directional/south, +/turf/open/floor/iron/freezer, +/area/station/command/heads_quarters/rd) +"bqb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/trash_pile, +/obj/effect/decal/cleanable/cobweb, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"bqc" = ( +/obj/machinery/growing/soil, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/grass, +/area/station/service/hydroponics/garden/abandoned) +"bqh" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/command/heads_quarters/rd) +"bqj" = ( +/obj/effect/turf_decal/stripes/box, +/obj/item/clothing/suit/hooded/ablative, +/obj/item/gun/energy/temperature/security, +/obj/structure/rack/shelf, +/obj/structure/cable, +/obj/effect/turf_decal/trimline/red/line, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_edge{ + dir = 1 + }, +/area/station/ai_monitored/security/armory) +"bqk" = ( +/obj/structure/window/reinforced/plasma/spawner/directional/north, +/turf/open/floor/plating, +/area/space/nearstation) +"bql" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/table/glass, +/obj/item/storage/box/pillbottles, +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 8 + }, +/turf/open/floor/iron/white/side, +/area/station/medical/medbay/lobby) +"bqq" = ( +/obj/structure/rack/gunrack, +/obj/effect/turf_decal/bot/right, +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/wood/large, +/area/station/security/brig) +"bqu" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/freezer, +/area/station/maintenance/abandon_kitchen_upper) +"bqx" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue/fourcorners, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"bqE" = ( +/obj/machinery/shower/directional/east, +/obj/structure/drain, +/turf/open/floor/iron/freezer, +/area/station/common/locker_room_shower) +"bqF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/sheet/cardboard, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"bqH" = ( +/obj/structure/table/reinforced, +/obj/item/folder/blue{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/folder/yellow, +/obj/item/lighter, +/obj/item/stamp/ce, +/obj/effect/turf_decal/tile/yellow/full, +/turf/open/floor/iron/large, +/area/station/command/heads_quarters/ce) +"bqI" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/science/lab) +"bqL" = ( +/turf/open/floor/iron/white, +/area/station/medical/aslyum) +"bqM" = ( +/obj/structure/window/spawner/directional/east, +/obj/structure/chair/sofa/corp/left{ + color = "#DE3A3A"; + dir = 8 + }, +/obj/machinery/status_display/ai/directional/south, +/obj/machinery/light/directional/south, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen/diner) +"bqS" = ( +/obj/machinery/disposal/bin, +/obj/machinery/light/directional/east, +/obj/machinery/camera/directional/east{ + c_tag = "Bridge - Captain's Office"; + name = "command camera" + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/carpet/blue, +/area/station/command/heads_quarters/captain/private) +"brg" = ( +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/department/security/upper) +"bri" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/holopad/secure, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/hop) +"brn" = ( +/obj/structure/curtain/cloth, +/obj/effect/turf_decal/siding/wood, +/obj/machinery/duct, +/turf/open/floor/iron/freezer, +/area/station/common/pool) +"brq" = ( +/obj/item/stack/ore/glass, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"brr" = ( +/obj/machinery/door/poddoor/shutters{ + id = "evashutters3"; + name = "E.V.A. Storage Shutters" + }, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"brt" = ( +/obj/effect/turf_decal/trimline/purple/filled/line, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/science/research) +"bru" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/qm) +"bry" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/firealarm/directional/south, +/obj/structure/table/reinforced, +/obj/item/storage/box/donkpockets/donkpocketpizza{ + pixel_y = 8 + }, +/obj/item/coffee_cartridge, +/obj/item/coffee_cartridge, +/obj/item/coffee_cartridge, +/turf/open/floor/iron/dark/side, +/area/station/security/office) +"brC" = ( +/obj/structure/window/spawner/directional/south, +/obj/structure/flora/bush/grassy, +/turf/open/floor/grass, +/area/station/service/cafeteria) +"brK" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/machinery/power/energy_accumulator/grounding_rod, +/turf/open/floor/iron, +/area/station/engineering/storage) +"brN" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"brO" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/structure/bed{ + dir = 4 + }, +/obj/item/bedsheet/orange{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/security/prison/safe) +"brQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate{ + icon_state = "crateopen" + }, +/obj/item/stack/package_wrap, +/obj/item/storage/box/lights/mixed, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"brZ" = ( +/obj/structure/table/wood, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/security/courtroom) +"bsa" = ( +/obj/structure/table/reinforced, +/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/cell/high, +/obj/structure/cable, +/obj/machinery/cell_charger, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/ai_monitored/command/storage/eva/upper) +"bsb" = ( +/turf/open/floor/iron/dark, +/area/station/hallway/primary/port) +"bse" = ( +/obj/machinery/light/directional/south, +/turf/open/floor/carpet/lone, +/area/station/service/chapel) +"bsh" = ( +/obj/machinery/door/poddoor/shutters{ + id = "AbandonedMech" + }, +/turf/open/floor/plating, +/area/station/science/research/abandoned) +"bsk" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hall13"; + location = "hall12" + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"bsq" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen/diner) +"bst" = ( +/obj/effect/turf_decal/trimline/blue/filled/line, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) +"bsy" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"bsA" = ( +/obj/structure/showcase/cyborg/old{ + dir = 8; + pixel_x = 9; + pixel_y = 2 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/newscaster/directional/east{ + pixel_y = 12 + }, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai) +"bsC" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/machinery/requests_console/directional/east{ + department = "EVA"; + name = "EVA Requests Console" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/ai_monitored/command/storage/eva) +"bsG" = ( +/turf/closed/wall/r_wall, +/area/space/nearstation) +"bsN" = ( +/obj/item/radio/intercom/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/camera/directional/south{ + c_tag = "Security - Shuttle Bay East" + }, +/turf/open/floor/iron/stairs/medium{ + dir = 8 + }, +/area/station/security/execution/transfer) +"bsR" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/effect/spawner/random/trash/mess, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"bsX" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"bta" = ( +/obj/structure/closet/crate/large, +/obj/item/mecha_parts/chassis/ripley, +/obj/item/mecha_parts/part/ripley_torso, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/science/research/abandoned) +"btf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/spawner/random/trash/moisture, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"bth" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/ai_monitored/command/storage/eva) +"bti" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/chair/sofa/bench/right, +/obj/effect/turf_decal/siding/thinplating_new, +/turf/open/floor/iron/dark, +/area/station/cargo/miningdock) +"btt" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/door/airlock{ + name = "Theater Backstage" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/service/theatre, +/turf/open/floor/wood, +/area/station/service/theater) +"btu" = ( +/turf/closed/wall, +/area/station/maintenance/solars/port/fore) +"btM" = ( +/obj/machinery/asteroid_magnet{ + center_x = 63; + center_y = 113; + area_size = 3 + }, +/obj/machinery/light/floor/has_bulb, +/turf/open/floor/iron/dark/small, +/area/station/science/auxlab/firing_range) +"btO" = ( +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/iron/smooth_edge{ + dir = 4 + }, +/area/station/cargo/miningdock) +"btP" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) +"btQ" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/department/security/upper) +"btT" = ( +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"bub" = ( +/obj/structure/closet/crate, +/obj/effect/turf_decal/bot, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"bug" = ( +/obj/effect/turf_decal/stripes/full, +/obj/machinery/door/airlock/vault{ + name = "Bunker Access" + }, +/obj/machinery/door/firedoor/heavy, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/command/general, +/turf/open/floor/engine, +/area/station/command/secure_bunker) +"bui" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/camera/directional/south{ + c_tag = "Engineering - Engine Foyer"; + dir = 1; + name = "engineering camera" + }, +/turf/open/floor/iron/dark, +/area/station/engineering/supermatter/room) +"buC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/maintenance/port/aft) +"buD" = ( +/turf/open/floor/grass, +/area/station/maintenance/department/medical) +"buE" = ( +/obj/structure/table, +/obj/item/screwdriver, +/obj/item/hatchet/cutterblade, +/turf/open/floor/iron/dark, +/area/station/maintenance/department/security/prison_upper) +"buG" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible{ + dir = 8 + }, +/obj/machinery/meter, +/turf/open/floor/iron/smooth, +/area/station/engineering/atmos/pumproom) +"buP" = ( +/obj/machinery/light/directional/west, +/turf/open/openspace, +/area/station/commons/dorms) +"buS" = ( +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/grass, +/area/station/service/lawoffice) +"buV" = ( +/obj/effect/turf_decal/stripes/blue/line{ + dir = 4 + }, +/obj/machinery/suit_storage_unit/medical, +/turf/open/floor/plating, +/area/station/medical/break_room) +"buW" = ( +/obj/machinery/computer/message_monitor{ + dir = 8 + }, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/iron/dark, +/area/station/tcommsat/computer) +"bvc" = ( +/obj/structure/chair/sofa/bench{ + dir = 8; + pixel_x = 5 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/secondary/command) +"bvj" = ( +/obj/structure/rack, +/obj/item/reagent_containers/blood/random, +/obj/item/reagent_containers/cup/glass/bottle/vodka, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/medical/abandoned) +"bvl" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/security/prison) +"bvs" = ( +/obj/structure/table, +/obj/item/stack/sheet/iron/five, +/turf/open/floor/plating, +/area/station/maintenance/abandon_wrestle) +"bvy" = ( +/obj/effect/landmark/event_spawn, +/obj/effect/landmark/event_spawn, +/turf/open/floor/wood, +/area/station/security/prison/rec) +"bvA" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/access/all/engineering/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "ExternalAirlockAtmosEngines" + }, +/turf/open/floor/plating, +/area/station/hallway/secondary/entry) +"bvD" = ( +/obj/machinery/light/directional/west, +/obj/machinery/light_switch/directional/west{ + pixel_y = -8 + }, +/obj/item/radio/intercom/directional/west, +/obj/machinery/firealarm/directional/west{ + pixel_x = -34; + pixel_y = -7 + }, +/turf/open/floor/iron/stairs{ + dir = 1 + }, +/area/station/security/warden) +"bvG" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable, +/obj/machinery/light/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/commons/dorms) +"bvI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/mess, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"bvJ" = ( +/obj/structure/chair, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"bvL" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/common/pool/sauna) +"bvM" = ( +/obj/structure/sign/poster/random/directional/east, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/port) +"bvN" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 9 + }, +/turf/open/floor/iron/dark/small, +/area/station/cargo/miningdock) +"bvS" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command/glass{ + name = "Bridge Access" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "bridge-enterance-west" + }, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/command/general, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/command) +"bvZ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/science/robotics) +"bwc" = ( +/turf/open/floor/iron/solarpanel/airless, +/area/station/solars/port/fore) +"bwg" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/holopad/secure, +/turf/open/floor/iron, +/area/station/command/bridge) +"bwk" = ( +/obj/structure/dresser, +/turf/open/floor/carpet/green, +/area/station/medical/virology/isolation) +"bwl" = ( +/obj/effect/spawner/random/structure/crate_loot, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_port) +"bwm" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer2{ + dir = 5 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/engineering/atmos) +"bws" = ( +/obj/structure/trash_pile, +/turf/open/floor/plating, +/area/station/maintenance/department/security/lesser) +"bwE" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/table/wood, +/obj/item/camera_film{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/camera_film, +/turf/open/floor/carpet, +/area/station/service/library) +"bwO" = ( +/obj/effect/turf_decal/bot, +/obj/structure/punching_bag, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/landmark/event_spawn, +/turf/open/floor/iron/white, +/area/station/medical/aslyum) +"bwT" = ( +/obj/machinery/power/shuttle_engine/heater{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/science/research/abandoned) +"bwW" = ( +/obj/structure/flora/bush/jungle/b/style_2, +/obj/structure/flora/bush/flowers_pp, +/obj/structure/window/fulltile, +/turf/open/floor/grass, +/area/station/hallway/primary/upper) +"bwY" = ( +/obj/machinery/bluespace_vendor/directional/east, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/port) +"bxf" = ( +/obj/structure/flora/bush/fullgrass, +/obj/structure/flora/bush/pale, +/obj/structure/window/spawner/directional/south, +/obj/effect/turf_decal/siding/thinplating/dark, +/turf/open/floor/grass, +/area/station/service/chapel) +"bxi" = ( +/obj/structure/table, +/obj/item/stack/sheet/plasteel/fifty, +/obj/item/stack/sheet/iron/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/cable_coil, +/obj/item/stack/cable_coil{ + pixel_x = -1; + pixel_y = -3 + }, +/turf/open/floor/iron/dark/smooth_large, +/area/station/engineering/atmos/hfr_room) +"bxk" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/holopad, +/turf/open/floor/carpet/blue, +/area/station/medical/break_room) +"bxp" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/eighties, +/area/station/maintenance/abandon_arcade) +"bxs" = ( +/obj/machinery/power/smes, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/maintenance/solars/port/fore) +"bxt" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/iron/shuttle/arrivals/airless, +/area/space/nearstation) +"bxx" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/service/power_station) +"bxy" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/science/explab) +"bxz" = ( +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/maintenance/rus_surgery) +"bxI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/glass, +/obj/item/shard, +/obj/item/wrench, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/service/electronic_marketing_den) +"bxS" = ( +/obj/structure/extinguisher_cabinet/directional/west, +/obj/machinery/light/small/directional/west, +/obj/structure/railing, +/turf/open/floor/iron/white/side{ + dir = 1 + }, +/area/station/science/xenobiology) +"bxW" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/security/glass{ + id_tag = "permainner"; + name = "Permabrig Transfer" + }, +/obj/effect/mapping_helpers/airlock/access/all/security/brig, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "perma-transfer" + }, +/turf/open/floor/iron/dark, +/area/station/security/prison) +"bya" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood/parquet, +/area/station/common/night_club) +"byi" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ + dir = 10 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_starboard) +"byj" = ( +/obj/structure/reagent_dispensers/watertank{ + pixel_y = -1 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/light/small/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/department/chapel) +"byl" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id = "XenoOffice"; + name = "Xenobiology Lockdown Blast Doors" + }, +/turf/open/floor/plating, +/area/station/science/xenobiology/control) +"bym" = ( +/obj/structure/window/spawner/directional/east, +/obj/structure/rack, +/obj/item/soap/nanotrasen, +/turf/open/floor/iron/checker, +/area/station/hallway/secondary/service) +"byn" = ( +/obj/effect/spawner/random/vending/snackvend, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/white, +/area/station/science/research) +"byo" = ( +/obj/machinery/power/shuttle_engine/large{ + dir = 4 + }, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"byp" = ( +/obj/structure/table/wood, +/obj/item/coin/bananium, +/obj/machinery/status_display/ai/directional/east, +/obj/machinery/light/directional/south, +/turf/open/floor/wood, +/area/station/command/meeting_room/council) +"byu" = ( +/obj/machinery/firealarm/directional/west, +/obj/structure/window/spawner/directional/south, +/obj/structure/rack, +/obj/item/clothing/shoes/sneakers/black{ + pixel_x = -6; + pixel_y = -7 + }, +/obj/item/clothing/shoes/sneakers/white{ + pixel_x = 4; + pixel_y = -7 + }, +/obj/item/clothing/shoes/sneakers/brown{ + pixel_x = -6; + pixel_y = -1 + }, +/obj/item/clothing/shoes/sneakers/red{ + pixel_x = 4; + pixel_y = -1 + }, +/obj/item/clothing/shoes/sneakers/blue{ + pixel_x = -6; + pixel_y = 5 + }, +/obj/item/clothing/shoes/sneakers/green{ + pixel_x = 4; + pixel_y = 5 + }, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/carpet, +/area/station/common/tailoring) +"byw" = ( +/obj/structure/closet/cardboard, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/spawner/random/engineering/tool_advanced, +/obj/effect/spawner/random/mod/maint, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"byx" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/cargo/sorting) +"byz" = ( +/obj/machinery/light/directional/east, +/obj/structure/table, +/obj/item/multitool{ + pixel_x = -4; + pixel_y = 8 + }, +/obj/item/multitool{ + pixel_y = 10 + }, +/obj/item/multitool{ + pixel_x = 4; + pixel_y = 12 + }, +/obj/item/stock_parts/cell/high{ + pixel_x = -4; + pixel_y = -6 + }, +/obj/item/stock_parts/cell/high{ + pixel_y = -4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/test_chambers) +"byC" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/primary/central) +"byN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/item/stack/cable_coil{ + amount = 5 + }, +/obj/item/stack/cable_coil{ + amount = 5 + }, +/obj/item/flashlight, +/turf/open/floor/plating, +/area/station/hallway/secondary/construction) +"byO" = ( +/obj/machinery/light/directional/west, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"byP" = ( +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/science/xenobiology) +"bzj" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/item/circuitboard/machine/teleporter_station{ + pixel_y = 7 + }, +/obj/item/circuitboard/machine/teleporter_hub{ + pixel_y = 2 + }, +/obj/item/circuitboard/computer/gulag_teleporter_console{ + pixel_y = -3 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/iron, +/area/station/engineering/storage/tech) +"bzk" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/security/prison/visit) +"bzv" = ( +/obj/structure/chair/pew/right{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/service/chapel) +"bzA" = ( +/obj/effect/turf_decal/bot, +/obj/vehicle/ridden/wheelchair{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/medical/medbay/central) +"bzC" = ( +/obj/machinery/computer/monitor{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/service/power_station) +"bzG" = ( +/obj/machinery/light/no_nightlight/directional/west, +/obj/structure/sign/poster/random/directional/west, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/entry) +"bzM" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/hallway/primary/port) +"bzO" = ( +/obj/machinery/door/airlock/corporate{ + id_tag = "BSdoor"; + name = "Blueshield's Office" + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/command/captain, +/obj/effect/landmark/navigate_destination, +/turf/open/floor/wood, +/area/station/command/heads_quarters/blueshield) +"bzQ" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 10 + }, +/obj/machinery/airalarm/directional/west, +/obj/machinery/newscaster/directional/south, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/science/ordnance/storage) +"bzT" = ( +/obj/machinery/camera/autoname/directional/south{ + network = list("ss13","xeno","rd") + }, +/obj/machinery/corral_corner{ + mapping_id = "4" + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"bzY" = ( +/obj/structure/plasticflaps/opaque, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"bAa" = ( +/obj/structure/sign/directions/command{ + dir = 8; + pixel_y = 3 + }, +/obj/structure/sign/directions/medical{ + pixel_y = -3 + }, +/obj/structure/sign/directions/science{ + pixel_y = -9 + }, +/turf/closed/wall, +/area/station/hallway/primary/upper) +"bAc" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/door/airlock/medical{ + id_tag = "ExamRoom"; + name = "Exam Room" + }, +/obj/effect/mapping_helpers/airlock/access/all/medical/general, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/medical/exam_room) +"bAo" = ( +/obj/effect/turf_decal/tile/dark_blue/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/security/mechbay) +"bAt" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/light_switch/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain) +"bAw" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/junction/flip{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red, +/turf/open/floor/iron/dark/small, +/area/station/security/brig) +"bAL" = ( +/obj/machinery/door/poddoor/shutters{ + id = "gatewayshutters"; + name = "Gateway Chamber Shutters" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/command/gateway) +"bAO" = ( +/turf/open/floor/glass/reinforced, +/area/station/security/prison/safe) +"bAQ" = ( +/obj/machinery/light/small/directional/south, +/obj/structure/cable, +/turf/open/floor/noslip, +/area/station/maintenance/gag_room) +"bAV" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/effect/turf_decal/caution/stand_clear, +/obj/machinery/door/airlock/external{ + name = "External Docking Port" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/effect/landmark/navigate_destination{ + location = "Escape" + }, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/exit/departure_lounge) +"bAZ" = ( +/obj/structure/table/glass, +/obj/item/book/manual/wiki/chemistry, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/science/xenobiology/control) +"bBa" = ( +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/flowers_yw, +/obj/structure/window/spawner/directional/north, +/turf/open/floor/grass, +/area/station/science/research) +"bBd" = ( +/turf/open/floor/wood, +/area/station/service/cafeteria) +"bBm" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 10 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"bBn" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/box, +/turf/open/floor/iron, +/area/station/cargo/sorting) +"bBo" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/door/airlock/medical{ + name = "Psychology" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/medical/psychology, +/turf/open/floor/wood, +/area/station/medical/psychology) +"bBs" = ( +/turf/open/floor/iron/stairs/right{ + dir = 1 + }, +/area/station/hallway/secondary/command) +"bBC" = ( +/obj/machinery/holopad, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/cmo) +"bBD" = ( +/obj/effect/turf_decal/stripes{ + dir = 6 + }, +/obj/machinery/rnd/production/circuit_imprinter/department/science, +/turf/open/floor/iron, +/area/station/science/lab) +"bBE" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/newscaster/directional/north, +/turf/open/floor/iron, +/area/station/commons/dorms) +"bBI" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/junction/flip{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/service/hydroponics) +"bBU" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/abandoned, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"bBW" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 + }, +/turf/open/floor/iron/dark/herringbone, +/area/station/common/night_club/back_stage) +"bBX" = ( +/obj/structure/bodycontainer/morgue{ + dir = 8 + }, +/obj/effect/turf_decal/bot_white, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron/dark/small, +/area/station/medical/morgue) +"bBY" = ( +/obj/structure/window/spawner/directional/east, +/obj/structure/chair/office{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/service/library/printer) +"bBZ" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_port) +"bCd" = ( +/obj/structure/railing, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/central) +"bCe" = ( +/obj/structure/closet/crate/large, +/obj/item/mecha_parts/part/ripley_left_arm, +/obj/item/mecha_parts/part/ripley_right_arm, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/science/research/abandoned) +"bCf" = ( +/turf/closed/wall, +/area/station/medical/medbay/lobby) +"bCg" = ( +/obj/machinery/door/poddoor/shutters{ + id = "custodialshutters"; + name = "Custodial Closet Shutters" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/dark, +/area/station/service/janitor) +"bCi" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/dark/side, +/area/station/security/checkpoint/escape) +"bCk" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/computer/monitor{ + name = "Bridge Power Monitoring Console" + }, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"bCL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark, +/obj/effect/turf_decal/trimline/red/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_edge, +/area/station/security/lockers) +"bCQ" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/flowers_yw, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/turf/open/floor/grass, +/area/station/security/prison/garden) +"bDe" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/command/heads_quarters/hop) +"bDm" = ( +/obj/structure/table, +/obj/item/clothing/head/helmet/gladiator, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"bDn" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/science/xenobiology) +"bDr" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/turf/open/floor/iron, +/area/station/medical/cryo) +"bDx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/light/small/directional/north, +/obj/effect/spawner/random/trash/moisture_trap, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"bDA" = ( +/turf/closed/wall, +/area/station/security/checkpoint/customs) +"bDD" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/maintenance/department/engineering/engine_aft_starboard) +"bDE" = ( +/obj/structure/ladder, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"bDG" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/landmark/start/hangover/closet, +/turf/open/floor/iron, +/area/station/commons/dorms) +"bDH" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/science/robotics) +"bDK" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/maintenance/rus_gambling) +"bDR" = ( +/obj/structure/railing, +/obj/structure/railing{ + dir = 1 + }, +/obj/machinery/light/floor/has_bulb, +/turf/open/floor/iron/dark, +/area/station/common/night_club) +"bDS" = ( +/obj/structure/shipping_container/nthi, +/turf/open/floor/iron/dark/small, +/area/station/cargo/miningdock) +"bDV" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/central) +"bDW" = ( +/mob/living/basic/chicken{ + forced_gender = "female" + }, +/obj/effect/turf_decal/siding/thinplating/dark, +/turf/open/floor/grass, +/area/station/common/night_club) +"bEb" = ( +/obj/machinery/light/directional/west, +/obj/effect/spawner/liquids_spawner, +/turf/open/floor/lowered/iron/pool/cobble/side{ + dir = 8 + }, +/area/station/common/pool) +"bEc" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/obj/machinery/status_display/evac/directional/east, +/obj/machinery/light/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/security/checkpoint/medical) +"bEl" = ( +/turf/open/floor/iron/grimy, +/area/station/command/heads_quarters/captain/private) +"bEq" = ( +/obj/structure/cable, +/obj/machinery/door/airlock/ce{ + id_tag = "CEdoor"; + name = "Chief Engineer's Office" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/ce, +/turf/open/floor/iron, +/area/station/command/heads_quarters/ce) +"bEr" = ( +/obj/effect/turf_decal/siding/wood, +/obj/item/kirbyplants/organic/plant22, +/turf/open/floor/iron/dark, +/area/station/commons/dorms/room6) +"bEy" = ( +/obj/structure/table, +/obj/item/clothing/suit/apron/chef, +/obj/item/clothing/head/utility/chefhat, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/directional/north, +/turf/open/floor/iron/white/side, +/area/station/maintenance/abandon_diner) +"bEz" = ( +/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ + dir = 8; + filter_type = list(/datum/gas/nitrogen) + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"bEF" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/science/ordnance/storage) +"bEG" = ( +/obj/structure/table/glass, +/obj/effect/turf_decal/siding/purple{ + dir = 4 + }, +/obj/item/computer_disk/ordnance{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/computer_disk/ordnance, +/obj/item/computer_disk/ordnance{ + pixel_x = -3; + pixel_y = -3 + }, +/turf/open/floor/iron, +/area/station/command/heads_quarters/rd) +"bEK" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 8 + }, +/turf/open/floor/iron/white/smooth_corner{ + dir = 4 + }, +/area/station/science/explab) +"bEM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/station/engineering/atmos/hfr_room) +"bEO" = ( +/obj/structure/table, +/obj/item/folder/blue, +/obj/item/pen, +/obj/machinery/airalarm/directional/east, +/obj/machinery/light/small/directional/east, +/obj/machinery/camera/motion/directional/east{ + c_tag = "AI - Upload Foyer"; + name = "motion-sensitive ai camera"; + network = list("aiupload") + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai_upload_foyer) +"bER" = ( +/obj/structure/rack, +/obj/item/stack/rods{ + amount = 23 + }, +/obj/effect/spawner/random/maintenance, +/obj/effect/decal/cleanable/dirt, +/obj/item/stock_parts/cell/crap/empty, +/turf/open/floor/circuit, +/area/station/science/research/abandoned) +"bET" = ( +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/commons/fitness/recreation) +"bEU" = ( +/obj/structure/cable, +/obj/effect/turf_decal/tile/purple/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/security/corrections_officer) +"bEW" = ( +/obj/machinery/camera/directional/north{ + c_tag = "Recreation - Nightclub Upper"; + name = "hallway camera" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood/large, +/area/station/common/night_club) +"bFc" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/commons/dorms/room6) +"bFd" = ( +/obj/effect/spawner/random/trash/mess, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/central) +"bFi" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/status_display/ai/directional/east, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/secondary/command) +"bFm" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/structure/rack/shelf, +/obj/machinery/light/directional/north, +/obj/machinery/camera/autoname/directional/north, +/turf/open/floor/iron/smooth_edge{ + dir = 4 + }, +/area/station/cargo/miningdock) +"bFp" = ( +/obj/structure/bookcase/random, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/carpet/blue, +/area/station/command/heads_quarters/captain) +"bFu" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/ordnance/storage) +"bFH" = ( +/obj/structure/grille, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"bFJ" = ( +/obj/machinery/newscaster/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/carpet/executive, +/area/station/command/heads_quarters/blueshield) +"bFO" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/primary/central) +"bFQ" = ( +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron, +/area/station/science/auxlab/firing_range) +"bFX" = ( +/turf/closed/wall/r_wall, +/area/station/engineering/engine_smes) +"bFY" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating, +/area/station/maintenance/abandon_wrestle) +"bGf" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/command/heads_quarters/rd) +"bGm" = ( +/turf/open/floor/iron/stairs/medium{ + dir = 1 + }, +/area/station/hallway/primary/central) +"bGp" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/status_display/ai/directional/south, +/obj/machinery/camera/directional/north{ + c_tag = "Dorm Hallway - Starboard"; + dir = 2; + name = "hallway camera" + }, +/turf/open/floor/iron, +/area/station/commons/dorms) +"bGF" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/station/service/library) +"bGI" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/structure/table, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/iron, +/area/station/science/xenobiology/hallway) +"bGK" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/lattice, +/turf/open/space/openspace, +/area/space/nearstation) +"bGM" = ( +/obj/structure/table/wood, +/obj/item/camera_film{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/camera_film, +/obj/item/camera, +/obj/machinery/light/directional/east, +/turf/open/floor/wood, +/area/station/service/lawoffice) +"bGT" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 5 + }, +/obj/structure/railing, +/turf/closed/wall/rust, +/area/station/security/prison/upper) +"bHc" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/carpet, +/area/station/security/courtroom) +"bHe" = ( +/obj/structure/table/reinforced, +/obj/item/storage/medkit/regular, +/turf/open/floor/iron/dark, +/area/station/cargo/office) +"bHp" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"bHt" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/science/research) +"bHx" = ( +/obj/effect/spawner/random/trash/mess, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/broken/directional/east, +/obj/structure/sign/poster/contraband/random/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/abandon_art_studio) +"bHy" = ( +/obj/structure/transit_tube/curved/flipped{ + dir = 4 + }, +/turf/open/floor/iron/shuttle/arrivals/airless, +/area/space/nearstation) +"bHU" = ( +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/structure/cable, +/obj/machinery/airalarm/directional/west, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/aisat/hallway) +"bHY" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/bar/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/security/prison/mess) +"bIa" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/obj/effect/turf_decal/caution{ + dir = 4; + pixel_x = 7 + }, +/turf/open/floor/iron/smooth_edge, +/area/station/cargo/miningdock) +"bIk" = ( +/obj/machinery/status_display/ai/directional/north, +/obj/effect/spawner/random/vending/snackvend, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/iron/cafeteria, +/area/station/maintenance/abandon_diner) +"bIr" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/item/stack/sheet/mineral/wood{ + amount = 15 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"bIw" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/junction, +/turf/open/floor/iron, +/area/station/commons/dorms) +"bII" = ( +/obj/machinery/light/small/directional/south, +/obj/item/storage/crayons, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"bIL" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/engineering/main) +"bIQ" = ( +/obj/machinery/door/airlock{ + name = "Abandoned Diner" + }, +/obj/structure/barricade/wooden/crude, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/abandon_diner) +"bIT" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/item/wrench, +/obj/machinery/airalarm/directional/east, +/obj/item/reagent_containers/cup/watering_can, +/obj/item/reagent_containers/cup/watering_can, +/obj/item/reagent_containers/cup/watering_can, +/turf/open/floor/iron, +/area/station/common/night_club/changing_room) +"bIU" = ( +/obj/machinery/power/shuttle_engine/large, +/turf/open/space/openspace, +/area/space) +"bIW" = ( +/obj/machinery/dish_drive/bullet, +/obj/structure/extinguisher_cabinet/directional/north, +/obj/effect/turf_decal/stripes/blue/line, +/turf/open/floor/iron/dark, +/area/station/security/office) +"bIY" = ( +/obj/structure/closet/secure_closet/warden, +/obj/item/clothing/under/rank/security/warden/grey, +/obj/item/gun/energy/laser, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/carpet/red, +/area/station/security/warden) +"bIZ" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/holopad, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/ai_monitored/command/storage/eva/upper) +"bJd" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/ce) +"bJg" = ( +/obj/effect/spawner/random/structure/crate, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"bJh" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/space_heater, +/turf/open/floor/iron, +/area/station/engineering/atmos/pumproom) +"bJr" = ( +/obj/structure/barricade/wooden, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/service/hydroponics/garden/abandoned) +"bJz" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/security/courtroom) +"bJA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"bJC" = ( +/obj/machinery/camera/directional/east{ + c_tag = "Cargo Bay - Starboard Upper"; + name = "cargo camera" + }, +/obj/machinery/light/directional/east, +/obj/machinery/conveyor{ + id = "cargoload" + }, +/turf/open/floor/plating, +/area/station/cargo/storage) +"bJF" = ( +/obj/effect/turf_decal/stripes, +/obj/structure/table/reinforced, +/obj/machinery/recharger{ + pixel_y = 3 + }, +/turf/open/floor/engine, +/area/station/command/secure_bunker) +"bJH" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/firealarm/directional/north, +/obj/machinery/door/airlock/public/glass{ + name = "Dormitory Hallway" + }, +/turf/open/floor/iron, +/area/station/commons/dorms) +"bJJ" = ( +/obj/item/kirbyplants/random, +/obj/machinery/light/directional/east, +/turf/open/floor/wood, +/area/station/command/captain_dining) +"bJS" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/bot, +/obj/item/storage/belt/utility, +/obj/item/weldingtool, +/obj/item/clothing/head/utility/welding, +/turf/open/floor/iron/dark, +/area/station/commons/storage/primary) +"bJT" = ( +/obj/effect/turf_decal/vg_decals/atmos/nitrous_oxide, +/turf/open/floor/engine/n2o, +/area/station/engineering/atmos) +"bJU" = ( +/obj/structure/chair/sofa/bench/right{ + dir = 4; + pixel_x = -5 + }, +/turf/open/floor/wood, +/area/station/hallway/primary/central) +"bJW" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/effect/spawner/random/maintenance/two, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"bKa" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/railing{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/dorms) +"bKc" = ( +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "Biohazard"; + name = "Biohazard Shutter Control"; + pixel_x = -6; + pixel_y = 7; + req_access = list("research") + }, +/obj/machinery/button/door{ + id = "rdoffice"; + name = "Privacy Control"; + pixel_x = 7; + pixel_y = -4; + req_access = list("rd") + }, +/obj/effect/turf_decal/siding/purple{ + dir = 5 + }, +/obj/machinery/button/door{ + id = "rdtoxins"; + name = "Toxins Containment Control"; + pixel_x = -6; + pixel_y = -4; + req_access = list("rd") + }, +/obj/machinery/button/door{ + id = "rdrnd"; + name = "Research and Development Containment Control"; + pixel_x = 7; + pixel_y = 7; + req_access = list("rd") + }, +/obj/structure/noticeboard/rd{ + dir = 1; + pixel_x = 1; + pixel_y = -31 + }, +/turf/open/floor/iron, +/area/station/command/heads_quarters/rd) +"bKg" = ( +/obj/effect/spawner/random/trash/mess, +/obj/machinery/light/small/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_port) +"bKo" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/service/library) +"bKr" = ( +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/break_room) +"bKs" = ( +/obj/effect/turf_decal/box/white{ + color = "#EFB341" + }, +/turf/open/floor/engine, +/area/station/engineering/atmos/hfr_room) +"bKt" = ( +/obj/structure/rack/shelf, +/obj/item/weldingtool, +/obj/item/clothing/head/utility/welding, +/turf/open/floor/iron/dark, +/area/station/maintenance/department/engineering/atmos_aux_port) +"bKy" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/turf_decal/tile/red/real_red/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/common/laser_tag) +"bKD" = ( +/obj/machinery/door/airlock{ + name = "Forge" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/service/forge) +"bKE" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/science/ordnance) +"bKK" = ( +/obj/structure/table, +/obj/item/gun/energy/laser/practice, +/obj/item/gun/energy/laser/practice{ + pixel_y = 5 + }, +/obj/machinery/recharger{ + pixel_y = 4 + }, +/obj/effect/turf_decal/stripes/end, +/turf/open/floor/iron/dark, +/area/station/science/auxlab/firing_range) +"bKM" = ( +/obj/effect/turf_decal/vg_decals/numbers/two, +/obj/structure/closet/emcloset/wall{ + pixel_y = -32 + }, +/turf/open/floor/iron/dark, +/area/station/escapepodbay) +"bKS" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/south, +/obj/structure/window/spawner/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"bKW" = ( +/obj/structure/table, +/turf/open/floor/noslip, +/area/station/maintenance/gag_room) +"bKX" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, +/obj/structure/railing{ + dir = 1 + }, +/obj/machinery/status_display/ai/directional/east, +/turf/open/floor/wood/tile, +/area/station/service/bar/atrium) +"bLb" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/sign/picture_frame/showroom{ + pixel_y = 32 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/captain) +"bLe" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"bLf" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/science/central) +"bLh" = ( +/obj/structure/chair/wood{ + dir = 8 + }, +/obj/machinery/button/curtain{ + id = "dormscurtain1"; + pixel_x = 25 + }, +/turf/open/floor/wood, +/area/station/commons/dorms/room1) +"bLj" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/access/all/security/court, +/turf/open/floor/plating, +/area/station/security/courtroom) +"bLm" = ( +/obj/machinery/light/floor/has_bulb, +/turf/open/floor/plating, +/area/station/hallway/secondary/entry) +"bLn" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"bLs" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/trash_pile, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"bLt" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/table/wood, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/effect/spawner/random/trash/soap, +/turf/open/floor/plating, +/area/station/service/theater/abandoned) +"bLw" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/chair/sofa/bench{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"bLD" = ( +/obj/machinery/door/airlock/command{ + name = "Research Division Server Room" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/science/rd, +/turf/open/floor/iron/dark, +/area/station/science/server) +"bLE" = ( +/obj/item/chair/plastic{ + pixel_y = 10 + }, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/iron, +/area/station/common/wrestling/arena) +"bLF" = ( +/obj/effect/turf_decal/siding/brown{ + dir = 1 + }, +/obj/machinery/computer/security/qm{ + dir = 1 + }, +/obj/machinery/requests_console/directional/south{ + department = "Quartermaster's Office"; + name = "Quartermaster's Requests Console" + }, +/obj/effect/mapping_helpers/requests_console/announcement, +/obj/effect/mapping_helpers/requests_console/supplies, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/qm) +"bLI" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/nitrogen_input, +/turf/open/floor/engine/n2, +/area/station/engineering/atmos) +"bLL" = ( +/turf/open/floor/plating, +/area/station/maintenance/department/security/lower) +"bLR" = ( +/obj/effect/turf_decal/stripes/white/box, +/obj/machinery/porta_turret/ai, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai) +"bLT" = ( +/obj/structure/plasticflaps/opaque, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + location = "Research" + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/science/central) +"bLW" = ( +/obj/structure/table, +/obj/machinery/microwave{ + pixel_y = 8 + }, +/turf/open/floor/iron/dark/small, +/area/station/cargo/storage) +"bLY" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 1 + }, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) +"bMc" = ( +/obj/machinery/light/directional/south, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) +"bMd" = ( +/obj/structure/window/spawner/directional/east, +/obj/effect/turf_decal/bot, +/obj/machinery/growing/tray, +/turf/open/floor/iron/dark, +/area/station/common/night_club/changing_room) +"bMi" = ( +/obj/machinery/door/poddoor/shutters{ + id = "gatewayshutters"; + name = "Gateway Chamber Shutters" + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/command/gateway) +"bMn" = ( +/obj/structure/rack, +/obj/item/circuitboard/mecha/ripley/main, +/obj/item/circuitboard/mecha/ripley/peripherals, +/obj/item/storage/medkit, +/obj/item/storage/medkit, +/obj/item/storage/medkit, +/obj/item/healthanalyzer, +/obj/item/healthanalyzer, +/obj/item/healthanalyzer, +/obj/item/stack/cable_coil, +/obj/item/stack/cable_coil, +/obj/item/stack/cable_coil, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/prox_sensor, +/obj/item/assembly/prox_sensor, +/obj/item/assembly/prox_sensor, +/obj/item/assembly/prox_sensor, +/obj/item/assembly/prox_sensor, +/obj/machinery/camera/autoname/directional/north, +/turf/open/floor/mineral/plastitanium/red, +/area/station/science/robotics/lab) +"bMr" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/thinplating_new/dark, +/turf/open/floor/iron/dark/textured_large, +/area/station/ai_monitored/security/armory) +"bMt" = ( +/obj/structure/rack/shelf, +/obj/effect/spawner/random/sakhno/ammo, +/obj/effect/spawner/random/sakhno/ammo{ + pixel_y = 12 + }, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"bMx" = ( +/obj/item/radio/intercom/directional/south, +/obj/effect/turf_decal/tile/blue/half/contrasted, +/turf/open/floor/iron/dark/side, +/area/station/hallway/secondary/command) +"bMB" = ( +/obj/machinery/door/airlock/vault{ + name = "Vault Door" + }, +/obj/effect/mapping_helpers/airlock/locked, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/navigate_destination, +/obj/effect/mapping_helpers/airlock/access/all/supply/vault, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/nuke_storage) +"bMH" = ( +/obj/structure/closet, +/obj/effect/turf_decal/delivery, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"bMK" = ( +/obj/structure/rack/shelf, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/item/radio/intercom/directional/north, +/obj/item/storage/pill_bottle/paxpsych, +/turf/open/floor/iron, +/area/station/medical/psychology) +"bMO" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/machinery/computer/communications, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"bMW" = ( +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) +"bMY" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/sign/painting/parting{ + pixel_y = 32 + }, +/obj/structure/grandfatherclock, +/obj/machinery/light_switch/directional/west, +/turf/open/floor/wood, +/area/station/command/heads_quarters/nt_rep) +"bNm" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"bNr" = ( +/turf/open/floor/iron/dark/telecomms, +/area/station/tcommsat/server) +"bNv" = ( +/obj/structure/window/reinforced/plasma/spawner/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold/general/visible{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/power/energy_accumulator/tesla_coil/anchored, +/turf/open/floor/engine, +/area/station/engineering/supermatter) +"bNA" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/turf/open/floor/plating, +/area/station/science/ordnance/freezerchamber) +"bNL" = ( +/obj/structure/table/reinforced, +/obj/item/aicard, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) +"bNM" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/chair{ + dir = 8; + name = "Bailiff" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/security/courtroom) +"bNO" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/test_chambers) +"bNQ" = ( +/obj/structure/table/wood, +/obj/item/paper_bin, +/obj/item/pen, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/grimy, +/area/station/security/detectives_office/private_investigators_office) +"bNR" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 5 + }, +/obj/structure/shipping_container/nakamura, +/turf/open/floor/iron/dark/small, +/area/station/cargo/miningdock) +"bNW" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"bNY" = ( +/obj/structure/reagent_dispensers/plumbed{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/dorms) +"bOg" = ( +/turf/closed/wall/r_wall, +/area/station/common/night_club/changing_room) +"bOj" = ( +/obj/structure/chair/sofa/bench{ + dir = 8; + pixel_x = 5 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/common/locker_room_shower) +"bOu" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/upper) +"bOv" = ( +/obj/structure/disposalpipe/junction/yjunction{ + dir = 1 + }, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"bOw" = ( +/obj/machinery/light/directional/south, +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat_interior) +"bOx" = ( +/obj/item/radio/intercom/directional/south, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/window/brigdoor/right/directional/east{ + name = "Command Chair"; + req_access = list("command") + }, +/turf/open/floor/iron, +/area/station/command/bridge) +"bOC" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/portable_atmospherics/canister/plasma, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/storage) +"bOK" = ( +/obj/machinery/firealarm/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) +"bOO" = ( +/obj/structure/cable, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/service/power_station) +"bOR" = ( +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/engineering/main) +"bOS" = ( +/obj/machinery/light/directional/west, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/secondary/command) +"bOT" = ( +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/station/service/cafeteria) +"bOU" = ( +/obj/structure/cable, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/science/xenobiology) +"bOX" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 8 + }, +/obj/effect/landmark/start/hangover/closet, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/port) +"bOY" = ( +/obj/machinery/door/airlock{ + name = "Locker Room" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/commons/dorms) +"bOZ" = ( +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/airalarm/directional/north{ + pixel_y = 22 + }, +/obj/machinery/plumbing/growing_vat, +/obj/item/plunger{ + pixel_x = -7; + pixel_y = 20 + }, +/turf/open/floor/iron/dark, +/area/station/science/cytology) +"bPe" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/cardboard, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"bPf" = ( +/obj/effect/turf_decal/bot_red, +/obj/effect/turf_decal/loading_area/red{ + dir = 1 + }, +/obj/structure/reflector/box{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"bPi" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 1; + name = "Library Junction"; + sortType = 16 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"bPk" = ( +/obj/structure/rack, +/obj/item/storage/toolbox/drone, +/obj/item/restraints/handcuffs, +/obj/effect/turf_decal/bot, +/obj/structure/railing{ + dir = 4 + }, +/obj/machinery/light/directional/south, +/obj/effect/turf_decal/tile/purple/anticorner/contrasted, +/turf/open/floor/iron/dark, +/area/station/security/corrections_officer) +"bPn" = ( +/obj/effect/spawner/random/trash/mess, +/turf/open/floor/plating, +/area/station/maintenance/xenobio_disposals) +"bPt" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood/parquet, +/area/station/command/gateway) +"bPz" = ( +/obj/effect/turf_decal/stripes/white/box, +/obj/machinery/porta_turret/ai, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai) +"bPE" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Gulag Processing" + }, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/turf/open/floor/iron, +/area/station/security/execution/transfer) +"bPG" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"bPM" = ( +/obj/effect/landmark/start/chaplain, +/obj/structure/chair/comfy/brown{ + color = "#A46106" + }, +/turf/open/floor/carpet, +/area/station/service/chapel/office) +"bPN" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/stairs/old{ + dir = 4 + }, +/area/station/service/theater/abandoned) +"bPO" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/status_display/ai/directional/east, +/obj/machinery/camera/directional/east{ + c_tag = "Upper Central Hallway - Upper Port Lower Aft"; + name = "hallway camera" + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"bPP" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"bPS" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/test_chambers) +"bPZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/science/upper) +"bQf" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron/white, +/area/station/science/genetics) +"bQg" = ( +/obj/structure/table/wood, +/obj/machinery/computer/security/wooden_tv{ + pixel_y = 8 + }, +/obj/item/radio/intercom{ + dir = 8; + freerange = 1; + name = "Station Intercom (Captain)"; + pixel_y = 20 + }, +/obj/machinery/button/door/directional/west{ + id = "Captainprivacy"; + name = "Privacy Shutters Control"; + pixel_x = 5; + pixel_y = 37; + req_access = list("captain") + }, +/obj/machinery/button/door/directional/north{ + id = "Capoffice"; + name = "Office Lock Controll"; + normaldoorcontrol = 1; + pixel_x = -6; + pixel_y = 37; + specialfunctions = 4 + }, +/turf/open/floor/carpet/blue, +/area/station/command/heads_quarters/captain/private) +"bQp" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/red/corner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + color = "#DE3A3A"; + dir = 5 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 5 + }, +/turf/open/floor/iron/dark/side{ + dir = 5 + }, +/area/station/security/prison) +"bQt" = ( +/turf/open/floor/iron, +/area/station/medical/chemistry) +"bQE" = ( +/obj/structure/table/reinforced, +/obj/item/reagent_containers/condiment/saltshaker{ + pixel_x = -8; + pixel_y = 5 + }, +/obj/item/reagent_containers/condiment/peppermill{ + pixel_x = -8 + }, +/turf/open/floor/iron, +/area/station/maintenance/abandon_diner) +"bQF" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/service/kitchen/diner) +"bQL" = ( +/obj/structure/table/reinforced, +/obj/structure/window/spawner/directional/north, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/item/storage/box/lasertagpins{ + pixel_y = 5 + }, +/turf/open/floor/wood/parquet, +/area/station/common/arcade) +"bQP" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood, +/obj/item/folder, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/carpet, +/area/station/service/chapel/office) +"bQU" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/table, +/obj/item/disk/tech_disk{ + pixel_x = -6 + }, +/obj/item/disk/tech_disk{ + pixel_x = 6 + }, +/obj/item/disk/tech_disk{ + pixel_y = 6 + }, +/turf/open/floor/iron/white, +/area/station/science/lab) +"bQX" = ( +/obj/machinery/conveyor/inverted{ + dir = 9; + id = "cargoload" + }, +/turf/open/floor/plating, +/area/station/cargo/storage) +"bRe" = ( +/obj/item/kirbyplants/random, +/obj/machinery/light/directional/west, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/ce) +"bRf" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/aisat/exterior) +"bRh" = ( +/obj/structure/table/wood/poker, +/obj/item/gun/ballistic/revolver/russian, +/obj/item/storage/dice{ + pixel_x = 22 + }, +/obj/effect/spawner/random/entertainment/gambling, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet, +/area/station/maintenance/rus_gambling) +"bRp" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/common/locker_room_shower) +"bRu" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/poddoor/shutters{ + id = "toxinsaccess"; + name = "Toxins Storage" + }, +/obj/machinery/button/door/incinerator_vent_ordmix{ + id = "toxinsaccess"; + name = "Toxins Access"; + pixel_x = 24 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/storage) +"bRz" = ( +/obj/structure/table/wood, +/obj/item/taperecorder, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/glass, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/wood, +/area/station/maintenance/abandon_psych) +"bRA" = ( +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/station/service/bar/atrium) +"bRC" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"bRE" = ( +/turf/closed/wall, +/area/station/service/chapel/funeral) +"bRK" = ( +/obj/structure/table/glass, +/obj/item/reagent_containers/cup/glass/mug/britcup, +/turf/open/floor/wood, +/area/station/hallway/primary/central) +"bRW" = ( +/obj/machinery/door/airlock/research{ + name = "Cytology Lab" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/cytology) +"bSa" = ( +/obj/structure/table, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/effect/spawner/random/aimodule/harmful, +/obj/machinery/light/small/directional/east, +/turf/open/floor/iron, +/area/station/ai_monitored/turret_protected/ai_upload) +"bSd" = ( +/turf/open/floor/iron/dark, +/area/station/science/xenobiology) +"bSf" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "cargodeliver" + }, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/iron/dark, +/area/station/cargo/lobby) +"bSo" = ( +/obj/effect/turf_decal/stripes{ + dir = 9 + }, +/obj/machinery/rnd/destructive_analyzer, +/turf/open/floor/iron, +/area/station/science/lab) +"bSr" = ( +/obj/structure/table, +/obj/item/stack/package_wrap, +/obj/item/hand_labeler, +/turf/open/floor/iron, +/area/station/commons/vacant_room/commissary) +"bSz" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/engineering/storage/tech) +"bSB" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/service/power_station) +"bSN" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/wood/parquet, +/area/station/common/tailoring) +"bSP" = ( +/obj/machinery/door/airlock/corporate{ + name = "Representative's Quarters" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/command/captain, +/obj/machinery/duct, +/turf/open/floor/carpet/green, +/area/station/command/heads_quarters/nt_rep) +"bSQ" = ( +/obj/machinery/camera/directional/south{ + c_tag = "Arrivals - Upper"; + name = "arrivals camera" + }, +/obj/machinery/vending/cigarette, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"bSS" = ( +/obj/item/stack/sheet/iron/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/wrench, +/obj/structure/table/reinforced, +/obj/item/grenade/chem_grenade/smart_metal_foam, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva) +"bTb" = ( +/obj/structure/table/reinforced, +/obj/machinery/light_switch/directional/west, +/obj/machinery/coffeemaker, +/obj/item/coffee_cartridge, +/obj/item/coffee_cartridge, +/obj/item/coffee_cartridge, +/turf/open/floor/iron/dark, +/area/station/engineering/break_room) +"bTk" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/chapel{ + dir = 1 + }, +/area/station/service/chapel) +"bTl" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/machinery/power/shieldwallgen, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva/upper) +"bTs" = ( +/obj/machinery/power/port_gen/pacman/pre_loaded, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/station/maintenance/pool_maintenance) +"bTt" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/yellow/visible, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/engineering/atmos/pumproom) +"bTx" = ( +/obj/effect/turf_decal/bot_white, +/obj/structure/railing{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/white/filled/arrow_cw{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/white/filled/arrow_ccw{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"bTy" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/security/warden) +"bTz" = ( +/obj/effect/turf_decal/trimline/purple/filled/corner, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/science/research) +"bTE" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/item/circuitboard/computer/secure_data, +/obj/item/circuitboard/computer/operating, +/obj/machinery/light/small/broken/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/console_room) +"bTF" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/hallway/primary/central/aft) +"bTG" = ( +/obj/effect/turf_decal/stripes/white/line, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/turf/open/floor/engine/hull/reinforced, +/area/space/nearstation) +"bTH" = ( +/obj/effect/landmark/start/assistant, +/turf/open/floor/iron, +/area/station/commons/locker) +"bTI" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/structure/table, +/obj/item/stack/sheet/plasteel{ + amount = 10 + }, +/obj/item/stack/sheet/rglass{ + amount = 50 + }, +/obj/item/storage/toolbox/mechanical{ + pixel_x = 2; + pixel_y = 2 + }, +/turf/open/floor/iron/dark/side{ + dir = 10 + }, +/area/station/ai_monitored/command/storage/eva) +"bTN" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/captain) +"bTP" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"bTU" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/aft/upper) +"bUc" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"bUe" = ( +/turf/open/floor/wood, +/area/station/service/barber) +"bUi" = ( +/obj/structure/chair/comfy/beige{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/button/door{ + id = "ceprivacy"; + name = "Privacy Control"; + pixel_y = -25; + req_access = list("ce") + }, +/obj/structure/cable, +/obj/effect/landmark/start/chief_engineer, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/ce) +"bUm" = ( +/obj/structure/reagent_dispensers/plumbed{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/chapel) +"bUn" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Central Upper Hallway" + }, +/turf/open/floor/iron, +/area/station/commons/dorms) +"bUp" = ( +/obj/structure/table/reinforced, +/obj/machinery/recharger{ + pixel_x = -5; + pixel_y = -3 + }, +/obj/item/storage/box/evidence{ + pixel_x = 9; + pixel_y = 8 + }, +/obj/item/storage/box/prisoner{ + pixel_x = 9 + }, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"bUu" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/curtain/bounty, +/turf/open/floor/plating, +/area/station/command/gateway) +"bUA" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating/airless, +/area/station/maintenance/fore/upper) +"bUB" = ( +/obj/machinery/power/turbine/inlet_compressor, +/turf/open/floor/engine/vacuum, +/area/station/maintenance/disposal/incinerator) +"bUD" = ( +/obj/structure/table/glass, +/turf/open/floor/wood, +/area/station/hallway/primary/port) +"bVc" = ( +/obj/structure/window/spawner/directional/south, +/obj/structure/filingcabinet/chestdrawer, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/medical/virology/isolation) +"bVe" = ( +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"bVf" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/hallway/secondary/exit) +"bVh" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/west, +/obj/structure/window/spawner/directional/south, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"bVi" = ( +/obj/machinery/door/airlock{ + name = "Drinks Shop" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/common/wrestling/beverage) +"bVj" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"bVn" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/effect/turf_decal/caution, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"bVt" = ( +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"bVy" = ( +/obj/structure/bookcase/random/nonfiction, +/turf/open/floor/wood, +/area/station/command/meeting_room/council) +"bVB" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 10 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/security/medical) +"bVF" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat_interior) +"bVK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/corner{ + dir = 1 + }, +/area/station/hallway/primary/upper) +"bVL" = ( +/obj/machinery/camera/directional/south{ + c_tag = "Bridge - Airlock"; + name = "command camera" + }, +/turf/open/floor/iron/smooth_large, +/area/station/command/secure_bunker) +"bVN" = ( +/obj/structure/table/glass, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/item/hairbrush, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/carpet/black, +/area/station/service/barber) +"bVP" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 5 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"bVU" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/junction/yjunction, +/turf/open/floor/wood, +/area/station/command/captain_dining) +"bWe" = ( +/obj/effect/turf_decal/tile/green/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/cargo/sorting) +"bWi" = ( +/obj/structure/window/reinforced/fulltile, +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/flowers_br, +/turf/open/floor/grass, +/area/station/hallway/primary/central/fore) +"bWn" = ( +/obj/machinery/duct, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/commons/dorms/room5) +"bWo" = ( +/obj/item/flatpacked_machine/rtg, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/atmos_aux_port) +"bWr" = ( +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/service/lawoffice) +"bWu" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron/cafeteria, +/area/station/commons/toilet/auxiliary) +"bWy" = ( +/obj/machinery/chem_heater/withbuffer, +/obj/structure/window/spawner/directional/south, +/turf/open/floor/iron/white, +/area/station/medical/pharmacy) +"bWF" = ( +/obj/machinery/door/airlock/external{ + name = "Atmospherics Internal Airlock" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/obj/effect/mapping_helpers/airlock/unres, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plating, +/area/station/engineering/atmos/test_chambers) +"bWK" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/commons/dorms) +"bWQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/trash/popcorn, +/turf/open/floor/plating, +/area/station/maintenance/abandon_art_studio) +"bWU" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/chair{ + dir = 4 + }, +/obj/structure/window/spawner/directional/west, +/obj/effect/landmark/start/assistant, +/turf/open/floor/wood, +/area/station/hallway/primary/central) +"bWV" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/light/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"bWW" = ( +/obj/effect/turf_decal/trimline/purple/filled/line, +/obj/machinery/status_display/evac/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"bWZ" = ( +/obj/machinery/door/airlock/engineering{ + name = "Starboard Bow Solar Access" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/sign/warning/electric_shock/directional/north, +/obj/effect/mapping_helpers/airlock/access/all/engineering/general, +/turf/open/floor/iron/dark, +/area/station/maintenance/solars/starboard/fore) +"bXe" = ( +/obj/structure/filingcabinet/security, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/station/security/detectives_office/private_investigators_office) +"bXl" = ( +/obj/structure/table, +/obj/machinery/processor{ + pixel_y = 9 + }, +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/iron/cafeteria, +/area/station/common/wrestling/concessions) +"bXx" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command/glass{ + name = "Bridge" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "bridge-west" + }, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/command/general, +/obj/effect/turf_decal/tile/blue/half/contrasted, +/turf/open/floor/iron/dark/side, +/area/station/command/bridge) +"bXA" = ( +/obj/effect/turf_decal/vg_decals/numbers/three, +/obj/effect/landmark/start/prisoner, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/security/prison/safe) +"bXG" = ( +/obj/structure/chair/stool/directional/south, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/iron, +/area/station/engineering/break_room) +"bXI" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 5 + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/command/heads_quarters/rd) +"bXK" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_y = 3 + }, +/obj/item/pen{ + pixel_y = 3 + }, +/obj/effect/turf_decal/siding/brown{ + dir = 6 + }, +/turf/open/floor/iron/dark, +/area/station/cargo/sorting) +"bXL" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/escapepodbay) +"bXX" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"bXY" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor, +/area/station/engineering/atmos) +"bYc" = ( +/turf/open/floor/iron/white/side{ + dir = 9 + }, +/area/station/science/xenobiology) +"bYj" = ( +/obj/machinery/door/firedoor/border_only, +/obj/structure/chair/stool/directional/north{ + pixel_y = 11 + }, +/obj/structure/railing, +/obj/effect/landmark/start/bitrunner, +/turf/open/floor/iron/dark/small, +/area/station/cargo/storage) +"bYk" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/upper) +"bYn" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/effect/turf_decal/stripes, +/obj/machinery/suit_storage_unit/standard_unit, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva/upper) +"bYp" = ( +/obj/structure/cable, +/obj/structure/extinguisher_cabinet/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/command/heads_quarters/hop) +"bYs" = ( +/obj/structure/cable, +/obj/item/electronics/airlock, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"bYx" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/commons/fitness) +"bYC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"bYD" = ( +/obj/structure/transit_tube/crossing/horizontal, +/turf/open/floor/iron/shuttle/arrivals/airless, +/area/space/nearstation) +"bYG" = ( +/turf/closed/wall, +/area/station/commons/dorms/room8) +"bYH" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/obj/structure/cable, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/iron/white, +/area/station/medical/cryo) +"bYK" = ( +/obj/structure/chair/plastic, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"bYN" = ( +/obj/structure/cable, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white/side{ + dir = 8 + }, +/area/station/command/heads_quarters/ce) +"bYQ" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 4 + }, +/obj/machinery/duct, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/central/fore) +"bZe" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"bZh" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/effect/turf_decal/stripes, +/obj/machinery/suit_storage_unit/security, +/turf/open/floor/iron/dark, +/area/station/security/lockers) +"bZm" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/smooth, +/area/station/cargo/miningdock) +"bZp" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/obj/structure/sign/calendar/directional/north, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/qm) +"bZr" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"bZC" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder{ + pixel_x = 18; + pixel_y = 4 + }, +/obj/machinery/coffeemaker/impressa, +/obj/structure/sign/chalkboard_menu{ + pixel_y = 32 + }, +/turf/open/floor/iron/dark, +/area/station/service/cafeteria) +"bZD" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/sink/directional/west, +/obj/machinery/light/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/service/hydroponics/garden/abandoned) +"bZG" = ( +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/iron/stairs/right{ + dir = 1 + }, +/area/station/hallway/primary/central) +"bZH" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp{ + pixel_y = 8 + }, +/obj/item/stack/package_wrap, +/obj/item/hand_labeler{ + pixel_y = -9 + }, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/hop) +"bZJ" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/chair/office{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/carpet, +/area/station/maintenance/abandon_office) +"bZN" = ( +/obj/structure/chair/stool/bar/directional/north, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen/diner) +"bZP" = ( +/obj/structure/cable, +/obj/item/shard, +/obj/item/shard, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/science/tele_sci) +"bZR" = ( +/obj/item/spear, +/turf/open/floor/plating, +/area/station/maintenance/abandon_wrestle) +"bZV" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/nt_rep) +"cab" = ( +/turf/open/floor/iron/smooth_edge, +/area/station/command/secure_bunker) +"caw" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/holopad, +/turf/open/floor/iron/dark, +/area/station/science/server) +"caz" = ( +/obj/structure/table, +/obj/item/toy/crayon/purple{ + pixel_x = -11; + pixel_y = 8 + }, +/obj/item/ammo_box/a357, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"caB" = ( +/obj/machinery/door/airlock/maintenance, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"caC" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/security/prison/mess) +"caS" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 10 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/security/checkpoint/medical) +"caW" = ( +/obj/structure/cable, +/obj/effect/spawner/random/trash/garbage, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"cbl" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/pointy, +/turf/open/floor/grass, +/area/station/science/research) +"cbm" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/camera/autoname/directional/east, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"cbs" = ( +/obj/machinery/newscaster/directional/north, +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/item/clothing/shoes/wraps{ + pixel_x = -3; + pixel_y = 4 + }, +/obj/item/clothing/shoes/wraps/silver{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/clothing/shoes/wraps/blue{ + pixel_x = -4; + pixel_y = -3 + }, +/obj/item/clothing/shoes/wraps/red{ + pixel_x = 4; + pixel_y = -3 + }, +/turf/open/floor/iron/dark, +/area/station/common/tailoring) +"cbv" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor, +/area/station/engineering/main) +"cby" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/public/glass{ + name = "Upper Science Department" + }, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/science/research) +"cbB" = ( +/obj/structure/cable, +/obj/structure/extinguisher_cabinet/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"cbD" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"cbF" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/east, +/obj/structure/window/spawner/directional/west, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"cbG" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/green/filled/corner{ + dir = 1 + }, +/turf/open/floor/iron/dark/corner{ + dir = 8 + }, +/area/station/service/hydroponics) +"cbJ" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/security/prison/workout) +"cbL" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/disposal/delivery_chute, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/machinery/light/directional/east, +/obj/machinery/door/window/left/directional/south{ + req_access = list("cargo"); + name = "Deliveries" + }, +/turf/open/floor/iron/dark, +/area/station/cargo/office) +"cbZ" = ( +/turf/open/floor/iron, +/area/station/commons/locker) +"ccb" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/storage) +"ccj" = ( +/obj/effect/decal/cleanable/blood/gibs/down, +/turf/open/floor/material/meat, +/area/station/maintenance/department/science/xenobiology) +"ccm" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"ccs" = ( +/obj/structure/closet/crate/bin, +/obj/effect/spawner/random/trash/garbage, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"cct" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/effect/spawner/random/maintenance/two, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"ccx" = ( +/obj/structure/table/wood, +/obj/item/storage/fancy/donut_box, +/turf/open/floor/iron, +/area/station/security/courtroom) +"ccC" = ( +/obj/machinery/computer/mech_bay_power_console, +/obj/effect/turf_decal/bot_red, +/obj/structure/cable, +/obj/machinery/newscaster/directional/north, +/turf/open/floor/mineral/plastitanium, +/area/station/science/robotics/mechbay) +"ccF" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, +/obj/machinery/light/directional/west, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"ccH" = ( +/obj/effect/turf_decal/trimline/white/line{ + dir = 1 + }, +/turf/open/floor/iron/shuttle/arrivals/airless, +/area/space/nearstation) +"ccK" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/tile/bar/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/service/bar) +"ccL" = ( +/obj/structure/table, +/obj/item/storage/cans/sixsoda, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/directional/south, +/turf/open/floor/eighties, +/area/station/maintenance/abandon_arcade) +"ccV" = ( +/obj/effect/turf_decal/siding/wood, +/obj/item/radio/intercom/directional/north{ + pixel_y = 34 + }, +/obj/machinery/button/door/directional/west{ + id = "hopblast"; + name = "Lockdown Blast Doors"; + pixel_x = -6; + pixel_y = 25; + req_access = list("hop") + }, +/obj/machinery/button/door/directional/west{ + id = "hopline"; + name = "Queue Shutters Control"; + pixel_x = 5; + pixel_y = 25; + req_access = list("hop") + }, +/obj/machinery/light/directional/north, +/turf/open/floor/wood, +/area/station/command/heads_quarters/hop) +"cdd" = ( +/obj/structure/chair/sofa/bench{ + dir = 4; + layer = 2.8 + }, +/obj/structure/railing{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/commons/dorms) +"cdh" = ( +/obj/effect/turf_decal/stripes, +/obj/effect/landmark/start/chemist, +/turf/open/floor/iron, +/area/station/medical/chemistry) +"cds" = ( +/obj/machinery/vending/cigarette, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/command/meeting_room/council) +"cdu" = ( +/obj/structure/drain, +/obj/machinery/shower/directional/west, +/turf/open/floor/iron/checker, +/area/station/engineering/atmos/test_chambers) +"cdz" = ( +/obj/structure/chair/office, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"cdB" = ( +/obj/structure/window/reinforced/plasma/spawner/directional/west, +/obj/machinery/power/shuttle_engine/heater{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"cdE" = ( +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible{ + dir = 10 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"cdK" = ( +/obj/structure/chair/office{ + dir = 4 + }, +/obj/effect/landmark/start/roboticist, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/science/robotics) +"cdM" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) +"cdR" = ( +/obj/effect/turf_decal/bot, +/obj/item/target/clown, +/obj/item/target/syndicate, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/iron/dark, +/area/station/science/auxlab/firing_range) +"cdU" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/trimline/red/corner, +/obj/effect/turf_decal/trimline/red/filled/line{ + color = "#DE3A3A"; + dir = 9 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 9 + }, +/turf/open/floor/iron/dark/side{ + dir = 9 + }, +/area/station/security/prison) +"cdY" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 10 + }, +/turf/open/floor/iron/dark/textured_corner{ + dir = 4 + }, +/area/station/security/lockers) +"cdZ" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/machinery/corral_corner{ + mapping_id = "2" + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"ceb" = ( +/obj/structure/dresser, +/turf/open/floor/carpet/blue, +/area/station/command/heads_quarters/captain/private) +"ced" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, +/turf/open/floor/plating, +/area/station/engineering/main) +"cef" = ( +/obj/machinery/door/poddoor/shutters{ + id = "evashutters2"; + name = "E.V.A. Storage Shutters" + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/maintenance/aux_eva) +"ceg" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/sign/poster/random/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"ceh" = ( +/obj/structure/chair/wood{ + dir = 4; + name = "Witness stand" + }, +/obj/machinery/light/directional/west, +/obj/machinery/status_display/ai/directional/west, +/turf/open/floor/wood, +/area/station/security/courtroom) +"cek" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/stairs{ + dir = 4 + }, +/area/station/engineering/gravity_generator) +"cev" = ( +/obj/structure/chair/sofa/bench/left{ + dir = 4; + pixel_x = -5 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"ceC" = ( +/obj/structure/chair/stool/directional/west, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"ceG" = ( +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/siding/thinplating_new, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/service) +"ceI" = ( +/turf/open/floor/wood/parquet, +/area/station/security/detectives_office) +"ceN" = ( +/obj/effect/turf_decal/box, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/science/ordnance) +"ceT" = ( +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/security/office) +"ceU" = ( +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "gatewayblastdoors"; + name = "Gateway/Teleporter seperation blast doors"; + pixel_x = 6; + pixel_y = -5; + req_access = list("teleporter") + }, +/obj/item/paper/pamphlet/gateway{ + pixel_x = -6; + pixel_y = 3 + }, +/obj/machinery/button/door{ + id = "WestLockdown1"; + name = "West Bridge Lockdown"; + pixel_x = 6; + pixel_y = 7 + }, +/turf/open/floor/iron/dark, +/area/station/command/gateway) +"ceV" = ( +/obj/item/kirbyplants/random, +/obj/machinery/camera/directional/east{ + c_tag = "Security - Brig Desk" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/item/radio/intercom/directional/east, +/obj/effect/turf_decal/siding/thinplating_new/dark/corner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/corner{ + dir = 8 + }, +/turf/open/floor/iron/dark/smooth_corner{ + dir = 8 + }, +/area/station/security/brig) +"ceX" = ( +/turf/open/floor/iron/dark, +/area/station/hallway/primary/central) +"cfb" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/service/bar/backroom) +"cfg" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/obj/machinery/status_display/ai/directional/north, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/xenobiology/control) +"cfj" = ( +/obj/structure/window/spawner/directional/north, +/obj/structure/window/spawner/directional/west, +/obj/structure/flora/bush/jungle, +/obj/structure/flora/biolumi/lamp/weaklight, +/obj/structure/flora/ocean/glowweed, +/turf/open/floor/grass/fairy, +/area/station/common/night_club) +"cfl" = ( +/turf/open/openspace, +/area/station/hallway/primary/upper) +"cfn" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Diner" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/landmark/navigate_destination, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen/diner) +"cfv" = ( +/obj/structure/flora/bush/leafy, +/obj/machinery/growing/tray, +/turf/open/floor/grass, +/area/station/security/prison/garden) +"cfy" = ( +/obj/machinery/restaurant_portal/restaurant, +/obj/machinery/light/directional/north, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen/diner) +"cfN" = ( +/obj/effect/landmark/start/botanist, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"cfP" = ( +/obj/structure/closet/crate/bin, +/obj/effect/spawner/random/trash/garbage, +/obj/item/camera_film, +/turf/open/floor/wood, +/area/station/maintenance/abandon_art_studio) +"cfS" = ( +/obj/machinery/conveyor/inverted{ + dir = 9; + id = "garbage" + }, +/obj/machinery/door/window/right/directional/west{ + name = "Danger: Conveyor Access" + }, +/turf/open/floor/plating, +/area/station/maintenance/disposal) +"cfV" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/wood, +/area/station/service/hydroponics/garden/abandoned) +"cgc" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/closed/wall, +/area/station/maintenance/central) +"cgs" = ( +/obj/machinery/camera/directional/west, +/turf/open/floor/engine/vacuum, +/area/station/maintenance/department/engineering/atmos_aux_port) +"cgu" = ( +/obj/effect/turf_decal/box/white/corners, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"cgB" = ( +/obj/structure/showcase/cyborg/old{ + pixel_y = 20 + }, +/obj/machinery/ai_slipper{ + uses = 10 + }, +/obj/effect/turf_decal/bot_white, +/obj/machinery/status_display/evac/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat_interior) +"cgE" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_starboard) +"cgH" = ( +/obj/structure/railing, +/obj/machinery/door/firedoor/border_only, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark/corner{ + dir = 8 + }, +/area/station/hallway/primary/upper) +"cgN" = ( +/turf/closed/wall/rust, +/area/station/maintenance/department/engineering/atmos_aux_port) +"cgP" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_y = 3 + }, +/obj/item/pen{ + pixel_y = 3 + }, +/obj/machinery/digital_clock/directional/west, +/turf/open/floor/iron/dark, +/area/station/cargo/lobby) +"cgQ" = ( +/obj/structure/weightmachine/weightlifter, +/obj/effect/turf_decal/stripes/white/line{ + dir = 10 + }, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/prison/workout) +"cgS" = ( +/obj/machinery/door/airlock/grunge{ + name = "Chapel Morgue" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/service/crematorium, +/turf/open/floor/iron, +/area/station/service/chapel) +"cgU" = ( +/turf/closed/wall/r_wall, +/area/station/engineering/atmos/upper) +"cgV" = ( +/obj/structure/sink/directional/west, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/medical/surgery) +"chb" = ( +/obj/item/kirbyplants/random, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron/white, +/area/station/science/genetics) +"chi" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/cell/high, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/command/gateway) +"chl" = ( +/obj/machinery/camera/directional/north{ + c_tag = "Holodeck - Fore 1"; + name = "holodeck camera" + }, +/turf/open/floor/engine{ + name = "Holodeck Projector Floor" + }, +/area/station/holodeck/rec_center) +"cho" = ( +/turf/open/floor/iron/dark/corner{ + dir = 1 + }, +/area/station/hallway/primary/port) +"chA" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/item/stack/sheet/iron/fifty, +/obj/item/stack/sheet/iron/fifty, +/obj/item/stack/sheet/rglass{ + amount = 50 + }, +/obj/item/stack/sheet/rglass{ + amount = 50 + }, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/rods/fifty, +/obj/item/stack/rods/fifty, +/obj/item/stack/cable_coil, +/obj/item/stack/cable_coil, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva/upper) +"chB" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/turf/open/floor/iron/dark, +/area/station/security/execution/education) +"chC" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/security/execution/transfer) +"chF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/item/trash/sosjerky, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"chG" = ( +/obj/machinery/door/poddoor/preopen{ + id = "BarBlastDoor"; + name = "Bar Blast Door" + }, +/obj/effect/spawner/structure/window, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/service/bar/atrium) +"chO" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/security/interrogation) +"chR" = ( +/obj/structure/bed/double, +/obj/item/bedsheet/green/double, +/obj/machinery/light_switch/directional/east, +/turf/open/floor/carpet/green, +/area/station/commons/dorms/room2) +"chS" = ( +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/effect/spawner/random/maintenance/two, +/turf/open/floor/plating, +/area/station/maintenance/department/security/lesser) +"chT" = ( +/obj/machinery/status_display/door_timer{ + id = "Cell 2"; + name = "Cell 2"; + pixel_x = -32 + }, +/obj/machinery/status_display/door_timer{ + id = "Cell 5"; + name = "Cell 5"; + pixel_x = 32 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/security/brig) +"chU" = ( +/obj/machinery/holopad, +/turf/open/floor/wood, +/area/station/medical/psychology) +"chV" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/security/prison) +"cib" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/junction/yjunction, +/obj/machinery/duct, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/captain) +"cie" = ( +/obj/structure/window/spawner/directional/south, +/obj/effect/turf_decal/siding/wood, +/obj/machinery/light/directional/east, +/obj/machinery/vending/barbervend, +/obj/effect/turf_decal/tile/purple/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/service/barber) +"cig" = ( +/obj/effect/turf_decal/trimline/purple/filled/corner{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron/white, +/area/station/science/research) +"cil" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"cim" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) +"cin" = ( +/obj/machinery/button/delam_scram, +/turf/closed/wall, +/area/station/engineering/supermatter/room) +"ciB" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/command/gateway) +"ciE" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/duct, +/obj/effect/landmark/start/hangover, +/turf/open/floor/plating, +/area/station/maintenance/department/eva) +"ciF" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/science/research) +"ciM" = ( +/obj/structure/barricade/security, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/effect/turf_decal/stripes, +/turf/open/floor/engine, +/area/station/command/secure_bunker) +"ciQ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/circuit/red, +/area/station/science/robotics/mechbay) +"ciR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/cigbutt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/maintenance/abandon_art_studio) +"ciS" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -5; + pixel_y = 3 + }, +/obj/machinery/recharger{ + pixel_x = 8; + pixel_y = 3 + }, +/turf/open/floor/iron, +/area/station/security/execution/transfer) +"ciT" = ( +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/security/execution/education) +"ciZ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"cjk" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 4 + }, +/obj/structure/cable, +/obj/structure/closet/secure_closet/medical1, +/turf/open/floor/iron/white, +/area/station/medical/virology) +"cjl" = ( +/obj/machinery/atmospherics/components/binary/valve/digital/on{ + name = "Waste valve" + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"cjx" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/machinery/newscaster/directional/south, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) +"cjz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"cjD" = ( +/obj/machinery/door/airlock/grunge{ + name = "Coroner's Office" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/medical/morgue, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/medical/morgue) +"cjG" = ( +/obj/effect/spawner/structure/window/reinforced/tinted, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"ckd" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/blue/fourcorners, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"ckf" = ( +/obj/structure/railing/wrestling{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/common/wrestling/arena) +"ckt" = ( +/obj/machinery/camera/directional/west{ + c_tag = "Crew Area - Pool Port"; + name = "dormitories camera" + }, +/obj/machinery/light/directional/west, +/obj/effect/spawner/liquids_spawner, +/turf/open/floor/lowered/iron/pool/cobble/side{ + dir = 8 + }, +/area/station/common/pool) +"cku" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"ckv" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/service/chapel) +"cky" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/door/airlock{ + name = "Wrestling Ring Entrance" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/landmark/navigate_destination, +/turf/open/floor/wood, +/area/station/common/wrestling/lobby) +"ckz" = ( +/obj/machinery/light/directional/west, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"ckC" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/central) +"ckH" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"ckL" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 + }, +/obj/machinery/light/floor/has_bulb, +/turf/open/floor/iron/dark, +/area/station/common/night_club) +"ckQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/effect/landmark/generic_maintenance_landmark, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"ckT" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/service/library) +"ckV" = ( +/obj/machinery/computer/upload/borg{ + dir = 4 + }, +/obj/effect/turf_decal/delivery/white, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai_upload) +"ckW" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/turf/open/floor/glass, +/area/station/commons/dorms) +"ckY" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/chair/sofa/bench{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue/opposingcorners, +/turf/open/floor/iron/cafeteria{ + dir = 1 + }, +/area/station/hallway/secondary/entry) +"ckZ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/structure/sign/departments/medbay/alt/directional/west, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark/corner{ + dir = 1 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/brig) +"clb" = ( +/obj/structure/cable, +/turf/open/floor/iron/stairs{ + dir = 8; + initial_gas_mix = "TEMP=2.7" + }, +/area/space/nearstation) +"clo" = ( +/obj/structure/table, +/obj/item/storage/box/zipties{ + pixel_y = 6 + }, +/obj/structure/extinguisher_cabinet/directional/east, +/obj/item/reagent_containers/syringe{ + pixel_y = -3 + }, +/turf/open/floor/iron/dark, +/area/station/maintenance/department/security/prison_upper) +"clx" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"cly" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"clB" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"clI" = ( +/obj/item/statuebust/hippocratic, +/obj/structure/table/wood/fancy/blue, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/cmo) +"clK" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"clL" = ( +/obj/structure/frame/computer{ + dir = 1 + }, +/obj/item/circuitboard/computer/secure_data, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/newscaster/directional/south, +/turf/open/floor/iron/grimy, +/area/station/security/detectives_office/private_investigators_office) +"clP" = ( +/obj/structure/chair/sofa/corp/right{ + dir = 8; + pixel_x = 7 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/carpet, +/area/station/service/lawoffice) +"clS" = ( +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/structure/chair/office{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/science/auxlab/firing_range) +"clV" = ( +/obj/structure/rack/shelf, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 6 + }, +/obj/effect/spawner/random/medical/medkit, +/turf/open/floor/iron, +/area/station/medical/patients_rooms) +"clW" = ( +/obj/structure/flora/bush/lavendergrass, +/turf/open/floor/grass, +/area/station/hallway/primary/central/aft) +"clZ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/science/xenobiology) +"cmb" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"cmf" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/station/service/electronic_marketing_den) +"cmo" = ( +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"cmv" = ( +/obj/machinery/light/small/directional/south, +/obj/machinery/duct, +/turf/open/floor/iron/freezer, +/area/station/commons/toilet/restrooms) +"cmy" = ( +/obj/effect/spawner/random/structure/closet_maintenance, +/turf/open/floor/plating, +/area/station/maintenance/central) +"cmC" = ( +/obj/machinery/disposal/bin, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/obj/machinery/camera/directional/east{ + c_tag = "Central Hallway - Cafe"; + name = "hallway camera" + }, +/obj/machinery/airalarm/directional/east, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/wood, +/area/station/service/cafeteria) +"cmD" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible/layer2{ + dir = 10 + }, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"cmG" = ( +/obj/effect/turf_decal/bot_white, +/turf/open/floor/iron/dark/smooth_large/airless, +/area/space/nearstation) +"cmI" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/security/prison/mess) +"cmJ" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"cmP" = ( +/turf/closed/wall, +/area/station/medical/virology) +"cmQ" = ( +/turf/closed/wall, +/area/station/cargo/drone_bay) +"cmW" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/structure/rack, +/obj/structure/railing, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/iron/dark, +/area/station/cargo/lobby) +"cmY" = ( +/obj/structure/trash_pile, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"cnb" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/vending/cigarette, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/commons/fitness/recreation) +"cnf" = ( +/obj/machinery/door/airlock/engineering{ + name = "Security Power Station" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/any/security/hos, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/turf/open/floor/plating, +/area/station/security/power_station) +"cnk" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/blue/fourcorners, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"cno" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"cnv" = ( +/obj/effect/turf_decal/trimline/red/filled/warning{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"cnw" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"cnA" = ( +/obj/structure/chair/sofa/bench/right{ + dir = 1 + }, +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/iron/dark/side, +/area/station/security/prison/shower) +"cnL" = ( +/mob/living/basic/bot/cleanbot, +/obj/structure/railing, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat_interior) +"cnP" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/machinery/digital_clock/directional/south, +/obj/effect/turf_decal/tile/red/real_red/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hos) +"cnR" = ( +/obj/effect/landmark/start/ai/secondary, +/obj/item/radio/intercom/directional/north{ + freerange = 1; + listening = 0; + name = "Custom Channel"; + pixel_x = 8 + }, +/obj/item/radio/intercom/directional/east{ + freerange = 1; + listening = 0; + name = "Common Channel" + }, +/obj/item/radio/intercom/directional/south{ + freerange = 1; + frequency = 1447; + listening = 0; + name = "Private Channel"; + pixel_x = 8 + }, +/turf/open/floor/circuit/green, +/area/station/ai_monitored/turret_protected/ai) +"cnU" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/side, +/area/station/hallway/primary/central) +"cnV" = ( +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/engineering/atmos/test_chambers) +"cnZ" = ( +/obj/structure/closet/secure_closet/personal, +/obj/effect/turf_decal/bot, +/obj/machinery/camera/autoname/directional/north, +/turf/open/floor/iron/dark, +/area/station/commons/dorms) +"cob" = ( +/obj/structure/ore_box, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"coi" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/engineering/atmos/office) +"col" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/engineering/main) +"com" = ( +/turf/closed/wall/rust, +/area/station/maintenance/clown_chamber) +"coo" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/service/library/lounge) +"cop" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/common/pool) +"cor" = ( +/obj/structure/fake_stairs/stone, +/turf/open/floor/stone, +/area/station/common/wrestling/arena) +"cos" = ( +/obj/structure/table/wood/fancy, +/obj/item/book/granter/action/spell/smoke/lesser, +/obj/item/nullrod, +/obj/item/organ/internal/heart, +/obj/item/reagent_containers/cup/glass/bottle/holywater, +/obj/item/soulstone/anybody/chaplain, +/obj/machinery/light/small/directional/north, +/turf/open/floor/iron/grimy, +/area/station/service/chapel/office) +"cov" = ( +/turf/closed/wall/mineral/wood, +/area/station/service/barber/spa) +"cox" = ( +/obj/machinery/modular_computer/preset/id{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/keycard_auth/directional/south{ + pixel_x = 6 + }, +/obj/machinery/light_switch/directional/south{ + pixel_x = -8 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/captain/private) +"coz" = ( +/obj/structure/window/spawner/directional/south, +/obj/machinery/light/directional/east, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) +"coD" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/turf_decal/tile/purple/half, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"coP" = ( +/obj/machinery/light/directional/west, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/structure/sign/poster/random/directional/west, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron/smooth_edge{ + dir = 8 + }, +/area/station/cargo/miningdock) +"coR" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/structure/hedge, +/turf/open/floor/iron/dark/herringbone, +/area/station/security/brig) +"coT" = ( +/obj/machinery/light/directional/north, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/machinery/door/window/elevator/left/directional/east{ + elevator_mode = 1; + elevator_linked_id = "publicElevator" + }, +/obj/machinery/button/elevator{ + id = "publicElevator"; + pixel_y = 32 + }, +/obj/machinery/lift_indicator/directional/north{ + linked_elevator_id = "publicElevator" + }, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/upper) +"cpc" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"cpf" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/gloves/color/yellow, +/obj/item/storage/toolbox/electrical, +/obj/item/stack/cable_coil, +/obj/machinery/light_switch/directional/south, +/obj/item/airlock_painter, +/turf/open/floor/iron/dark, +/area/station/engineering/main) +"cpl" = ( +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/common/wrestling/locker) +"cpm" = ( +/obj/machinery/door/airlock/external{ + name = "Atmospherics External Airlock"; + space_dir = 2 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) +"cpq" = ( +/obj/machinery/door/airlock/research{ + name = "Ordnance Observation Deck" + }, +/obj/machinery/door/firedoor/heavy, +/obj/machinery/firealarm/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/science/ordnance/office) +"cpv" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_starboard) +"cpw" = ( +/obj/structure/table/reinforced/rglass, +/obj/item/razor{ + pixel_x = -8 + }, +/obj/item/razor, +/obj/machinery/camera/directional/north, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/prison) +"cpE" = ( +/obj/structure/marker_beacon/burgundy, +/turf/open/floor/iron/shuttle/evac/airless, +/area/space/nearstation) +"cpM" = ( +/obj/machinery/door/airlock/medical/glass{ + id_tag = "MedbayFoyer"; + name = "Medbay" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/medical/general, +/obj/effect/turf_decal/tile/blue/fourcorners, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"cpY" = ( +/obj/structure/rack/shelf, +/obj/item/weldingtool, +/obj/item/clothing/head/utility/welding, +/obj/machinery/airalarm/directional/west, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron, +/area/station/engineering/atmos/office) +"cqa" = ( +/obj/effect/turf_decal/stripes{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"cqd" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 1; + name = "O2 to Airmix" + }, +/obj/effect/turf_decal/stripes/box, +/turf/open/floor/plating/airless, +/area/station/engineering/atmos/upper) +"cqh" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/aquarium/prefilled, +/turf/open/floor/iron/dark, +/area/station/command/meeting_room/council) +"cqk" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/visible, +/turf/closed/wall/r_wall, +/area/station/engineering/atmos/pumproom) +"cqm" = ( +/obj/structure/flora/bush/lavendergrass, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"cqn" = ( +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/primary/central) +"cqq" = ( +/obj/effect/turf_decal/bot, +/obj/effect/spawner/random/vending/snackvend, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/primary/port) +"cqy" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/science/robotics) +"cqE" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) +"cqG" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/machinery/firealarm/directional/west, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/red/real_red/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hos) +"cqK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"cqP" = ( +/obj/effect/turf_decal/siding/purple, +/obj/effect/turf_decal/siding/purple{ + dir = 1 + }, +/turf/open/floor/glass/reinforced, +/area/station/science/research) +"cra" = ( +/turf/closed/wall/r_wall, +/area/station/medical/pharmacy) +"crn" = ( +/obj/structure/girder, +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"cro" = ( +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron, +/area/station/commons/dorms) +"crs" = ( +/obj/structure/mannequin/plastic{ + dir = 1 + }, +/turf/open/floor/wood/parquet, +/area/station/common/tailoring) +"cry" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/cafeteria, +/area/station/maintenance/abandon_diner) +"crI" = ( +/obj/structure/flora/rock, +/turf/open/floor/grass, +/area/station/hallway/primary/central/aft) +"crK" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/chair/sofa/bench/right{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue/opposingcorners, +/turf/open/floor/iron/cafeteria{ + dir = 1 + }, +/area/station/hallway/secondary/entry) +"crQ" = ( +/obj/item/stack/sheet/cardboard, +/obj/item/storage/box/lights, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/dorms) +"crR" = ( +/obj/structure/rack, +/obj/effect/spawner/random/techstorage/ai_all, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) +"crS" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/trunk, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 9 + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"crX" = ( +/turf/open/floor/iron/stairs{ + dir = 8 + }, +/area/station/commons/fitness/recreation) +"cse" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/newscaster/directional/south, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"csh" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/plating/reinforced{ + initial_gas_mix = "TEMP=2.7" + }, +/area/station/science/ordnance/bomb) +"csj" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/door/airlock/public/glass{ + name = "Central Hallway" + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"csn" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/effect/turf_decal/stripes/end, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos) +"csp" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/effect/turf_decal/bot, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/tcommsat/computer) +"csu" = ( +/obj/effect/turf_decal/trimline/green/filled/line, +/obj/machinery/airalarm/directional/south, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/medical/virology/isolation) +"csv" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_port) +"csx" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/item/poster/random_contraband{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/poster/random_contraband, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"csy" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/security/range) +"csC" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/stairs/right{ + dir = 4 + }, +/area/station/service/chapel) +"csG" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/l3closet/scientist, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology/hallway) +"csH" = ( +/turf/closed/wall, +/area/station/security/lockers) +"csL" = ( +/obj/effect/spawner/random/trash/mess, +/turf/open/floor/iron, +/area/station/maintenance/console_room) +"csR" = ( +/obj/structure/bed/double, +/obj/item/bedsheet/qm/double, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/qm) +"csS" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/central) +"csV" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) +"csY" = ( +/obj/effect/turf_decal/stripes, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/science/ordnance/storage) +"ctc" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"ctf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"ctg" = ( +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) +"ctk" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/medical/aslyum) +"ctp" = ( +/obj/structure/cable, +/obj/structure/table, +/obj/item/crowbar, +/obj/item/clothing/mask/gas, +/turf/open/floor/plating, +/area/station/maintenance/disposal) +"ctw" = ( +/obj/effect/turf_decal/tile/red/real_red/anticorner/contrasted, +/obj/structure/railing, +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hos) +"ctz" = ( +/obj/item/cigbutt, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"ctA" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/hallway/primary/port) +"ctC" = ( +/obj/structure/stairs/south, +/obj/structure/sign/directions/command{ + dir = 8; + pixel_x = 32; + pixel_y = 6 + }, +/obj/structure/sign/directions/medical{ + dir = 8; + pixel_x = 32 + }, +/obj/structure/sign/directions/science{ + dir = 8; + pixel_x = 32; + pixel_y = -6 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/central/fore) +"ctE" = ( +/obj/structure/rack/shelf, +/obj/item/tank/internals/plasmaman/belt{ + pixel_x = -6; + pixel_y = 1 + }, +/obj/item/tank/internals/plasmaman/belt{ + pixel_x = -1; + pixel_y = 1 + }, +/obj/item/tank/internals/plasmaman/belt{ + pixel_x = 4; + pixel_y = 1 + }, +/obj/item/tank/internals/plasmaman/belt{ + pixel_x = -6; + pixel_y = 1 + }, +/obj/item/tank/internals/plasmaman/belt{ + pixel_x = -1; + pixel_y = 1 + }, +/obj/item/tank/internals/plasmaman/belt{ + pixel_x = 4; + pixel_y = 1 + }, +/turf/open/floor/wood/parquet, +/area/station/common/gaskiosk) +"ctH" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/newscaster/directional/north, +/turf/open/floor/iron, +/area/station/ai_monitored/command/storage/eva/upper) +"ctJ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/security/prison/mess) +"ctK" = ( +/obj/structure/rack, +/obj/machinery/newscaster/directional/north, +/obj/machinery/status_display/ai/directional/west, +/obj/structure/extinguisher_cabinet/directional/north, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/red/corner, +/turf/open/floor/iron/dark/side{ + dir = 9 + }, +/area/station/security/brig) +"ctL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"ctM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"ctP" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/secure_closet/personal, +/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ + dir = 1 + }, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) +"ctS" = ( +/obj/structure/table, +/obj/item/food/grown/nettle{ + pixel_y = 11 + }, +/obj/item/food/grown/nettle{ + pixel_x = -8; + pixel_y = 8 + }, +/obj/item/seeds/amanita, +/obj/item/seeds/nettle, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"ctT" = ( +/obj/structure/disposaloutlet{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/iron/shuttle/evac/airless, +/area/space/nearstation) +"cua" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/service/lawoffice) +"cub" = ( +/obj/structure/table/reinforced, +/obj/item/paper_bin, +/obj/item/pen, +/obj/effect/turf_decal/trimline/red/filled/corner{ + color = "#DE3A3A"; + dir = 8 + }, +/obj/machinery/button/door/directional/east{ + id = "hosspace"; + name = "Space Shutters Control"; + pixel_y = -6; + req_access = list("hos") + }, +/obj/machinery/button/door/directional/east{ + id = "hosprivacy"; + name = "Privacy Control"; + pixel_y = 6; + req_access = list("hos") + }, +/obj/machinery/button/door/directional/east{ + id = "HoSdoor"; + name = "Door Lock"; + normaldoorcontrol = 1; + pixel_x = 36; + req_access = list("hos"); + specialfunctions = 4 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hos) +"cue" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Security Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/turf/open/floor/iron, +/area/station/maintenance/port/fore) +"cuf" = ( +/turf/closed/wall, +/area/station/engineering/atmos/office) +"cug" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/chair/wood{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/service/cafeteria) +"cuh" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/machinery/photobooth/security, +/turf/open/floor/iron/dark/side{ + dir = 9 + }, +/area/station/security/prison) +"cuk" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/loading_area{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/hallway/secondary/entry) +"cun" = ( +/obj/machinery/light/directional/west, +/obj/effect/turf_decal/tile/yellow/half/contrasted, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/iron/white/side{ + dir = 1 + }, +/area/station/command/heads_quarters/ce) +"cuq" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/grille, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/bar) +"cuz" = ( +/obj/structure/extinguisher_cabinet/directional/west, +/obj/structure/mannequin, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) +"cuA" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"cuE" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/components/trinary/filter{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/test_chambers) +"cuH" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/commons/fitness/recreation) +"cuL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Medbay Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/medical/general, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"cuT" = ( +/obj/machinery/door/airlock/bathroom{ + name = "Restroom" + }, +/obj/machinery/duct, +/turf/open/floor/carpet/blue, +/area/station/commons/dorms/room3) +"cuV" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/curtain/cloth/fancy/mechanical{ + icon_state = "bounty-open"; + icon_type = "bounty"; + id = "prisoncell4"; + name = "curtain" + }, +/turf/open/floor/plating, +/area/station/security/prison/safe) +"cva" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/east, +/obj/structure/window/spawner/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"cvc" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/commons/dorms) +"cve" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 5 + }, +/turf/open/floor/iron/dark/small, +/area/station/cargo/miningdock) +"cvg" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 6 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"cvh" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"cvi" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet, +/area/station/service/chapel) +"cvj" = ( +/obj/machinery/recharge_station, +/obj/item/robot_suit, +/turf/open/floor/plating, +/area/station/science/research/abandoned) +"cvk" = ( +/obj/structure/girder, +/obj/structure/grille/broken, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"cvn" = ( +/obj/machinery/light/directional/east, +/obj/machinery/camera/autoname/directional/east, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/port) +"cvq" = ( +/obj/machinery/medical_kiosk{ + pixel_x = -3 + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) +"cvt" = ( +/obj/structure/stairs/north, +/obj/structure/sign/directions/command{ + dir = 4; + pixel_x = -32; + pixel_y = 6 + }, +/obj/structure/sign/directions/medical{ + dir = 4; + pixel_x = -32 + }, +/obj/structure/sign/directions/science{ + dir = 4; + pixel_x = -32; + pixel_y = -6 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/central) +"cvB" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/machinery/light/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"cvD" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/loading_area, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east, +/turf/open/floor/iron/dark/textured_large, +/area/station/ai_monitored/security/armory) +"cvH" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/construction/mining/aux_base) +"cvR" = ( +/obj/machinery/exodrone_launcher, +/obj/effect/turf_decal/box, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/item/exodrone, +/turf/open/floor/plating, +/area/station/cargo/drone_bay) +"cvS" = ( +/obj/machinery/power/shuttle_engine/heater{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"cwh" = ( +/turf/open/floor/iron/stairs/medium, +/area/station/commons/dorms) +"cwm" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/door/airlock/security/glass{ + name = "Workshop" + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/prison/work) +"cwo" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"cwp" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating{ + dir = 4 + }, +/obj/effect/turf_decal/weather/sand{ + dir = 1 + }, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"cwq" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/item/storage/box/donkpockets, +/obj/item/stack/package_wrap, +/obj/item/knife, +/turf/open/floor/iron/white/side{ + dir = 1 + }, +/area/station/maintenance/abandon_diner) +"cwA" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 10 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"cwC" = ( +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/supply/general, +/obj/machinery/door/airlock/mining{ + name = "Cargo Bay" + }, +/turf/open/floor/iron/smooth_corner{ + dir = 4 + }, +/area/station/cargo/miningdock) +"cwD" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"cwE" = ( +/obj/structure/cable, +/obj/item/radio/intercom/directional/north, +/obj/machinery/door/window/brigdoor/right/directional/west, +/turf/open/floor/iron, +/area/station/security/checkpoint/escape) +"cwF" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"cwK" = ( +/obj/effect/landmark/blobstart, +/obj/machinery/duct, +/turf/open/floor/iron/freezer, +/area/station/common/pool) +"cwL" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "councilblast"; + name = "Council Chambers Blast Door" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/command/meeting_room/council) +"cwO" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Permabrig Visitation" + }, +/obj/effect/turf_decal/delivery/blue, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/security/brig, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/prison/visit) +"cwQ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"cwS" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/status_display/evac/directional/east, +/turf/open/floor/iron/dark/herringbone, +/area/station/security/brig) +"cxa" = ( +/obj/structure/window/spawner/directional/west, +/obj/structure/window/spawner/directional/south, +/obj/structure/flora/rock/pile/jungle, +/turf/open/floor/grass, +/area/station/service/cafeteria) +"cxb" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/obj/machinery/firealarm/directional/east, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"cxl" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/red/filled/corner{ + color = "#DE3A3A"; + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 5 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark/corner{ + dir = 8 + }, +/turf/open/floor/iron/dark/corner{ + dir = 8 + }, +/area/station/security/brig) +"cxr" = ( +/obj/machinery/door/poddoor/preopen{ + id = "bridgedoors"; + name = "Bridge Access Blast Door" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/command) +"cxv" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/line, +/turf/open/floor/iron/dark/textured_edge{ + dir = 1 + }, +/area/station/security/lockers) +"cxL" = ( +/obj/effect/turf_decal/trimline/blue/line{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/security/prison/workout) +"cxW" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/rack, +/obj/item/tank/jetpack/carbondioxide{ + pixel_x = 4; + pixel_y = -1 + }, +/obj/item/tank/jetpack/carbondioxide, +/obj/item/tank/jetpack/carbondioxide{ + pixel_x = -4; + pixel_y = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/machinery/door/window/left/directional/east{ + req_access = list("eva") + }, +/obj/machinery/camera/directional/west, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva) +"cxZ" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"cya" = ( +/obj/effect/turf_decal/stripes{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/security/range) +"cyc" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/stairs/right{ + dir = 8 + }, +/area/station/security/execution/transfer) +"cyg" = ( +/obj/machinery/door/airlock/external{ + space_dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "ERT dock" + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"cym" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/power/port_gen/pacman/pre_loaded, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"cyq" = ( +/obj/machinery/door/poddoor/preopen{ + id = "bridgedoors"; + name = "Bridge Access Blast Door" + }, +/obj/effect/turf_decal/delivery, +/obj/structure/sign/directions/engineering{ + desc = "A sign that shows there are doors here. There are doors everywhere!"; + icon_state = "doors"; + name = "WARNING: BLAST DOORS"; + pixel_y = 32 + }, +/obj/structure/cable, +/obj/machinery/light/small/directional/north, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/command) +"cyv" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/portable_atmospherics/scrubber, +/obj/structure/disposalpipe/trunk/multiz/down{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"cyz" = ( +/obj/machinery/computer/operating, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron, +/area/station/medical/surgery) +"cyC" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/test_chambers) +"cyE" = ( +/obj/effect/decal/cleanable/glass, +/obj/item/clothing/shoes/magboots, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"cyK" = ( +/obj/machinery/door/window/brigdoor/right/directional/east{ + name = "Cargo Deliveries"; + req_access = list("security") + }, +/turf/open/floor/iron/dark/herringbone, +/area/station/security/brig) +"cyL" = ( +/obj/machinery/light/directional/south, +/obj/machinery/light_switch/directional/south, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/wood/parquet, +/area/station/security/detectives_office) +"cyM" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating{ + dir = 4 + }, +/obj/structure/flora/bush/sparsegrass{ + pixel_x = -6 + }, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"cyR" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"cyS" = ( +/obj/machinery/button/door{ + id = "atmoslock"; + name = "Atmospherics Lockdown Control"; + pixel_x = -32; + req_access = list("atmospherics") + }, +/obj/structure/rack/shelf, +/obj/item/storage/toolbox/mechanical, +/obj/item/flashlight, +/turf/open/floor/iron, +/area/station/engineering/atmos/office) +"cyU" = ( +/obj/machinery/vending/cigarette, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 9 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/entry) +"cyV" = ( +/obj/machinery/light/small/directional/east, +/turf/open/floor/iron/dark, +/area/station/common/laser_tag) +"cyW" = ( +/obj/machinery/door/poddoor/shutters/window/preopen{ + id = "ArrivalsEntry"; + name = "Free Acces Shutters" + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/siding/thinplating_new, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/firealarm/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/public/glass{ + name = "Arrivals" + }, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/entry) +"cyX" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/window/spawner/directional/east, +/obj/structure/table/wood/fancy/orange, +/obj/item/flashlight/lamp{ + pixel_y = 11 + }, +/turf/open/floor/carpet/orange, +/area/station/commons/dorms/room1) +"cza" = ( +/obj/structure/window/reinforced/plasma/spawner/directional/east, +/obj/machinery/power/shuttle_engine/heater, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"czf" = ( +/obj/structure/table/glass, +/obj/item/paper_bin{ + pixel_x = -2; + pixel_y = 6 + }, +/obj/item/pai_card, +/obj/effect/turf_decal/tile/purple/half{ + dir = 8 + }, +/turf/open/floor/iron/white/side{ + dir = 8 + }, +/area/station/science) +"czg" = ( +/obj/structure/lattice, +/turf/open/space/openspace, +/area/space/nearstation) +"czk" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white/corner{ + dir = 1 + }, +/area/station/science/xenobiology) +"czp" = ( +/obj/structure/chair/plastic, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/machinery/light/small/directional/north, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"czq" = ( +/obj/effect/landmark/start/mime, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/service/theater) +"czt" = ( +/obj/structure/window/spawner/directional/east, +/obj/structure/window/spawner/directional/south, +/obj/structure/flora/bush/fullgrass, +/obj/structure/flora/bush/flowers_pp, +/turf/open/floor/grass, +/area/station/service/cafeteria) +"czu" = ( +/obj/structure/table/glass, +/obj/machinery/computer/security/telescreen/minisat{ + pixel_y = 28 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/iron/dark, +/area/station/engineering/transit_tube) +"czv" = ( +/obj/machinery/door/airlock{ + id_tag = "Toilet2"; + name = "Stall 2" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/commons/toilet/restrooms) +"czF" = ( +/obj/structure/trash_pile, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"czG" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/effect/spawner/random/maintenance, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"czQ" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/cargo/sorting) +"czR" = ( +/obj/machinery/modular_computer/preset/engineering, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/office) +"czZ" = ( +/obj/structure/table_frame/wood, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/commons/dorms/vacantroom) +"cAb" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/chair/office{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/carpet, +/area/station/maintenance/abandon_office) +"cAc" = ( +/obj/effect/turf_decal/bot, +/obj/structure/rack/shelf, +/obj/item/clothing/glasses/science{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/clothing/glasses/science, +/obj/effect/turf_decal/tile/purple/half, +/turf/open/floor/iron/white/side, +/area/station/science/xenobiology/control) +"cAg" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/window/spawner/directional/west, +/obj/structure/closet/secure_closet/personal/cabinet, +/turf/open/floor/carpet/royalblack, +/area/station/commons/dorms/room8) +"cAi" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/security/medical) +"cAj" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/engine, +/area/station/command/secure_bunker) +"cAp" = ( +/obj/structure/table/wood, +/obj/machinery/computer/records/medical/laptop, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/command/heads_quarters/rd) +"cAw" = ( +/obj/machinery/light/directional/west, +/obj/structure/extinguisher_cabinet/directional/west, +/mob/living/basic/chicken/brown{ + forced_gender = "male" + }, +/obj/structure/flora/bush/lavendergrass, +/turf/open/floor/grass, +/area/station/common/night_club) +"cAy" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/bot, +/obj/machinery/rnd/production/techfab/department/security, +/obj/effect/turf_decal/trimline/red/line{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark, +/turf/open/floor/iron/dark/textured_edge, +/area/station/security/office) +"cAB" = ( +/obj/structure/ladder, +/turf/open/floor/plating, +/area/station/maintenance/wrestle) +"cAJ" = ( +/obj/effect/turf_decal/siding/wood/corner, +/obj/machinery/light/directional/west, +/obj/structure/grandfatherclock, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain/private) +"cAL" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"cAV" = ( +/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/office) +"cAY" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/effect/turf_decal/tile/purple/half/contrasted, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"cBb" = ( +/obj/effect/landmark/event_spawn, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"cBh" = ( +/obj/machinery/light/floor/has_bulb, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/storage) +"cBn" = ( +/obj/structure/closet/crate/freezer, +/obj/item/reagent_containers/blood/random, +/obj/item/reagent_containers/blood/random, +/obj/item/reagent_containers/blood/random, +/obj/item/reagent_containers/blood/random, +/obj/item/reagent_containers/blood/o_plus{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/reagent_containers/blood/o_minus, +/obj/item/reagent_containers/blood/b_plus, +/obj/item/reagent_containers/blood/b_minus, +/obj/item/reagent_containers/blood/a_plus, +/obj/item/reagent_containers/blood/a_minus, +/obj/item/reagent_containers/blood/lizard, +/obj/item/reagent_containers/blood/ethereal, +/obj/item/reagent_containers/blood{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/reagent_containers/blood{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/reagent_containers/blood{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/effect/turf_decal/bot, +/obj/structure/cable, +/obj/effect/turf_decal/tile/green/fourcorners, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/virology) +"cBq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/burnt_floor, +/obj/machinery/door/airlock/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"cBs" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"cBx" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/simple/violet/visible/layer2, +/turf/open/space/basic, +/area/space/nearstation) +"cBC" = ( +/obj/structure/table/reinforced, +/obj/item/storage/box/lethalshot{ + pixel_y = 11 + }, +/obj/item/storage/box/lethalshot{ + pixel_y = 11 + }, +/obj/item/storage/box/lethalshot{ + pixel_y = -1 + }, +/obj/effect/spawner/random/armory/rubbershot, +/obj/effect/turf_decal/trimline/red/line, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_edge{ + dir = 1 + }, +/area/station/ai_monitored/security/armory) +"cBY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/smes/engineering, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/security/power_station) +"cCd" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing{ + dir = 4 + }, +/obj/machinery/light/directional/south, +/obj/structure/chair/sofa/bench/left{ + dir = 8 + }, +/turf/open/floor/glass/reinforced, +/area/station/security/prison/safe) +"cCk" = ( +/obj/structure/flora/bush/stalky, +/obj/structure/flora/ocean/coral, +/turf/open/water/overlay, +/area/station/hallway/primary/central) +"cCx" = ( +/obj/structure/closet/crate, +/obj/effect/turf_decal/bot, +/obj/item/clothing/shoes/galoshes, +/turf/open/floor/noslip, +/area/station/maintenance/gag_room) +"cCE" = ( +/obj/structure/window/spawner/directional/south, +/obj/structure/closet/secure_closet/hydroponics, +/obj/machinery/light/directional/west, +/obj/structure/disposalpipe/segment, +/obj/item/botanical_lexicon, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) +"cCM" = ( +/obj/structure/chair/sofa/bench/left{ + dir = 8; + pixel_x = 5 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/commons/dorms) +"cCN" = ( +/obj/structure/chair/sofa/bench/right, +/obj/machinery/light/small/directional/north, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/prison/shower) +"cCT" = ( +/obj/effect/spawner/structure/window/reinforced/tinted, +/turf/open/floor/plating, +/area/station/common/pool) +"cCX" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/machinery/airalarm/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/commons/vacant_room/commissary) +"cCY" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/turf/open/floor/iron/checker, +/area/station/hallway/secondary/service) +"cCZ" = ( +/obj/machinery/shower/directional/east{ + name = "emergency shower" + }, +/obj/effect/turf_decal/stripes/end{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating/dark/end{ + dir = 4 + }, +/obj/structure/drain, +/turf/open/floor/iron/checker, +/area/station/science/xenobiology/hallway) +"cDe" = ( +/obj/effect/spawner/random/structure/crate, +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"cDj" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/abandon_holding_cell) +"cDl" = ( +/obj/effect/turf_decal/stripes, +/obj/effect/turf_decal/stripes/white/line, +/obj/structure/window/spawner/directional/south, +/obj/structure/sink/directional/west, +/turf/open/floor/iron/white, +/area/station/medical/morgue) +"cDm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"cDn" = ( +/turf/closed/wall/rust, +/area/station/maintenance/department/security/lower) +"cDr" = ( +/obj/machinery/door_buttons/airlock_controller{ + idExterior = "xeno_airlock_exterior"; + idInterior = "xeno_airlock_interior"; + idSelf = "xeno_airlock_control"; + name = "Access Console"; + pixel_y = 28; + req_access = list("xenobiology") + }, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/camera/directional/north{ + c_tag = "Science - Xenobio Office"; + name = "science camera"; + network = list("ss13","xeno","rd") + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology/control) +"cDs" = ( +/obj/structure/closet, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"cDt" = ( +/obj/structure/table/reinforced, +/obj/item/paper_bin{ + pixel_y = 3 + }, +/obj/item/pen{ + pixel_y = 3 + }, +/obj/machinery/light/directional/north, +/obj/effect/turf_decal/tile/dark_blue/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"cDu" = ( +/obj/structure/table, +/obj/item/toy/plush/carpplushie, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron, +/area/station/commons/fitness/recreation) +"cDw" = ( +/obj/structure/chair/comfy/black{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/station/command/meeting_room/council) +"cDy" = ( +/obj/item/stack/sheet/cardboard, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"cDz" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/grimy, +/area/station/security/detectives_office/private_investigators_office) +"cDI" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 5 + }, +/obj/machinery/light/directional/west, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/iron, +/area/station/engineering/atmos/pumproom) +"cDM" = ( +/obj/machinery/conveyor{ + dir = 9; + id = "Luggagebelt" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/security/checkpoint) +"cDN" = ( +/obj/structure/table/rolling, +/obj/item/wrench, +/turf/open/floor/iron/smooth, +/area/station/cargo/power_station/upper) +"cDP" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/kirbyplants/random, +/turf/open/floor/iron/dark, +/area/station/maintenance/abandon_diner) +"cDQ" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/item/weldingtool, +/obj/item/clothing/head/utility/welding, +/turf/open/floor/iron/dark, +/area/station/engineering/main) +"cDZ" = ( +/obj/structure/railing, +/turf/open/floor/plating/rust, +/area/station/maintenance/department/science/xenobiology) +"cEe" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen" + }, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/port/central) +"cEh" = ( +/obj/structure/lattice, +/turf/open/space/basic, +/area/space) +"cEl" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/duct, +/mob/living/basic/drone/snowflake/bardrone, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/nt_rep) +"cEo" = ( +/obj/machinery/light/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/trimline/red/filled/line, +/obj/effect/turf_decal/trimline/red/line{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark/corner, +/turf/open/floor/iron/dark/side, +/area/station/security/brig) +"cEp" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/item/radio/intercom/directional/west, +/obj/machinery/modular_computer/preset/cargochat/security{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/office) +"cEr" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/stairs{ + dir = 1 + }, +/area/station/common/wrestling/arena) +"cEs" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Captainprivacy"; + name = "Privacy Shutters" + }, +/obj/effect/mapping_helpers/airlock/access/all/command/captain, +/obj/machinery/door/airlock/captain{ + id_tag = "Capoffice"; + name = "Captain's Office" + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain/private) +"cEu" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/virology) +"cEv" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/landmark/start/hangover, +/turf/open/floor/plating, +/area/station/maintenance/central) +"cEy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/security/detectives_office/private_investigators_office) +"cEz" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 5 + }, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) +"cEL" = ( +/obj/item/reagent_containers/cup/bottle/diethylamine{ + pixel_x = -5; + pixel_y = 7 + }, +/obj/item/reagent_containers/cup/bottle/multiver{ + pixel_x = 5; + pixel_y = 7 + }, +/obj/item/reagent_containers/cup/bottle/diethylamine{ + pixel_x = 1; + pixel_y = 4 + }, +/obj/structure/table, +/turf/open/floor/iron/checker, +/area/station/hallway/secondary/service) +"cEN" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Wardshutters"; + name = "Recovery Ward Shutters" + }, +/turf/open/floor/plating, +/area/station/medical/patients_rooms) +"cEQ" = ( +/obj/item/stack/sheet/cardboard, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/eva) +"cER" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/machinery/corral_corner{ + mapping_id = "1" + }, +/obj/machinery/corral_corner{ + mapping_id = "3" + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"cEW" = ( +/obj/structure/fans/tiny/forcefield, +/obj/machinery/light/directional/west, +/turf/open/floor/plating, +/area/station/cargo/storage) +"cEY" = ( +/obj/effect/spawner/random/vending/snackvend, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/aft) +"cFf" = ( +/obj/structure/closet/secure_closet/freezer/fridge/all_access, +/obj/item/storage/box/ingredients/vegetarian, +/obj/item/storage/box/ingredients/italian, +/obj/item/storage/box/ingredients/fruity, +/obj/item/storage/box/ingredients/fiesta, +/obj/item/storage/box/ingredients/american, +/obj/item/reagent_containers/condiment/flour{ + list_reagents = list(/datum/reagent/consumable/flour=600); + name = "Premium All-Purpose Flour (16KG)"; + volume = 600 + }, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/enzyme{ + list_reagents = list(/datum/reagent/consumable/enzyme=500); + name = "universe-sized universal enyzyme"; + volume = 500 + }, +/obj/item/reagent_containers/condiment/rice{ + list_reagents = list(/datum/reagent/consumable/rice=150); + name = "Basmati Rice Sack (4KG)"; + volume = 150 + }, +/obj/item/food/meat/slab, +/obj/item/food/meat/slab, +/obj/item/food/meat/slab, +/obj/item/food/meat/rawbacon, +/obj/item/food/meat/rawbacon, +/obj/item/food/meat/rawbacon, +/obj/item/food/meat/slab/chicken, +/obj/item/food/meat/slab/chicken, +/obj/item/food/meat/slab/chicken, +/turf/open/floor/iron/cafeteria, +/area/station/command/heads_quarters/nt_rep) +"cFh" = ( +/obj/structure/cable, +/turf/open/floor/carpet, +/area/station/service/chapel) +"cFj" = ( +/obj/structure/table/wood/fancy/green, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/item/folder/blue, +/obj/item/pen, +/turf/open/floor/wood, +/area/station/security/courtroom) +"cFm" = ( +/obj/structure/barricade/security/ctf, +/obj/structure/window/reinforced/tinted/spawner/directional/north, +/turf/open/floor/iron/dark, +/area/station/common/laser_tag) +"cFp" = ( +/obj/structure/cable, +/turf/open/floor/iron/dark/small, +/area/station/security/brig) +"cFq" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"cFu" = ( +/obj/structure/table, +/obj/item/storage/fancy/donut_box, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/security/brig) +"cFz" = ( +/obj/structure/table/wood, +/obj/item/paper_bin{ + pixel_y = 3 + }, +/obj/item/pen{ + pixel_y = 3 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/medical/psychology) +"cFI" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/security/execution/transfer) +"cFK" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/station/medical/power_station) +"cFN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/shuttle_engine/heater, +/turf/open/floor/iron/smooth, +/area/station/cargo/power_station/upper) +"cFO" = ( +/obj/structure/cable, +/obj/machinery/newscaster/directional/east, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/service/chapel/office) +"cFT" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/item/clothing/neck/stethoscope, +/obj/item/flashlight/lamp/green{ + pixel_x = 16; + pixel_y = 11 + }, +/obj/item/clothing/glasses/hud/health{ + pixel_y = -3 + }, +/obj/item/flashlight/pen, +/turf/open/floor/carpet/blue, +/area/station/command/heads_quarters/cmo) +"cFU" = ( +/turf/closed/wall, +/area/station/security/checkpoint/escape) +"cGd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/trash/raisins, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"cGl" = ( +/turf/open/floor/glass, +/area/station/commons/dorms) +"cGp" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/machinery/light/directional/west, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/wood, +/area/station/command/captain_dining) +"cGu" = ( +/obj/machinery/photocopier, +/turf/open/floor/carpet/executive, +/area/station/command/heads_quarters/blueshield) +"cGv" = ( +/obj/structure/rack, +/obj/item/reagent_containers/blood/random{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/reagent_containers/blood/random, +/obj/item/reagent_containers/blood/random{ + pixel_x = -4; + pixel_y = -4 + }, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/station/maintenance/abandon_exam/cat) +"cGw" = ( +/obj/structure/chair/sofa/bench/left{ + dir = 8; + pixel_x = 5 + }, +/turf/open/floor/iron/dark/side{ + dir = 6 + }, +/area/station/common/locker_room_shower) +"cGz" = ( +/obj/structure/table/wood/fancy/blue, +/obj/machinery/fax{ + fax_name = "Chief Medical Officer's Office"; + name = "Chief Medical Officer's Fax Machine"; + pixel_y = 3 + }, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/cmo) +"cGC" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/command/heads_quarters/hop) +"cGH" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"cGK" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/service/library) +"cGN" = ( +/obj/structure/closet/cardboard, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/chapel) +"cGO" = ( +/obj/structure/window/spawner/directional/south, +/obj/structure/curtain, +/obj/structure/table/glass, +/obj/item/toy/balloon, +/turf/open/floor/iron, +/area/station/medical/patients_rooms) +"cGV" = ( +/obj/machinery/door/airlock/external{ + name = "External Thrusters Access"; + space_dir = 4 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/airlock/access/all/engineering/external, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"cGW" = ( +/obj/structure/falsewall/reinforced, +/turf/open/floor/plating, +/area/station/ai_monitored/command/storage/eva/upper) +"cGX" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/structure/railing{ + dir = 6 + }, +/obj/structure/table/wood/fancy/green, +/obj/item/statuebust{ + pixel_y = 8 + }, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/nt_rep) +"cGY" = ( +/obj/docking_port/stationary{ + dheight = 3; + dir = 8; + dwidth = 8; + height = 11; + name = "SS13: Auxiliary Dock, Station-Fore"; + shuttle_id = "ferry_home"; + width = 20 + }, +/turf/open/space/openspace, +/area/space) +"cHc" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/landmark/start/station_engineer, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/break_room) +"cHd" = ( +/obj/structure/window/spawner/directional/south, +/obj/structure/curtain, +/obj/machinery/iv_drip, +/obj/effect/turf_decal/siding/thinplating/light{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/medical/patients_rooms) +"cHh" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt, +/obj/item/poster/random_contraband{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/poster/random_contraband{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/poster/random_contraband, +/obj/item/lighter, +/turf/open/floor/carpet, +/area/station/service/electronic_marketing_den) +"cHn" = ( +/obj/machinery/camera/directional/east{ + c_tag = "Leisure Hallway - Upper aft"; + name = "hallway camera" + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/port) +"cHo" = ( +/obj/structure/table/reinforced/rglass, +/obj/item/storage/box/gloves{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/box/masks, +/obj/structure/window/spawner/directional/west, +/obj/effect/turf_decal/tile/blue/fourcorners, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) +"cHp" = ( +/obj/structure/closet, +/obj/effect/turf_decal/delivery, +/obj/effect/spawner/random/maintenance/three, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"cHq" = ( +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/machinery/duct, +/turf/open/floor/iron/cafeteria, +/area/station/commons/toilet/auxiliary) +"cHs" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/fans/tiny/forcefield, +/obj/machinery/door/poddoor/preopen{ + id = "securityblast1"; + name = "Shuttle Bay Blast Door" + }, +/turf/open/floor/plating, +/area/station/security/execution/transfer) +"cHF" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/sunny, +/obj/structure/flora/bush/flowers_pp, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "cmoshutter"; + name = "CMO Office Shutters" + }, +/turf/open/floor/grass, +/area/station/command/heads_quarters/cmo) +"cHG" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/l3closet/scientist, +/obj/effect/turf_decal/stripes{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 6 + }, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east, +/turf/open/floor/iron/white, +/area/station/science/xenobiology/hallway) +"cHL" = ( +/obj/structure/table/glass, +/obj/machinery/camera/directional/east{ + c_tag = "Crew Area - Pool Starboard"; + name = "dormitories camera" + }, +/obj/machinery/light/directional/east, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/item/radio/intercom/directional/east, +/obj/machinery/light_switch/directional/east{ + pixel_y = -9 + }, +/turf/open/floor/wood, +/area/station/common/pool) +"cHP" = ( +/obj/structure/cable, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/service/power_station) +"cHT" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/central) +"cIc" = ( +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"cId" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/pumproom) +"cIf" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/brig) +"cIg" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/item/folder/blue{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/stock_parts/cell/high{ + pixel_x = -2; + pixel_y = -7 + }, +/obj/item/stock_parts/cell{ + pixel_x = 7; + pixel_y = -9 + }, +/obj/machinery/light/small/directional/north, +/turf/open/floor/iron/smooth, +/area/station/maintenance/starboard/fore) +"cIm" = ( +/turf/open/floor/iron/smooth_edge{ + dir = 1 + }, +/area/station/engineering/atmos/hfr_room) +"cIn" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/medical/psychology) +"cIq" = ( +/obj/machinery/telecomms/bus/preset_two, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 9 + }, +/turf/open/floor/iron/telecomms, +/area/station/tcommsat/server) +"cIt" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rdgene"; + name = "Genetics Lab Shutters" + }, +/turf/open/floor/plating, +/area/station/science/genetics) +"cIA" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/window/brigdoor/left/directional/south{ + name = "Court Cell"; + req_access = list("brig") + }, +/turf/open/floor/iron/dark, +/area/station/security/courtroom) +"cIB" = ( +/obj/machinery/power/port_gen/pacman/pre_loaded, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"cII" = ( +/obj/structure/closet/crate/engineering/electrical, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/stack/sheet/glass/fifty, +/obj/structure/sign/warning/electric_shock/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"cIK" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/electrolyzer, +/turf/open/floor/iron/dark, +/area/station/maintenance/disposal/incinerator) +"cIM" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/station/maintenance/fore/upper) +"cIO" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Central Hallway" + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/central/aft) +"cIP" = ( +/turf/closed/wall, +/area/station/security/prison) +"cJc" = ( +/obj/structure/table/reinforced, +/obj/item/storage/box/ids{ + pixel_y = 6 + }, +/obj/item/storage/briefcase/secure, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 5 + }, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/customs) +"cJd" = ( +/obj/structure/table/wood, +/obj/item/paper_bin{ + pixel_x = -5; + pixel_y = 6 + }, +/obj/item/pen/fountain{ + pixel_x = -5; + pixel_y = 8 + }, +/obj/item/healthanalyzer{ + pixel_x = 12; + pixel_y = 7 + }, +/obj/item/flashlight/lamp/green{ + pixel_x = 11; + pixel_y = 2 + }, +/obj/machinery/airalarm/directional/south, +/turf/open/floor/carpet/blue, +/area/station/medical/exam_room) +"cJg" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/dark/side, +/area/station/hallway/secondary/command) +"cJh" = ( +/obj/machinery/computer/cargo{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/light_switch/directional/east, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/supply) +"cJv" = ( +/obj/structure/flora/rock/pile/jungle, +/obj/structure/window/reinforced/spawner/directional/south, +/mob/living/carbon/human/species/monkey, +/turf/open/floor/grass, +/area/station/medical/virology/isolation) +"cJw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"cJA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/structure/sign/poster/contraband/random/directional/east, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"cJG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"cJH" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/south, +/turf/open/floor/iron, +/area/station/science/ordnance/office) +"cJI" = ( +/obj/structure/cable, +/obj/effect/landmark/start/security_officer, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/textured_large, +/area/station/security/office) +"cJU" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"cKb" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/newscaster/directional/west, +/obj/machinery/light/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/commons/dorms) +"cKf" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/machinery/status_display/evac/directional/west, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/ai) +"cKl" = ( +/obj/effect/spawner/random/trash/garbage, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_port) +"cKy" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"cKz" = ( +/turf/closed/wall, +/area/station/commons/dorms/room6) +"cKC" = ( +/obj/machinery/camera/directional/east{ + c_tag = "Central Hallway - Starboard Bow"; + name = "hallway camera" + }, +/obj/structure/sign/nanotrasen{ + pixel_x = 32 + }, +/obj/effect/turf_decal/tile/red, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"cKF" = ( +/obj/effect/decal/cleanable/cobweb, +/obj/effect/spawner/random/structure/crate, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"cKH" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"cKI" = ( +/obj/machinery/door/airlock/external{ + name = "Solar Maintenance" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/unres, +/obj/structure/sign/warning/electric_shock/directional/east, +/obj/effect/mapping_helpers/airlock/access/all/engineering/general, +/turf/open/floor/plating, +/area/station/maintenance/solars/starboard/fore) +"cKJ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"cKR" = ( +/obj/structure/rack, +/obj/effect/spawner/random/entertainment/musical_instrument, +/turf/open/floor/plating, +/area/station/maintenance/central) +"cKT" = ( +/turf/open/floor/iron/white, +/area/station/medical/break_room) +"cKU" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/blobstart, +/turf/open/floor/iron, +/area/station/science/explab) +"cLc" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron, +/area/station/security/checkpoint/engineering) +"cLd" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron, +/area/station/security/checkpoint/escape) +"cLk" = ( +/obj/effect/turf_decal/vg_decals/atmos/nitrogen{ + dir = 1 + }, +/turf/open/floor/engine/n2, +/area/station/engineering/atmos) +"cLp" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/engineering/transit_tube) +"cLr" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/machinery/computer/pod/old/mass_driver_controller/ordnancedriver/longrange{ + pixel_y = 28 + }, +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/testlab) +"cLt" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/medical/psychology) +"cLw" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) +"cLz" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/maintenance/department/security/lower) +"cLJ" = ( +/obj/structure/reagent_dispensers/plumbed/storage, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/light/directional/west, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"cLN" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"cLP" = ( +/obj/effect/landmark/event_spawn, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/security/prison) +"cLR" = ( +/obj/structure/girder, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"cLU" = ( +/turf/closed/wall/r_wall, +/area/station/security/execution/education) +"cLX" = ( +/turf/closed/wall/r_wall, +/area/station/security/prison/safe) +"cMb" = ( +/obj/docking_port/stationary/escape_pod, +/turf/open/floor/iron/shuttle/evac/airless, +/area/space/nearstation) +"cMd" = ( +/obj/effect/turf_decal/tile/red/half, +/obj/machinery/duct, +/turf/open/floor/iron/dark/side, +/area/station/security/office) +"cMh" = ( +/obj/structure/cable, +/obj/structure/table/reinforced/rglass, +/obj/item/reagent_containers/chem_pack{ + pixel_x = 10; + pixel_y = 10 + }, +/obj/item/storage/box/rxglasses{ + pixel_x = -4; + pixel_y = 8 + }, +/obj/item/stack/medical/gauze{ + pixel_x = 8 + }, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) +"cMm" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/random/maintenance/four, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/random/directional/north, +/turf/open/floor/plating, +/area/station/hallway/secondary/construction) +"cMo" = ( +/obj/effect/spawner/liquids_spawner{ + reagent_list = list(/datum/reagent/water=600) + }, +/obj/structure/flora/rock/pile/jungle/style_4, +/turf/open/misc/asteroid, +/area/station/hallway/primary/upper) +"cMq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/structure/crate, +/obj/machinery/light/small/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"cMs" = ( +/obj/structure/chair/sofa/corp/corner{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/customs/auxiliary) +"cMt" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/security/checkpoint/engineering) +"cMC" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/smooth, +/area/station/command/secure_bunker) +"cMF" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/firecloset, +/turf/open/floor/iron/dark/small, +/area/station/security/corrections_officer) +"cMJ" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/openspace, +/area/station/maintenance/aft/upper) +"cMK" = ( +/obj/effect/turf_decal/trimline/blue/corner, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"cMM" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen/diner) +"cMP" = ( +/obj/effect/turf_decal/bot, +/obj/structure/table/glass, +/obj/item/mod/module/plasma_stabilizer, +/obj/item/mod/module/signlang_radio, +/obj/item/mod/module/thermal_regulator, +/turf/open/floor/iron, +/area/station/medical/storage) +"cMX" = ( +/obj/structure/table/reinforced, +/obj/item/crowbar/red, +/obj/item/wrench, +/obj/item/clothing/mask/gas, +/obj/machinery/light/directional/south, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/office) +"cMY" = ( +/obj/effect/turf_decal/stripes/white/corner{ + dir = 4 + }, +/turf/open/floor/iron/shuttle/evac/airless, +/area/space/nearstation) +"cNj" = ( +/obj/machinery/power/shuttle_engine/heater{ + dir = 8 + }, +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/station/maintenance/fore/upper) +"cNn" = ( +/obj/structure/cable, +/turf/open/floor/iron/smooth_edge{ + dir = 8 + }, +/area/station/cargo/miningdock) +"cNw" = ( +/turf/open/floor/wood, +/area/station/service/chapel/office) +"cNB" = ( +/obj/structure/disposalpipe/junction{ + dir = 2 + }, +/turf/open/floor/iron/dark/corner{ + dir = 1 + }, +/area/station/hallway/primary/port) +"cNE" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/trunk{ + dir = 2 + }, +/turf/open/floor/iron/dark, +/area/station/commons/storage/primary) +"cNO" = ( +/obj/machinery/modular_computer/preset/civilian{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/commons/vacant_room/commissary) +"cNP" = ( +/obj/effect/turf_decal/trimline/purple/line, +/turf/open/floor/iron/white/side, +/area/station/science/research) +"cNU" = ( +/obj/structure/closet/lasertag/red, +/obj/effect/turf_decal/tile/red/real_red/half/contrasted, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/common/laser_tag) +"cNY" = ( +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"cNZ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/common/locker_room_shower) +"cOb" = ( +/obj/effect/turf_decal/vg_decals/numbers/one, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"cOc" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/abandoned, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"cOf" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating{ + dir = 8 + }, +/obj/structure/flora/rock/pile{ + pixel_x = 7; + pixel_y = -16 + }, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"cOj" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/landmark/start/captain, +/obj/structure/chair/comfy/brown{ + color = "#A46106"; + dir = 4; + pixel_y = -3 + }, +/turf/open/floor/carpet/blue, +/area/station/command/heads_quarters/captain) +"cOm" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/openspace, +/area/station/maintenance/aft/upper) +"cOq" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/light/directional/north, +/obj/structure/sign/poster/random/directional/north, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"cOu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"cOE" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/spawner/random/vending/snackvend, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/secondary/exit/departure_lounge) +"cOH" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchenside"; + name = "Kitchen Hall Shutters" + }, +/obj/machinery/door/firedoor, +/obj/item/kitchen/spoon{ + pixel_x = -2 + }, +/obj/item/kitchen/spoon, +/obj/item/kitchen/spoon{ + pixel_x = 2 + }, +/obj/item/kitchen/spoon{ + pixel_x = -2 + }, +/obj/item/kitchen/spoon, +/obj/item/kitchen/spoon{ + pixel_x = 2 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/service/kitchen) +"cOM" = ( +/obj/structure/chair/office{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/security/interrogation) +"cOS" = ( +/obj/structure/hedge/opaque, +/obj/structure/curtain/bounty, +/turf/open/floor/wood, +/area/station/service/barber) +"cOY" = ( +/obj/effect/spawner/random/trash/cigbutt, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"cPa" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/wood{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/maintenance/clown_chamber) +"cPd" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/machinery/power/port_gen/pacman, +/obj/structure/cable, +/obj/machinery/light/small/directional/north, +/turf/open/floor/plating/airless, +/area/station/maintenance/eva_shed/starboard) +"cPf" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/security/checkpoint/customs) +"cPk" = ( +/obj/effect/decal/cleanable/dirt, +/turf/closed/wall/rust, +/area/station/maintenance/abandon_art_studio) +"cPw" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/iron/dark, +/area/station/security/brig) +"cPA" = ( +/obj/structure/table, +/obj/item/plate/oven_tray, +/obj/item/plate/oven_tray{ + pixel_y = 2 + }, +/obj/item/plate/oven_tray{ + pixel_y = 4 + }, +/obj/item/reagent_containers/cup/soup_pot{ + pixel_y = 8 + }, +/obj/item/reagent_containers/cup/soup_pot{ + pixel_y = 8 + }, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) +"cPD" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/machinery/camera/directional/west{ + c_tag = "AI Satellite - Fore Starboard"; + name = "ai camera"; + network = list("minisat"); + start_active = 1 + }, +/turf/open/floor/iron/stairs, +/area/station/ai_monitored/aisat/exterior) +"cPH" = ( +/obj/machinery/door/airlock/maintenance, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/science/research/abandoned) +"cPK" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/primary/port) +"cPW" = ( +/obj/machinery/computer/operating{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/medical/surgery/theatre) +"cPX" = ( +/obj/machinery/door/airlock{ + id_tag = "Dorm6"; + name = "Cabin 6" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/commons/dorms/room5) +"cQf" = ( +/obj/structure/table/rolling, +/obj/item/wrench{ + pixel_y = 3 + }, +/obj/item/crowbar, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"cQg" = ( +/obj/effect/turf_decal/stripes{ + dir = 6 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"cQn" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 10 + }, +/obj/structure/cable, +/obj/machinery/airalarm/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/science/lab) +"cQp" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/displaycase/trophy, +/obj/machinery/light/directional/east, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/wood, +/area/station/command/heads_quarters/nt_rep) +"cQH" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/commons/dorms) +"cQY" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/sign/nanotrasen{ + pixel_x = -32 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"cRa" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"cRb" = ( +/turf/closed/wall/r_wall, +/area/station/ai_monitored/command/storage/eva) +"cRg" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/sign/poster/random/directional/north, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"cRh" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"cRo" = ( +/obj/structure/bed/maint, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/entertainment/drugs, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"cRs" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/kirbyplants/random/dead, +/obj/machinery/airalarm/directional/south, +/obj/machinery/light/small/directional/south, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/landmark/generic_maintenance_landmark, +/turf/open/floor/wood, +/area/station/service/electronic_marketing_den) +"cRx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/maintenance/port/aft) +"cRy" = ( +/obj/structure/chair/wood{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"cRz" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/door/airlock/research{ + name = "Break Room" + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/science/research, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/science/breakroom) +"cRE" = ( +/obj/item/radio/intercom/directional/west, +/obj/machinery/light/directional/west, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/structure/chair/comfy/brown{ + color = "#A46106"; + dir = 1 + }, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/nt_rep) +"cRG" = ( +/obj/structure/mirror{ + pixel_y = 32 + }, +/obj/structure/sink/directional/south, +/turf/open/floor/iron/freezer, +/area/station/common/wrestling/locker) +"cRH" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/bookcase/random/reference, +/obj/machinery/light/directional/west, +/obj/item/radio/intercom/directional/west, +/obj/structure/sign/calendar/directional/north, +/turf/open/floor/wood, +/area/station/command/heads_quarters/rd) +"cRO" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/hallway/secondary/service) +"cRS" = ( +/obj/item/kirbyplants/random, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/common/wrestling/lobby) +"cRV" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/wood, +/area/station/hallway/primary/port) +"cRY" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"cSd" = ( +/obj/machinery/light/directional/south, +/obj/item/radio/intercom/directional/south, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/structure/chair/sofa/corp/right{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue/half/contrasted, +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/customs/auxiliary) +"cSf" = ( +/obj/structure/sacrificealtar, +/obj/structure/railing, +/obj/item/reagent_containers/cup/beaker/unholywater, +/turf/open/floor/cult, +/area/station/maintenance/cult_chapel_maint) +"cSl" = ( +/obj/structure/cable, +/obj/machinery/door/airlock/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"cSp" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/growing/tray, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 10 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) +"cSF" = ( +/obj/machinery/door/airlock/research/glass/incinerator/ordmix_exterior, +/obj/effect/mapping_helpers/airlock/locked, +/turf/open/floor/engine, +/area/station/science/ordnance/burnchamber) +"cSH" = ( +/obj/structure/chair/office, +/turf/open/floor/carpet/executive, +/area/station/command/heads_quarters/blueshield) +"cSI" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/catwalk_floor/iron/airless, +/area/space/nearstation) +"cSK" = ( +/obj/structure/trash_pile, +/obj/machinery/light/small/directional/north, +/obj/machinery/light/small/directional/west, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"cSO" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/chair/sofa/bench{ + dir = 8; + pixel_x = 5 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/common/wrestling/arena) +"cST" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"cSX" = ( +/obj/structure/chair/sofa/bench/left{ + dir = 8; + pixel_x = 5 + }, +/obj/structure/cable, +/obj/effect/landmark/start/assistant, +/obj/effect/landmark/start/assistant, +/obj/effect/turf_decal/tile/purple/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/service/barber) +"cTa" = ( +/obj/structure/chair/office{ + dir = 8 + }, +/obj/effect/landmark/start/botanist, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) +"cTd" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/south, +/obj/structure/window/spawner/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"cTg" = ( +/obj/structure/table, +/obj/item/stack/sheet/mineral/plasma{ + pixel_y = 7 + }, +/obj/item/stack/sheet/mineral/plasma{ + pixel_y = 1 + }, +/obj/item/radio/intercom/directional/south, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"cTk" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/duct, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood/large, +/area/station/common/night_club) +"cTl" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/iron, +/area/station/ai_monitored/command/storage/eva) +"cTm" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/light/directional/west, +/turf/open/floor/iron/dark, +/area/station/security/courtroom) +"cTD" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder, +/turf/open/floor/iron/white, +/area/station/medical/pharmacy) +"cTG" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/common/laser_tag) +"cTO" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/security/checkpoint/escape) +"cTR" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 10 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"cTZ" = ( +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen/diner) +"cUf" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/machinery/light/small/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos) +"cUg" = ( +/obj/structure/curtain/cloth, +/obj/machinery/shower/directional/south, +/obj/structure/drain, +/turf/open/floor/iron/freezer, +/area/station/commons/dorms/room6) +"cUu" = ( +/obj/structure/window/spawner/directional/south, +/obj/structure/chair/sofa/middle/brown{ + dir = 1 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"cUw" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/nt_rep) +"cUz" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/table/reinforced, +/obj/item/clipboard, +/obj/item/toy/figure/warden, +/obj/item/clothing/accessory/badge/holo/warden{ + pixel_x = 13 + }, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/security/warden) +"cUA" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/engineering/atmos/pumproom) +"cUE" = ( +/turf/closed/wall, +/area/station/common/night_club) +"cUF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"cUJ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/maintenance/solars/starboard/fore) +"cUL" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/mob_spawn/corpse/human/assistant, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"cUS" = ( +/obj/machinery/ai_slipper{ + uses = 10 + }, +/obj/effect/turf_decal/bot_white, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/aisat/exterior) +"cUX" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/tile/brown/anticorner/contrasted, +/turf/open/floor/iron, +/area/station/cargo/office) +"cUY" = ( +/obj/structure/bed/roller{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/tiled/white{ + name = "Padded tile" + }, +/area/station/medical/aslyum) +"cUZ" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/storage) +"cVe" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/hallway/secondary/command) +"cVn" = ( +/obj/structure/chair/stool/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/abandon_arcade) +"cVu" = ( +/turf/open/floor/iron, +/area/station/security/brig) +"cVw" = ( +/obj/machinery/atmospherics/pipe/smart/simple/supply/visible/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/maintenance/department/engineering/atmos_aux_port) +"cVz" = ( +/turf/closed/wall, +/area/station/cargo/lobby) +"cVI" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"cVK" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/machinery/newscaster/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"cVN" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/smes/engineering, +/turf/open/floor/iron/dark/small, +/area/station/maintenance/starboard/fore) +"cVS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"cVV" = ( +/obj/effect/mapping_helpers/ianbirthday, +/obj/machinery/requests_console/directional/north{ + department = "Head of Personnel's Desk"; + name = "Head of Personnel's Requests Console"; + pixel_y = 37 + }, +/obj/effect/mapping_helpers/requests_console/announcement, +/obj/effect/mapping_helpers/requests_console/information, +/obj/effect/mapping_helpers/requests_console/assistance, +/obj/machinery/keycard_auth/directional/north, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/station/command/heads_quarters/hop) +"cWa" = ( +/obj/machinery/atmospherics/pipe/smart/simple/supply/hidden{ + dir = 8 + }, +/turf/closed/wall/r_wall, +/area/station/maintenance/disposal/incinerator) +"cWd" = ( +/obj/structure/cable, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/security/checkpoint) +"cWg" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"cWh" = ( +/obj/item/kirbyplants/random, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/trimline/red/filled/line{ + color = "#DE3A3A"; + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/line, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/brig) +"cWl" = ( +/obj/structure/industrial_lift/public, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/plating/elevatorshaft, +/area/station/hallway/primary/central) +"cWn" = ( +/obj/structure/table/wood/fancy/blue, +/obj/item/flashlight/lamp{ + pixel_y = 5 + }, +/obj/machinery/digital_clock/directional/north, +/turf/open/floor/carpet/blue, +/area/station/commons/dorms/room3) +"cWr" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/light_switch/directional/south, +/obj/structure/table/reinforced, +/obj/machinery/coffeemaker, +/turf/open/floor/iron/dark/side, +/area/station/security/office) +"cWs" = ( +/obj/machinery/airalarm/directional/west{ + pixel_x = -22 + }, +/obj/structure/rack, +/obj/item/reagent_containers/cup/bottle/morphine, +/obj/item/storage/box/chemimp{ + pixel_x = 4; + pixel_y = 3 + }, +/obj/item/storage/box/trackimp, +/obj/item/storage/lockbox/loyalty, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/dark, +/area/station/security/lockers) +"cWw" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 6 + }, +/turf/open/floor/iron/white, +/area/station/medical/virology/isolation) +"cWE" = ( +/obj/structure/bodycontainer/morgue, +/obj/effect/turf_decal/bot_white, +/obj/machinery/light/directional/south, +/turf/open/floor/iron/dark/small, +/area/station/medical/morgue) +"cWG" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"cWI" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"cWP" = ( +/obj/machinery/light/directional/south, +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) +"cWT" = ( +/obj/structure/table/reinforced, +/obj/item/flashlight/lamp, +/obj/machinery/recharger{ + pixel_x = 14 + }, +/turf/open/floor/carpet/red, +/area/station/command/heads_quarters/hos) +"cWX" = ( +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/storage/tech) +"cXf" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/machinery/vending/hydroseeds, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics/garden) +"cXk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"cXn" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/space/nearstation) +"cXo" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/iron/shuttle/arrivals/airless, +/area/space/nearstation) +"cXy" = ( +/obj/structure/closet/secure_closet/personal, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/dark, +/area/station/commons/dorms) +"cXG" = ( +/obj/effect/turf_decal/stripes{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ + dir = 10 + }, +/turf/open/floor/engine, +/area/station/science/explab) +"cXH" = ( +/obj/structure/grille/broken, +/obj/item/trash/boritos, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"cXM" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"cXR" = ( +/obj/structure/table, +/obj/item/paper/pamphlet/radstorm{ + pixel_x = -6; + pixel_y = 11 + }, +/obj/item/paper/pamphlet/violent_video_games{ + pixel_y = 5 + }, +/obj/item/paper/pamphlet/centcom/visitor_info{ + pixel_x = 6 + }, +/obj/machinery/button/door{ + id = "Infokiosk"; + name = "Information Kiosk Shutters"; + pixel_x = -26; + pixel_y = 6 + }, +/turf/open/floor/iron, +/area/station/commons/vacant_room/commissary) +"cYb" = ( +/obj/structure/rack/shelf, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"cYe" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/medical/virology) +"cYg" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/machinery/door/poddoor/shutters/radiation/preopen{ + id = "engsm"; + name = "Radiation Chamber Shutters" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/engineering/supermatter) +"cYh" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 9 + }, +/obj/structure/flora/bush/grassy, +/obj/effect/landmark/start/hangover, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"cYn" = ( +/turf/closed/wall, +/area/station/hallway/primary/central) +"cYq" = ( +/obj/effect/turf_decal/trimline/red/filled/line{ + color = "#DE3A3A"; + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/line, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/brig) +"cYv" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/junction/flip{ + dir = 2 + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/command) +"cYF" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock{ + name = "Commentator Studio" + }, +/turf/open/floor/iron, +/area/station/common/wrestling/arena) +"cYI" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/light/small/directional/north, +/turf/open/openspace, +/area/station/maintenance/aft/upper) +"cYL" = ( +/obj/structure/railing, +/obj/structure/cable, +/turf/open/floor/iron/white/side{ + dir = 1 + }, +/area/station/medical/medbay/lobby) +"cYM" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/wood/parquet, +/area/station/science/breakroom) +"cYQ" = ( +/obj/machinery/firealarm/directional/south, +/obj/machinery/camera/directional/south{ + c_tag = "Genetics Lab"; + name = "genetics lab camera" + }, +/turf/open/floor/iron/white, +/area/station/science/genetics) +"cYS" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating/airless, +/area/station/maintenance/port/upper) +"cYT" = ( +/obj/structure/chair, +/obj/effect/turf_decal/bot, +/obj/machinery/status_display/evac/directional/north, +/obj/machinery/light/directional/north, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"cYY" = ( +/obj/structure/closet/secure_closet/medical2, +/obj/effect/turf_decal/bot, +/obj/machinery/airalarm/directional/east, +/obj/machinery/camera/directional/south{ + c_tag = "Medbay - Surgery"; + name = "medbay camera"; + network = list("ss13","medbay") + }, +/turf/open/floor/iron/dark, +/area/station/medical/surgery/theatre) +"cZa" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/power/energy_accumulator/tesla_coil, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/engineering/storage) +"cZh" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/carpet/blue, +/area/station/command/heads_quarters/captain/private) +"cZl" = ( +/obj/effect/landmark/event_spawn, +/turf/open/misc/beach/sand, +/area/station/hallway/primary/central) +"cZm" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"cZo" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/landmark/start/scientist, +/turf/open/floor/iron, +/area/station/science/auxlab/firing_range) +"cZp" = ( +/turf/closed/wall, +/area/station/maintenance/abandon_art_studio) +"cZx" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"cZC" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/command/bridge) +"cZE" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/science/ordnance/storage) +"cZH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/garbage, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"cZL" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/window/brigdoor/left/directional/east{ + name = "Xenobiology Deliveries"; + req_access = list("research") + }, +/turf/open/floor/iron/dark, +/area/station/science/xenobiology/control) +"cZQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"cZS" = ( +/obj/effect/turf_decal/siding/blue, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron/freezer, +/area/station/command/heads_quarters/captain/private) +"cZT" = ( +/turf/closed/wall/r_wall, +/area/station/security/mechbay) +"cZU" = ( +/obj/effect/turf_decal/trimline/purple/filled/line, +/obj/structure/cable, +/obj/machinery/firealarm/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"cZV" = ( +/obj/machinery/photocopier, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/dark, +/area/station/cargo/office) +"dae" = ( +/obj/structure/rack/shelf, +/obj/item/clothing/suit/jacket/straight_jacket, +/obj/item/clothing/suit/jacket/straight_jacket, +/obj/item/clothing/suit/jacket/straight_jacket, +/obj/item/clothing/suit/jacket/straight_jacket, +/turf/open/floor/iron, +/area/station/medical/aslyum) +"dao" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet/directional/south, +/obj/machinery/chicken_grinder, +/turf/open/floor/iron/dark, +/area/station/common/night_club) +"dap" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/loading_area, +/obj/effect/turf_decal/stripes, +/obj/machinery/airalarm/directional/east, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/command/teleporter) +"daw" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/carpet, +/area/station/maintenance/abandon_office) +"daC" = ( +/obj/structure/sign/directions/security{ + dir = 1; + pixel_y = 8 + }, +/obj/structure/sign/directions/engineering{ + dir = 8; + pixel_y = 2 + }, +/obj/structure/sign/directions/supply{ + dir = 4; + pixel_y = -4 + }, +/obj/structure/sign/directions/evac{ + dir = 1; + pixel_y = -10 + }, +/turf/closed/wall, +/area/station/service/bar/atrium) +"daD" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/turf/closed/wall, +/area/station/maintenance/port/aft) +"daN" = ( +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/turf/open/floor/carpet, +/area/station/maintenance/abandon_psych) +"daW" = ( +/obj/machinery/griddle, +/obj/machinery/button/door{ + id = "SnacksKitchen"; + name = "Shutters controll"; + pixel_x = -25 + }, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/iron/cafeteria, +/area/station/common/wrestling/concessions) +"dbb" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing{ + dir = 8 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/glass/reinforced, +/area/station/security/prison/safe) +"dbj" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/security/courtroom) +"dbo" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/machinery/light/small/directional/south, +/turf/open/floor/iron, +/area/station/maintenance/solars/port/fore) +"dbr" = ( +/obj/machinery/camera/directional/east{ + c_tag = "Cargo Bay - Drone Bay"; + name = "cargo camera" + }, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/drone_bay) +"dbv" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/closet/firecloset, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"dbA" = ( +/obj/structure/girder/displaced, +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"dbC" = ( +/obj/structure/disposalpipe/junction/yjunction{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) +"dbE" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/test_chambers) +"dbM" = ( +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/cmo) +"dbQ" = ( +/obj/effect/decal/cleanable/oil/slippery, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"dbR" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/mineral/plastitanium, +/area/station/science/robotics/lab) +"dbX" = ( +/obj/structure/cable, +/obj/effect/landmark/start/medical_doctor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/holopad, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) +"dbY" = ( +/obj/effect/turf_decal/stripes/box, +/obj/machinery/power/smes/engineering, +/obj/structure/cable, +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/iron/dark/telecomms, +/area/station/tcommsat/server) +"dbZ" = ( +/obj/structure/window/spawner/directional/east, +/obj/structure/window/spawner/directional/south, +/obj/structure/flora/grass/jungle/b, +/turf/open/floor/grass, +/area/station/service/cafeteria) +"dcg" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/qm) +"dci" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/security/prison_upper) +"dcj" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"dcm" = ( +/obj/structure/girder/displaced, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"dcr" = ( +/obj/machinery/defibrillator_mount/directional/east, +/turf/open/floor/iron/white, +/area/station/medical/surgery/theatre) +"dcu" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "N2 to pure" + }, +/obj/effect/turf_decal/stripes/box, +/turf/open/floor/plating/airless, +/area/station/engineering/atmos/upper) +"dcJ" = ( +/obj/structure/window/spawner/directional/north, +/obj/structure/closet/athletic_mixed, +/obj/effect/turf_decal/bot, +/obj/item/clothing/shoes/sports, +/turf/open/floor/iron/dark, +/area/station/common/locker_room_shower) +"dcL" = ( +/obj/effect/spawner/random/structure/steam_vent, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"dcR" = ( +/obj/structure/table, +/obj/item/storage/fancy/cigarettes/cigpack_robustgold{ + pixel_x = -2; + pixel_y = 10 + }, +/obj/item/paper/fluff{ + default_raw_text = "Here you go Ney, left these here for you in case you ever got stuck or lost in any bum fucked quadrants.. Good luck, chitter thing. -Max"; + name = "From Max to Ney" + }, +/obj/item/lighter/greyscale{ + pixel_x = 6 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/security) +"dcS" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_port) +"dcY" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) +"dda" = ( +/obj/machinery/door/airlock/maintenance, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/security/prison/upper) +"ddd" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/service/abandoned_gambling_den) +"ddg" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/east, +/obj/structure/window/spawner/directional/west, +/obj/structure/window/spawner/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"ddk" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/secure_closet/personal, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/commons/locker) +"ddo" = ( +/obj/machinery/power/smes/engineering, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) +"ddv" = ( +/obj/machinery/door/airlock/external{ + space_dir = 2 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_starboard) +"ddx" = ( +/obj/structure/chair/sofa/bench/right{ + dir = 1 + }, +/obj/effect/landmark/start/security_officer, +/obj/effect/turf_decal/trimline/red/filled/line, +/obj/effect/turf_decal/trimline/red/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/side, +/area/station/security/lockers) +"ddP" = ( +/obj/effect/spawner/random/trash/botanical_waste, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"ddT" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"ddX" = ( +/obj/effect/spawner/random/trash/moisture_trap, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"deb" = ( +/obj/effect/turf_decal/stripes/end{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/circuit, +/area/station/command/gateway) +"dec" = ( +/turf/open/floor/iron, +/area/station/ai_monitored/command/storage/eva/upper) +"dek" = ( +/obj/machinery/roulette, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/broken/directional/south, +/turf/open/floor/wood, +/area/station/service/abandoned_gambling_den) +"dem" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/machinery/door/poddoor/shutters/radiation/preopen{ + id = "engsm"; + name = "Radiation Chamber Shutters" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/engineering/supermatter) +"den" = ( +/obj/effect/spawner/random/trash/garbage, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"dep" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/command/bridge) +"deq" = ( +/obj/structure/cable, +/obj/effect/turf_decal/bot, +/obj/structure/closet/secure_closet/injection, +/turf/open/floor/iron/dark, +/area/station/security/execution/education) +"des" = ( +/obj/machinery/camera/directional/east, +/turf/open/floor/iron, +/area/station/engineering/atmos/test_chambers) +"det" = ( +/obj/machinery/porta_turret/lasertag/red, +/obj/structure/window/reinforced/tinted/spawner/directional/west, +/obj/effect/turf_decal/tile/red/real_red/fourcorners, +/turf/open/floor/iron/dark, +/area/station/common/laser_tag) +"deu" = ( +/obj/structure/closet/crate, +/obj/item/crowbar/red, +/obj/item/stack/sheet/mineral/plasma{ + amount = 20 + }, +/obj/item/gps/engineering, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/engineering/storage) +"dev" = ( +/obj/structure/window/spawner/directional/north, +/turf/open/floor/grass, +/area/station/hallway/primary/central/aft) +"dew" = ( +/turf/closed/wall, +/area/station/hallway/primary/central/fore) +"dex" = ( +/obj/item/cigbutt, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"deA" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) +"deB" = ( +/obj/effect/turf_decal/box/red, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/turf/open/floor/engine, +/area/station/science/ordnance) +"deD" = ( +/obj/item/radio/intercom/directional/north, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"deS" = ( +/obj/machinery/atmospherics/components/binary/valve/digital{ + dir = 1 + }, +/turf/open/floor/circuit, +/area/station/tcommsat/computer) +"deT" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/service/theater/abandoned) +"deY" = ( +/obj/structure/table/reinforced, +/obj/item/folder/blue, +/obj/item/hand_labeler, +/obj/effect/turf_decal/tile/blue/half/contrasted, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/customs/auxiliary) +"dfb" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 6 + }, +/obj/machinery/camera/directional/south{ + c_tag = "Science - Ordnance Storage Aft"; + name = "science camera"; + network = list("ss13","rd") + }, +/obj/machinery/light/directional/south, +/obj/structure/extinguisher_cabinet/directional/south, +/turf/open/floor/iron/white, +/area/station/science/ordnance/storage) +"dfe" = ( +/obj/structure/cable, +/obj/effect/spawner/random/trash/mess, +/turf/open/floor/plating, +/area/station/maintenance/law) +"dfr" = ( +/obj/structure/sink/directional/east, +/obj/machinery/camera/directional/west{ + c_tag = " Prison - Cell 2"; + network = list("ss13","prison") + }, +/obj/effect/landmark/start/prisoner, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/security/prison/safe) +"dfB" = ( +/obj/structure/table, +/obj/item/radio/intercom{ + name = "Match Broadcasting Station"; + pixel_y = -4 + }, +/obj/structure/window/spawner/directional/north, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/common/wrestling/arena) +"dfF" = ( +/obj/effect/turf_decal/tile/purple/half{ + dir = 4 + }, +/obj/structure/cable, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/turf/open/floor/iron/white/side{ + dir = 4 + }, +/area/station/science/xenobiology) +"dfG" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"dfK" = ( +/turf/open/floor/wood, +/area/station/service/library/printer) +"dfM" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Xeno9"; + name = "Xenobio Pens Containment" + }, +/turf/open/floor/plating, +/area/station/science/xenobiology) +"dfN" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/disposaloutlet, +/obj/structure/disposalpipe/trunk{ + dir = 2 + }, +/turf/open/floor/iron/dark, +/area/station/science/research) +"dfT" = ( +/obj/machinery/atmospherics/components/unary/passive_vent/layer2{ + dir = 1 + }, +/turf/open/floor/iron/shuttle/evac/airless, +/area/space/nearstation) +"dfV" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/commons/dorms) +"dfW" = ( +/obj/structure/table, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"dfX" = ( +/obj/effect/mapping_helpers/burnt_floor, +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/airalarm/directional/north, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/security/power_station) +"dga" = ( +/obj/machinery/light/directional/north, +/turf/open/floor/circuit, +/area/station/command/gateway) +"dge" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 4 + }, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron/white, +/area/station/science) +"dgl" = ( +/obj/structure/closet/crate/engineering/electrical, +/obj/effect/turf_decal/bot, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/maintenance/solars/starboard/fore) +"dgq" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/engineering/lobby) +"dgv" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/table, +/obj/machinery/chem_dispenser/drinks/beer{ + dir = 4 + }, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/service/bar) +"dgw" = ( +/obj/item/kirbyplants/random, +/obj/item/radio/intercom/directional/south, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain) +"dgA" = ( +/obj/structure/girder, +/turf/open/floor/plating, +/area/station/maintenance/department/science/central) +"dgF" = ( +/obj/item/kirbyplants/random, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/south, +/turf/open/floor/iron, +/area/station/engineering/atmos/hfr_room) +"dgM" = ( +/obj/structure/disposalpipe/junction{ + dir = 2 + }, +/turf/open/floor/iron/dark/corner{ + dir = 8 + }, +/area/station/hallway/primary/port) +"dgN" = ( +/obj/structure/rack/shelf, +/obj/item/wrench, +/obj/item/crowbar/red, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/maintenance/aux_eva) +"dgO" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/command/gateway) +"dgU" = ( +/obj/structure/chair/sofa/bench/left, +/obj/effect/turf_decal/siding/thinplating_new, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/upper) +"dgZ" = ( +/obj/machinery/computer/monitor{ + dir = 1 + }, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 + }, +/obj/machinery/computer/security/telescreen/minisat{ + dir = 1; + pixel_y = -29 + }, +/turf/open/floor/iron/grimy, +/area/station/ai_monitored/turret_protected/aisat_interior) +"dha" = ( +/obj/structure/dresser{ + pixel_y = -11 + }, +/obj/structure/mirror{ + layer = 3; + pixel_x = 1; + pixel_y = 4 + }, +/turf/closed/wall, +/area/station/common/tailoring) +"dhd" = ( +/obj/effect/turf_decal/stripes{ + dir = 6 + }, +/turf/open/floor/circuit, +/area/station/command/gateway) +"dhf" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/white, +/area/station/medical/surgery/theatre) +"dhs" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/machinery/computer/crew{ + dir = 4 + }, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/turf/open/floor/iron/smooth_corner{ + dir = 4 + }, +/area/station/command/secure_bunker) +"dhv" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Departures Lounge" + }, +/obj/effect/turf_decal/tile/red{ + color = "#DE3A3A"; + dir = 8 + }, +/obj/structure/sign/departments/evac/directional/south, +/turf/open/floor/iron/white/corner{ + dir = 1 + }, +/area/station/hallway/secondary/exit/departure_lounge) +"dhI" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/cmo) +"dhK" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/field/generator, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/engineering/storage) +"dhL" = ( +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/robotics/mechbay) +"dhP" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/service/hydroponics/garden) +"dhS" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/security/courtroom) +"dhT" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/machinery/light/directional/south, +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/mineral/titanium/tiled/white{ + name = "Padded tile" + }, +/area/station/medical/aslyum) +"dhU" = ( +/obj/machinery/shower/directional/west{ + name = "emergency shower" + }, +/obj/structure/drain, +/obj/effect/turf_decal/box, +/turf/open/floor/iron/checker, +/area/station/engineering/main) +"dhZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/melee/baton/security/cattleprod, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"did" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"die" = ( +/obj/machinery/door/airlock/virology{ + name = "Virology Cabin" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/medical/virology, +/obj/machinery/duct, +/turf/open/floor/carpet/green, +/area/station/medical/virology/isolation) +"dif" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating{ + dir = 8 + }, +/obj/effect/turf_decal/weather/sand{ + dir = 1 + }, +/obj/structure/flora/bush/sparsegrass{ + pixel_x = 8 + }, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"dij" = ( +/obj/item/radio/intercom/directional/north, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/structure/rack, +/obj/item/reagent_containers/condiment/cornmeal, +/obj/item/reagent_containers/condiment/rice, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/flour, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/secondary/service) +"dip" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/secondary/command) +"diy" = ( +/obj/machinery/computer/records/medical{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 10 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) +"diA" = ( +/obj/structure/table, +/obj/item/storage/belt/utility, +/obj/item/multitool, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"diD" = ( +/obj/effect/turf_decal/stripes{ + dir = 9 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 6 + }, +/obj/machinery/computer/scan_consolenew{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/science/genetics) +"diE" = ( +/obj/machinery/door/firedoor, +/obj/structure/table/reinforced, +/obj/item/folder/white, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Psychward4"; + name = "Control Room Shutters" + }, +/obj/structure/cable, +/obj/machinery/door/window/left/directional/east{ + req_access = list("psychology") + }, +/turf/open/floor/iron/dark, +/area/station/medical/psychology) +"diF" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/maintenance/department/security/lesser) +"diI" = ( +/obj/machinery/power/turbine/turbine_outlet, +/turf/open/floor/engine/vacuum, +/area/station/maintenance/disposal/incinerator) +"diO" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hall17"; + location = "hall16" + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"dje" = ( +/turf/open/floor/iron/stairs/left, +/area/station/hallway/primary/central) +"dji" = ( +/turf/open/floor/iron/stairs/left{ + dir = 4 + }, +/area/station/hallway/primary/central) +"djm" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/commons/dorms/room8) +"djt" = ( +/obj/structure/table, +/obj/item/surgical_drapes{ + pixel_x = 7; + pixel_y = -2 + }, +/obj/item/circular_saw{ + pixel_y = 12 + }, +/obj/item/healthanalyzer{ + pixel_x = -4; + pixel_y = -3 + }, +/obj/item/scalpel{ + pixel_y = 19 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 10 + }, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/iron/white, +/area/station/science/robotics) +"djv" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command/glass{ + name = "Bridge" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "bridge-west" + }, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/command/general, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"djy" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/bar/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/security/prison/mess) +"djC" = ( +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"djE" = ( +/obj/structure/table/reinforced, +/obj/machinery/microwave{ + pixel_y = 6 + }, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/iron/dark, +/area/station/engineering/break_room) +"djF" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"djG" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"djJ" = ( +/turf/open/floor/iron/dark/small, +/area/station/cargo/miningdock) +"djK" = ( +/obj/structure/cable, +/obj/machinery/light/small/directional/north, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/dark, +/area/station/security/courtroom) +"djU" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/service/barber) +"djW" = ( +/obj/structure/curtain/cloth, +/obj/effect/turf_decal/siding/thinplating/light, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/aslyum) +"dkg" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet/directional/south, +/obj/machinery/newscaster/directional/east, +/obj/machinery/camera/directional/south{ + c_tag = "Bridge - Starboard"; + name = "command camera" + }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"dkt" = ( +/turf/open/floor/plating, +/area/station/ai_monitored/aisat/exterior) +"dku" = ( +/obj/structure/cable, +/obj/effect/landmark/start/assistant, +/turf/open/floor/grass, +/area/station/common/night_club) +"dkw" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science) +"dkz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/grille/broken, +/obj/structure/cable, +/obj/structure/sign/poster/contraband/random/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"dkM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/warning/vacuum/external/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/department/security/upper) +"dkN" = ( +/obj/structure/cable, +/obj/machinery/holopad, +/turf/open/floor/iron, +/area/station/commons/storage/primary) +"dkO" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"dkP" = ( +/obj/machinery/space_heater, +/obj/effect/turf_decal/delivery, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/law) +"dkS" = ( +/obj/structure/table/wood, +/obj/item/folder, +/obj/item/pen, +/turf/open/floor/wood, +/area/station/service/library) +"dkT" = ( +/obj/structure/closet/secure_closet/evidence, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/security/interrogation) +"dkX" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=2"; + location = "Robotics" + }, +/obj/structure/plasticflaps/opaque, +/turf/open/floor/plating, +/area/station/science/robotics/lab) +"dkY" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/storage/tech) +"dlc" = ( +/obj/structure/bed/roller{ + dir = 1 + }, +/obj/machinery/iv_drip, +/obj/item/bedsheet/medical, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 6 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/medical/virology) +"dld" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/science/ordnance) +"dlh" = ( +/obj/machinery/vending/cola/space_up, +/turf/open/floor/iron/dark, +/area/station/security/prison/workout) +"dll" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 5 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) +"dlo" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/obj/structure/chair/stool/directional/south, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/cargo/sorting) +"dlp" = ( +/turf/open/floor/iron, +/area/station/maintenance/port/aft) +"dlq" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/science/ordnance/burnchamber) +"dlw" = ( +/obj/effect/turf_decal/stripes/white/line, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat_interior) +"dlA" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/button/crematorium{ + id = "crematoriumChapel"; + pixel_y = 26; + req_access = list("crematorium") + }, +/turf/open/floor/iron, +/area/station/service/chapel) +"dlG" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/maintenance/department/crew_quarters/bar) +"dlN" = ( +/obj/effect/turf_decal/tile/red, +/obj/machinery/camera/directional/south{ + c_tag = "Security - Office Aft" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark/side, +/area/station/security/office) +"dlP" = ( +/obj/effect/turf_decal/stripes, +/obj/effect/turf_decal/delivery, +/turf/open/floor/engine, +/area/station/science/explab) +"dlS" = ( +/obj/item/shard, +/obj/effect/decal/cleanable/glass, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"dlY" = ( +/obj/effect/turf_decal/trimline/purple/filled/corner{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/science/research) +"dma" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering{ + name = "Telecomms Storage" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tcomms) +"dmc" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/machinery/computer/security, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"dmf" = ( +/obj/structure/fake_stairs/wood{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/science/circuits) +"dmt" = ( +/obj/effect/turf_decal/trimline/purple/filled/line, +/obj/machinery/newscaster/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/arrows/red{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/science) +"dmu" = ( +/obj/machinery/power/energy_accumulator/grounding_rod, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) +"dmz" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/vg_decals/numbers/one, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 8 + }, +/obj/machinery/door/window/brigdoor/security/cell/right/directional/west{ + name = "Cell 1" + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/brig) +"dmA" = ( +/obj/structure/railing{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/station/common/wrestling/arena) +"dmC" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/stairs/left, +/area/station/hallway/primary/central) +"dmD" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "hopblast"; + name = "HoP Blast Door" + }, +/obj/structure/cable, +/obj/structure/curtain/cloth/fancy/mechanical{ + icon_state = "bounty-open"; + icon_type = "bounty"; + id = "HoPcurtains"; + name = "curtain" + }, +/turf/open/floor/plating, +/area/station/command/heads_quarters/hop) +"dmH" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/radio/intercom/directional/west, +/obj/structure/cable, +/obj/machinery/light/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/obj/machinery/camera/autoname/directional/west, +/turf/open/floor/iron, +/area/station/commons/dorms) +"dmO" = ( +/obj/effect/turf_decal/stripes/red/corner{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ + dir = 10 + }, +/obj/machinery/portable_atmospherics/canister/carbon_dioxide, +/turf/open/floor/iron/dark, +/area/station/science/xenobiology) +"dmS" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/flowers_br, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/turf/open/floor/grass, +/area/station/security/prison/garden) +"dnc" = ( +/obj/structure/table, +/obj/item/toy/gun{ + pixel_y = 5 + }, +/obj/item/toy/cards/deck, +/obj/effect/landmark/event_spawn, +/turf/open/floor/glass, +/area/station/commons/dorms) +"dni" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/contraband/random/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"dnj" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"dno" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/science/research) +"dnu" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock/freezer{ + name = "Freezer" + }, +/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen/coldroom) +"dny" = ( +/obj/effect/turf_decal/stripes/end{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold/dark/visible{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/science/ordnance) +"dnD" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/prison) +"dnF" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/station/service/cafeteria) +"dnG" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron/chapel{ + dir = 8 + }, +/area/station/service/chapel) +"dnK" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/blue/anticorner/contrasted, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/customs/auxiliary) +"dnN" = ( +/obj/effect/turf_decal/trimline/yellow/filled/warning{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"dnO" = ( +/obj/structure/chair/office, +/obj/structure/window/spawner/directional/west, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 10 + }, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"dnV" = ( +/obj/structure/table/wood, +/obj/structure/closet/mini_fridge{ + pixel_y = 6 + }, +/turf/open/floor/wood, +/area/station/commons/dorms/room8) +"dnX" = ( +/obj/structure/flora/bush/sparsegrass, +/obj/structure/flora/bush/ferny, +/turf/open/floor/grass, +/area/station/command/heads_quarters/captain) +"dod" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/storage) +"dol" = ( +/obj/machinery/door/airlock{ + name = "Information Kiosk" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/commons/vacant_room/commissary) +"dom" = ( +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_port) +"dos" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen/diner) +"doA" = ( +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ + dir = 4 + }, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron/white/corner{ + dir = 8 + }, +/area/station/command/heads_quarters/ce) +"doD" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"doF" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology/control) +"doG" = ( +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/security/execution/transfer) +"doH" = ( +/obj/machinery/light/small/broken/directional/east, +/obj/structure/cable, +/turf/open/floor/iron/stairs, +/area/station/maintenance/cult_chapel_maint) +"doP" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"doY" = ( +/obj/machinery/door/firedoor/heavy, +/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/research{ + name = "Bomb Assembly" + }, +/turf/open/floor/iron, +/area/station/science/ordnance) +"dpg" = ( +/obj/machinery/light/small/broken/directional/north, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"dpj" = ( +/obj/structure/rack, +/obj/effect/spawner/random/maintenance, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/chapel) +"dpl" = ( +/obj/effect/spawner/random/trash/moisture_trap, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"dpt" = ( +/turf/closed/wall, +/area/station/maintenance/xenobio_disposals) +"dpw" = ( +/obj/effect/turf_decal/stripes/corner, +/obj/structure/cable, +/turf/open/floor/circuit, +/area/station/command/gateway) +"dpO" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/iron/checker, +/area/station/service/janitor) +"dpS" = ( +/obj/effect/decal/cleanable/cobweb, +/obj/item/trash/can/food/peaches/maint, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"dpT" = ( +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/tcommsat/computer) +"dqd" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"dqk" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"dqm" = ( +/obj/machinery/space_heater, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/dorms) +"dqq" = ( +/obj/structure/cable, +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"dqw" = ( +/obj/structure/table, +/obj/item/storage/box/evidence{ + pixel_y = 11 + }, +/obj/item/stack/package_wrap, +/obj/item/hand_labeler, +/obj/machinery/light/directional/west, +/obj/machinery/newscaster/directional/west, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/security/interrogation) +"dqD" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/secondary/command) +"dqF" = ( +/turf/open/floor/iron/stairs/right{ + dir = 8 + }, +/area/station/hallway/secondary/command) +"dqM" = ( +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/structure/cable, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/ai) +"dqN" = ( +/obj/machinery/door/airlock/external{ + space_dir = 1 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/effect/mapping_helpers/airlock/access/all/engineering/external, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"dqP" = ( +/obj/machinery/computer/slot_machine, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/abandon_arcade) +"dqS" = ( +/obj/structure/table/reinforced, +/obj/item/folder/red, +/obj/item/pen/red, +/obj/item/stamp/hos, +/obj/machinery/keycard_auth{ + pixel_x = 15 + }, +/obj/item/clothing/accessory/badge/holo/hos{ + pixel_x = -7; + pixel_y = 9 + }, +/turf/open/floor/carpet/red, +/area/station/command/heads_quarters/hos) +"dqY" = ( +/obj/effect/turf_decal/tile/purple/half{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white/side{ + dir = 4 + }, +/area/station/science) +"dqZ" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/flora/grass/jungle/b, +/obj/structure/flora/bush/flowers_br, +/turf/open/floor/grass, +/area/station/service/hydroponics) +"drc" = ( +/obj/structure/window/spawner/directional/north, +/obj/structure/closet/secure_closet/tac{ + req_access = list("captain") + }, +/obj/effect/turf_decal/delivery/red, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/blueshield) +"dri" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/table, +/obj/item/flashlight/lamp{ + pixel_y = 3 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 10 + }, +/area/station/security/checkpoint/escape) +"drl" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron/white/side{ + dir = 4 + }, +/area/station/medical/medbay/lobby) +"drm" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/science/lab) +"dro" = ( +/turf/open/floor/iron/dark, +/area/station/service/cafeteria) +"drB" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/iron/dark, +/area/station/security/execution/education) +"drF" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"drJ" = ( +/obj/structure/railing, +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/iron/white/corner{ + dir = 1 + }, +/area/station/science/xenobiology) +"drQ" = ( +/obj/machinery/door/airlock/bathroom{ + name = "Restroom" + }, +/obj/machinery/duct, +/turf/open/floor/carpet, +/area/station/commons/dorms/room7) +"drT" = ( +/obj/structure/grille/broken, +/obj/effect/decal/cleanable/glass, +/obj/structure/barricade/wooden, +/turf/open/floor/plating, +/area/station/service/hydroponics/garden/abandoned) +"dsh" = ( +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/flowers_br, +/obj/machinery/door/window/left/directional/east{ + name = "Soothing Nature Exhibit" + }, +/turf/open/floor/grass, +/area/station/medical/aslyum) +"dsi" = ( +/obj/effect/turf_decal/bot, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/station/security/prison/upper) +"dsm" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/machinery/computer/atmos_alert{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"dsn" = ( +/obj/effect/turf_decal/stripes, +/obj/machinery/status_display/ai/directional/south, +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"dsr" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"dss" = ( +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/door/poddoor/preopen{ + id = "gatewayblastdoors"; + name = "Seperating Blast Doors" + }, +/turf/open/floor/iron, +/area/station/command/gateway) +"dsA" = ( +/obj/machinery/light/directional/north, +/obj/effect/turf_decal/trimline/red/filled/line{ + color = "#DE3A3A"; + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/line, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/brig) +"dsF" = ( +/turf/open/floor/iron/stairs{ + dir = 1 + }, +/area/station/security/brig) +"dsJ" = ( +/obj/item/banner/medical/mundane, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) +"dsK" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Service Hallway Maintenance Hatch" + }, +/obj/effect/mapping_helpers/airlock/access/all/service/general, +/turf/open/floor/plating, +/area/station/maintenance/disposal) +"dsM" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/central) +"dsQ" = ( +/obj/structure/table/reinforced, +/obj/structure/closet/mini_fridge{ + pixel_y = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/aslyum) +"dsS" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible/layer2{ + dir = 5 + }, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) +"dsT" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Hydroponics Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/service/hydroponics, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"dsW" = ( +/obj/structure/table/wood/fancy/red, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/item/radio/intercom, +/turf/open/floor/wood, +/area/station/security/courtroom) +"dtc" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing{ + dir = 8 + }, +/obj/machinery/light/directional/north, +/obj/structure/chair/sofa/bench/left{ + dir = 4 + }, +/turf/open/floor/glass/reinforced, +/area/station/security/prison/safe) +"dte" = ( +/turf/closed/wall/rust, +/area/station/maintenance/abandon_surgery) +"dtl" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/turf/open/floor/engine/hull/reinforced, +/area/space/nearstation) +"dto" = ( +/obj/machinery/atmospherics/components/binary/valve/digital/on, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes{ + dir = 5 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"dts" = ( +/obj/effect/turf_decal/trimline/red/filled/line{ + color = "#DE3A3A"; + dir = 9 + }, +/obj/item/kirbyplants/organic/plant22, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hos) +"dtw" = ( +/obj/structure/table/wood, +/obj/structure/showcase/machinery/microwave{ + desc = "The smell tells you it at least used to work at one point in time."; + name = "Old broken microwave"; + pixel_y = 7 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/wood, +/area/station/security/prison/upper) +"dtx" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/railing, +/turf/open/openspace, +/area/station/maintenance/aft/upper) +"dtA" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock{ + id_tag = "Dorm8"; + name = "Cabin 8" + }, +/obj/machinery/duct, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/commons/dorms/room7) +"dtC" = ( +/obj/machinery/air_sensor/carbon_tank, +/turf/open/floor/engine/co2, +/area/station/engineering/atmos) +"dtD" = ( +/turf/closed/wall/rust, +/area/station/maintenance/department/medical/central) +"dtJ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/security/prison/mess) +"dtK" = ( +/obj/effect/mapping_helpers/airlock/abandoned, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock{ + id_tag = "Dorm9"; + name = "Cabin 9" + }, +/obj/machinery/door/firedoor, +/obj/machinery/duct, +/obj/structure/cable, +/turf/open/floor/iron/dark/textured_large, +/area/station/commons/dorms/vacantroom) +"dtT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"dul" = ( +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"dun" = ( +/obj/machinery/light/directional/east, +/obj/structure/table, +/obj/item/folder/white{ + pixel_x = -4; + pixel_y = 7 + }, +/obj/item/folder/white, +/obj/item/paper_bin{ + pixel_x = 7; + pixel_y = 19 + }, +/obj/item/pen{ + pixel_x = 7; + pixel_y = 21 + }, +/obj/item/taperecorder{ + pixel_x = 10; + pixel_y = 6 + }, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) +"duq" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"dur" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/science/research) +"duy" = ( +/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden, +/obj/machinery/light/small/directional/east, +/turf/open/floor/iron, +/area/station/engineering/engine_smes) +"duA" = ( +/obj/structure/chair/pew/left{ + dir = 1 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/mineral/plastitanium, +/area/station/maintenance/cult_chapel_maint) +"duF" = ( +/obj/effect/turf_decal/caution/stand_clear, +/obj/structure/industrial_lift/public, +/obj/structure/railing, +/obj/machinery/elevator_control_panel/directional/south{ + linked_elevator_id = "publicElevator"; + preset_destination_names = list("2"="Lower Deck","3"="Upper Deck") + }, +/turf/open/floor/plating/elevatorshaft, +/area/station/hallway/primary/central) +"duI" = ( +/obj/structure/table, +/obj/item/reagent_containers/cup/glass/colocup{ + pixel_x = 5 + }, +/obj/item/cigbutt{ + pixel_x = -7 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"duL" = ( +/obj/structure/rack/shelf, +/obj/effect/turf_decal/bot, +/obj/item/pipe_dispenser, +/turf/open/floor/iron/dark, +/area/station/engineering/transit_tube) +"duP" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/iron/shuttle/evac/airless, +/area/space/nearstation) +"duU" = ( +/obj/structure/table, +/obj/item/storage/crayons, +/turf/open/floor/iron, +/area/station/medical/aslyum) +"duV" = ( +/obj/effect/turf_decal/stripes{ + dir = 5 + }, +/obj/machinery/shieldgen, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva/upper) +"duX" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "gatewayblastdoors"; + name = "Seperating Blast Doors" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/command/gateway) +"dvj" = ( +/obj/structure/sign/poster/contraband/busty_backdoor_xeno_babes_6/directional/east, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/maintenance/gamer_lair) +"dvq" = ( +/turf/closed/wall/r_wall, +/area/station/command/heads_quarters/hos) +"dvr" = ( +/obj/machinery/light/small/directional/north, +/turf/open/floor/plating, +/area/station/science/auxlab/firing_range) +"dvv" = ( +/obj/structure/cable, +/obj/machinery/computer/monitor, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/station/science/power_station) +"dvx" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"dvB" = ( +/turf/closed/wall/r_wall, +/area/station/engineering/storage/tech) +"dvY" = ( +/turf/closed/wall/rust, +/area/station/maintenance/department/medical/morgue) +"dvZ" = ( +/obj/machinery/button/door/directional/east{ + id = "hosroom"; + name = "Privacy Control"; + req_access = list("hos") + }, +/obj/machinery/light/directional/east, +/turf/open/floor/carpet/red, +/area/station/command/heads_quarters/hos) +"dwi" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/commons/storage/primary) +"dwk" = ( +/obj/item/bodypart/arm/right/monkey, +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/floor/cult, +/area/station/maintenance/department/science/xenobiology) +"dwo" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/machinery/duct, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/common/locker_room_shower) +"dwq" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/window/right/directional/east, +/turf/open/floor/iron/dark, +/area/station/service/forge) +"dwx" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Fitness Courtyard" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron/dark/side, +/area/station/commons/fitness) +"dwD" = ( +/obj/machinery/light/directional/west, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"dwI" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/light/small/directional/north, +/obj/structure/closet/crate{ + storage_capacity = 50 + }, +/obj/item/clothing/suit/jacket/bomber, +/obj/item/clothing/suit/jacket/letterman, +/obj/item/clothing/suit/jacket/letterman_nanotrasen, +/obj/item/clothing/suit/jacket/letterman_red, +/obj/item/clothing/suit/jacket/letterman_syndie, +/obj/item/clothing/suit/jacket/miljacket, +/obj/item/clothing/suit/jacket/leather, +/obj/item/clothing/suit/jacket/croptop, +/turf/open/floor/iron/dark, +/area/station/common/tailoring) +"dwJ" = ( +/obj/effect/turf_decal/arrows/red, +/turf/open/floor/engine/hull, +/area/space/nearstation) +"dwK" = ( +/obj/structure/chair/sofa/bench/right, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"dwM" = ( +/obj/machinery/power/port_gen/pacman/pre_loaded, +/obj/structure/railing{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"dwN" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 4 + }, +/obj/structure/flora/tree/jungle/small{ + pixel_x = -46 + }, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"dwO" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/trimline/red/filled/line{ + color = "#DE3A3A"; + dir = 9 + }, +/obj/effect/turf_decal/trimline/red/corner, +/turf/open/floor/iron/dark/side{ + dir = 9 + }, +/area/station/security/prison/upper) +"dwR" = ( +/obj/structure/rack/gunrack, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"dwT" = ( +/obj/structure/flora/bush/jungle/b, +/obj/structure/flora/bush/flowers_pp, +/turf/open/floor/grass, +/area/station/medical/aslyum) +"dwW" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain) +"dxa" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/table, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/iron, +/area/station/security/courtroom) +"dxk" = ( +/obj/machinery/atmospherics/components/binary/valve/digital, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/science/ordnance) +"dxn" = ( +/obj/machinery/light/small/directional/east, +/obj/machinery/duct, +/turf/open/floor/iron/freezer, +/area/station/command/heads_quarters/cmo) +"dxv" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hallup6"; + location = "hallup5" + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/secondary/command) +"dxM" = ( +/obj/structure/table, +/obj/machinery/light/directional/north, +/turf/open/floor/wood, +/area/station/commons/dorms/room5) +"dxQ" = ( +/turf/open/floor/iron, +/area/station/cargo/miningoffice) +"dxR" = ( +/obj/machinery/button/door/directional/south{ + id = "Toilet6"; + name = "Lock Control"; + normaldoorcontrol = 1; + specialfunctions = 4 + }, +/obj/structure/toilet{ + dir = 1 + }, +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron/cafeteria, +/area/station/commons/toilet/auxiliary) +"dyh" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"dyi" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "WestLockdown1"; + name = "West Bridge Blast Door" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/command/gateway) +"dyt" = ( +/obj/effect/landmark/event_spawn, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/commons/storage/primary) +"dyx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/contraband/random/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"dyz" = ( +/obj/structure/table, +/obj/item/crowbar, +/obj/item/wrench, +/obj/item/reagent_containers/cup/bucket, +/turf/open/floor/plating, +/area/station/service/hydroponics/garden/abandoned) +"dyA" = ( +/turf/open/floor/engine/co2, +/area/station/engineering/atmos) +"dyC" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/command/captain_dining) +"dyF" = ( +/obj/structure/cable, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/security/checkpoint/customs) +"dyI" = ( +/obj/structure/window/spawner/directional/west, +/obj/structure/chair/sofa/corp/left{ + color = "#DE3A3A"; + dir = 4 + }, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen/diner) +"dyJ" = ( +/obj/effect/turf_decal/tile/brown, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/cargo/office) +"dyM" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/structure/railing, +/turf/open/floor/iron/stairs{ + dir = 4 + }, +/area/station/security/prison/safe) +"dyO" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/smooth_corner, +/area/station/engineering/atmos/hfr_room) +"dyP" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "CO2 to Pure" + }, +/obj/effect/turf_decal/stripes/box, +/turf/open/floor/plating/airless, +/area/station/engineering/atmos/upper) +"dyS" = ( +/obj/effect/turf_decal/tile/dark_blue/half/contrasted, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/security/mechbay) +"dyT" = ( +/turf/open/floor/plating, +/area/station/maintenance/disposal) +"dzs" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"dzt" = ( +/obj/structure/window/spawner/directional/east, +/obj/structure/table, +/obj/item/stack/medical/gauze, +/obj/item/stack/medical/suture, +/obj/item/stack/medical/mesh, +/obj/item/reagent_containers/syringe/multiver, +/obj/item/reagent_containers/syringe/epinephrine{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/reagent_containers/spray/cleaner{ + pixel_x = -8; + pixel_y = 8 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 5 + }, +/turf/open/floor/iron/white, +/area/station/command/gateway) +"dzB" = ( +/obj/structure/lattice/catwalk, +/turf/open/openspace/airless, +/area/space/nearstation) +"dzO" = ( +/obj/effect/turf_decal/siding/thinplating/dark/corner{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet/directional/south, +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/ai) +"dzS" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/security/prison/upper) +"dzT" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/obj/structure/railing, +/turf/open/floor/iron/telecomms, +/area/station/tcommsat/server) +"dzW" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/wood, +/area/station/service/library/abandoned) +"dzY" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/department/eva) +"dAg" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"dAm" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/security/courtroom) +"dAo" = ( +/obj/structure/bookcase{ + name = "Forbidden Knowledge" + }, +/obj/machinery/digital_clock/directional/north, +/turf/open/floor/iron/dark, +/area/station/service/library/private) +"dAr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/landmark/start/hangover, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"dAv" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/effect/turf_decal/stripes, +/obj/machinery/suit_storage_unit/standard_unit, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva/upper) +"dAB" = ( +/obj/structure/closet/crate/bin, +/turf/open/floor/iron, +/area/station/commons/dorms) +"dAD" = ( +/obj/structure/cable, +/turf/open/floor/plating/airless, +/area/station/solars/port/fore) +"dAI" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Central Upper Hallway" + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"dAK" = ( +/obj/machinery/iv_drip, +/obj/machinery/defibrillator_mount/directional/north, +/obj/machinery/stasis{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) +"dAN" = ( +/obj/structure/closet/boxinggloves, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron, +/area/station/commons/fitness) +"dAT" = ( +/obj/machinery/airalarm/directional/east, +/obj/machinery/light/directional/east, +/obj/machinery/camera/directional/east{ + c_tag = "Auxillary Base Construction" + }, +/obj/machinery/computer/camera_advanced/base_construction/aux{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/construction/mining/aux_base) +"dBf" = ( +/obj/effect/turf_decal/trimline/white/line{ + dir = 1 + }, +/obj/structure/transit_tube/crossing/horizontal, +/turf/open/floor/iron/shuttle/arrivals/airless, +/area/space/nearstation) +"dBh" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/garbage, +/obj/effect/mapping_helpers/broken_floor, +/obj/item/paper/fluff{ + default_raw_text = "Going to miss this spot once the shift ends, wonder who'll be the next one to find it.. whoever reads this, the stash is yours."; + name = "Assistant's note" + }, +/turf/open/floor/wood, +/area/station/security/prison/upper) +"dBj" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/science/server) +"dBm" = ( +/obj/structure/chair/comfy{ + dir = 1 + }, +/obj/effect/landmark/start/scientist, +/obj/machinery/newscaster/directional/east, +/turf/open/floor/carpet/purple, +/area/station/science/breakroom) +"dBq" = ( +/obj/machinery/firealarm/directional/west, +/obj/effect/turf_decal/delivery/red, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/window/preopen{ + id = "prisonlockdown1"; + name = "Lockdown" + }, +/turf/open/floor/iron/dark, +/area/station/security/prison/upper) +"dBr" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Cargo Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/supply/general, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/bar) +"dBv" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/field/generator, +/obj/effect/turf_decal/stripes{ + dir = 5 + }, +/turf/open/floor/iron/dark/side{ + dir = 5 + }, +/area/station/engineering/storage) +"dBC" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/medical/surgery) +"dBE" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/item/radio/intercom, +/obj/item/reagent_containers/cup/bottle/multiver{ + pixel_x = 6 + }, +/obj/item/reagent_containers/cup/bottle/epinephrine, +/obj/item/reagent_containers/syringe, +/turf/open/floor/iron/dark, +/area/station/medical/medbay/lobby) +"dBF" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/smart/simple/pink/visible{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"dBG" = ( +/obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ + dir = 9 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"dBH" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/common/laser_tag) +"dBI" = ( +/obj/machinery/shower/directional/west, +/obj/structure/drain, +/turf/open/floor/iron/freezer, +/area/station/common/locker_room_shower) +"dBJ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "rdoffice"; + name = "Research Director's Shutters" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/command/heads_quarters/rd) +"dBM" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/security/checkpoint/customs) +"dBO" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 9 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/camera/directional/north, +/turf/open/floor/iron/white, +/area/station/science/research) +"dBT" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/table/wood, +/obj/item/paper_bin{ + pixel_x = 9; + pixel_y = 3 + }, +/obj/item/pen{ + pixel_x = 9; + pixel_y = 3 + }, +/obj/item/reagent_containers/cup/glass/bottle/kahlua{ + pixel_x = -8; + pixel_y = 11 + }, +/obj/item/reagent_containers/cup/glass/drinkingglass/shotglass{ + pixel_x = -2; + pixel_y = 5 + }, +/obj/item/reagent_containers/cup/glass/drinkingglass/shotglass{ + pixel_x = -5; + pixel_y = 3 + }, +/turf/open/floor/carpet/executive, +/area/station/command/heads_quarters/blueshield) +"dCa" = ( +/obj/machinery/light/directional/north, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"dCe" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/commons/dorms) +"dCk" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/carbon_output, +/turf/open/floor/engine/co2, +/area/station/engineering/atmos) +"dCp" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/explab) +"dCA" = ( +/obj/effect/turf_decal/siding/wood, +/obj/item/kirbyplants/random, +/turf/open/floor/wood, +/area/station/command/heads_quarters/blueshield) +"dCD" = ( +/turf/closed/wall, +/area/station/maintenance/console_room) +"dCN" = ( +/obj/machinery/firealarm/directional/south, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/stairs{ + dir = 4 + }, +/area/station/command/bridge) +"dCQ" = ( +/turf/closed/wall, +/area/station/common/wrestling/locker) +"dCS" = ( +/obj/structure/railing, +/turf/open/floor/engine/hull/reinforced, +/area/space/nearstation) +"dCU" = ( +/obj/effect/turf_decal/siding/wood/corner, +/obj/effect/landmark/start/hangover, +/turf/open/floor/wood, +/area/station/service/cafeteria) +"dCV" = ( +/obj/effect/turf_decal/tile/neutral/half/contrasted, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"dDf" = ( +/turf/open/floor/iron/dark/side{ + dir = 10 + }, +/area/station/security/prison) +"dDl" = ( +/obj/machinery/computer/security{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/effect/turf_decal/tile/red/real_red/anticorner/contrasted, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hos) +"dDr" = ( +/obj/structure/rack, +/obj/item/radio{ + pixel_x = -1; + pixel_y = 12 + }, +/obj/item/radio{ + pixel_x = -7; + pixel_y = 9 + }, +/obj/item/flashlight{ + pixel_x = 3; + pixel_y = 9 + }, +/obj/item/flashlight{ + pixel_x = -3; + pixel_y = 5 + }, +/turf/open/floor/iron/dark, +/area/station/command/gateway) +"dDy" = ( +/obj/structure/chair/office/light, +/obj/machinery/camera/directional/west{ + c_tag = "Science - Ordnance Observation"; + name = "science camera"; + network = list("ss13","rd") + }, +/turf/open/floor/carpet, +/area/station/science/ordnance/office) +"dDD" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/mining/glass{ + name = "Cargo Office" + }, +/obj/effect/mapping_helpers/airlock/access/all/supply/general, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/landmark/navigate_destination, +/turf/open/floor/iron/dark, +/area/station/cargo/office) +"dDH" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/commons/storage/primary) +"dDS" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/chair, +/obj/effect/landmark/start/assistant, +/turf/open/floor/wood, +/area/station/hallway/primary/port) +"dDW" = ( +/obj/structure/urinal{ + pixel_y = 28 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/iron/white, +/area/station/commons/toilet/restrooms) +"dEa" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/eighties/red, +/area/station/common/arcade) +"dEb" = ( +/obj/structure/rack/wooden, +/obj/item/dyespray{ + pixel_x = -6; + pixel_y = 11 + }, +/obj/item/dyespray{ + pixel_x = 5; + pixel_y = 11 + }, +/obj/item/reagent_containers/spray/quantum_hair_dye{ + pixel_x = 11 + }, +/obj/item/reagent_containers/spray/barbers_aid{ + pixel_x = -3; + pixel_y = -2 + }, +/obj/item/reagent_containers/spray/baldium{ + pixel_x = -10; + pixel_y = -2 + }, +/obj/item/reagent_containers/spray/super_barbers_aid{ + pixel_x = 4; + pixel_y = -2 + }, +/turf/open/floor/wood/tile, +/area/station/service/barber) +"dEe" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/bci_implanter, +/obj/structure/railing/wood, +/turf/open/floor/wood/large, +/area/station/science/circuits) +"dEf" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/maintenance/port/upper) +"dEi" = ( +/obj/effect/turf_decal/stripes/white/corner{ + dir = 4 + }, +/turf/open/floor/engine/hull/reinforced, +/area/space/nearstation) +"dEz" = ( +/obj/structure/cable, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"dEF" = ( +/obj/machinery/atmospherics/pipe/smart/simple/supply/visible/layer4{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/smart/simple/supply/hidden{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/maintenance/department/engineering/atmos_aux_port) +"dEJ" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/machinery/computer/security/hos, +/obj/effect/turf_decal/tile/red{ + color = "#DE3A3A"; + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + color = "#DE3A3A" + }, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"dEU" = ( +/obj/effect/turf_decal/trimline/yellow/filled/warning, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/medical/pharmacy) +"dEY" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer4{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) +"dFf" = ( +/obj/structure/chair/plastic{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/security) +"dFg" = ( +/obj/structure/closet, +/obj/effect/turf_decal/delivery, +/obj/effect/spawner/random/maintenance/two, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"dFm" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"dFp" = ( +/obj/machinery/button/door{ + id = "shuttleblast1"; + name = "Shuttle maintenance bay door button"; + pixel_y = -32 + }, +/obj/structure/cable, +/turf/open/floor/iron/smooth, +/area/station/cargo/power_station/upper) +"dFr" = ( +/obj/machinery/atmospherics/pipe/smart/simple/pink/visible{ + dir = 8 + }, +/turf/open/floor/engine/vacuum, +/area/station/maintenance/department/engineering/atmos_aux_port) +"dFs" = ( +/obj/item/soap/nanotrasen, +/obj/machinery/light/small/directional/south, +/turf/open/floor/iron/freezer, +/area/station/common/wrestling/locker) +"dFt" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/maintenance/port/aft) +"dFy" = ( +/obj/structure/sign/poster/contraband/eat/directional/south, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"dFD" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/filingcabinet, +/turf/open/floor/wood, +/area/station/service/electronic_marketing_den) +"dFK" = ( +/obj/structure/window/spawner/directional/north, +/obj/effect/turf_decal/delivery, +/obj/structure/closet/l3closet, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/medical/break_room) +"dFL" = ( +/obj/structure/bed/roller{ + dir = 1 + }, +/obj/machinery/iv_drip, +/obj/item/bedsheet/medical, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 9 + }, +/obj/effect/spawner/random/trash/mopbucket, +/turf/open/floor/iron/white, +/area/station/security/checkpoint/medical) +"dFP" = ( +/obj/machinery/light/small/broken/directional/north, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"dFQ" = ( +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/iron/stairs, +/area/station/hallway/secondary/entry) +"dFU" = ( +/turf/closed/wall/r_wall, +/area/station/ai_monitored/turret_protected/ai) +"dFZ" = ( +/obj/structure/table/reinforced, +/obj/item/computer_disk/engineering, +/obj/item/computer_disk/engineering, +/obj/item/computer_disk/engineering, +/obj/item/computer_disk/engineering, +/obj/item/computer_disk/engineering, +/obj/item/computer_disk/engineering, +/obj/item/reagent_containers/pill/patch/aiuri, +/obj/effect/turf_decal/tile/yellow/full, +/obj/item/paper/fluff{ + default_raw_text = "Chief Engineer, we would like to inform you that BlueShift may be unlike any vessel or station you've been on before. The power net is divided up into power banks which supply the departments. These can be found in the tunnels behind, or around most departments. Please inform yourself, and your engineers, to NEVER directly wire you main power net into these departments. If you ever run into issues, please contact your Captain so they may send us a message. Have a secure shift."; + name = "Note to the Chief Engineer" + }, +/turf/open/floor/iron/large, +/area/station/command/heads_quarters/ce) +"dGa" = ( +/obj/machinery/door/airlock/medical/glass{ + id_tag = "MedbayFoyer"; + name = "Medbay" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 4 + }, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/medical/general, +/obj/effect/turf_decal/tile/blue/fourcorners, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"dGe" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/command/captain_dining) +"dGh" = ( +/obj/structure/ladder, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"dGp" = ( +/obj/effect/turf_decal/siding/thinplating/light{ + dir = 4 + }, +/obj/machinery/door/airlock/bathroom{ + name = "Restroom" + }, +/obj/machinery/duct, +/turf/open/floor/iron/freezer, +/area/station/command/heads_quarters/blueshield) +"dGt" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/wood, +/area/station/command/meeting_room/council) +"dGy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/painting/library{ + pixel_y = 32 + }, +/obj/machinery/light/small/directional/north, +/turf/open/floor/wood, +/area/station/maintenance/abandon_art_studio) +"dGz" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"dGB" = ( +/obj/item/radio/intercom/directional/south, +/obj/machinery/light_switch/directional/east, +/obj/machinery/camera/directional/east{ + c_tag = "Theater Stage"; + dir = 6; + name = "service camera" + }, +/turf/open/floor/wood, +/area/station/service/theater) +"dGC" = ( +/turf/open/floor/stone, +/area/station/hallway/primary/central) +"dGH" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"dGJ" = ( +/obj/structure/chair/sofa/corner/brown, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/wood/parquet, +/area/station/service/theater) +"dGM" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/effect/spawner/random/vending/snackvend, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/iron/dark/side{ + dir = 9 + }, +/area/station/hallway/primary/port) +"dGN" = ( +/obj/machinery/biogenerator, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) +"dGT" = ( +/obj/structure/chair/sofa/right/brown{ + dir = 1 + }, +/obj/structure/window/spawner/directional/south, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"dGU" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"dGZ" = ( +/obj/machinery/door/airlock/engineering{ + name = "Cargo Power Station" + }, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/smooth, +/area/station/cargo/power_station/upper) +"dHb" = ( +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/structure/extinguisher_cabinet/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) +"dHc" = ( +/obj/effect/spawner/random/trash/hobo_squat, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"dHd" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/science/circuits) +"dHp" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 9 + }, +/obj/structure/closet/crate/medical, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"dHq" = ( +/obj/structure/cable, +/turf/open/floor/iron/dark/small, +/area/station/security/prison/upper) +"dHx" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/yellow/filled/corner, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"dHA" = ( +/obj/item/soap/nanotrasen, +/obj/item/bikehorn/rubberducky, +/obj/machinery/duct, +/turf/open/floor/iron/freezer, +/area/station/medical/aslyum) +"dHC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/cafeteria, +/area/station/maintenance/abandon_diner) +"dHN" = ( +/obj/machinery/computer/prisoner/management{ + dir = 4 + }, +/obj/machinery/light/directional/west, +/obj/machinery/status_display/ai/directional/west, +/obj/machinery/camera/autoname/directional/west, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint) +"dHU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/holosign/barrier/atmos/sturdy, +/turf/open/floor/plating/airless, +/area/station/maintenance/port/fore) +"dHY" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/machinery/door/poddoor/shutters/radiation/preopen{ + id = "engsm"; + name = "Radiation Chamber Shutters" + }, +/obj/item/wrench, +/turf/open/floor/plating, +/area/station/engineering/supermatter) +"dIb" = ( +/obj/machinery/door/airlock/maintenance, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"dIc" = ( +/obj/structure/cable, +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 1 + }, +/turf/open/floor/wood/large, +/area/station/science/circuits) +"dIg" = ( +/obj/machinery/airalarm/directional/north, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/machinery/modular_computer/preset/civilian, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/checkpoint/science/research) +"dIj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/item/trash/waffles, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"dIn" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/station/service/hydroponics/garden/abandoned) +"dIo" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"dIq" = ( +/obj/structure/table/reinforced, +/obj/item/stack/package_wrap, +/obj/item/hand_labeler, +/obj/machinery/light_switch/directional/south{ + pixel_x = -11 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/obj/machinery/newscaster/directional/south, +/obj/effect/turf_decal/siding/thinplating_new/corner{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/customs) +"dIs" = ( +/obj/machinery/growing/soil, +/obj/structure/flora/bush/lavendergrass, +/turf/open/floor/grass, +/area/station/maintenance/port/fore) +"dIv" = ( +/obj/structure/flora/bush/stalky, +/turf/open/water/overlay, +/area/station/hallway/primary/central) +"dIF" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/central) +"dIG" = ( +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"dIK" = ( +/obj/structure/cable, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Cargo Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/supply/general, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/disposal) +"dIR" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/holopad, +/obj/effect/landmark/blobstart, +/turf/open/floor/wood, +/area/station/service/theater) +"dIS" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 10 + }, +/obj/item/kirbyplants/random, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"dIW" = ( +/obj/item/radio/intercom/directional/south, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/item/kirbyplants/random, +/turf/open/floor/iron/dark, +/area/station/engineering/lobby) +"dIY" = ( +/obj/effect/turf_decal/tile/green/fourcorners, +/obj/structure/cable, +/obj/effect/turf_decal/bot, +/obj/machinery/disease2/incubator, +/turf/open/floor/iron/white, +/area/station/medical/virology) +"dIZ" = ( +/obj/item/radio/intercom/directional/west, +/turf/open/floor/iron, +/area/station/security/prison/shower) +"dJc" = ( +/obj/structure/table/wood, +/obj/item/folder/blue{ + pixel_x = 1; + pixel_y = 2 + }, +/obj/item/folder/blue, +/obj/item/stamp/denied{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/stamp{ + pixel_x = -6 + }, +/obj/structure/disposalpipe/segment, +/obj/item/paper_bin/carbon{ + pixel_x = -21; + pixel_y = 3 + }, +/obj/item/pen/fountain{ + pixel_y = 10 + }, +/obj/item/stamp/centcom{ + pixel_x = 6 + }, +/turf/open/floor/carpet/green, +/area/station/command/heads_quarters/nt_rep) +"dJh" = ( +/obj/structure/sign/directions/command{ + dir = 1; + pixel_y = 3 + }, +/obj/structure/sign/directions/medical{ + dir = 4; + pixel_y = -3 + }, +/turf/closed/wall, +/area/station/common/gaskiosk) +"dJo" = ( +/obj/structure/table, +/obj/item/food/pizzaslice/donkpocket{ + pixel_x = -5; + pixel_y = 2 + }, +/obj/item/reagent_containers/cup/soda_cans/dr_gibb{ + pixel_x = 7; + pixel_y = 9 + }, +/turf/open/floor/eighties/red, +/area/station/common/arcade) +"dJp" = ( +/obj/structure/table, +/obj/machinery/chem_dispenser/drinks/beer{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/security/prison/mess) +"dJt" = ( +/obj/structure/trash_pile, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"dJx" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/command/heads_quarters/blueshield) +"dJz" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"dJA" = ( +/obj/machinery/door/airlock/command{ + name = "Public E.V.A. Storage" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/landmark/navigate_destination, +/obj/effect/mapping_helpers/airlock/access/all/command/eva, +/turf/open/floor/iron, +/area/station/ai_monitored/command/storage/eva) +"dJB" = ( +/obj/structure/flora/bush/large, +/turf/open/floor/grass, +/area/station/hallway/primary/central/aft) +"dJD" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/science/ordnance) +"dJG" = ( +/obj/effect/spawner/random/trash/mess, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"dJH" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/effect/turf_decal/bot_white, +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/storage) +"dJL" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/light/small/directional/west, +/turf/open/floor/wood, +/area/station/security/courtroom) +"dJR" = ( +/obj/machinery/camera/directional/south{ + c_tag = " Prison - Locker Room"; + network = list("ss13","prison") + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/security/prison/shower) +"dJV" = ( +/obj/structure/railing{ + pixel_y = -5 + }, +/obj/effect/turf_decal/stripes, +/turf/open/floor/iron/smooth, +/area/station/cargo/miningdock) +"dJW" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/cargo/power_station/upper) +"dJY" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/airlock/external{ + name = "Solar Maintenance" + }, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/unres, +/obj/effect/mapping_helpers/airlock/access/all/engineering/general, +/turf/open/floor/plating, +/area/station/maintenance/solars/starboard/aft) +"dJZ" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/closet/l3closet/scientist, +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/command/gateway) +"dKi" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/obj/machinery/status_display/evac/directional/north, +/obj/machinery/light/directional/north, +/turf/open/floor/iron/white, +/area/station/science) +"dKk" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/window/spawner/directional/north, +/obj/structure/dresser, +/turf/open/floor/carpet/royalblue, +/area/station/command/heads_quarters/hop) +"dKp" = ( +/obj/structure/closet/secure_closet/personal, +/obj/effect/turf_decal/bot_white, +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron/dark, +/area/station/security/prison/shower) +"dKs" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ + dir = 8; + external_pressure_bound = 120; + name = "server vent" + }, +/obj/effect/turf_decal/siding/thinplating/dark/end, +/turf/open/floor/circuit/telecomms{ + initial_gas_mix = "o2=22;n2=82;TEMP=293.15" + }, +/area/station/science/xenobiology) +"dKw" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/closet/radiation, +/obj/effect/turf_decal/bot, +/obj/item/clothing/glasses/meson, +/obj/machinery/light/directional/north, +/obj/machinery/newscaster/directional/north, +/turf/open/floor/iron/dark, +/area/station/engineering/main) +"dKz" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/service/hydroponics/garden) +"dKA" = ( +/obj/machinery/camera/directional/north{ + c_tag = "Bridge - Vanguard Quarters"; + name = "command camera"; + dir = 3 + }, +/turf/closed/wall, +/area/station/commons/toilet/auxiliary) +"dKB" = ( +/obj/structure/table/wood, +/obj/machinery/light/directional/south, +/obj/item/storage/toolbox/artistic, +/turf/open/floor/iron/dark, +/area/station/service/library) +"dKH" = ( +/obj/effect/decal/cleanable/dirt, +/turf/closed/wall, +/area/station/medical/power_station) +"dKI" = ( +/obj/structure/flora/bush/jungle/b/style_2, +/obj/structure/flora/bush/flowers_pp/style_3, +/obj/structure/window/fulltile, +/turf/open/floor/grass, +/area/station/hallway/primary/upper) +"dKK" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Central Hallway" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"dKQ" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/gravity_generator) +"dKT" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/holopad/secure, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/ai_upload) +"dKZ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/brig) +"dLd" = ( +/obj/structure/table, +/obj/item/storage/box/lights/mixed, +/turf/open/floor/iron, +/area/station/hallway/secondary/construction) +"dLj" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat_interior) +"dLk" = ( +/turf/open/floor/iron, +/area/station/common/wrestling/arena) +"dLl" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/siding/thinplating_new, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/service) +"dLs" = ( +/obj/item/cigbutt, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"dLt" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "O2 to Pure" + }, +/obj/effect/turf_decal/stripes/box, +/turf/open/floor/plating/airless, +/area/station/engineering/atmos/upper) +"dLv" = ( +/obj/structure/bed/dogbed/runtime, +/obj/item/toy/cattoy, +/mob/living/simple_animal/pet/cat/runtime, +/obj/machinery/requests_console/directional/east{ + department = "Chief Medical Officer's Desk"; + name = "Chief Medical Officer's Requests Console" + }, +/obj/effect/mapping_helpers/requests_console/announcement, +/obj/effect/mapping_helpers/requests_console/information, +/obj/effect/mapping_helpers/requests_console/assistance, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/cmo) +"dLw" = ( +/obj/effect/turf_decal/bot, +/obj/structure/reagent_dispensers/foamtank, +/turf/open/floor/plating, +/area/station/engineering/atmos) +"dLC" = ( +/obj/machinery/camera/directional/east{ + c_tag = "Command Hallway - Central" + }, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/secondary/command) +"dLE" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/chair/wood{ + dir = 8 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/wood, +/area/station/service/cafeteria) +"dLI" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hall12"; + location = "hall11" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"dLK" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/machinery/computer/security{ + dir = 4 + }, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/turf/open/floor/iron/smooth_corner, +/area/station/command/secure_bunker) +"dLM" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/chair/wood{ + dir = 4 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/wood, +/area/station/service/cafeteria) +"dLO" = ( +/obj/machinery/light/small/broken/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"dLQ" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/valve/digital/on{ + dir = 4; + name = "Output Release" + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"dLW" = ( +/obj/machinery/module_duplicator, +/turf/open/floor/iron/dark/small, +/area/station/science/circuits) +"dMa" = ( +/turf/open/floor/iron/dark, +/area/station/cargo/miningoffice) +"dMb" = ( +/obj/structure/table, +/obj/item/wirecutters, +/obj/item/screwdriver, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/console_room) +"dMn" = ( +/obj/structure/closet/crate/bin, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"dMs" = ( +/turf/closed/wall/r_wall, +/area/station/service/library/abandoned) +"dMw" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/caution/stand_clear/blue{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/security/brig) +"dMx" = ( +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/smooth, +/area/station/cargo/storage) +"dMM" = ( +/obj/effect/turf_decal/trimline/purple/filled/line, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/science/lab) +"dMN" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/red/filled/warning, +/obj/effect/turf_decal/trimline/red/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/side, +/area/station/security/brig) +"dMP" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Central Hallway" + }, +/turf/open/floor/iron/dark, +/area/station/security/prison/workout) +"dMV" = ( +/obj/machinery/computer/security/telescreen/entertainment/directional/west, +/turf/open/floor/carpet, +/area/station/medical/patients_rooms) +"dMX" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark, +/obj/effect/turf_decal/trimline/red/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_edge, +/area/station/security/lockers) +"dNd" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/secondary/entry) +"dNe" = ( +/obj/machinery/door/airlock/research{ + name = "Mech Bay" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/science/robotics, +/obj/effect/landmark/navigate_destination, +/turf/open/floor/iron/dark, +/area/station/science/robotics/mechbay) +"dNg" = ( +/turf/open/floor/iron/smooth_edge{ + dir = 4 + }, +/area/station/cargo/miningdock) +"dNp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/wood, +/area/station/maintenance/abandon_art_studio) +"dNq" = ( +/obj/machinery/power/shuttle_engine/heater{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_port) +"dNC" = ( +/obj/effect/spawner/random/vending/colavend, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/aft) +"dND" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"dNE" = ( +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) +"dNI" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating{ + dir = 4 + }, +/obj/effect/turf_decal/weather/sand{ + dir = 10 + }, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"dNK" = ( +/obj/structure/sauna_oven, +/obj/machinery/light/small/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/service/barber/spa) +"dNQ" = ( +/obj/structure/toilet{ + pixel_y = 10 + }, +/obj/structure/window/reinforced/tinted/frosted/spawner/directional/west, +/turf/open/floor/iron/freezer, +/area/station/command/heads_quarters/captain/private) +"dNT" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"dNW" = ( +/obj/structure/cable, +/obj/effect/turf_decal/trimline/red, +/turf/open/floor/iron/dark/small, +/area/station/security/brig) +"dOc" = ( +/obj/machinery/light/directional/south, +/obj/machinery/newscaster/directional/south, +/obj/structure/chair/comfy/brown{ + color = "#A46106"; + dir = 8 + }, +/turf/open/floor/carpet, +/area/station/medical/patients_rooms) +"dOk" = ( +/obj/effect/turf_decal/tile/red, +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/office) +"dOm" = ( +/obj/effect/turf_decal/trimline/blue/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/prison/workout) +"dOX" = ( +/obj/structure/disposalpipe/trunk/multiz{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"dPc" = ( +/obj/effect/turf_decal/trimline/blue/corner{ + dir = 1 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/iron, +/area/station/commons/fitness) +"dPl" = ( +/obj/structure/chair/sofa/bench/left{ + dir = 4; + pixel_x = -5 + }, +/obj/machinery/airalarm/directional/north, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/common/wrestling/locker) +"dPN" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/ai_monitored/command/storage/eva/upper) +"dPO" = ( +/obj/item/organ/external/tail/monkey, +/turf/open/floor/cult, +/area/station/maintenance/department/science/xenobiology) +"dPP" = ( +/obj/machinery/space_heater, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_port) +"dPQ" = ( +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"dPW" = ( +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/library/lower) +"dPX" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"dQc" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/closet, +/obj/item/trash/champagne_cork, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"dQf" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/radio/intercom/directional/west, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"dQk" = ( +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"dQn" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/primary/port) +"dQz" = ( +/obj/structure/table/reinforced, +/obj/item/wrench, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 9 + }, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"dQD" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/door/airlock/captain{ + name = "Captain's Quarters" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/command/captain, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain/private) +"dQF" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/aisat/exterior) +"dQI" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/ammo_workbench/unlocked, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/range) +"dQV" = ( +/obj/structure/dresser, +/obj/machinery/digital_clock/directional/north, +/turf/open/floor/carpet/green, +/area/station/commons/dorms/room2) +"dQY" = ( +/obj/structure/closet/crate{ + name = "Dusty security crate" + }, +/obj/effect/turf_decal/bot, +/obj/machinery/light/small/broken/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/department/security) +"dRf" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/medical/aslyum) +"dRn" = ( +/obj/effect/turf_decal/tile/blue/fourcorners, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/patients_rooms) +"dRo" = ( +/obj/machinery/light/directional/north, +/obj/structure/bed/double, +/obj/item/bedsheet/green/double, +/turf/open/floor/carpet/green, +/area/station/medical/virology/isolation) +"dRs" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/central/fore) +"dRu" = ( +/turf/open/floor/iron/dark, +/area/station/service/barber) +"dRI" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/turf/open/floor/iron/smooth, +/area/station/cargo/storage) +"dRK" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/airalarm/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"dRQ" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"dRZ" = ( +/obj/effect/decal/cleanable/blood/gibs/old, +/obj/effect/landmark/event_spawn, +/turf/open/floor/mineral/plastitanium/red, +/area/station/maintenance/cult_chapel_maint) +"dSd" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes{ + dir = 6 + }, +/obj/machinery/power/energy_accumulator/grounding_rod, +/turf/open/floor/iron, +/area/station/engineering/storage) +"dSe" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/science/xenobiology) +"dSf" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/smart/simple/pink/visible{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"dSg" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"dSh" = ( +/obj/machinery/camera/directional/south{ + c_tag = "Crew Area - Pool Entrance"; + name = "dormitories camera" + }, +/obj/structure/extinguisher_cabinet/directional/south, +/turf/open/floor/iron, +/area/station/commons/dorms) +"dSi" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/mix_output{ + dir = 8 + }, +/turf/open/floor/engine/vacuum, +/area/station/engineering/atmos) +"dSm" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron, +/area/station/command/bridge) +"dSq" = ( +/obj/machinery/light/directional/south, +/turf/open/floor/iron/dark, +/area/station/common/tailoring) +"dSr" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/loading_area{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/science) +"dSx" = ( +/obj/structure/window/reinforced/spawner/directional/north{ + pixel_y = 1 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/obj/machinery/computer/security/mining, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) +"dSB" = ( +/obj/structure/bookcase/manuals/research_and_development, +/turf/open/floor/wood, +/area/station/command/meeting_room/council) +"dSH" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/carpet/red, +/area/station/command/heads_quarters/hos) +"dSI" = ( +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/cargo/sorting) +"dSJ" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/ai_monitored/command/storage/eva) +"dSK" = ( +/obj/machinery/light/small/directional/west, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/item/banner/engineering/mundane, +/turf/open/floor/iron, +/area/station/engineering/lobby) +"dSL" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/engine, +/area/station/science/auxlab/firing_range) +"dSN" = ( +/obj/effect/landmark/start/assistant, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/common/wrestling/lobby) +"dSO" = ( +/turf/open/floor/iron/stairs/right{ + dir = 4 + }, +/area/station/service/chapel) +"dSP" = ( +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/maintenance/console_room) +"dSR" = ( +/obj/machinery/door/airlock{ + name = "Drinks Shop" + }, +/turf/open/floor/iron/dark, +/area/station/common/wrestling/beverage) +"dSS" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/curtain/cloth/fancy/mechanical{ + icon_state = "bounty-open"; + icon_type = "bounty"; + id = "dormscurtain4"; + name = "curtain" + }, +/turf/open/floor/plating, +/area/station/commons/dorms/room3) +"dSV" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Barshutters"; + name = "Bar Shutters" + }, +/turf/open/floor/iron/dark, +/area/station/service/bar) +"dSW" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Cargo Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/supply/general, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/bar) +"dTa" = ( +/obj/structure/safe, +/obj/item/storage/briefcase/secure/riches, +/obj/item/storage/backpack/duffelbag/syndie/hitman, +/obj/item/card/id/advanced/silver/reaper, +/obj/item/lazarus_injector, +/obj/item/gun/energy/disabler, +/obj/item/gun/ballistic/revolver/russian, +/obj/item/ammo_box/a357, +/obj/item/clothing/neck/stethoscope, +/obj/item/book{ + desc = "An undeniably handy book."; + icon_state = "bookknock"; + name = "\improper A Simpleton's Guide to Safe-cracking with Stethoscopes" + }, +/obj/effect/turf_decal/bot_white/left, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/nuke_storage) +"dTd" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/security/checkpoint/escape) +"dTf" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/plating, +/area/station/engineering/atmos) +"dTi" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 5 + }, +/obj/machinery/camera/directional/north{ + c_tag = "Science - Center Fore Port"; + name = "science camera"; + network = list("ss13","rd") + }, +/turf/open/floor/iron/white, +/area/station/science/research) +"dTk" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"dTq" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/command/heads_quarters/rd) +"dTu" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/command/gateway) +"dTx" = ( +/obj/effect/decal/cleanable/oil, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"dTy" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/dark, +/area/station/security/mechbay) +"dTz" = ( +/obj/structure/extinguisher_cabinet/directional/west, +/obj/machinery/light/directional/south, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/command/secure_bunker) +"dTC" = ( +/obj/machinery/door/airlock/grunge{ + name = "Forbidden Chapel" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/cult_chapel_maint) +"dTD" = ( +/turf/closed/wall, +/area/station/medical/abandoned) +"dTH" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/obj/machinery/door/airlock/medical/glass{ + id_tag = "MedbayFoyer"; + name = "Medbay" + }, +/obj/effect/mapping_helpers/airlock/access/all/medical/general, +/obj/effect/mapping_helpers/airlock/unres, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"dTI" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/machinery/power/shieldwallgen, +/turf/open/floor/iron, +/area/station/engineering/storage) +"dTK" = ( +/obj/machinery/door/airlock/maintenance, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"dTL" = ( +/obj/machinery/door/airlock/external{ + name = "External Thrusters Access" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/airlock/access/all/engineering/external, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"dTM" = ( +/turf/closed/wall/r_wall, +/area/station/service/abandoned_gambling_den) +"dTP" = ( +/obj/structure/cable, +/obj/structure/table, +/obj/item/book/manual/wiki/barman_recipes{ + pixel_x = 5; + pixel_y = 11 + }, +/obj/item/holosign_creator/robot_seat/bar, +/obj/effect/turf_decal/tile/bar/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/service/bar) +"dTY" = ( +/obj/structure/railing{ + pixel_y = -5 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/stairs{ + dir = 8 + }, +/area/station/ai_monitored/aisat/exterior) +"dUf" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron/dark/corner{ + dir = 1 + }, +/area/station/hallway/primary/central/aft) +"dUl" = ( +/obj/effect/turf_decal/stripes{ + dir = 6 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"dUq" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/effect/spawner/random/vending/snackvend, +/turf/open/floor/iron/dark, +/area/station/service/bar/atrium) +"dUu" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/nuke_storage) +"dUv" = ( +/obj/structure/chair/sofa/bench{ + dir = 4; + pixel_x = -5 + }, +/obj/effect/turf_decal/tile/blue/half{ + dir = 4 + }, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/obj/machinery/light/directional/west, +/turf/open/floor/iron/white/side{ + dir = 4 + }, +/area/station/medical/medbay/lobby) +"dUw" = ( +/obj/machinery/light/small/broken/directional/west, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/science/tele_sci) +"dUz" = ( +/obj/effect/turf_decal/trimline/green/filled/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/virology/isolation) +"dUA" = ( +/obj/structure/cable, +/obj/effect/spawner/random/trash/mess, +/turf/open/floor/plating, +/area/station/maintenance/disposal) +"dUF" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/security/prison) +"dUP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/carpet/red, +/area/station/service/library/abandoned) +"dUS" = ( +/obj/structure/table/glass, +/obj/item/book/manual/wiki/engineering_guide, +/obj/item/lightreplacer, +/obj/machinery/light/directional/east, +/obj/item/reagent_containers/cup/glass/waterbottle/large{ + pixel_x = 11; + pixel_y = 7 + }, +/obj/item/storage/box/donkpockets{ + pixel_x = -16; + pixel_y = 5 + }, +/turf/open/floor/iron, +/area/station/engineering/break_room) +"dUW" = ( +/obj/machinery/light/directional/north, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) +"dVc" = ( +/obj/machinery/power/smes/engineering, +/obj/machinery/camera/directional/west{ + c_tag = "Engineering - Power Monitoring"; + name = "engineering camera" + }, +/obj/structure/cable, +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron/dark, +/area/station/engineering/engine_smes) +"dVm" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "N2O to Pure" + }, +/obj/effect/turf_decal/stripes/box, +/turf/open/floor/plating/airless, +/area/station/engineering/atmos/upper) +"dVq" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/effect/landmark/start/chief_engineer, +/turf/open/floor/iron/white/smooth_large, +/area/station/command/heads_quarters/ce) +"dVs" = ( +/obj/structure/chair/plastic{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron, +/area/station/common/wrestling/arena) +"dVy" = ( +/turf/closed/wall, +/area/station/maintenance/starboard/fore) +"dVB" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/station/science/robotics/lab) +"dVC" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Flight Control" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/turf/open/floor/iron/stairs/old, +/area/station/security/execution/transfer) +"dVD" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 1; + name = "N2 to Airmix" + }, +/obj/effect/turf_decal/stripes/end, +/turf/open/floor/plating/airless, +/area/station/engineering/atmos/upper) +"dVN" = ( +/obj/item/kirbyplants/random, +/obj/machinery/airalarm/directional/east, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"dVP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/trash/tray, +/obj/structure/cable, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"dWb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/spawner/random/trash/moisture, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"dWe" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/flowers_pp, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/grass, +/area/station/hallway/secondary/entry) +"dWg" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/service/power_station) +"dWt" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"dWv" = ( +/obj/structure/table/wood, +/obj/item/toy/talking/griffin{ + pixel_x = 7; + pixel_y = 17 + }, +/obj/item/toy/talking/owl{ + pixel_x = 5; + pixel_y = 9 + }, +/obj/item/toy/cards/deck/tarot{ + pixel_x = -6 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/iron/dark, +/area/station/service/library/lounge) +"dWC" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/structure/chair/sofa/bench{ + dir = 4; + pixel_x = -5 + }, +/obj/machinery/light/floor/has_bulb, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/common/wrestling/arena) +"dWD" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/purple/half, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white/side, +/area/station/science) +"dWK" = ( +/obj/machinery/airalarm/directional/east, +/obj/structure/cable, +/obj/machinery/light/directional/east, +/obj/machinery/camera/directional/east{ + c_tag = "Bridge - Council Chamber"; + name = "command camera" + }, +/turf/open/floor/wood, +/area/station/command/meeting_room/council) +"dWN" = ( +/obj/structure/table, +/obj/item/clothing/suit/armor/vest/old, +/obj/item/clothing/head/helmet/old{ + pixel_y = 9 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"dXb" = ( +/turf/open/floor/iron/dark, +/area/station/engineering/main) +"dXl" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/window/spawner/directional/west, +/obj/structure/dresser, +/turf/open/floor/carpet/green, +/area/station/command/heads_quarters/nt_rep) +"dXo" = ( +/obj/structure/sign/poster/random/directional/west, +/obj/structure/machine/assembly_bench, +/turf/open/floor/wood/large, +/area/station/service/forge) +"dXq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable/layer1, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"dXy" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/light/directional/south, +/obj/structure/table/reinforced, +/obj/machinery/microwave{ + pixel_y = 7 + }, +/turf/open/floor/iron/dark/side, +/area/station/security/office) +"dXE" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/station/service/cafeteria) +"dXH" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ + dir = 4 + }, +/obj/structure/lattice/catwalk, +/turf/open/space/basic, +/area/space/nearstation) +"dXJ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/medical/patients_rooms) +"dXM" = ( +/obj/effect/turf_decal/stripes{ + dir = 10 + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 10 + }, +/turf/open/floor/engine, +/area/station/command/heads_quarters/rd) +"dXP" = ( +/obj/effect/spawner/random/structure/table_or_rack, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_port) +"dXR" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/cargo/storage) +"dXV" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"dXZ" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 9 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/break_room) +"dYd" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "lawyerprivacy"; + name = "Lawyer's Privacy Shutter" + }, +/obj/item/folder{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/folder, +/obj/machinery/door/window/left/directional/west{ + name = "Law Desk"; + req_access = list("lawyer") + }, +/turf/open/floor/iron/dark, +/area/station/service/lawoffice) +"dYe" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/table, +/obj/item/paper_bin{ + pixel_y = 3 + }, +/obj/item/pen{ + pixel_y = 3 + }, +/obj/machinery/light/directional/west, +/turf/open/floor/iron, +/area/station/common/wrestling/lobby) +"dYj" = ( +/obj/machinery/holopad, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron/checker, +/area/station/service/janitor) +"dYp" = ( +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/window/left/directional/south{ + name = "Library Desk"; + req_access = list("library") + }, +/turf/open/floor/wood, +/area/station/service/library) +"dYs" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/transit_tube) +"dYI" = ( +/obj/structure/lattice/catwalk, +/obj/structure/trash_pile, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/openspace, +/area/station/maintenance/aft/upper) +"dYL" = ( +/obj/machinery/door/airlock/engineering/glass{ + name = "Server Room" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "tcomms-internal" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/construction, +/turf/open/floor/iron, +/area/station/tcommsat/computer) +"dYM" = ( +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron/stairs/right{ + dir = 1 + }, +/area/station/hallway/primary/central/fore) +"dYN" = ( +/obj/structure/extinguisher_cabinet/directional/east, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"dYS" = ( +/obj/structure/rack/shelf, +/obj/item/stack/sheet/mineral/plasma/five, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"dZa" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "External Gas to Loop" + }, +/turf/open/floor/iron/dark, +/area/station/engineering/supermatter/room) +"dZc" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ + dir = 6 + }, +/obj/structure/lattice/catwalk, +/turf/open/space/basic, +/area/space/nearstation) +"dZo" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/dorms) +"dZq" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/closet, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"dZv" = ( +/obj/item/stack/sheet/cardboard, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"dZw" = ( +/obj/structure/rack/shelf, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/engineering/tool, +/obj/effect/spawner/random/engineering/tool, +/turf/open/floor/iron/dark/side, +/area/station/science/tele_sci) +"dZA" = ( +/obj/effect/turf_decal/siding/thinplating/dark, +/turf/open/indestructible{ + base_icon_state = "reinf_glass"; + icon = 'icons/turf/floors/reinf_glass.dmi'; + icon_state = "reinf_glass-0"; + name = "Ultra Reinforced Glass Floor" + }, +/area/station/ai_monitored/turret_protected/aisat_interior) +"dZQ" = ( +/obj/machinery/light/directional/east, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/commons/storage/primary) +"dZR" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/closet/emcloset/wall/directional/west, +/turf/open/floor/iron/white/corner{ + dir = 8 + }, +/area/station/hallway/secondary/entry) +"dZZ" = ( +/obj/structure/sink/directional/south, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/medical/virology/isolation) +"eab" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/machinery/computer/crew{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/cmo) +"ead" = ( +/obj/structure/window/spawner/directional/west, +/obj/item/kirbyplants/organic/plant22, +/obj/machinery/camera/directional/south{ + c_tag = "Art Gallery"; + dir = 9; + name = "library camera" + }, +/turf/open/floor/wood, +/area/station/service/library) +"eag" = ( +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/structure/disposaloutlet, +/turf/open/floor/catwalk_floor, +/area/station/science/ordnance/testlab) +"eak" = ( +/obj/machinery/airalarm/directional/east, +/obj/structure/extinguisher_cabinet/directional/south, +/obj/machinery/light/directional/east, +/turf/open/floor/iron/white, +/area/station/science/genetics) +"eau" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister/anesthetic_mix, +/obj/effect/turf_decal/bot, +/obj/structure/window/spawner/directional/west, +/obj/structure/window/spawner/directional/south, +/turf/open/floor/iron, +/area/station/medical/cryo) +"eax" = ( +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 5 + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"eaD" = ( +/obj/effect/turf_decal/bot, +/obj/structure/bed/roller, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 9 + }, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) +"eaO" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/structure/chair/office/light{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/medical/pharmacy) +"eaQ" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/chair, +/turf/open/floor/iron/white/side, +/area/station/medical/medbay/lobby) +"eaR" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 2 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/camera/directional/north, +/turf/open/floor/iron, +/area/station/service/chapel) +"eaU" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/machinery/light/small/directional/south, +/turf/open/floor/iron/dark, +/area/station/commons/vacant_room/commissary) +"ebg" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 1 + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/external, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"ebi" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"ebp" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/holopad/secure, +/obj/machinery/flasher/directional/west{ + id = "AI"; + pixel_y = -26 + }, +/obj/structure/cable, +/obj/machinery/door/window/brigdoor/left/directional/east{ + name = "Secondary AI Core Acces Door"; + req_access = list("ai_upload") + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai) +"ebv" = ( +/obj/structure/table/wood, +/obj/item/statuebust, +/obj/machinery/newscaster/directional/east, +/turf/open/floor/wood, +/area/station/command/meeting_room/council) +"ebA" = ( +/obj/structure/table, +/obj/item/stock_parts/subspace/ansible, +/obj/item/stock_parts/subspace/ansible, +/obj/item/stock_parts/subspace/ansible, +/obj/item/stock_parts/subspace/crystal, +/obj/item/stock_parts/subspace/crystal, +/obj/item/stock_parts/subspace/crystal, +/obj/machinery/light_switch/directional/west, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tcomms) +"ebD" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"ebF" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/medical/coldroom) +"ebG" = ( +/turf/closed/wall, +/area/station/maintenance/department/security/upper) +"ebH" = ( +/obj/structure/cable/multilayer/multiz, +/obj/effect/turf_decal/stripes/end{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"ebK" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/west, +/obj/structure/window/spawner/directional/south, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"ecd" = ( +/obj/structure/table, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"ecj" = ( +/obj/structure/cable, +/obj/structure/chair/stool/directional/east, +/obj/effect/landmark/start/atmospheric_technician, +/turf/open/floor/iron/dark, +/area/station/maintenance/disposal/incinerator) +"ecm" = ( +/obj/effect/turf_decal/arrows/red{ + dir = 4; + pixel_x = -15 + }, +/turf/open/floor/engine, +/area/station/engineering/atmos/hfr_room) +"ecF" = ( +/obj/effect/turf_decal/trimline/purple/filled/line, +/obj/machinery/status_display/ai/directional/south, +/obj/machinery/light/directional/south, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/science/research) +"ecQ" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/space/openspace, +/area/space) +"ecR" = ( +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/port) +"eda" = ( +/obj/effect/turf_decal/trimline/purple/filled/line, +/obj/structure/extinguisher_cabinet/directional/south, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/camera/autoname/directional/south{ + network = list("ss13","xeno","rd") + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"edc" = ( +/obj/structure/lattice, +/turf/open/openspace, +/area/station/commons/dorms) +"ede" = ( +/obj/structure/closet/l3closet, +/obj/effect/turf_decal/bot, +/obj/machinery/newscaster/directional/south, +/turf/open/floor/iron, +/area/station/medical/virology) +"edv" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/ai_monitored/command/nuke_storage) +"edD" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Chapel Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/service/chapel_office, +/turf/open/floor/plating, +/area/station/maintenance/department/chapel) +"edQ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood/large, +/area/station/common/night_club) +"edU" = ( +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 4 + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"edY" = ( +/turf/open/floor/iron/dark/side, +/area/station/hallway/primary/port) +"eec" = ( +/obj/structure/chair/sofa/bench, +/obj/effect/landmark/start/security_officer, +/obj/effect/turf_decal/trimline/red/filled/line{ + color = "#DE3A3A"; + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/line, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/lockers) +"eej" = ( +/obj/machinery/door/airlock/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"eeo" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) +"eer" = ( +/turf/open/floor/engine/vacuum, +/area/station/engineering/atmos) +"ees" = ( +/obj/structure/trash_pile, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"eeA" = ( +/obj/item/mop, +/obj/effect/turf_decal/bot, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/hallway/primary/port) +"eeD" = ( +/obj/item/beacon, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/ai_monitored/command/storage/eva) +"eeE" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 4; + initialize_directions = 8 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/test_chambers) +"eeK" = ( +/obj/effect/turf_decal/stripes/end, +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"eeQ" = ( +/obj/effect/turf_decal/trimline/red/filled/warning{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/red/corner{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 10 + }, +/area/station/security/brig) +"eeR" = ( +/obj/structure/window/reinforced/plasma/spawner/directional/west, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/effect/artifact_spawner, +/turf/open/floor/engine, +/area/station/science/explab) +"eeS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/mess, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"eeT" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/window/spawner/directional/east, +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/item/hairbrush, +/turf/open/floor/carpet/blue, +/area/station/commons/dorms/room3) +"eeU" = ( +/obj/structure/fermenting_barrel, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/small, +/area/station/cargo/storage) +"eeW" = ( +/turf/open/floor/carpet/blue, +/area/station/command/heads_quarters/cmo) +"eeX" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering/glass{ + name = "Shared Engineering Storage" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/general, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/engineering/storage_shared) +"eeY" = ( +/obj/structure/rack/shelf, +/obj/effect/spawner/random/techstorage/tcomms_all, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) +"eeZ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron, +/area/station/commons/dorms) +"efd" = ( +/obj/machinery/computer/security/hos{ + dir = 8 + }, +/turf/open/floor/carpet/red, +/area/station/command/heads_quarters/hos) +"efg" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/mess, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"efi" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"efr" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 10 + }, +/obj/effect/turf_decal/weather/sand{ + dir = 9 + }, +/obj/structure/flora/grass/jungle, +/obj/structure/flora/rock{ + pixel_x = 4; + pixel_y = 10 + }, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"efz" = ( +/obj/machinery/door/airlock/highsecurity{ + name = "AI Upload Access" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/command/ai_upload, +/turf/open/floor/iron, +/area/station/ai_monitored/turret_protected/ai_upload) +"efD" = ( +/obj/machinery/space_heater, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/station/hallway/secondary/entry) +"efE" = ( +/obj/structure/lattice, +/obj/structure/fluff/metalpole{ + dir = 8 + }, +/obj/structure/fluff/metalpole{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) +"efJ" = ( +/turf/closed/wall, +/area/station/service/library/lounge) +"efO" = ( +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/station/command/captain_dining) +"efW" = ( +/obj/structure/toilet{ + dir = 1 + }, +/obj/structure/sink/directional/west, +/obj/structure/mirror/directional/east, +/turf/open/floor/iron/freezer, +/area/station/commons/dorms/room8) +"egb" = ( +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 8 + }, +/obj/effect/spawner/random/vending/snackvend, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/port) +"egd" = ( +/obj/machinery/light/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/service/library) +"egg" = ( +/obj/item/reagent_containers/cup/glass/bottle/whiskey{ + pixel_x = -5; + pixel_y = 10 + }, +/obj/machinery/light_switch/directional/south, +/obj/item/reagent_containers/cup/glass/flask, +/obj/structure/table/wood/fancy/royalblue, +/turf/open/floor/carpet/royalblue, +/area/station/command/heads_quarters/hop) +"ego" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/station/service/chapel) +"egp" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/wood, +/area/station/service/library) +"egt" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Science Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/research, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/science/central) +"egv" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/food/grown/mushroom/glowshroom, +/turf/open/misc/asteroid/airless, +/area/space/nearstation) +"egB" = ( +/obj/structure/cable, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/medical/virology) +"egE" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"egI" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/hop) +"egM" = ( +/obj/machinery/atmospherics/miner/nitrogen, +/turf/open/floor/engine/n2, +/area/station/engineering/atmos) +"egN" = ( +/obj/structure/table/wood, +/obj/item/clothing/mask/cigarette/cigar/havana{ + pixel_x = -3 + }, +/obj/item/clothing/mask/cigarette/cigar/cohiba{ + pixel_x = 3 + }, +/obj/item/clothing/mask/cigarette/cigar, +/obj/item/lighter, +/turf/open/floor/carpet, +/area/station/command/meeting_room/council) +"egR" = ( +/obj/docking_port/stationary/escape_pod{ + dir = 2 + }, +/turf/open/space/basic, +/area/space) +"egS" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/machinery/shieldgen, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva/upper) +"egW" = ( +/obj/machinery/atmospherics/pipe/multiz/supply/visible/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/multiz/scrubbers/visible/layer2{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/end{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"ehf" = ( +/obj/effect/turf_decal/trimline/blue/filled/corner, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"ehm" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ + dir = 5 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"ehn" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/yellow/visible, +/obj/effect/spawner/structure/window/reinforced/plasma, +/turf/open/floor/plating, +/area/station/engineering/atmos) +"eho" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/pdapainter/medbay, +/obj/machinery/airalarm/directional/south, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/cmo) +"ehp" = ( +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"ehq" = ( +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/prison/workout) +"ehs" = ( +/obj/effect/landmark/start/geneticist, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/science/genetics) +"eht" = ( +/obj/machinery/duct, +/turf/open/floor/iron/dark, +/area/station/common/night_club) +"ehw" = ( +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/security/prison/workout) +"ehz" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/effect/spawner/random/trash/food_packaging, +/obj/effect/spawner/random/contraband/narcotics, +/turf/open/floor/plating/reinforced{ + initial_gas_mix = "TEMP=2.7" + }, +/area/station/science/ordnance/bomb) +"ehH" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "chem_lockdown"; + name = "Chemistry Shutters" + }, +/turf/open/floor/plating, +/area/station/medical/chemistry) +"ehR" = ( +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"ehY" = ( +/obj/structure/toilet{ + dir = 1 + }, +/obj/structure/sink/directional/east, +/obj/structure/mirror{ + pixel_x = -27 + }, +/turf/open/floor/iron/freezer, +/area/station/commons/dorms/room7) +"ehZ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/violet/visible, +/obj/machinery/meter, +/turf/open/floor/iron, +/area/station/engineering/atmos/pumproom) +"eib" = ( +/turf/open/floor/iron/dark, +/area/station/medical/morgue) +"eid" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/trimline/red/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/prison/safe) +"eie" = ( +/obj/structure/chair/sofa/bench{ + dir = 8; + pixel_x = 5 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/commons/dorms) +"eig" = ( +/obj/structure/chair/office, +/turf/open/floor/iron, +/area/station/science/ordnance) +"eih" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "Atmos to Engine" + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"eij" = ( +/obj/machinery/door/airlock/maintenance, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"eiq" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 5 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"eir" = ( +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/prison/upper) +"eit" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/engineering/lobby) +"eiB" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"eiG" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/chair/sofa/bench{ + dir = 8; + pixel_x = 5 + }, +/obj/machinery/light/floor/has_bulb, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/common/wrestling/arena) +"eiM" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/service/library/lounge) +"eiO" = ( +/obj/effect/turf_decal/stripes{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"eiP" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/unres, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_port) +"eiW" = ( +/obj/structure/railing, +/turf/closed/wall, +/area/station/cargo/miningdock) +"eiY" = ( +/obj/structure/fence/door, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/turf/open/floor/iron/dark/herringbone, +/area/station/cargo/storage) +"eja" = ( +/obj/structure/hedge, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/open/floor/wood, +/area/station/service/cafeteria) +"ejd" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/security/execution/transfer) +"eje" = ( +/obj/structure/cable, +/turf/open/floor/iron/cafeteria, +/area/station/commons/locker) +"ejf" = ( +/obj/structure/chair/sofa/bench/right{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/lobby) +"ejo" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"ejr" = ( +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/disposal/delivery_chute{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/disposal) +"ejt" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hall15"; + location = "hall14" + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"ejG" = ( +/obj/structure/closet/secure_closet/captains, +/obj/effect/turf_decal/stripes{ + dir = 6 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/captain/private) +"ejO" = ( +/obj/machinery/growing/soil, +/turf/open/floor/grass, +/area/station/maintenance/port/fore) +"ejT" = ( +/obj/structure/cable, +/obj/machinery/status_display/ai/directional/west, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/aisat/hallway) +"ejX" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/machinery/dryer{ + pixel_y = 14 + }, +/obj/machinery/camera/autoname/directional/north, +/turf/open/floor/carpet/black, +/area/station/service/barber) +"ekg" = ( +/obj/structure/table/wood, +/obj/item/stack/sheet/mineral/sandstone/thirty, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/wood, +/area/station/maintenance/abandon_art_studio) +"ekj" = ( +/turf/open/openspace, +/area/station/hallway/secondary/exit) +"ekl" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/secure_closet/security, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/dark/side, +/area/station/security/checkpoint/escape) +"ekm" = ( +/obj/machinery/atmospherics/miner/plasma, +/turf/open/floor/engine/plasma, +/area/station/engineering/atmos) +"ekr" = ( +/obj/structure/table, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/spawner/random/engineering/tool, +/obj/effect/spawner/random/engineering/tool, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/secondary/service) +"ekt" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/turf/open/floor/iron/shuttle/arrivals/airless, +/area/space/nearstation) +"ekE" = ( +/obj/structure/closet, +/obj/effect/turf_decal/delivery, +/obj/effect/spawner/random/maintenance/two, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"ekF" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/command) +"ekG" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/science/power_station) +"ekI" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 6 + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"ekR" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/door/window/right/directional/east, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain) +"elb" = ( +/turf/open/floor/engine, +/area/station/science/ordnance/burnchamber) +"ele" = ( +/obj/structure/flora/bush/sunny, +/mob/living/carbon/human/species/monkey, +/obj/machinery/light/small/directional/north, +/turf/open/floor/grass, +/area/station/medical/virology/isolation) +"elg" = ( +/obj/machinery/light/directional/east, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/brig) +"elh" = ( +/obj/structure/chair/sofa/bench/left{ + dir = 8; + pixel_x = 5 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/central/aft) +"ell" = ( +/obj/effect/spawner/random/trash/box, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"elm" = ( +/obj/machinery/light/small/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_starboard) +"elp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron, +/area/station/science/research/abandoned) +"elt" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/plaque/static_plaque/golden/captain{ + pixel_y = 32 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/captain) +"elv" = ( +/obj/structure/bed/maint, +/obj/item/knife/shiv, +/obj/machinery/light/small/broken/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/abandon_holding_cell) +"elx" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/station/maintenance/department/security) +"ely" = ( +/obj/structure/table/wood, +/obj/item/clipboard{ + pixel_y = 4 + }, +/obj/item/clipboard{ + pixel_y = 1 + }, +/obj/item/papercutter{ + pixel_y = 9 + }, +/obj/machinery/status_display/evac/directional/west, +/obj/machinery/light/directional/south, +/turf/open/floor/wood, +/area/station/command/meeting_room/council) +"elz" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/green/visible{ + dir = 1 + }, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/machinery/meter, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/engineering/atmos/pumproom) +"elE" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"elK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/commons/dorms) +"elN" = ( +/obj/effect/decal/cleanable/blood/gibs/old, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"elO" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"elR" = ( +/obj/machinery/light/small/directional/west, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) +"elV" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron, +/area/station/commons/locker) +"elW" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/closet/emcloset/wall/directional/west, +/turf/open/floor/iron/white/corner{ + dir = 1 + }, +/area/station/hallway/secondary/entry) +"elY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/power/port_gen/pacman/pre_loaded, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"emd" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"emg" = ( +/obj/machinery/light/small/directional/north, +/obj/structure/rack, +/turf/open/floor/iron/dark, +/area/station/science/power_station) +"emk" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron/white, +/area/station/medical/surgery/theatre) +"emr" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 10 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/science/research) +"emt" = ( +/obj/structure/chair/pew/right{ + dir = 4 + }, +/obj/machinery/light/directional/west, +/obj/machinery/status_display/evac/directional/north, +/obj/effect/turf_decal/tile/bar/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/security/prison/mess) +"emD" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/sink/directional/south, +/turf/open/floor/iron/dark/textured_large, +/area/station/service/barber) +"emF" = ( +/turf/open/floor/iron/dark, +/area/station/security/prison/mess) +"emG" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/iron/dark, +/area/station/tcommsat/computer) +"emJ" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"emO" = ( +/turf/closed/wall/r_wall, +/area/station/maintenance/console_room) +"end" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/green/visible{ + dir = 4 + }, +/obj/machinery/meter, +/turf/open/floor/iron, +/area/station/engineering/atmos/test_chambers) +"enh" = ( +/obj/effect/turf_decal/bot, +/obj/structure/reagent_dispensers/water_cooler, +/turf/open/floor/iron/dark, +/area/station/engineering/break_room) +"enl" = ( +/obj/machinery/light/small/directional/east, +/obj/machinery/portable_atmospherics/scrubber, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron, +/area/station/maintenance/port/aft) +"eno" = ( +/obj/structure/table/glass, +/obj/item/plate, +/turf/open/floor/wood, +/area/station/hallway/primary/central) +"enx" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/iron/dark/side{ + dir = 10 + }, +/area/station/hallway/primary/port) +"enB" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/lobby) +"enN" = ( +/obj/machinery/light/directional/south, +/obj/machinery/duct, +/turf/open/floor/iron/freezer, +/area/station/common/locker_room_shower) +"enO" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/red/filled/warning{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/line, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/brig) +"eod" = ( +/obj/structure/mirror/directional/north, +/obj/structure/sink/directional/south, +/obj/structure/urinal/directional/west, +/turf/open/floor/iron/cafeteria, +/area/station/commons/toilet/auxiliary) +"eof" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/test_chambers) +"eoj" = ( +/obj/structure/table, +/obj/item/folder/white{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/folder, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 4 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/testlab) +"eom" = ( +/turf/open/floor/plating/airless, +/area/station/maintenance/port/fore) +"eor" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/atmos_aux_port) +"eow" = ( +/obj/machinery/light/small/directional/east, +/turf/open/floor/iron, +/area/station/maintenance/rus_surgery) +"eoz" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/effect/turf_decal/stripes, +/turf/open/floor/engine, +/area/station/science/ordnance) +"eoG" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/central) +"eoO" = ( +/obj/item/stack/sheet/iron{ + amount = 10 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/science/research/abandoned) +"eoQ" = ( +/obj/effect/turf_decal/delivery/white{ + color = "#00ff00"; + name = "green" + }, +/obj/machinery/cryopod{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/security/prison/upper) +"eoV" = ( +/obj/effect/turf_decal/trimline/purple/filled/line, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/science/research) +"eoX" = ( +/obj/machinery/camera/directional/south{ + c_tag = "Prison - Visition (Visitor)"; + network = list("ss13","prison") + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/machinery/status_display/ai/directional/south, +/turf/open/floor/iron, +/area/station/security/prison/visit) +"epa" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/chem_master/condimaster{ + desc = "Used to separate out liquids - useful for purifying botanical extracts. Also dispenses condiments."; + name = "SapMaster XP" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/service/hydroponics) +"epc" = ( +/obj/machinery/vending/boozeomat, +/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/customs/auxiliary) +"epg" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/dorms) +"epx" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"epz" = ( +/obj/structure/curtain/cloth, +/obj/structure/drain, +/obj/machinery/shower/directional/south, +/turf/open/floor/iron/freezer, +/area/station/commons/dorms/room8) +"epC" = ( +/obj/structure/bed{ + dir = 1 + }, +/obj/item/bedsheet/medical{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/medical/patients_rooms) +"epH" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/test_chambers) +"epI" = ( +/obj/item/stack/sheet/cardboard, +/turf/open/floor/plating, +/area/station/maintenance/department/science/ordnance_maint) +"epN" = ( +/obj/structure/railing, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/stairs/old{ + dir = 8 + }, +/area/station/common/wrestling/arena) +"epP" = ( +/obj/effect/turf_decal/stripes{ + dir = 10 + }, +/obj/machinery/computer/rdconsole{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/science/lab) +"epU" = ( +/obj/effect/turf_decal/stripes/corner, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"epX" = ( +/obj/effect/spawner/random/trash/cigbutt, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"eqa" = ( +/obj/structure/window/spawner/directional/south, +/obj/structure/curtain, +/obj/structure/table/glass, +/obj/item/reagent_containers/medigel/libital{ + pixel_x = -7; + pixel_y = 9 + }, +/obj/item/reagent_containers/pill/neurine, +/turf/open/floor/iron, +/area/station/medical/patients_rooms) +"eqb" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchenside"; + name = "Kitchen Hall Shutters" + }, +/obj/machinery/door/firedoor, +/obj/item/plate, +/obj/item/plate{ + pixel_y = 2 + }, +/obj/item/plate{ + pixel_y = 4 + }, +/obj/item/plate{ + pixel_y = 6 + }, +/obj/item/plate{ + pixel_y = 8 + }, +/obj/item/plate{ + pixel_y = 10 + }, +/turf/open/floor/iron/dark, +/area/station/service/kitchen) +"eqf" = ( +/turf/closed/wall, +/area/station/common/locker_room_shower) +"eqg" = ( +/obj/machinery/light/small/directional/west, +/obj/machinery/duct, +/turf/open/floor/iron/freezer, +/area/station/commons/dorms/room3) +"eql" = ( +/turf/closed/wall/r_wall, +/area/station/cargo/warehouse) +"eqr" = ( +/obj/item/trash/syndi_cakes, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"eqs" = ( +/obj/effect/turf_decal/stripes, +/obj/effect/turf_decal/stripes/white/line, +/turf/open/floor/iron/white, +/area/station/medical/morgue) +"eqw" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/light/small/directional/east, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"eqx" = ( +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/commons/dorms/room1) +"eqK" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/science/research) +"eqP" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb, +/obj/structure/disposalpipe/trunk{ + dir = 2 + }, +/turf/open/floor/iron, +/area/station/maintenance/thruster_room/central) +"eqR" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/bluespace_vendor/directional/west, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"eqS" = ( +/turf/closed/wall, +/area/station/maintenance/port/aft) +"eqV" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/maintenance/department/security) +"eqZ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "cmoshutter"; + name = "CMO Office Shutters" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/command/heads_quarters/cmo) +"era" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/solars/port/fore) +"erg" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ + dir = 8 + }, +/obj/machinery/meter, +/turf/open/floor/iron, +/area/station/science/ordnance) +"erj" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/service/power_station) +"erk" = ( +/obj/item/shard, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"erl" = ( +/obj/structure/girder, +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"ero" = ( +/obj/structure/table, +/obj/effect/turf_decal/delivery, +/obj/machinery/status_display/ai/directional/south, +/obj/item/storage/medkit/regular, +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"erB" = ( +/obj/effect/turf_decal/bot, +/obj/structure/rack/shelf, +/turf/open/floor/iron/dark, +/area/station/cargo/warehouse) +"erU" = ( +/obj/structure/chair/pew{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/common/pool/sauna) +"erV" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder{ + pixel_y = 2 + }, +/obj/item/reagent_containers/condiment/enzyme{ + pixel_x = -10; + pixel_y = 5 + }, +/turf/open/floor/iron/cafeteria, +/area/station/common/wrestling/concessions) +"esc" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/aux_eva) +"esd" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen/diner) +"esg" = ( +/obj/item/trash/waffles, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"esh" = ( +/obj/structure/window/spawner/directional/west, +/obj/structure/window/spawner/directional/north, +/obj/structure/chair/sofa/corp/corner{ + color = "#DE3A3A"; + dir = 4 + }, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen/diner) +"esl" = ( +/turf/open/floor/iron, +/area/station/security/warden) +"esr" = ( +/obj/structure/rack/shelf, +/obj/effect/turf_decal/bot, +/obj/item/weldingtool/largetank, +/obj/item/weldingtool/largetank{ + pixel_y = -5 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/transit_tube) +"esu" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"esv" = ( +/obj/machinery/door/airlock/command{ + name = "Public Teleport Access" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/navigate_destination, +/obj/effect/mapping_helpers/airlock/access/all/command/teleporter, +/turf/open/floor/iron, +/area/station/command/teleporter) +"esx" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/cargo/power_station/upper) +"esy" = ( +/obj/effect/turf_decal/vg_decals/numbers/zero, +/turf/open/floor/iron/shuttle/arrivals/airless, +/area/space/nearstation) +"esA" = ( +/obj/machinery/iv_drip, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/iron/grimy, +/area/station/maintenance/starboard/fore) +"esD" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/light/floor/has_bulb, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"esE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"esP" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/item/modular_computer/laptop/preset/civilian, +/obj/machinery/newscaster/directional/north, +/turf/open/floor/carpet, +/area/station/security/detectives_office) +"esS" = ( +/obj/structure/cable, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/digital_clock/directional/east, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"esV" = ( +/obj/machinery/door/airlock/engineering{ + name = "Auxillary Base Construction" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/engineering/aux_base, +/turf/open/floor/iron, +/area/station/construction/mining/aux_base) +"eta" = ( +/obj/structure/table, +/obj/item/melee/baton/security/cattleprod, +/turf/open/floor/iron, +/area/station/maintenance/abandon_holding_cell) +"etb" = ( +/obj/machinery/smartfridge/petri/preloaded, +/turf/open/floor/iron/dark, +/area/station/science/cytology) +"etc" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/disposal) +"eth" = ( +/obj/structure/table/wood/fancy/cyan, +/obj/item/reagent_containers/cup/glass/trophy{ + desc = "You did good in the worst way possible."; + name = "Redshield 1st prize"; + pixel_x = 10; + pixel_y = 11 + }, +/obj/item/reagent_containers/cup/glass/trophy/bronze_cup{ + name = "Foam force security team competition 3rd place"; + pixel_x = -9; + pixel_y = 11 + }, +/obj/item/reagent_containers/cup/glass/trophy/silver_cup{ + name = "Head of shitcurity competition 2nd place"; + pixel_y = 8 + }, +/obj/machinery/light_switch/directional/south, +/obj/machinery/light/directional/south, +/obj/machinery/camera/directional/south, +/turf/open/floor/wood, +/area/station/command/heads_quarters/blueshield) +"etj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet, +/obj/effect/spawner/random/maintenance/six, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"etk" = ( +/obj/effect/turf_decal/trimline/red/filled/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 6 + }, +/turf/open/floor/iron/dark/corner{ + dir = 1 + }, +/area/station/security/brig) +"etq" = ( +/obj/machinery/power/shuttle_engine/huge{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"etr" = ( +/obj/machinery/growing/soil, +/turf/open/floor/grass, +/area/station/service/hydroponics) +"etv" = ( +/turf/open/floor/iron, +/area/station/maintenance/console_room) +"etB" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/science/research) +"etC" = ( +/obj/structure/railing, +/obj/machinery/door/firedoor/border_only, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark/side, +/area/station/hallway/primary/upper) +"etK" = ( +/obj/structure/table/wood, +/obj/item/folder{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/folder/blue, +/turf/open/floor/wood, +/area/station/command/heads_quarters/rd) +"etL" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/port) +"etM" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 4 + }, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"etQ" = ( +/obj/structure/flora/bush/fullgrass, +/obj/structure/flora/bush/grassy, +/turf/open/floor/grass, +/area/station/service/chapel) +"etR" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/rack, +/obj/item/clothing/under/misc/burial, +/obj/item/clothing/under/misc/burial, +/obj/item/clothing/under/misc/burial, +/obj/item/food/grown/harebell, +/obj/item/food/grown/harebell, +/obj/machinery/newscaster/directional/west, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/iron/dark, +/area/station/security/prison) +"etW" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/engineering/engine_smes) +"etY" = ( +/obj/machinery/airalarm/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white/textured, +/area/station/common/cryopods) +"euj" = ( +/obj/machinery/door/firedoor, +/obj/machinery/firealarm/directional/west, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/brig) +"eul" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/firedoor, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/poddoor/shutters{ + id = "Portbowmaints"; + name = "Port Bow Maintenance" + }, +/obj/machinery/button/door/directional/north{ + id = "Portbowmaints"; + name = "Shutter control"; + pixel_x = 24; + pixel_y = 0; + req_access = list("engineering","atmospherics") + }, +/turf/open/floor/iron/stairs/right, +/area/station/maintenance/port/upper) +"eum" = ( +/obj/structure/cable, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/bar/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/service/bar) +"euq" = ( +/obj/structure/chair/stool/directional/west, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/eighties, +/area/station/maintenance/abandon_arcade) +"eur" = ( +/obj/effect/turf_decal/delivery/white, +/obj/machinery/flasher/directional/east{ + id = "hopflash"; + pixel_y = 25 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/command) +"euw" = ( +/obj/machinery/airalarm/directional/west, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/primary/central/aft) +"euy" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/iron/dark, +/area/station/cargo/miningoffice) +"euE" = ( +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"euG" = ( +/turf/open/floor/carpet/royalblack, +/area/station/command/heads_quarters/qm) +"euI" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"euJ" = ( +/obj/structure/dresser, +/obj/structure/noticeboard/directional/north, +/obj/machinery/camera/directional/south{ + c_tag = "Library Backroom"; + dir = 1; + name = "library camera" + }, +/turf/open/floor/carpet, +/area/station/service/library/printer) +"euK" = ( +/turf/open/floor/engine, +/area/station/science/explab) +"euL" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/effect/turf_decal/bot, +/obj/machinery/computer/security/telescreen/turbine{ + dir = 8; + pixel_x = 32 + }, +/obj/machinery/modular_computer/preset/engineering, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/maintenance/disposal/incinerator) +"euM" = ( +/obj/structure/disposalpipe/sorting/mail{ + name = "CE's Junction"; + sortType = 5 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/engineering/main) +"euQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/hallway/primary/port) +"euS" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"euU" = ( +/turf/open/floor/engine, +/area/station/science/xenobiology) +"euV" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/kirbyplants/random, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/station/maintenance/abandon_diner) +"euZ" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/machinery/camera/autoname/directional/west, +/turf/open/floor/iron/stairs/left, +/area/station/hallway/secondary/command) +"evb" = ( +/obj/structure/table/optable{ + name = "Autopsy table" + }, +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/machinery/light/directional/south, +/turf/open/floor/iron/white, +/area/station/science/robotics) +"evd" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"evg" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/obj/effect/landmark/start/chemist, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/medical/pharmacy) +"evi" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/science/research) +"evn" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/stripes/white/line{ + dir = 10 + }, +/turf/open/floor/engine, +/area/station/science/ordnance) +"evr" = ( +/obj/structure/chair, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"evv" = ( +/obj/effect/turf_decal/stripes{ + dir = 10 + }, +/turf/open/floor/engine, +/area/station/science/ordnance) +"evy" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/porta_turret/ai, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat_interior) +"evB" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/dark/corner, +/obj/effect/turf_decal/trimline/dark/corner{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark/corner, +/turf/open/floor/iron/dark/textured_edge{ + dir = 1 + }, +/area/station/security/prison/safe) +"evG" = ( +/obj/structure/flora/bush/sparsegrass, +/obj/effect/turf_decal/siding/thinplating/light, +/obj/machinery/door/window/left/directional/south{ + name = "Monkey Pen"; + req_access = list("virology") + }, +/turf/open/floor/grass, +/area/station/medical/virology/isolation) +"evJ" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/prison/visit) +"evQ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/blobstart, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) +"evS" = ( +/obj/structure/fence, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"evT" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/service/chapel) +"ewa" = ( +/turf/open/floor/wood, +/area/station/medical/patients_rooms) +"ewc" = ( +/obj/machinery/vending/autodrobe/all_access, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plating, +/area/station/maintenance/clown_chamber) +"ewh" = ( +/obj/structure/chair, +/turf/open/floor/iron/white/side{ + dir = 1 + }, +/area/station/medical/aslyum) +"ewk" = ( +/obj/structure/decorative/shelf/crates, +/obj/machinery/light/directional/south, +/turf/open/floor/iron, +/area/station/security/execution/transfer) +"ewr" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 6 + }, +/turf/open/floor/iron/white, +/area/station/security/medical) +"ews" = ( +/obj/effect/turf_decal/box, +/obj/structure/ore_box, +/turf/open/floor/iron/dark, +/area/station/cargo/miningoffice) +"ewv" = ( +/obj/machinery/light/directional/north, +/obj/structure/rack/shelf, +/turf/open/floor/iron/smooth_edge{ + dir = 1 + }, +/area/station/cargo/miningdock) +"ewx" = ( +/obj/effect/turf_decal/bot, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"ewA" = ( +/obj/structure/table/wood, +/obj/item/storage/crayons, +/obj/machinery/camera/directional/south{ + c_tag = "Art Studio"; + name = "library camera" + }, +/obj/item/paint_palette{ + pixel_y = 15 + }, +/obj/item/storage/crayons{ + pixel_y = -4 + }, +/obj/item/toy/crayon/spraycan{ + pixel_x = -4 + }, +/obj/item/toy/crayon/spraycan, +/turf/open/floor/iron/dark, +/area/station/service/library) +"ewB" = ( +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/item/radio/intercom/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"ewE" = ( +/obj/effect/turf_decal/bot, +/obj/effect/spawner/random/vending/colavend, +/turf/open/floor/iron/dark, +/area/station/common/arcade) +"ewF" = ( +/turf/closed/wall/rust, +/area/station/maintenance/solars/port/fore) +"ewH" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/light/directional/west, +/obj/structure/bodycontainer/crematorium{ + dir = 4; + id = "crematoriumSec" + }, +/turf/open/floor/iron/dark, +/area/station/security/prison) +"ewI" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/medical/cryo) +"ewO" = ( +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/delivery, +/turf/open/floor/iron/dark, +/area/station/engineering/main) +"ewR" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/delivery, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/escape) +"ewU" = ( +/obj/effect/turf_decal/stripes/red/line{ + dir = 9 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"ewZ" = ( +/obj/machinery/door/poddoor/preopen{ + id = "atmoslock"; + name = "Atmospherics Lockdown Blast Door" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"exc" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/chair/stool/bar/directional/west, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/command/captain_dining) +"exf" = ( +/obj/structure/table/glass, +/obj/item/reagent_containers/cup/bottle/multiver{ + pixel_x = 6 + }, +/obj/item/reagent_containers/cup/bottle/ethanol{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/reagent_containers/cup/bottle/epinephrine, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 10 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) +"exn" = ( +/turf/open/floor/carpet, +/area/station/service/theater) +"exp" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"exq" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron, +/area/station/commons/dorms) +"ext" = ( +/obj/structure/chair/office{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/security/checkpoint/medical) +"exv" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/service/abandoned_gambling_den) +"exy" = ( +/obj/structure/rack/shelf, +/obj/effect/turf_decal/bot, +/obj/item/storage/toolbox/electrical, +/turf/open/floor/iron/dark, +/area/station/maintenance/solars/port/fore) +"exA" = ( +/obj/structure/tank_dispenser, +/obj/effect/turf_decal/stripes/box, +/turf/open/floor/plating, +/area/station/command/secure_bunker) +"exC" = ( +/obj/machinery/duct, +/turf/open/floor/carpet/orange, +/area/station/commons/dorms/room1) +"exJ" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/security/checkpoint/customs/auxiliary) +"exN" = ( +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"exX" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/iron/white, +/area/station/service/barber) +"eya" = ( +/obj/machinery/disposal/bin, +/obj/machinery/status_display/ai/directional/south, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/security/interrogation) +"eyb" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"eyd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/moisture_trap, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"eye" = ( +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/maintenance/department/crew_quarters/bar) +"eyi" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Perma Office" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/security/brig, +/turf/open/floor/iron/dark, +/area/station/security/corrections_officer) +"eyk" = ( +/obj/structure/closet/firecloset, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"eym" = ( +/obj/structure/disposaloutlet{ + dir = 1; + name = "Cargo Deliveries" + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/conveyor{ + dir = 1; + id = "cargoload" + }, +/turf/open/floor/plating, +/area/station/cargo/storage) +"eyt" = ( +/obj/machinery/light/small/directional/south, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/maintenance/port/aft) +"eyD" = ( +/obj/machinery/button/door/directional/south{ + id = "evashutter"; + name = "E.V.A. Shutters"; + pixel_x = 6; + req_access = list("command") + }, +/obj/machinery/button/door/directional/south{ + id = "gatewayshutters"; + name = "Gateway Shutters"; + pixel_x = -6 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/command/bridge) +"eyF" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"eyJ" = ( +/obj/structure/nestbox, +/obj/effect/turf_decal/siding/thinplating/dark, +/turf/open/floor/grass, +/area/station/common/night_club) +"eyK" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/chapel) +"eyM" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/dorms) +"eyN" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"eyO" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible, +/obj/machinery/atmospherics/pipe/bridge_pipe/cyan/visible{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/pumproom) +"ezf" = ( +/obj/machinery/door/airlock/bathroom{ + name = "Restroom" + }, +/obj/machinery/duct, +/turf/open/floor/carpet/green, +/area/station/commons/dorms/room2) +"ezm" = ( +/obj/effect/turf_decal/siding/wood/corner, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/nt_rep) +"ezo" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 1 + }, +/turf/open/floor/grass, +/area/station/medical/patients_rooms) +"ezp" = ( +/obj/structure/flora/bush/fullgrass/style_random, +/obj/structure/flora/bush/grassy/style_2, +/turf/open/floor/grass, +/area/station/medical/patients_rooms) +"ezv" = ( +/obj/machinery/button/ignition/incinerator/atmos{ + pixel_x = 8; + pixel_y = -23 + }, +/obj/machinery/atmospherics/pipe/smart/manifold/dark/visible{ + dir = 4 + }, +/obj/machinery/meter, +/turf/open/floor/iron/smooth_corner{ + dir = 4 + }, +/area/station/maintenance/disposal/incinerator) +"ezw" = ( +/obj/structure/fans/tiny/forcefield{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/cargo/miningdock) +"ezC" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/maintenance/aux_eva) +"ezF" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/cable, +/obj/machinery/door/window/right/directional/north{ + name = "Robotics Deliveries"; + req_access = list("robotics") + }, +/turf/open/floor/mineral/plastitanium/red, +/area/station/science/robotics/lab) +"ezM" = ( +/obj/effect/turf_decal/stripes{ + dir = 10 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"ezN" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"ezQ" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/reagent_dispensers/watertank{ + pixel_y = -2 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron, +/area/station/security/prison/upper) +"ezW" = ( +/obj/structure/transit_tube/diagonal{ + dir = 4 + }, +/turf/open/floor/iron/shuttle/arrivals/airless, +/area/space/nearstation) +"eAa" = ( +/obj/machinery/door/firedoor/border_only, +/turf/open/floor/iron, +/area/station/commons/dorms) +"eAd" = ( +/obj/item/shard, +/turf/open/floor/plating, +/area/station/maintenance/abandon_exam/cat) +"eAf" = ( +/obj/machinery/door/airlock/engineering/glass{ + name = "Supermatter Engine Room" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/general, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/engineering/supermatter/room) +"eAj" = ( +/obj/item/kirbyplants/random, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/wood, +/area/station/security/detectives_office/private_investigators_office) +"eAl" = ( +/obj/structure/table/glass, +/obj/machinery/reagentgrinder{ + pixel_y = 6 + }, +/obj/effect/turf_decal/tile/purple/half{ + dir = 1 + }, +/turf/open/floor/iron/white/side{ + dir = 1 + }, +/area/station/science/cytology) +"eAm" = ( +/obj/structure/table/wood, +/obj/item/toner/large, +/obj/item/book/manual/wiki/security_space_law, +/turf/open/floor/wood, +/area/station/service/lawoffice) +"eAn" = ( +/obj/structure/cable, +/obj/effect/turf_decal/trimline/red/filled/warning{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/brig) +"eAs" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/table/reinforced, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/hfr_room) +"eAw" = ( +/turf/closed/wall/r_wall, +/area/station/security/prison/mess) +"eAz" = ( +/obj/machinery/duct, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/security/prison/workout) +"eAB" = ( +/obj/structure/sign/departments/holy, +/turf/closed/wall, +/area/station/service/chapel) +"eAJ" = ( +/obj/effect/turf_decal/tile/red/real_red/anticorner/contrasted{ + dir = 8 + }, +/obj/structure/railing, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hos) +"eAQ" = ( +/turf/closed/wall, +/area/station/science/robotics/lab) +"eAR" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/station/service/electronic_marketing_den) +"eAS" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 4 + }, +/obj/machinery/light/directional/east, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/science/research) +"eAU" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red/real_red/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/dark/side, +/area/station/common/laser_tag) +"eAV" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/duct, +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/night_club) +"eBa" = ( +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/iron/stairs/left{ + dir = 1 + }, +/area/station/commons/dorms) +"eBe" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/bar) +"eBf" = ( +/obj/effect/turf_decal/bot, +/obj/structure/filingcabinet/chestdrawer, +/turf/open/floor/iron/dark, +/area/station/cargo/office) +"eBm" = ( +/obj/effect/mapping_helpers/burnt_floor, +/obj/effect/spawner/random/structure/steam_vent, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"eBn" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) +"eBo" = ( +/obj/structure/window/spawner/directional/north, +/obj/machinery/suit_storage_unit/security, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/blueshield) +"eBp" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/red/filled/warning{ + color = "#DE3A3A" + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/side, +/area/station/security/brig) +"eBq" = ( +/obj/structure/table/wood, +/obj/item/paper_bin{ + pixel_x = 6; + pixel_y = 1 + }, +/obj/item/pen{ + pixel_x = 6; + pixel_y = 3 + }, +/obj/item/flashlight/lamp/green{ + pixel_x = -7; + pixel_y = 4 + }, +/obj/machinery/newscaster/directional/north, +/turf/open/floor/wood, +/area/station/medical/psychology) +"eBt" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/door/window/brigdoor/left/directional/east{ + name = "Medical Cell"; + req_access = list("security") + }, +/turf/open/floor/iron/white/side{ + dir = 4 + }, +/area/station/security/checkpoint/medical) +"eBw" = ( +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"eBx" = ( +/obj/structure/table, +/obj/machinery/door/poddoor/shutters{ + id = "visitation"; + name = "Visitation Shutters" + }, +/obj/machinery/door/window/right/directional/west, +/turf/open/floor/iron/dark, +/area/station/security/prison/visit) +"eBy" = ( +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/science/central) +"eBG" = ( +/obj/structure/closet/secure_closet/evidence, +/obj/machinery/camera/directional/west{ + c_tag = "Security - Evidence Storage" + }, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/security/interrogation) +"eBL" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/wood, +/area/station/command/meeting_room/council) +"eBP" = ( +/obj/machinery/conveyor_switch/oneway{ + id = "mining"; + dir = 1 + }, +/obj/structure/railing{ + pixel_y = -5 + }, +/obj/effect/turf_decal/stripes, +/turf/open/floor/iron/smooth, +/area/station/cargo/miningdock) +"eBW" = ( +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/structure/cable, +/obj/machinery/door/airlock/asylum{ + name = "Asylum Entrance" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/medical/psychology, +/obj/machinery/duct, +/turf/open/floor/iron/white/side{ + dir = 1 + }, +/area/station/medical/aslyum) +"eBZ" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/central) +"eCb" = ( +/turf/closed/wall, +/area/station/common/laser_tag) +"eCi" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ + dir = 8 + }, +/obj/machinery/meter, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/loading_area{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"eCk" = ( +/obj/effect/spawner/random/entertainment/cigar, +/turf/open/floor/plating, +/area/station/maintenance/central) +"eCp" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless, +/area/station/maintenance/port/upper) +"eCq" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark/side{ + dir = 6 + }, +/area/station/commons/fitness) +"eCv" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 10 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology/control) +"eCw" = ( +/obj/effect/turf_decal/siding/blue, +/obj/machinery/duct, +/turf/open/floor/iron/dark/textured_edge, +/area/station/security/prison/garden) +"eCy" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 5 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/structure/table/glass, +/obj/machinery/fax{ + fax_name = "Medical Lobby"; + name = "Medical Fax Machine"; + pixel_y = 3 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) +"eCK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/port) +"eCO" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light/directional/west, +/obj/machinery/porta_turret/ai{ + dir = 4; + installation = /obj/item/gun/energy/e_gun + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat/hallway) +"eCP" = ( +/obj/item/stack/ore/titanium, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"eCU" = ( +/obj/structure/table, +/obj/item/stack/sheet/iron/fifty, +/obj/item/stack/sheet/iron/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/construction/mining/aux_base) +"eCV" = ( +/obj/structure/window/spawner/directional/west, +/obj/effect/turf_decal/bot, +/obj/structure/closet/wardrobe/white, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/landmark/start/hangover/closet, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/commons/locker) +"eCZ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock/public/glass{ + name = "N-O2 Stop Shop" + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/common/gaskiosk) +"eDb" = ( +/obj/machinery/plumbing/ooze_sucker{ + mapping_id = "3"; + dir = 1 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"eDc" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/south, +/turf/open/floor/iron/dark/side, +/area/station/hallway/secondary/exit) +"eDi" = ( +/obj/effect/turf_decal/trimline/blue/filled/line, +/turf/open/floor/iron/white, +/area/station/medical/cryo) +"eDl" = ( +/obj/machinery/light/directional/west, +/obj/item/radio/intercom/directional/west, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/primary/port) +"eDm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/sheet/cardboard, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"eDn" = ( +/obj/machinery/recharge_station, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/red/corner{ + dir = 4 + }, +/obj/effect/landmark/start/cyborg, +/obj/structure/cable, +/turf/open/floor/mineral/plastitanium, +/area/station/science/robotics/mechbay) +"eDq" = ( +/obj/structure/grille, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"eDx" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/iron, +/area/station/security/execution/transfer) +"eDF" = ( +/turf/closed/wall, +/area/station/maintenance/abandon_psych) +"eDH" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"eDJ" = ( +/turf/closed/wall/rust, +/area/station/maintenance/department/eva) +"eDK" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/growing/tray, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 5 + }, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) +"eDQ" = ( +/obj/structure/chair/pew/right{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/security/courtroom) +"eDV" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/iron/smooth_edge{ + dir = 4 + }, +/area/station/command/secure_bunker) +"eDZ" = ( +/obj/effect/turf_decal/stripes/end{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/scrubber, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/explab) +"eEi" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"eEq" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron/stairs{ + dir = 2 + }, +/area/station/security/prison/safe) +"eEr" = ( +/obj/structure/table/reinforced, +/obj/item/storage/box/donkpockets{ + pixel_y = 6 + }, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/iron, +/area/station/science/breakroom) +"eEt" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine, +/area/station/engineering/supermatter) +"eEC" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/storage) +"eEF" = ( +/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ + dir = 8 + }, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/cargo/sorting) +"eEJ" = ( +/obj/machinery/camera/directional/west{ + c_tag = "Medbay - Psychology Office"; + name = "medbay camera"; + network = list("ss13","medbay") + }, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/medical/psychology) +"eEN" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 8 + }, +/obj/machinery/light/directional/west, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"eEO" = ( +/obj/machinery/light/directional/east, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/stone, +/area/station/common/wrestling/arena) +"eEX" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, +/turf/open/space/basic, +/area/space/nearstation) +"eEZ" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/flowers_br, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/grass, +/area/station/command/heads_quarters/hos) +"eFf" = ( +/obj/structure/noticeboard/directional/east, +/obj/effect/turf_decal/tile/bar/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/service/bar) +"eFi" = ( +/obj/structure/chair/sofa/bench/left{ + pixel_y = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/red/filled/line{ + color = "#DE3A3A"; + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/line, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/brig) +"eFj" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva) +"eFn" = ( +/turf/closed/wall, +/area/station/cargo/warehouse) +"eFp" = ( +/obj/machinery/computer/pod/old/mass_driver_controller/trash{ + pixel_x = -25; + pixel_y = 6; + range = 35 + }, +/obj/machinery/button/door{ + id = "Disposal Exit"; + name = "Disposal Vent Control"; + pixel_x = -26; + pixel_y = -7; + req_access = list("maint_tunnels") + }, +/obj/effect/spawner/random/trash/mess, +/turf/open/floor/plating, +/area/station/maintenance/disposal) +"eFq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/security/prison/upper) +"eFs" = ( +/obj/structure/window/spawner/directional/south, +/obj/effect/turf_decal/siding/wood/corner, +/obj/machinery/computer/security/telescreen/vault{ + dir = 4; + pixel_x = -26 + }, +/obj/machinery/computer/records/security{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hop) +"eFx" = ( +/obj/structure/water_source/puddle, +/obj/structure/flora/bush/large{ + pixel_y = 0 + }, +/turf/open/floor/grass, +/area/station/medical/virology/isolation) +"eFC" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/department/eva) +"eFF" = ( +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"eFI" = ( +/obj/structure/chair/plastic{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"eFT" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/secondary/command) +"eFU" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "chemistbot"; + name = "Chemistry Side Shutters" + }, +/turf/open/floor/plating, +/area/station/medical/pharmacy) +"eFZ" = ( +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/atmos_aux_port) +"eGd" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/n2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/simple/violet/visible/layer2{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/box, +/turf/open/floor/plating/airless, +/area/station/engineering/atmos/upper) +"eGh" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/eva) +"eGk" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + name = "Atmospherics External Airlock"; + space_dir = 4 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/turf/open/floor/plating, +/area/station/engineering/atmos) +"eGr" = ( +/obj/machinery/computer/mech_bay_power_console{ + dir = 1 + }, +/obj/effect/turf_decal/tile/dark_blue/half/contrasted, +/turf/open/floor/iron/dark, +/area/station/security/mechbay) +"eGv" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"eGw" = ( +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"eGB" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/red/corner, +/turf/open/floor/iron/dark/side{ + dir = 9 + }, +/area/station/security/lockers) +"eGG" = ( +/obj/structure/cable, +/obj/effect/landmark/event_spawn, +/mob/living/basic/bot/cleanbot{ + name = "Soapficcer Cleansky" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"eGI" = ( +/obj/effect/turf_decal/bot, +/obj/structure/plasticflaps/opaque{ + name = "Service Deliveries" + }, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=4"; + location = "Service" + }, +/turf/open/floor/iron/dark, +/area/station/maintenance/department/crew_quarters/bar) +"eGM" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"eGO" = ( +/obj/structure/table, +/obj/item/circuitboard/machine/thermomachine, +/turf/open/floor/iron, +/area/station/engineering/atmos/test_chambers) +"eGR" = ( +/obj/structure/chair/comfy/brown{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/green, +/area/station/service/abandoned_gambling_den) +"eGS" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/cmo) +"eGW" = ( +/obj/effect/turf_decal/bot, +/obj/structure/rack/shelf, +/obj/effect/spawner/random/maintenance/two, +/turf/open/floor/iron/dark, +/area/station/cargo/warehouse) +"eGY" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_y = 3 + }, +/obj/item/pen{ + pixel_y = 3 + }, +/turf/open/floor/iron, +/area/station/maintenance/solars/starboard/fore) +"eGZ" = ( +/obj/machinery/vending/wallmed/directional/west, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/command/gateway) +"eHc" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/barricade/wooden, +/turf/open/floor/plating, +/area/station/maintenance/abandon_diner) +"eHi" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"eHr" = ( +/obj/machinery/suit_storage_unit/captain, +/obj/effect/turf_decal/stripes{ + dir = 10 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/captain/private) +"eHw" = ( +/obj/machinery/telecomms/hub/preset, +/turf/open/floor/circuit/telecomms/mainframe, +/area/station/tcommsat/server) +"eHx" = ( +/obj/structure/chair, +/obj/machinery/airalarm/directional/north, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron, +/area/station/service/chapel) +"eHz" = ( +/obj/machinery/camera/directional/north{ + c_tag = "Science - Telescience Test Chamber"; + name = "science camera"; + network = list("ss13","rd") + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine, +/area/station/science/tele_sci) +"eHA" = ( +/obj/effect/spawner/random/structure/crate, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"eHB" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/door/airlock/grunge{ + name = "Chapel Office" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/service/chapel_office, +/turf/open/floor/iron/dark, +/area/station/service/chapel/office) +"eHC" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"eHN" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/commons/dorms) +"eHO" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/hallway/primary/central/fore) +"eHX" = ( +/obj/effect/turf_decal/stripes, +/obj/effect/turf_decal/stripes/white/line, +/obj/structure/window/spawner/directional/south, +/turf/open/floor/iron/dark, +/area/station/service/kitchen) +"eId" = ( +/obj/effect/spawner/random/vending/snackvend, +/obj/effect/turf_decal/siding/thinplating_new, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/entry) +"eIk" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"eIm" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/station/maintenance/central) +"eIs" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/apc/auto_name/directional/south, +/turf/open/floor/iron/smooth, +/area/station/cargo/power_station/upper) +"eIA" = ( +/obj/structure/chair/wood{ + dir = 1 + }, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"eIC" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/iron/dark, +/area/station/science/research) +"eIM" = ( +/obj/item/clothing/glasses/hud/security/sunglasses/gars, +/obj/item/clothing/glasses/hud/security, +/obj/item/clothing/glasses/hud/security, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/machinery/light/directional/north, +/obj/structure/rack, +/turf/open/floor/iron/dark/herringbone, +/area/station/security/brig) +"eIR" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating{ + dir = 4 + }, +/obj/structure/flora/bush/stalky, +/obj/structure/flora/bush/sunny, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"eIS" = ( +/obj/structure/chair/office{ + dir = 8 + }, +/obj/effect/landmark/start/atmospheric_technician, +/turf/open/floor/iron, +/area/station/engineering/atmos/office) +"eIT" = ( +/obj/structure/bed/maint, +/obj/effect/spawner/random/trash/garbage, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"eIU" = ( +/turf/open/floor/glass/reinforced, +/area/station/security/prison/upper) +"eIV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/vg_decals/numbers/one, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"eIY" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen" + }, +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"eJa" = ( +/obj/machinery/conveyor/inverted{ + dir = 5; + id = "cargounload" + }, +/turf/open/floor/plating, +/area/station/cargo/storage) +"eJf" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder{ + pixel_x = -6; + pixel_y = 10 + }, +/obj/item/knife{ + pixel_x = 6; + pixel_y = 7 + }, +/obj/item/kitchen/rollingpin, +/obj/machinery/light/directional/south, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/machinery/duct, +/turf/open/floor/iron/cafeteria, +/area/station/command/heads_quarters/nt_rep) +"eJh" = ( +/obj/structure/flora/bush/jungle, +/obj/structure/window/spawner/directional/south, +/obj/structure/window/spawner/directional/north, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Examshutters"; + name = "Exam Room Shutters" + }, +/turf/open/floor/grass, +/area/station/medical/exam_room) +"eJt" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/eighties/red, +/area/station/common/arcade) +"eJw" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/science/robotics) +"eJy" = ( +/obj/structure/chair/office{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/console_room) +"eJz" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/junction/yjunction{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/cargo/storage) +"eJF" = ( +/obj/item/radio/intercom/directional/south, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/iron/dark, +/area/station/service/library/lounge) +"eJQ" = ( +/obj/structure/chair/comfy{ + color = "#596479"; + dir = 8 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/carpet/green, +/area/station/command/heads_quarters/nt_rep) +"eJV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/head/utility/hardhat, +/obj/item/clothing/head/utility/hardhat, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"eJW" = ( +/obj/structure/table, +/obj/effect/turf_decal/stripes{ + dir = 5 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 10 + }, +/obj/item/soap, +/turf/open/floor/iron/dark, +/area/station/science/genetics) +"eJY" = ( +/obj/machinery/door/airlock{ + name = "Petting Zoo Door" + }, +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/service/hydroponics, +/turf/open/floor/iron/dark, +/area/station/common/night_club) +"eKa" = ( +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"eKd" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/docking_port/stationary{ + dir = 4; + dwidth = 5; + height = 7; + name = "Cargo Bay"; + shuttle_id = "cargo_home"; + width = 12 + }, +/turf/open/floor/plating, +/area/station/cargo/storage) +"eKe" = ( +/obj/effect/turf_decal/bot, +/obj/item/kirbyplants/random, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/effect/turf_decal/tile/purple/half, +/turf/open/floor/iron/white/side, +/area/station/science/xenobiology/control) +"eKf" = ( +/obj/machinery/space_heater, +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"eKn" = ( +/turf/closed/wall/r_wall, +/area/station/cargo/miningdock) +"eKo" = ( +/obj/structure/table, +/obj/structure/railing{ + dir = 10 + }, +/obj/item/clothing/gloves/color/fyellow/old, +/turf/open/floor/iron, +/area/station/maintenance/solars/starboard/fore) +"eKp" = ( +/obj/structure/closet{ + name = "Waiter Outfits" + }, +/obj/effect/spawner/costume/maid, +/obj/effect/spawner/costume/butler, +/obj/effect/spawner/costume/waiter, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/checker, +/area/station/hallway/secondary/service) +"eKq" = ( +/obj/structure/ladder, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"eKs" = ( +/turf/open/floor/iron/white/smooth_half, +/area/station/science/explab) +"eKt" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/iron/dark/small, +/area/station/security/prison/upper) +"eKx" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 6 + }, +/turf/open/floor/iron/white, +/area/station/science/research) +"eKB" = ( +/obj/structure/chair/stool/directional/east, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"eKF" = ( +/obj/structure/chair/office, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"eKU" = ( +/turf/closed/wall/r_wall, +/area/station/security/prison/visit) +"eKZ" = ( +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/item/storage/backpack/satchel/eng, +/obj/item/wirecutters, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"eLa" = ( +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, +/turf/open/floor/iron/smooth_edge{ + dir = 8 + }, +/area/station/maintenance/disposal/incinerator) +"eLc" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/public/glass{ + name = "West RnD Wing" + }, +/turf/open/floor/iron, +/area/station/science/research) +"eLf" = ( +/obj/structure/toilet{ + dir = 4 + }, +/obj/structure/sink/directional/west, +/obj/structure/mirror/directional/east, +/turf/open/floor/iron/freezer, +/area/station/medical/virology/isolation) +"eLg" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"eLl" = ( +/obj/structure/mirror{ + pixel_y = 32 + }, +/obj/structure/toilet{ + pixel_y = 16 + }, +/obj/structure/sink/directional/west, +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron/freezer, +/area/station/command/heads_quarters/blueshield) +"eLv" = ( +/obj/machinery/computer/mech_bay_power_console{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/circuit, +/area/station/science/research/abandoned) +"eLw" = ( +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, +/obj/machinery/camera/directional/west, +/turf/open/floor/iron/smooth_edge{ + dir = 8 + }, +/area/station/maintenance/disposal/incinerator) +"eLB" = ( +/obj/machinery/light/directional/east, +/turf/open/openspace, +/area/station/hallway/primary/upper) +"eLC" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/wood, +/area/station/hallway/primary/central) +"eLD" = ( +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 1 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/prison/workout) +"eLF" = ( +/obj/structure/table, +/obj/item/book/manual/wiki/security_space_law{ + pixel_y = 5 + }, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"eLK" = ( +/turf/open/floor/iron/stairs/right{ + dir = 8 + }, +/area/station/security/prison/upper) +"eLU" = ( +/turf/closed/wall/r_wall, +/area/station/security/checkpoint/science/research) +"eLW" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/firealarm/directional/west, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/public/glass{ + name = "Central Upper Hallway" + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"eMc" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 6 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"eMh" = ( +/obj/machinery/power/shuttle_engine/huge, +/turf/open/space/openspace, +/area/space) +"eMi" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/wood, +/area/station/service/electronic_marketing_den) +"eMq" = ( +/obj/item/stack/sheet/cardboard, +/obj/item/storage/box/beakers, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"eMw" = ( +/obj/structure/table/wood, +/obj/structure/cable, +/obj/item/folder{ + pixel_x = 2; + pixel_y = 4 + }, +/obj/item/folder{ + pixel_x = 2; + pixel_y = 4 + }, +/obj/item/folder/yellow{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/folder/yellow{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/folder/red{ + pixel_x = 1; + pixel_y = 2 + }, +/obj/item/folder/red{ + pixel_x = 1; + pixel_y = 2 + }, +/obj/item/folder/white{ + pixel_x = -4; + pixel_y = 1 + }, +/obj/item/folder/white{ + pixel_x = -4; + pixel_y = 1 + }, +/obj/item/folder/blue, +/obj/item/folder/blue, +/obj/item/paper/fluff/ids_for_dummies, +/obj/item/hand_labeler_refill{ + pixel_x = 6; + pixel_y = 19 + }, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/hop) +"eMA" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/vending/games, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/commons/fitness/recreation) +"eMC" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/chair/comfy/black{ + dir = 8 + }, +/turf/open/floor/carpet/blue, +/area/station/command/captain_dining) +"eMG" = ( +/obj/machinery/light/directional/west, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/carpet/purple, +/area/station/command/heads_quarters/rd) +"eMI" = ( +/obj/effect/spawner/random/trash/botanical_waste, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"eMK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/side{ + dir = 5 + }, +/area/station/security/prison) +"eMM" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Art Storage" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/commons/storage/art) +"eMP" = ( +/obj/effect/turf_decal/siding/wood/end, +/obj/item/clothing/suit/apron/chef, +/obj/item/clothing/shoes/sandal, +/obj/item/clothing/under/shorts/nova, +/turf/open/floor/wood, +/area/station/hallway/primary/central) +"eMR" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"eMT" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/science/explab) +"eNd" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/carpet, +/area/station/service/lawoffice) +"eNi" = ( +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/item/clothing/gloves/color/black, +/obj/item/wrench, +/obj/item/clothing/glasses/meson/engine, +/turf/open/floor/iron/dark, +/area/station/engineering/main) +"eNn" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/light/floor/has_bulb, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/mob/living/basic/pet/bumbles, +/obj/structure/bed/dogbed, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"eNq" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/effect/turf_decal/tile/purple/opposingcorners{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/service/barber) +"eNx" = ( +/obj/effect/turf_decal/vg_decals/atmos/plasma, +/turf/open/floor/engine/plasma, +/area/station/engineering/atmos) +"eNy" = ( +/obj/structure/chair/office{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/solars/starboard/aft) +"eNE" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Robotics Lab Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/robotics, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/dorms) +"eNG" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/security/checkpoint/customs) +"eNU" = ( +/obj/structure/chair/sofa/right/brown{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/wood/parquet, +/area/station/service/theater) +"eNV" = ( +/obj/structure/table, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/item/ai_module/core/freeformcore{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/ai_module/core/full/custom, +/obj/item/ai_module/core/full/asimov{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron, +/area/station/ai_monitored/turret_protected/ai_upload) +"eNX" = ( +/obj/structure/flora/bush/fullgrass, +/obj/item/stack/sheet/mineral/sandstone/thirty, +/obj/machinery/composters, +/turf/open/floor/grass, +/area/station/security/prison/garden) +"eNZ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/science/tele_sci) +"eOa" = ( +/obj/structure/sink/directional/west, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/science/research) +"eOd" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/item/clothing/gloves/color/fyellow, +/obj/item/storage/toolbox/electrical{ + pixel_y = 6 + }, +/turf/open/floor/iron/dark, +/area/station/commons/storage/primary) +"eOe" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/power/emitter, +/obj/effect/turf_decal/stripes{ + dir = 10 + }, +/turf/open/floor/iron/dark/side{ + dir = 10 + }, +/area/station/engineering/storage) +"eOg" = ( +/obj/structure/closet/crate/bin, +/turf/open/floor/wood, +/area/station/commons/dorms/room4) +"eOk" = ( +/obj/structure/table/reinforced/rglass, +/obj/item/storage/box/syringes{ + pixel_y = 9 + }, +/obj/item/reagent_containers/cup/bottle/epinephrine, +/obj/item/reagent_containers/cup/bottle/multiver{ + pixel_x = 6 + }, +/obj/item/reagent_containers/syringe, +/obj/structure/window/spawner/directional/west, +/obj/effect/turf_decal/tile/blue/fourcorners, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) +"eOn" = ( +/obj/structure/fireplace, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/iron/dark, +/area/station/commons/dorms/room6) +"eOv" = ( +/turf/open/floor/grass, +/area/station/service/chapel) +"eOw" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 8 + }, +/turf/open/floor/iron/smooth_edge{ + dir = 1 + }, +/area/station/command/secure_bunker) +"eOB" = ( +/obj/structure/railing, +/turf/open/floor/iron/stairs/old{ + dir = 8; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/station/tcommsat/server) +"eOH" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"eOP" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/item/clothing/gloves/color/yellow, +/turf/open/floor/iron/dark, +/area/station/engineering/transit_tube) +"eOQ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/stairs/medium, +/area/station/science/research) +"eOS" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/red/filled/line{ + color = "#DE3A3A" + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark, +/turf/open/floor/iron/dark/side, +/area/station/security/brig) +"eOU" = ( +/obj/effect/landmark/start/botanist, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"eOX" = ( +/obj/structure/closet/secure_closet/personal, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/carpet, +/area/station/command/gateway) +"eOY" = ( +/obj/item/reagent_containers/cup/bucket/wooden{ + name = "waste bucket" + }, +/obj/structure/sink/directional/east{ + reclaim_rate = 5 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/vault/rock, +/area/station/security/prison/safe) +"ePa" = ( +/obj/machinery/light/broken/directional/east, +/obj/structure/chair/wood{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/service/abandoned_gambling_den) +"ePc" = ( +/obj/structure/drain, +/obj/machinery/shower/directional/north, +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden, +/obj/effect/turf_decal/box, +/turf/open/floor/iron/checker, +/area/station/engineering/atmos/hfr_room) +"ePj" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"ePk" = ( +/obj/structure/chair/office{ + dir = 4 + }, +/obj/effect/landmark/start/lawyer, +/turf/open/floor/carpet/blue, +/area/station/service/lawoffice) +"ePn" = ( +/obj/structure/bed/double{ + dir = 1 + }, +/obj/item/bedsheet/orange/double{ + dir = 1 + }, +/obj/machinery/light_switch/directional/west, +/turf/open/floor/carpet/orange, +/area/station/commons/dorms/room1) +"ePt" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/bar) +"ePv" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/table/wood, +/obj/item/kirbyplants/organic/plant17{ + pixel_y = 26 + }, +/obj/item/newspaper{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/reagent_containers/condiment/peppermill{ + pixel_x = 3 + }, +/obj/item/reagent_containers/condiment/saltshaker{ + pixel_x = -3 + }, +/turf/open/floor/carpet/green, +/area/station/command/heads_quarters/nt_rep) +"ePx" = ( +/obj/effect/spawner/structure/window/reinforced/tinted, +/turf/open/floor/plating, +/area/station/security/prison/shower) +"ePz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"ePG" = ( +/obj/effect/turf_decal/box/white, +/obj/effect/turf_decal/arrows/blue{ + pixel_y = 13 + }, +/turf/open/floor/engine, +/area/station/engineering/atmos/hfr_room) +"ePN" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/security/prison) +"ePO" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plating/reinforced{ + initial_gas_mix = "TEMP=2.7" + }, +/area/station/science/ordnance/bomb) +"ePP" = ( +/obj/structure/closet, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"ePU" = ( +/obj/structure/table/reinforced, +/obj/machinery/recharger{ + pixel_y = 3 + }, +/turf/open/floor/iron/smooth, +/area/station/command/secure_bunker) +"ePX" = ( +/obj/effect/turf_decal/trimline/purple/filled/corner, +/turf/open/floor/iron/white, +/area/station/science/lab) +"ePY" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/machinery/duct, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/nt_rep) +"eQa" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/obj/effect/turf_decal/caution/stand_clear/blue{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"eQb" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/dark/visible{ + dir = 1 + }, +/turf/open/floor/iron/freezer, +/area/station/science/xenobiology) +"eQc" = ( +/obj/structure/decorative/shelf, +/turf/open/floor/iron/smooth_edge{ + dir = 1 + }, +/area/station/cargo/miningdock) +"eQf" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"eQj" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/effect/spawner/random/trash/food_packaging, +/turf/open/floor/plating/reinforced{ + initial_gas_mix = "TEMP=2.7" + }, +/area/station/science/ordnance/bomb) +"eQp" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) +"eQu" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/security/brig) +"eQE" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/bed{ + pixel_y = 8 + }, +/obj/item/bedsheet{ + pixel_y = 8 + }, +/obj/machinery/status_display/evac/directional/east, +/obj/machinery/camera/autoname/directional/east, +/turf/open/floor/iron/dark, +/area/station/security/brig) +"eQF" = ( +/obj/machinery/airalarm/directional/east, +/obj/effect/landmark/blobstart, +/turf/open/floor/iron/white, +/area/station/medical/coldroom) +"eQK" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/science/ordnance/testlab) +"eQQ" = ( +/obj/machinery/light/directional/east, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"eQR" = ( +/obj/structure/table/glass, +/obj/item/paper_bin{ + pixel_y = 3 + }, +/obj/item/pen{ + pixel_y = 3 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/medical/virology/isolation) +"eQT" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/station/maintenance/department/security/lower) +"eQZ" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/wood, +/area/station/service/library) +"eRd" = ( +/obj/machinery/light/small/directional/east, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"eRe" = ( +/turf/open/floor/wood, +/area/station/service/hydroponics/garden) +"eRh" = ( +/obj/structure/lattice, +/turf/open/openspace, +/area/station/hallway/primary/upper) +"eRk" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hos) +"eRm" = ( +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/station/command/meeting_room/council) +"eRo" = ( +/obj/vehicle/ridden/wheelchair, +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/exit/departure_lounge) +"eRp" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"eRv" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/item/storage/box/beakers{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/box/syringes, +/turf/open/floor/iron, +/area/station/science/xenobiology) +"eRy" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/public/glass{ + name = "Central Hallway" + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"eRC" = ( +/obj/effect/turf_decal/bot, +/obj/structure/tank_dispenser, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva/upper) +"eRE" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/hallway/secondary/service) +"eRN" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/command/gateway) +"eRP" = ( +/obj/item/kirbyplants/random, +/obj/machinery/status_display/evac/directional/west, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain/private) +"eRY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/trash/raisins, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"eRZ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/machinery/duct, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hos) +"eSa" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/medical/virology) +"eSe" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/trash/energybar, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"eSi" = ( +/obj/effect/turf_decal/stripes/blue/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/brig) +"eSk" = ( +/obj/machinery/conveyor{ + id = "robo2" + }, +/turf/open/floor/mineral/plastitanium, +/area/station/science/robotics/lab) +"eSo" = ( +/turf/closed/wall/rust, +/area/station/maintenance/department/science/ordnance_maint) +"eSt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"eSx" = ( +/obj/machinery/light/small/broken/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) +"eSE" = ( +/obj/machinery/newscaster/directional/east, +/turf/open/floor/iron/dark/corner, +/area/station/hallway/primary/central) +"eSN" = ( +/turf/closed/wall, +/area/station/service/bar/backroom) +"eSO" = ( +/obj/structure/rack/shelf, +/obj/item/tank/internals/plasmaman/full, +/obj/item/tank/internals/plasmaman/full{ + pixel_x = 3 + }, +/obj/machinery/light/directional/west, +/turf/open/floor/wood/parquet, +/area/station/common/gaskiosk) +"eSR" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/obj/machinery/status_display/evac/directional/east, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"eSU" = ( +/obj/item/crowbar, +/turf/open/floor/engine, +/area/station/engineering/supermatter) +"eSY" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"eSZ" = ( +/obj/structure/dresser, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/ce) +"eTc" = ( +/turf/open/floor/plating, +/area/station/maintenance/xenobio_disposals) +"eTe" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/rack/gunrack, +/obj/machinery/airalarm/directional/south, +/obj/effect/spawner/armory_spawn/mod_lasers_small, +/obj/effect/turf_decal/trimline/red/line{ + dir = 9 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark, +/turf/open/floor/iron/dark/textured_corner, +/area/station/ai_monitored/security/armory) +"eTk" = ( +/obj/machinery/dna_scannernew, +/obj/structure/window/spawner/directional/west{ + pixel_x = -3 + }, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/science/genetics) +"eTl" = ( +/turf/closed/wall/r_wall, +/area/station/security/checkpoint/engineering) +"eTy" = ( +/obj/structure/window/spawner/directional/south, +/obj/structure/flora/bush/leafy, +/obj/structure/flora/bush/flowers_yw/style_random, +/turf/open/floor/grass, +/area/station/hallway/secondary/service) +"eTz" = ( +/obj/structure/window/spawner/directional/west, +/obj/structure/closet, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/head/utility/hardhat, +/obj/item/clothing/head/utility/hardhat, +/obj/effect/spawner/random/engineering/tool, +/turf/open/floor/plating, +/area/station/maintenance/central) +"eTA" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"eTG" = ( +/obj/item/radio/intercom/directional/south, +/turf/open/floor/carpet/executive, +/area/station/command/heads_quarters/blueshield) +"eTH" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron, +/area/station/security/execution/transfer) +"eTI" = ( +/obj/structure/table, +/obj/item/flashlight/lamp, +/obj/machinery/camera/directional/east{ + c_tag = "Interrogation room"; + network = list("interrogation") + }, +/obj/machinery/light/directional/east, +/turf/open/floor/iron/dark, +/area/station/security/interrogation) +"eTL" = ( +/obj/effect/turf_decal/vg_decals/numbers/two, +/obj/effect/landmark/event_spawn, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"eTS" = ( +/obj/effect/turf_decal/bot_white, +/obj/machinery/door/poddoor/shutters/window/preopen{ + id = "ArrivalsEntry3"; + name = "Line Reroute Shutter" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/arrows/white{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/entry) +"eTU" = ( +/obj/structure/ladder, +/turf/open/floor/plating, +/area/station/engineering/main) +"eTY" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/red, +/turf/open/floor/iron/dark/small, +/area/station/security/brig) +"eUa" = ( +/obj/structure/rack, +/obj/effect/spawner/random/armory/disablers, +/obj/effect/turf_decal/trimline/red/line, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_edge{ + dir = 1 + }, +/area/station/ai_monitored/security/armory) +"eUb" = ( +/obj/effect/turf_decal/bot, +/obj/structure/reagent_dispensers/watertank{ + pixel_y = -1 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/central) +"eUc" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/crate, +/obj/effect/spawner/random/medical/memeorgans, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"eUf" = ( +/obj/structure/cable, +/obj/machinery/light/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 5 + }, +/area/station/hallway/primary/port) +"eUh" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/vending/donksofttoyvendor, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/commons/fitness/recreation) +"eUo" = ( +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/effect/turf_decal/trimline/blue/corner{ + dir = 1 + }, +/obj/machinery/vending/wallmed/directional/south, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"eUp" = ( +/obj/structure/grille, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"eUq" = ( +/obj/structure/trash_pile, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"eUt" = ( +/obj/effect/turf_decal/stripes, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"eUx" = ( +/obj/structure/stairs/north, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"eUy" = ( +/turf/closed/wall/rust, +/area/station/cargo/miningdock) +"eUG" = ( +/obj/effect/turf_decal/siding/blue/corner{ + dir = 4 + }, +/obj/effect/turf_decal/siding/blue/corner{ + dir = 1 + }, +/obj/machinery/door/airlock/command/glass{ + name = "Server Access" + }, +/obj/machinery/atmospherics/pipe/smart/simple/general/visible{ + dir = 5 + }, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/science/rd, +/turf/open/floor/iron/dark, +/area/station/science/server) +"eUH" = ( +/obj/effect/spawner/liquids_spawner{ + reagent_list = list(/datum/reagent/water=600) + }, +/obj/structure/flora/ocean/glowweed, +/turf/open/misc/asteroid, +/area/station/hallway/primary/upper) +"eUL" = ( +/obj/structure/chair/pew/left{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/service/barber/spa) +"eUN" = ( +/obj/structure/chair/office, +/turf/open/floor/iron/dark/smooth_large, +/area/station/maintenance/xenobio_disposals) +"eUV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/science/xenobiology) +"eVc" = ( +/obj/structure/table/wood, +/obj/item/folder/blue{ + pixel_y = 4 + }, +/obj/item/folder/blue{ + pixel_y = 2 + }, +/obj/item/folder/blue, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/command/meeting_room/council) +"eVe" = ( +/obj/machinery/door/poddoor/shutters{ + id = "aux_base_shutters"; + name = "Auxillary Base Shutters" + }, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/delivery, +/turf/open/floor/iron, +/area/station/construction/mining/aux_base) +"eVf" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/hallway/primary/port) +"eVg" = ( +/turf/closed/wall, +/area/station/maintenance/department/crew_quarters/dorms) +"eVk" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/engineering/gravity_generator) +"eVv" = ( +/turf/closed/wall/r_wall, +/area/station/maintenance/department/engineering/engine_aft_port) +"eVy" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/structure/window/reinforced/tinted/spawner/directional/west, +/obj/structure/extinguisher_cabinet/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat_interior) +"eVK" = ( +/obj/structure/table, +/obj/item/folder/blue{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/stamp, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"eVS" = ( +/obj/structure/rack/shelf, +/obj/effect/turf_decal/bot, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/cable_coil, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/maintenance/solars/starboard/fore) +"eVV" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) +"eWf" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"eWi" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/dark/corner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/dark/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark/corner{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured_edge{ + dir = 4 + }, +/area/station/security/prison/safe) +"eWl" = ( +/turf/closed/wall, +/area/station/maintenance/disposal) +"eWt" = ( +/turf/closed/wall/r_wall, +/area/station/maintenance/department/engineering/engine_aft_starboard) +"eWy" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/security/prison) +"eWz" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/chair/sofa/bench/left{ + dir = 8; + pixel_x = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/common/wrestling/arena) +"eWA" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/command) +"eWC" = ( +/obj/structure/table/reinforced, +/obj/machinery/microwave{ + pixel_y = 8 + }, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/command/gateway) +"eWD" = ( +/obj/structure/closet/secure_closet/freezer/fridge/all_access, +/obj/effect/turf_decal/bot, +/obj/item/food/fries, +/obj/item/food/fries, +/obj/item/food/fries, +/obj/item/food/fries, +/obj/item/food/fries, +/obj/item/food/fries, +/obj/item/food/nugget, +/obj/item/food/nugget, +/obj/item/food/nugget, +/obj/item/food/nugget, +/obj/item/food/nugget, +/obj/item/food/nugget, +/obj/item/food/fried_chicken, +/obj/item/food/fried_chicken, +/obj/item/food/fried_chicken, +/turf/open/floor/iron/cafeteria, +/area/station/common/wrestling/concessions) +"eWG" = ( +/obj/structure/table/reinforced, +/obj/machinery/light/directional/south, +/obj/machinery/camera/directional/south{ + c_tag = "Command - Blueshield's Gear Room"; + name = "command camera" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/structure/sign/poster/official/carwo_magazine/directional/south, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/blueshield) +"eWJ" = ( +/obj/structure/table, +/obj/item/plate, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen/diner) +"eWN" = ( +/obj/effect/spawner/random/trash/mess, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/eva) +"eWR" = ( +/obj/effect/turf_decal/stripes{ + dir = 6 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Mix to Distro" + }, +/turf/open/floor/iron/smooth, +/area/station/engineering/atmos/pumproom) +"eWU" = ( +/obj/structure/bookcase/random, +/turf/open/floor/wood, +/area/station/service/library/abandoned) +"eXf" = ( +/obj/machinery/power/solar_control{ + id = "forestarboard"; + name = "Starboard Bow Solar Control" + }, +/obj/effect/turf_decal/bot, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/maintenance/solars/starboard/fore) +"eXj" = ( +/obj/machinery/light/directional/north, +/obj/effect/landmark/event_spawn, +/turf/open/floor/grass, +/area/station/service/hydroponics/garden/abandoned) +"eXk" = ( +/obj/machinery/power/solar{ + id = "forestarboard"; + name = "Fore-Starboard Solar Array" + }, +/obj/structure/cable, +/turf/open/floor/iron/solarpanel/airless, +/area/station/solars/starboard/fore) +"eXl" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 1 + }, +/obj/machinery/modular_computer/preset/cargochat/engineering{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/break_room) +"eXo" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/security/prison/upper) +"eXv" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/commons/dorms) +"eXx" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/service/library/lounge) +"eXy" = ( +/obj/effect/spawner/random/trash/garbage, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"eXC" = ( +/obj/structure/window/spawner/directional/north, +/obj/item/reagent_containers/cup/bucket/wooden, +/obj/structure/flora/bush, +/turf/open/floor/grass, +/area/station/service/chapel) +"eXH" = ( +/obj/effect/turf_decal/trimline/blue/line, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/prison/workout) +"eXN" = ( +/obj/structure/table/reinforced, +/obj/item/paper_bin, +/obj/item/pen, +/obj/structure/reagent_dispensers/wall/peppertank/directional/west, +/obj/machinery/light/directional/west, +/obj/effect/turf_decal/siding/thinplating_new/dark/corner, +/obj/effect/turf_decal/trimline/red/corner, +/turf/open/floor/iron/dark/smooth_corner, +/area/station/security/brig) +"eYl" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/service/barber) +"eYp" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"eYs" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/side, +/area/station/ai_monitored/command/storage/eva) +"eYw" = ( +/obj/machinery/door/airlock/research/glass{ + name = "Xenobiology Kill Room" + }, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, +/turf/open/floor/iron/freezer, +/area/station/science/xenobiology) +"eYC" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"eYE" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"eYP" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/machinery/atmospherics/components/binary/pump{ + name = "Mix to Port" + }, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/south, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/pumproom) +"eYV" = ( +/turf/closed/wall, +/area/station/maintenance/library/lower) +"eYX" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/wood, +/area/station/maintenance/abandon_art_studio) +"eZi" = ( +/obj/effect/turf_decal/tile/dark_blue/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"eZj" = ( +/obj/effect/turf_decal/box/white{ + color = "#9FED58" + }, +/turf/open/floor/engine, +/area/station/engineering/atmos/hfr_room) +"eZn" = ( +/obj/structure/table/wood, +/turf/open/floor/iron, +/area/station/security/prison/mess) +"eZo" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/rack/shelf, +/obj/item/storage/box/bodybags{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/box/bodybags, +/obj/item/pushbroom, +/obj/machinery/firealarm/directional/west{ + pixel_x = -28; + pixel_y = 24 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) +"eZv" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"eZz" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/ai_monitored/command/storage/eva) +"eZB" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron, +/area/station/commons/storage/primary) +"eZE" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/landmark/start/paramedic, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/break_room) +"eZF" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"eZG" = ( +/obj/machinery/door/airlock/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"eZH" = ( +/obj/effect/spawner/random/trash/mess, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"eZI" = ( +/obj/machinery/button/door/incinerator_vent_atmos_aux{ + pixel_x = -8; + pixel_y = -24 + }, +/obj/machinery/button/door/incinerator_vent_atmos_main{ + pixel_x = -8; + pixel_y = -36 + }, +/obj/machinery/light/small/directional/east, +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, +/turf/open/floor/iron/smooth_corner{ + dir = 1 + }, +/area/station/maintenance/disposal/incinerator) +"eZL" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/access/all/command/general, +/turf/open/floor/plating, +/area/station/security/checkpoint/customs) +"eZR" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/structure/chair/sofa/bench{ + dir = 4; + pixel_x = -5 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/common/wrestling/arena) +"eZU" = ( +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/engineering/supermatter/room) +"eZV" = ( +/obj/structure/table/glass, +/obj/item/clipboard, +/obj/item/electronics/airlock, +/obj/item/assembly/signaler, +/obj/structure/window/spawner/directional/south, +/obj/effect/turf_decal/tile/purple/half{ + dir = 4 + }, +/obj/machinery/airalarm/directional/west, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white/side{ + dir = 4 + }, +/area/station/science) +"eZZ" = ( +/obj/machinery/door/airlock/research{ + name = "Research Division Access" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/unres, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "rnd-enterance" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/navigate_destination, +/obj/effect/mapping_helpers/airlock/access/all/science/general, +/turf/open/floor/iron, +/area/station/science/research) +"faf" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) +"fag" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/security/detectives_office) +"fah" = ( +/obj/item/stack/sheet/glass{ + amount = 12 + }, +/obj/machinery/light/small/directional/east, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/science/research/abandoned) +"fap" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"faq" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/pool_maintenance) +"fat" = ( +/turf/open/floor/plating, +/area/station/cargo/miningdock) +"fav" = ( +/obj/machinery/requests_console/directional/south{ + department = "Law Office"; + name = "Law Office Requests Console" + }, +/obj/structure/aquarium/lawyer, +/turf/open/floor/carpet/blue, +/area/station/service/lawoffice) +"faw" = ( +/obj/effect/decal/cleanable/oil/slippery, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"faz" = ( +/obj/effect/spawner/random/trash/cigbutt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless, +/area/station/maintenance/fore/upper) +"faA" = ( +/obj/machinery/computer/security, +/obj/effect/turf_decal/siding/wood, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/blueshield) +"faB" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/science/research) +"faG" = ( +/obj/effect/turf_decal/bot_white/right, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark/small, +/area/station/cargo/miningdock) +"faI" = ( +/obj/machinery/door/poddoor/shutters{ + id = "armory"; + name = "Armoury Shutter" + }, +/obj/effect/turf_decal/delivery, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/security/armory) +"faJ" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/bodycontainer/morgue, +/turf/open/floor/iron/dark, +/area/station/service/chapel) +"faR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/burnt_floor, +/obj/machinery/power/port_gen/pacman/pre_loaded, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"faZ" = ( +/obj/structure/table, +/obj/machinery/microwave{ + pixel_y = 8 + }, +/obj/machinery/button/door/directional/west{ + id = "Dorm7"; + name = "Dormitory Door Lock"; + normaldoorcontrol = 1; + specialfunctions = 4 + }, +/turf/open/floor/wood, +/area/station/commons/dorms/room8) +"fbb" = ( +/obj/effect/spawner/structure/electrified_grille, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"fbe" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Departures Lounge" + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"fbg" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"fbk" = ( +/obj/machinery/door/airlock/external{ + name = "Arrivals Dock" + }, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/hallway/secondary/entry) +"fbm" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/maintenance/console_room) +"fbq" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"fbt" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"fbB" = ( +/obj/effect/turf_decal/box, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/effect/turf_decal/stripes, +/turf/open/floor/engine, +/area/station/science/ordnance) +"fbC" = ( +/turf/open/water/overlay{ + desc = "It's a pool for swimming in!"; + icon_state = "hotspring_tile"; + name = "pool" + }, +/area/station/command/heads_quarters/captain/private) +"fbD" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 10 + }, +/obj/item/kirbyplants/random, +/turf/open/floor/iron/white, +/area/station/medical/virology/isolation) +"fbG" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"fbI" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/carpet/red, +/area/station/security/warden) +"fbR" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen" + }, +/obj/structure/grille/broken, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"fbS" = ( +/obj/structure/rack, +/obj/item/pushbroom, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/prison) +"fbV" = ( +/obj/machinery/computer/crew, +/turf/open/floor/iron, +/area/station/security/checkpoint/customs) +"fbY" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/security/prison/rec) +"fcb" = ( +/obj/structure/table/reinforced, +/obj/item/book/manual/wiki/surgery, +/turf/open/floor/iron, +/area/station/medical/surgery/theatre) +"fch" = ( +/turf/open/floor/plating/reinforced{ + initial_gas_mix = "TEMP=2.7" + }, +/area/station/science/ordnance/bomb) +"fcq" = ( +/obj/machinery/vending/assist, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/purple/half, +/turf/open/floor/iron/white/side, +/area/station/science) +"fcw" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark/small, +/area/station/security/brig) +"fcz" = ( +/obj/structure/chair/office{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/abandon_holding_cell) +"fcC" = ( +/turf/open/floor/iron, +/area/station/security/prison/shower) +"fcE" = ( +/obj/machinery/light/directional/south, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"fcK" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/service/cafeteria) +"fcM" = ( +/obj/structure/table, +/obj/item/reagent_containers/cup/bottle/morphine{ + pixel_x = -4; + pixel_y = 1 + }, +/obj/item/reagent_containers/cup/bottle/chloralhydrate, +/obj/item/reagent_containers/cup/bottle/toxin{ + pixel_x = 6; + pixel_y = 8 + }, +/obj/item/reagent_containers/cup/bottle/morphine{ + pixel_x = 5; + pixel_y = 1 + }, +/obj/item/reagent_containers/syringe, +/obj/item/reagent_containers/cup/bottle/facid{ + name = "fluorosulfuric acid bottle"; + pixel_x = -3; + pixel_y = 6 + }, +/obj/item/reagent_containers/syringe{ + pixel_y = 5 + }, +/obj/item/reagent_containers/dropper, +/obj/machinery/airalarm/directional/east, +/obj/effect/mapping_helpers/airalarm/all_access, +/obj/item/assembly/signaler{ + pixel_x = -3; + pixel_y = 2 + }, +/turf/open/floor/iron/dark, +/area/station/security/execution/education) +"fcP" = ( +/turf/open/floor/carpet, +/area/station/security/courtroom) +"fcQ" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Service Hallway Maintenance Hatch" + }, +/obj/effect/mapping_helpers/airlock/access/all/service/general, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/bar) +"fcW" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/smooth, +/area/station/cargo/miningdock) +"fdf" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/table/reinforced, +/obj/effect/turf_decal/bot, +/obj/item/stack/sheet/iron/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/glass/fifty, +/turf/open/floor/iron/dark, +/area/station/commons/storage/primary) +"fdi" = ( +/obj/item/radio/intercom/directional/west{ + freerange = 1; + listening = 0; + name = "Common Channel"; + pixel_y = -8 + }, +/obj/item/radio/intercom/directional/south{ + freerange = 1; + frequency = 1447; + listening = 0; + name = "Private Channel" + }, +/obj/item/radio/intercom/directional/east{ + freerange = 1; + listening = 0; + name = "Custom Channel"; + pixel_y = -8 + }, +/obj/effect/landmark/start/ai, +/obj/machinery/button/door/directional/south{ + id = "AI Chamber Entrance Shutters"; + name = "AI Chamber Entrance Shutters Control"; + pixel_x = -24; + req_access = list("ai_upload") + }, +/obj/machinery/button/door/directional/south{ + id = "AI Core shutters"; + name = "AI Core Shutters Control"; + pixel_x = 24; + req_access = list("ai_upload") + }, +/obj/structure/cable, +/turf/open/floor/circuit/green, +/area/station/ai_monitored/turret_protected/ai) +"fdm" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/filled/warning{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/prison/upper) +"fdu" = ( +/turf/open/floor/iron/dark/side{ + dir = 6 + }, +/area/station/security/prison/upper) +"fdz" = ( +/obj/machinery/door/airlock/freezer{ + name = "Medical Freezer" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/medical/surgery, +/turf/open/floor/iron/white, +/area/station/medical/coldroom) +"fdD" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/commons/fitness) +"fdE" = ( +/obj/effect/turf_decal/trimline/purple/filled/line, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/sign/nanotrasen{ + pixel_y = -32 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/science) +"fdF" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/chair/sofa/right/brown{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet, +/area/station/maintenance/abandon_psych) +"fdH" = ( +/turf/open/floor/iron, +/area/station/commons/storage/primary) +"fdR" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"fdU" = ( +/obj/structure/chair/pew/right{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/security/prison/mess) +"fdW" = ( +/obj/structure/disposalpipe/junction/flip{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"feb" = ( +/obj/machinery/holopad, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/medical/exam_room) +"fec" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/hallway/primary/central) +"fem" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"feo" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/eva) +"fes" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/hallway/primary/port) +"feu" = ( +/obj/structure/rack/wooden, +/obj/machinery/light/directional/east, +/obj/machinery/status_display/evac/directional/east, +/obj/item/clothing/suit/koreacoat{ + pixel_x = 6; + pixel_y = 8 + }, +/obj/item/clothing/suit/modern_winter{ + pixel_y = -3; + pixel_x = 7 + }, +/obj/item/clothing/suit/jacket/delta{ + pixel_x = -6; + pixel_y = 6 + }, +/obj/item/clothing/suit/jacket/puffer{ + pixel_x = -3; + pixel_y = -6 + }, +/turf/open/floor/wood/parquet, +/area/station/common/tailoring) +"fey" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/machinery/computer/atmos_control/nocontrol/incinerator{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ + dir = 4 + }, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/maintenance/disposal/incinerator) +"feB" = ( +/turf/open/floor/noslip, +/area/station/maintenance/gag_room) +"feJ" = ( +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/iron/stairs, +/area/station/security/execution/transfer) +"feL" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command/glass{ + name = "Customs Desk" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/command/general, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/customs) +"feR" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"feX" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/smooth, +/area/station/cargo/power_station/upper) +"feZ" = ( +/obj/structure/table, +/obj/effect/spawner/random/maintenance, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"ffo" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple/layer4{ + dir = 6 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/science/ordnance/freezerchamber) +"ffu" = ( +/obj/machinery/power/energy_accumulator/grounding_rod, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/atmos_aux_port) +"ffy" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/chair/office{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/security/detectives_office) +"ffG" = ( +/obj/structure/closet/crate/trashcart/laundry, +/obj/effect/spawner/random/contraband/prison, +/obj/machinery/camera/directional/north{ + c_tag = " Prison - Custodial Closet"; + network = list("ss13","prison") + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/spawner/random/contraband/prison, +/obj/item/clothing/under/rank/prisoner/skirt, +/obj/item/clothing/under/rank/prisoner/skirt, +/obj/item/clothing/under/rank/prisoner/skirt, +/obj/item/clothing/under/rank/prisoner/skirt, +/obj/item/clothing/under/rank/prisoner, +/obj/item/clothing/under/rank/prisoner, +/obj/item/clothing/under/rank/prisoner, +/obj/item/clothing/under/rank/prisoner, +/turf/open/floor/iron/kitchen{ + dir = 1 + }, +/area/station/security/prison/upper) +"ffH" = ( +/obj/structure/window/spawner/directional/east, +/obj/structure/window/spawner/directional/west, +/obj/structure/window/spawner/directional/north, +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/flowers_yw, +/turf/open/floor/grass, +/area/station/hallway/primary/port) +"ffW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/cigbutt, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"fge" = ( +/turf/closed/wall/r_wall, +/area/station/ai_monitored/turret_protected/aisat_interior) +"fgg" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"fgj" = ( +/obj/structure/cable, +/obj/effect/turf_decal/tile/bar/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/security/prison/mess) +"fgn" = ( +/obj/structure/table/glass, +/obj/item/clothing/gloves/latex, +/obj/item/healthanalyzer, +/obj/item/clothing/glasses/hud/health, +/obj/item/clothing/glasses/science, +/obj/machinery/light_switch/directional/south, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/item/book/manual/wiki/infections, +/turf/open/floor/iron, +/area/station/medical/virology) +"fgo" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 5 + }, +/obj/machinery/telecomms/bus/preset_three, +/turf/open/floor/iron/dark/telecomms, +/area/station/tcommsat/server) +"fgv" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/service/lawoffice) +"fgA" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters{ + id = "Portbowmaints"; + name = "Port Bow Maintenance" + }, +/turf/open/floor/iron/stairs/right{ + dir = 1 + }, +/area/station/maintenance/port/upper) +"fgC" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/flora/bush/jungle, +/turf/open/floor/grass, +/area/station/service/hydroponics) +"fgJ" = ( +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen/diner) +"fgM" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ + dir = 6 + }, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"fgN" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/science/xenobiology/control) +"fgO" = ( +/obj/item/kirbyplants/random, +/obj/structure/window/spawner/directional/west, +/obj/machinery/newscaster/directional/north, +/turf/open/floor/carpet, +/area/station/service/chapel/funeral) +"fgR" = ( +/obj/effect/turf_decal/stripes/end{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/station/engineering/atmos/upper) +"fhc" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron, +/area/station/commons/dorms) +"fhe" = ( +/obj/machinery/space_heater, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"fhf" = ( +/obj/item/toy/basketball, +/obj/item/toy/dodgeball{ + pixel_x = -5; + pixel_y = -7 + }, +/obj/item/toy/dodgeball{ + pixel_x = 3; + pixel_y = -7 + }, +/obj/effect/turf_decal/trimline/blue/line, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/security/prison/workout) +"fhg" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/machinery/camera/autoname/directional/north, +/turf/open/floor/engine, +/area/station/science/explab) +"fhh" = ( +/turf/open/floor/plating, +/area/station/science/auxlab/firing_range) +"fhj" = ( +/obj/structure/sink/kitchen/directional/south{ + desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; + name = "old sink" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot, +/obj/item/knife/butcher, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/landmark/generic_maintenance_landmark, +/turf/open/floor/iron/freezer, +/area/station/maintenance/abandon_kitchen_upper) +"fhl" = ( +/obj/machinery/airalarm/directional/east, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/port) +"fhm" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/science/genetics) +"fhr" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Medbay Maintenance" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/medical/general, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"fht" = ( +/obj/structure/closet/secure_closet/freezer/meat, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) +"fhB" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/iron/white/side{ + dir = 5 + }, +/area/station/command/heads_quarters/ce) +"fhD" = ( +/obj/structure/cable, +/obj/machinery/power/smes/full, +/turf/open/floor/iron/dark, +/area/station/engineering/gravity_generator) +"fhE" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/airlock/access/all/engineering/external, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"fhL" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/structure/chair/comfy/brown{ + color = "#A46106"; + dir = 8 + }, +/turf/open/floor/wood, +/area/station/commons/dorms/room4) +"fhQ" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"fhS" = ( +/turf/open/floor/iron/dark/small, +/area/station/medical/morgue) +"fhU" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"fhV" = ( +/obj/structure/closet/secure_closet/freezer/fridge/all_access, +/obj/item/storage/box/ingredients/vegetarian, +/obj/item/storage/box/ingredients/italian, +/obj/item/storage/box/ingredients/fruity, +/obj/item/storage/box/ingredients/fiesta, +/obj/item/storage/box/ingredients/american, +/obj/item/reagent_containers/condiment/flour{ + list_reagents = list(/datum/reagent/consumable/flour=600); + name = "Premium All-Purpose Flour (16KG)"; + volume = 600 + }, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/enzyme{ + list_reagents = list(/datum/reagent/consumable/enzyme=500); + name = "universe-sized universal enyzyme"; + volume = 500 + }, +/obj/item/reagent_containers/condiment/rice{ + list_reagents = list(/datum/reagent/consumable/rice=150); + name = "Basmati Rice Sack (4KG)"; + volume = 150 + }, +/obj/machinery/light/small/directional/north, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/security/prison/mess) +"fhW" = ( +/obj/effect/landmark/generic_maintenance_landmark, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/circuit, +/area/station/science/research/abandoned) +"fhZ" = ( +/turf/closed/wall/r_wall, +/area/station/science/research/abandoned) +"fia" = ( +/obj/effect/turf_decal/tile/red, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"fic" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/commons/dorms) +"fih" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating/reinforced{ + initial_gas_mix = "TEMP=2.7" + }, +/area/station/science/ordnance/bomb) +"fij" = ( +/obj/machinery/plumbing/ooze_sucker{ + mapping_id = "5" + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"fil" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/turf/open/floor/circuit, +/area/station/command/gateway) +"fim" = ( +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 9 + }, +/turf/open/floor/wood/large, +/area/station/science/auxlab/firing_range) +"fin" = ( +/turf/closed/wall/r_wall, +/area/station/maintenance/eva_shed/port) +"fiv" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/light_switch/directional/south, +/obj/effect/turf_decal/tile/purple/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/service/barber) +"fiw" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/firecloset, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/hallway/secondary/exit) +"fiA" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 6 + }, +/obj/machinery/light/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"fiI" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron, +/area/station/security/checkpoint/science/research) +"fiM" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/bot_white, +/obj/effect/landmark/event_spawn, +/turf/open/floor/iron, +/area/station/science/research) +"fiN" = ( +/obj/structure/rack/shelf, +/obj/effect/spawner/random/techstorage/security_all, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) +"fjc" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/stairs/right{ + dir = 8 + }, +/area/station/medical/medbay/lobby) +"fjf" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/commons/dorms) +"fjj" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/status_display/ai/directional/west, +/obj/machinery/light/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/commons/dorms) +"fjr" = ( +/obj/effect/turf_decal/vg_decals/numbers/five, +/obj/effect/landmark/start/prisoner, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/security/prison/safe) +"fjw" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/engine/hull/reinforced, +/area/space/nearstation) +"fjA" = ( +/obj/effect/spawner/random/trash/mess, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"fjQ" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/closet/secure_closet/personal, +/obj/item/clothing/shoes/sandal, +/obj/item/clothing/shoes/sandal, +/turf/open/floor/wood, +/area/station/service/barber) +"fjW" = ( +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_ordmix, +/turf/open/floor/engine, +/area/station/science/ordnance/burnchamber) +"fkc" = ( +/obj/structure/chair/comfy/brown{ + color = "#A46106"; + dir = 8 + }, +/turf/open/floor/wood, +/area/station/commons/dorms/room3) +"fkn" = ( +/obj/machinery/power/shuttle_engine/heater, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"fko" = ( +/obj/machinery/door/airlock/external{ + name = "Common Mining Shuttle Bay" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/hallway/secondary/entry) +"fkp" = ( +/obj/machinery/door/airlock/engineering/glass{ + name = "SMES Banks" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/general, +/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{ + dir = 4 + }, +/turf/open/floor/catwalk_floor/iron, +/area/station/engineering/engine_smes) +"fku" = ( +/turf/open/floor/plating, +/area/station/maintenance/department/security) +"fkv" = ( +/obj/structure/chair/sofa/bench/right{ + dir = 8; + pixel_x = 5 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/secondary/entry) +"fkA" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/storage) +"fkE" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 9 + }, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/west, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"fkI" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) +"fkJ" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/machinery/photocopier, +/obj/machinery/firealarm/directional/east, +/obj/effect/turf_decal/siding/thinplating_new/end{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/customs) +"fkL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/engineering/atmos/test_chambers) +"fkN" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/camera/directional/east{ + c_tag = "Central Hallway - Starboard Foremost Central"; + name = "hallway camera" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/sign/departments/botany/directional/east, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"fkX" = ( +/obj/effect/turf_decal/stripes{ + dir = 6 + }, +/turf/open/floor/plating, +/area/station/cargo/miningdock) +"flf" = ( +/obj/effect/turf_decal/stripes, +/obj/effect/artifact_spawner, +/turf/open/floor/engine, +/area/station/science/explab) +"fli" = ( +/obj/effect/landmark/start/assistant, +/turf/open/floor/iron, +/area/station/commons/fitness) +"flj" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/abandon_wrestle) +"flD" = ( +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet, +/area/station/service/electronic_marketing_den) +"flJ" = ( +/obj/machinery/power/port_gen/pacman/pre_loaded, +/obj/effect/turf_decal/bot, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"flL" = ( +/obj/effect/turf_decal/stripes/blue/line{ + dir = 4 + }, +/obj/machinery/newscaster/directional/west, +/obj/machinery/suit_storage_unit/open, +/turf/open/floor/plating, +/area/station/medical/break_room) +"flM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/commons/vacant_room/commissary) +"flR" = ( +/obj/structure/rack/shelf, +/obj/effect/spawner/random/techstorage/rnd_all, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) +"flT" = ( +/obj/machinery/status_display/evac/directional/north, +/turf/open/floor/iron/stairs/right{ + dir = 4 + }, +/area/station/hallway/secondary/command) +"flY" = ( +/obj/machinery/power/shuttle_engine/heater{ + dir = 1 + }, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"fmg" = ( +/obj/structure/transit_tube/curved{ + dir = 4 + }, +/turf/open/floor/iron/shuttle/arrivals/airless, +/area/space/nearstation) +"fmu" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/curtain/cloth/fancy/mechanical{ + icon_state = "bounty-open"; + icon_type = "bounty"; + id = "prisoncell5"; + name = "curtain" + }, +/turf/open/floor/plating, +/area/station/security/prison/safe) +"fmw" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"fmC" = ( +/turf/open/floor/iron/dark, +/area/station/security/interrogation) +"fmG" = ( +/obj/structure/holosign/barrier/engineering, +/turf/open/floor/iron/stairs/medium, +/area/station/hallway/primary/port) +"fmI" = ( +/obj/structure/table_frame/wood, +/obj/effect/spawner/random/trash/mess, +/turf/open/floor/iron, +/area/station/maintenance/clown_chamber) +"fmM" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/break_room) +"fmR" = ( +/obj/structure/chair/office{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/security/courtroom) +"fmS" = ( +/obj/structure/rack, +/obj/item/storage/toolbox/electrical, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/solars/starboard/aft) +"fmT" = ( +/obj/machinery/computer/crew, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/blueshield) +"fmU" = ( +/turf/open/floor/iron/white, +/area/station/science/xenobiology/control) +"fnc" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/light/directional/east, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/port/upper) +"fne" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/maintenance/abandon_diner) +"fnj" = ( +/obj/effect/landmark/start/medical_doctor, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 9 + }, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) +"fnl" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/trash/candy, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"fno" = ( +/turf/closed/wall/r_wall, +/area/station/science/xenobiology/hallway) +"fnp" = ( +/obj/structure/table/reinforced, +/obj/item/clipboard, +/obj/item/toy/figure/engineer, +/turf/open/floor/iron/dark, +/area/station/engineering/main) +"fnq" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/flora/bush/fullgrass, +/obj/structure/flora/bush/sunny, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/grass, +/area/station/hallway/secondary/command) +"fnu" = ( +/obj/structure/table/glass, +/obj/item/clothing/neck/stethoscope, +/obj/item/storage/box/beakers{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/box/syringes, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/medical/virology) +"fnv" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/door/poddoor/shutters{ + id = "commissaryshutter"; + name = "Vacant Commissary Shutter" + }, +/turf/open/floor/plating, +/area/station/commons/vacant_room/commissary) +"fnx" = ( +/mob/living/basic/chicken{ + forced_gender = "female" + }, +/turf/open/floor/grass, +/area/station/common/night_club/back_stage) +"fnE" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced/plasma, +/turf/open/floor/plating, +/area/station/engineering/atmos) +"fnG" = ( +/obj/structure/reagent_dispensers/plumbed{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/security/prison/upper) +"fnH" = ( +/obj/effect/turf_decal/stripes, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/ai_monitored/command/storage/eva/upper) +"fnL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/carpet, +/area/station/service/chapel/funeral) +"fnO" = ( +/obj/structure/bookcase/random, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/nt_rep) +"fnT" = ( +/obj/structure/curtain, +/turf/closed/wall, +/area/station/medical/cryo) +"fnY" = ( +/obj/structure/chair/sofa/corp/right{ + dir = 8; + pixel_x = 7 + }, +/obj/effect/landmark/start/assistant, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/carpet, +/area/station/service/lawoffice) +"foe" = ( +/obj/effect/turf_decal/stripes, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Xeno9"; + name = "Xenobio Pens Containment" + }, +/turf/open/floor/iron, +/area/station/science/xenobiology) +"foi" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/obj/machinery/light/floor/has_bulb, +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 6 + }, +/turf/open/floor/wood/large, +/area/station/science/auxlab/firing_range) +"fom" = ( +/obj/structure/closet/bombcloset/security, +/obj/item/clothing/suit/utility/bomb_suit/security, +/obj/item/clothing/suit/utility/bomb_suit/security, +/obj/item/clothing/head/utility/bomb_hood/security, +/obj/item/clothing/head/utility/bomb_hood/security, +/obj/machinery/light_switch/directional/west, +/turf/open/floor/iron/dark/side{ + dir = 10 + }, +/area/station/security/lockers) +"fon" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"fov" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/plating, +/area/station/security/courtroom) +"foz" = ( +/obj/effect/turf_decal/siding/yellow{ + dir = 4 + }, +/obj/machinery/computer/station_alert{ + dir = 4 + }, +/obj/machinery/computer/security/telescreen/ce{ + dir = 4; + pixel_x = -28 + }, +/obj/machinery/camera/directional/west, +/turf/open/floor/iron/dark/textured_large, +/area/station/command/heads_quarters/ce) +"foC" = ( +/turf/closed/indestructible/riveted{ + desc = "A wall impregnated with Fixium, able to withstand massive explosions with ease"; + name = "hyper-reinforced wall" + }, +/area/station/science/ordnance/bomb) +"foE" = ( +/obj/structure/flora/bush/stalky, +/obj/structure/flora/ocean/longseaweed, +/turf/open/water/overlay, +/area/station/hallway/primary/central) +"foN" = ( +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/effect/spawner/random/maintenance/three, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"foT" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron/white/textured, +/area/station/medical/aslyum) +"foV" = ( +/obj/structure/railing, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/duct, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/turf/open/floor/wood/large, +/area/station/common/night_club) +"foY" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/cargo/office) +"foZ" = ( +/obj/machinery/light/small/directional/west, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/engineering/transit_tube) +"fpl" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/hobo_squat, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"fpm" = ( +/obj/structure/chair/e_chair, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/station/maintenance/department/security/prison_upper) +"fpn" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Science Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/research, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"fpo" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/science/breakroom) +"fpt" = ( +/obj/structure/table/wood/fancy/red, +/obj/item/reagent_containers/cup/glass/bottle/champagne{ + pixel_x = 6; + pixel_y = 25 + }, +/obj/item/reagent_containers/cup/glass/bottle/vodka/badminka{ + pixel_x = -6; + pixel_y = 21 + }, +/obj/item/reagent_containers/cup/glass/bottle/absinthe/premium{ + pixel_y = 13 + }, +/obj/item/reagent_containers/cup/glass/bottle/lizardwine{ + pixel_x = 7; + pixel_y = 10 + }, +/obj/item/reagent_containers/cup/glass/bottle/goldschlager{ + pixel_x = -2; + pixel_y = 11 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/command/captain_dining) +"fpy" = ( +/obj/structure/rack, +/obj/item/storage/briefcase{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/storage/briefcase/secure, +/turf/open/floor/wood, +/area/station/security/detectives_office) +"fpz" = ( +/obj/structure/cable, +/turf/open/floor/carpet/blue, +/area/station/medical/break_room) +"fpC" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "chemistbot"; + name = "Chemistry Side Shutters" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/medical/pharmacy) +"fpD" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"fpI" = ( +/obj/machinery/button/curtain{ + id = "prisoncell6"; + pixel_y = 21 + }, +/obj/structure/bed, +/obj/item/bedsheet/orange, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/dark, +/area/station/security/prison/safe) +"fpR" = ( +/obj/structure/lattice/catwalk, +/turf/open/openspace, +/area/station/maintenance/department/medical/central) +"fpS" = ( +/obj/effect/turf_decal/trimline/green/filled/line, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 1 + }, +/obj/item/radio/intercom/directional/north, +/obj/machinery/firealarm/directional/south, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/light/directional/south, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/virology) +"fpT" = ( +/obj/structure/cable, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/structure/sign/departments/restroom/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"fpW" = ( +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/security/power_station) +"fpY" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Engineering Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/general, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/atmos_aux_port) +"fqc" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/secondary/command) +"fqd" = ( +/obj/effect/turf_decal/trimline/blue/line{ + dir = 4 + }, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/fitness) +"fqh" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/carpet/black, +/area/station/service/barber) +"fqi" = ( +/turf/open/floor/iron/dark/side, +/area/station/commons/fitness) +"fqn" = ( +/obj/structure/chair/comfy{ + color = "#596479"; + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/station/security/prison/rec) +"fqs" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/maintenance/solars/port/fore) +"fqw" = ( +/obj/structure/rack, +/obj/item/storage/toolbox/mechanical, +/turf/open/floor/plating, +/area/station/hallway/secondary/entry) +"fqx" = ( +/obj/structure/chair, +/obj/effect/landmark/start/assistant, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/machinery/light/directional/north, +/turf/open/floor/iron, +/area/station/service/chapel) +"fqD" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/co2{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/box, +/turf/open/floor/plating/airless, +/area/station/engineering/atmos/upper) +"fqF" = ( +/obj/structure/trash_pile, +/turf/open/floor/plating, +/area/station/maintenance/department/science/central) +"fqG" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/spawner/random/trash/mess, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/xenobio_disposals) +"fqK" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/dark/small, +/area/station/security/brig) +"fqM" = ( +/obj/machinery/light/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/closet/crate/bin, +/obj/effect/spawner/random/trash/garbage, +/obj/effect/spawner/random/trash/garbage, +/obj/effect/spawner/random/contraband/prison, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/line, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/prison/upper) +"fqP" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"fqR" = ( +/obj/structure/table/glass, +/obj/item/seeds/lime{ + pixel_x = 6 + }, +/obj/item/seeds/grape{ + pixel_x = -6 + }, +/obj/item/seeds/watermelon, +/obj/item/food/grown/wheat, +/obj/item/food/grown/watermelon, +/obj/item/food/grown/banana, +/obj/structure/extinguisher_cabinet/directional/south, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/service/hydroponics) +"fqT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"fqV" = ( +/obj/structure/bookcase/random/nonfiction, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/cmo) +"frb" = ( +/obj/item/stack/cable_coil, +/obj/item/multitool, +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/stripes{ + dir = 5 + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva) +"fre" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark, +/turf/open/floor/iron/dark/textured_edge, +/area/station/security/office) +"fri" = ( +/obj/machinery/power/shuttle_engine/heater, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"fro" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/closet, +/obj/effect/spawner/random/maintenance, +/obj/machinery/light/small/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/library/lower) +"frp" = ( +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) +"frA" = ( +/obj/structure/table_frame/wood, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/station/maintenance/abandon_art_studio) +"frF" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "chemisttop"; + name = "Chemistry Lobby Shutters" + }, +/turf/open/floor/plating, +/area/station/medical/pharmacy) +"frJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/security/lower) +"frO" = ( +/obj/structure/closet, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"fsa" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder{ + pixel_x = -5; + pixel_y = 9 + }, +/obj/item/reagent_containers/cup/glass/shaker, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/service/bar) +"fsk" = ( +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"fsn" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron/stairs{ + dir = 4 + }, +/area/station/security/prison/safe) +"fsv" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"fsx" = ( +/obj/structure/stairs/north, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/central) +"fsG" = ( +/obj/effect/spawner/random/decoration/paint, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"fsJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"fsS" = ( +/obj/structure/window/spawner/directional/south, +/obj/structure/window/spawner/directional/east, +/obj/structure/flora/bush/leafy, +/obj/structure/flora/bush/flowers_br/style_random, +/turf/open/floor/grass, +/area/station/hallway/secondary/service) +"fsY" = ( +/obj/effect/spawner/random/trash/cigbutt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"fta" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/light/directional/west, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/white, +/area/station/medical/cryo) +"fte" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/dark/side, +/area/station/hallway/primary/central) +"fth" = ( +/turf/closed/wall/r_wall, +/area/station/maintenance/disposal/incinerator) +"fti" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/common/laser_tag) +"ftj" = ( +/turf/closed/wall, +/area/station/service/kitchen/diner) +"ftk" = ( +/obj/machinery/light/directional/east, +/obj/machinery/cryopod{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured_large, +/area/station/common/cryopods) +"ftH" = ( +/obj/structure/bodycontainer/morgue{ + dir = 8 + }, +/obj/effect/turf_decal/bot_white, +/obj/structure/window/spawner/directional/north, +/turf/open/floor/iron/dark/small, +/area/station/medical/morgue) +"ftI" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plating, +/area/station/security/prison/upper) +"ftJ" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/department/eva) +"ftN" = ( +/obj/effect/turf_decal/siding/purple/end{ + dir = 8 + }, +/obj/structure/railing, +/turf/open/floor/glass/reinforced, +/area/station/science) +"fue" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 10 + }, +/turf/open/floor/iron/dark, +/area/station/science/xenobiology/control) +"fuh" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "hosroom"; + name = "HoS Room Blast Door" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/command/heads_quarters/hos) +"fuj" = ( +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/machinery/light/small/directional/west, +/obj/effect/spawner/random/engineering/tool, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"ful" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/smooth_edge{ + dir = 4 + }, +/area/station/command/secure_bunker) +"fun" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/camera/directional/south, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"fuo" = ( +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/iron/stairs/right, +/area/station/hallway/primary/central) +"fur" = ( +/obj/structure/table, +/obj/item/reagent_containers/cup/bowl, +/obj/item/food/dough, +/obj/machinery/newscaster/directional/east, +/obj/item/storage/fancy/pickles_jar{ + pixel_x = 8; + pixel_y = 19 + }, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) +"fuw" = ( +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, +/turf/open/floor/iron/freezer, +/area/station/science/xenobiology) +"fuB" = ( +/obj/structure/toilet{ + dir = 8 + }, +/obj/structure/mirror/directional/north{ + pixel_y = 33 + }, +/obj/structure/sink/directional/south, +/turf/open/floor/iron/freezer, +/area/station/command/heads_quarters/hos) +"fuH" = ( +/obj/effect/spawner/random/trash/mess, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"fuK" = ( +/obj/structure/table, +/obj/item/folder/blue, +/obj/item/pen, +/obj/structure/window/spawner/directional/north, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/common/wrestling/arena) +"fuM" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron/white, +/area/station/medical/surgery/theatre) +"fuQ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/cargo/warehouse) +"fuR" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/vending/assist, +/turf/open/floor/iron/dark, +/area/station/commons/storage/primary) +"fuS" = ( +/turf/open/floor/iron/dark/corner{ + dir = 1 + }, +/area/station/hallway/secondary/exit) +"fuX" = ( +/obj/structure/window/spawner/directional/south, +/obj/structure/closet/secure_closet/hydroponics, +/obj/item/botanical_lexicon, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) +"fuY" = ( +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron/dark, +/area/station/security/courtroom) +"fuZ" = ( +/obj/structure/closet/secure_closet/brig, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/effect/turf_decal/trimline/red/filled/line{ + color = "#DE3A3A"; + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/line, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/brig) +"fvc" = ( +/obj/machinery/light/directional/east, +/obj/structure/sign/warning/radiation/directional/east, +/turf/open/floor/iron/dark, +/area/station/engineering/gravity_generator) +"fvp" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/hfr_room) +"fvu" = ( +/obj/effect/landmark/event_spawn, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured_edge{ + dir = 8 + }, +/area/station/security/lockers) +"fvy" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/effect/spawner/random/maintenance, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/night_club) +"fvC" = ( +/obj/machinery/photocopier, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 5 + }, +/obj/machinery/light_switch/directional/north{ + pixel_y = 22 + }, +/turf/open/floor/iron/white, +/area/station/science/lab) +"fvE" = ( +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"fvF" = ( +/turf/open/floor/plating, +/area/station/security/execution/transfer) +"fvZ" = ( +/obj/structure/chair/sofa/bench/right{ + dir = 4; + pixel_x = -5 + }, +/obj/machinery/light/directional/west, +/obj/effect/landmark/start/assistant, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/secondary/entry) +"fwb" = ( +/obj/machinery/door/firedoor, +/obj/structure/sign/departments/exam_room/directional/south, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) +"fwc" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/carpet, +/area/station/service/library) +"fwe" = ( +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ + dir = 9 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"fwh" = ( +/obj/structure/rack/wooden, +/obj/item/perfume/amber{ + pixel_x = -8; + pixel_y = 10 + }, +/obj/item/perfume/cologne{ + pixel_x = -4; + pixel_y = 10 + }, +/obj/item/perfume/wood{ + pixel_y = 10 + }, +/obj/item/perfume/mint{ + pixel_x = 4; + pixel_y = 10 + }, +/obj/item/perfume/cherry{ + pixel_x = -8; + pixel_y = -5 + }, +/obj/item/perfume/jasmine{ + pixel_x = -4; + pixel_y = -5 + }, +/obj/item/perfume/pear{ + pixel_y = -5 + }, +/obj/item/perfume/rose{ + pixel_x = 4; + pixel_y = -5 + }, +/obj/item/perfume/vanilla{ + pixel_x = 8; + pixel_y = 10 + }, +/obj/item/perfume/strawberry{ + pixel_x = 8; + pixel_y = -5 + }, +/turf/open/floor/wood/tile, +/area/station/service/barber) +"fwi" = ( +/obj/structure/flora/bush/grassy, +/mob/living/carbon/human/species/monkey, +/turf/open/floor/grass, +/area/station/science/genetics) +"fwj" = ( +/obj/structure/chair/pew/left{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/station/maintenance/cult_chapel_maint) +"fwm" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/commons/dorms) +"fws" = ( +/obj/machinery/modular_computer/preset/id{ + dir = 1 + }, +/obj/machinery/light/directional/south, +/obj/machinery/status_display/evac/directional/south, +/turf/open/floor/iron/dark/side, +/area/station/security/checkpoint/customs/auxiliary) +"fwu" = ( +/obj/effect/turf_decal/tile/red{ + color = "#DE3A3A"; + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + color = "#DE3A3A" + }, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"fwv" = ( +/obj/structure/table/reinforced, +/obj/item/t_scanner, +/obj/item/t_scanner, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) +"fwy" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/common/night_club/back_stage) +"fwA" = ( +/obj/effect/spawner/random/trash/mess, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"fwD" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/light/directional/south, +/obj/machinery/airalarm/directional/south, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"fwE" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/main) +"fwI" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/plating, +/area/station/cargo/drone_bay) +"fwM" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/space/openspace, +/area/space) +"fwU" = ( +/obj/machinery/door/airlock/engineering{ + name = "Starboard Bow Solar Access" + }, +/obj/structure/sign/warning/electric_shock/directional/north, +/obj/effect/mapping_helpers/airlock/access/all/engineering/general, +/turf/open/floor/iron/dark, +/area/station/maintenance/solars/starboard/fore) +"fxa" = ( +/obj/structure/table/wood, +/obj/item/storage/box/beanbag, +/obj/item/gun/ballistic/shotgun/doublebarrel, +/obj/machinery/light/directional/east, +/obj/machinery/light_switch/directional/east, +/turf/open/floor/wood, +/area/station/hallway/secondary/service) +"fxe" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/item/kirbyplants/random, +/turf/open/floor/iron, +/area/station/science/explab) +"fxf" = ( +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"fxo" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hallup11"; + location = "hallup10" + }, +/turf/open/floor/iron/dark/corner{ + dir = 4 + }, +/area/station/hallway/secondary/command) +"fxw" = ( +/obj/machinery/button/door/directional/south{ + id = "gatewayshutters"; + name = "Gateway Shutters" + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/circuit, +/area/station/command/gateway) +"fxz" = ( +/obj/machinery/light/directional/north, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/machinery/stasis, +/turf/open/floor/iron/white, +/area/station/command/gateway) +"fxE" = ( +/obj/machinery/door/airlock/medical/glass{ + id_tag = "MedbayFoyer"; + name = "Brig Infirmary" + }, +/obj/effect/turf_decal/delivery/blue, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/turf/open/floor/iron/dark, +/area/station/security/medical) +"fxP" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/firecloset, +/turf/open/floor/iron, +/area/station/science/explab) +"fxR" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"fxT" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"fxV" = ( +/obj/machinery/conveyor/inverted{ + dir = 10; + id = "Luggagebelt" + }, +/turf/open/floor/plating, +/area/station/security/checkpoint/customs) +"fye" = ( +/obj/structure/barricade/wooden, +/turf/open/floor/plating, +/area/station/maintenance/abandon_holding_cell) +"fyg" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/structure/cable, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/warden) +"fyi" = ( +/obj/effect/turf_decal/stripes{ + dir = 9 + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 9 + }, +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/engine, +/area/station/command/heads_quarters/rd) +"fyk" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/end{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos) +"fyn" = ( +/obj/structure/reflector/box{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/atmos_aux_port) +"fyr" = ( +/obj/effect/landmark/event_spawn, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/commons/locker) +"fyt" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron/dark, +/area/station/security/courtroom) +"fyv" = ( +/obj/machinery/ai_slipper{ + uses = 10 + }, +/obj/structure/cable, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/ai) +"fyw" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hallup13"; + location = "hallup12" + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/secondary/command) +"fyD" = ( +/turf/open/floor/iron/dark, +/area/station/security/lockers) +"fyF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/power/port_gen/pacman/pre_loaded, +/turf/open/floor/iron/smooth, +/area/station/cargo/power_station/upper) +"fyM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"fyN" = ( +/obj/item/kirbyplants/photosynthetic, +/turf/open/floor/iron/dark/telecomms, +/area/station/tcommsat/server) +"fyO" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/service{ + name = "Kitchen" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, +/turf/open/floor/iron/checker, +/area/station/service/kitchen) +"fyW" = ( +/obj/structure/chair/comfy{ + color = "#596479"; + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/station/security/prison/rec) +"fze" = ( +/obj/structure/table, +/obj/item/bonesetter, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"fzg" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/port_gen/pacman/pre_loaded, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"fzj" = ( +/obj/structure/table/reinforced, +/obj/item/storage/medkit/o2{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/storage/medkit/o2{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/medkit/regular, +/obj/item/storage/medkit/o2{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/machinery/light/directional/east, +/obj/structure/window/spawner/directional/north, +/turf/open/floor/iron, +/area/station/medical/storage) +"fzm" = ( +/turf/open/openspace, +/area/station/hallway/secondary/command) +"fzq" = ( +/obj/effect/turf_decal/stripes/end{ + dir = 1 + }, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"fzv" = ( +/obj/structure/table, +/obj/item/melee/baseball_bat, +/turf/open/floor/plating, +/area/station/maintenance/abandon_wrestle) +"fzx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/wood, +/area/station/maintenance/abandon_office) +"fzJ" = ( +/obj/structure/chair/office{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/security/interrogation) +"fzU" = ( +/obj/structure/hedge, +/turf/open/floor/iron/dark/herringbone, +/area/station/common/night_club/back_stage) +"fzY" = ( +/obj/machinery/door/airlock/engineering{ + name = "Port Bow Solar Access" + }, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/engineering/general, +/turf/open/floor/iron/dark, +/area/station/maintenance/solars/port/fore) +"fzZ" = ( +/turf/open/floor/grass, +/area/station/security/prison/garden) +"fAl" = ( +/obj/structure/cable, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/disposal) +"fAn" = ( +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/storage) +"fAw" = ( +/turf/closed/wall/r_wall, +/area/station/security/interrogation) +"fAy" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/east, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"fAB" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/commons/storage/primary) +"fAH" = ( +/obj/structure/rack/wooden, +/obj/item/clothing/under/pants/camo{ + pixel_x = -4; + pixel_y = 10 + }, +/obj/item/clothing/under/pants/tactical{ + pixel_x = 5; + pixel_y = 7 + }, +/obj/item/clothing/under/pants/jeans{ + pixel_x = -8; + pixel_y = -3 + }, +/obj/item/clothing/under/pants/slacks{ + pixel_x = 7; + pixel_y = -3 + }, +/obj/item/clothing/under/pants/track{ + pixel_y = -5 + }, +/turf/open/floor/wood/parquet, +/area/station/common/tailoring) +"fAR" = ( +/obj/structure/window/spawner/directional/south, +/obj/structure/reagent_dispensers/watertank/high, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/item/reagent_containers/cup/watering_can, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/service/hydroponics) +"fAV" = ( +/obj/machinery/door/airlock/engineering{ + name = "Power Access Hatch" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/barricade/wooden/crude, +/obj/effect/mapping_helpers/airlock/access/all/engineering/engine_equipment, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"fAX" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"fAY" = ( +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/iron/stairs/left, +/area/station/hallway/primary/upper) +"fBk" = ( +/obj/machinery/duct, +/turf/open/floor/carpet/green, +/area/station/medical/virology/isolation) +"fBz" = ( +/turf/closed/wall/r_wall, +/area/station/security/prison) +"fBA" = ( +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/flowers_yw, +/obj/structure/window/spawner/directional/east, +/obj/structure/window/spawner/directional/west, +/obj/structure/window/spawner/directional/south, +/turf/open/floor/grass, +/area/station/command/captain_dining) +"fBD" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "Luggagebelt" + }, +/obj/structure/plasticflaps/opaque, +/turf/open/floor/plating, +/area/station/security/checkpoint) +"fBE" = ( +/obj/structure/table/reinforced, +/obj/machinery/light_switch/directional/south, +/obj/item/analysis_bin, +/obj/item/book/manual/wiki/artsci{ + pixel_y = 5; + pixel_x = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/science/explab) +"fBH" = ( +/obj/machinery/modular_computer/preset/engineering{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/main) +"fBL" = ( +/obj/machinery/button/door{ + id = "roboticsurgery"; + name = "Robitics surgery privacy shutters"; + pixel_x = 26; + pixel_y = -26 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 5 + }, +/turf/open/floor/iron/white, +/area/station/science/robotics) +"fBU" = ( +/obj/structure/closet/wardrobe/pink, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 1 + }, +/obj/effect/landmark/start/hangover/closet, +/turf/open/floor/iron/dark, +/area/station/commons/locker) +"fBV" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/garbage, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"fBZ" = ( +/obj/structure/table/reinforced, +/obj/item/paper_bin, +/turf/open/floor/iron/dark, +/area/station/tcommsat/computer) +"fCd" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/station/service/theater) +"fCh" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ + dir = 1 + }, +/turf/open/space/basic, +/area/space/nearstation) +"fCo" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/status_display/ai/directional/west, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/dorms) +"fCx" = ( +/obj/item/stack/sheet/cardboard, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/dorms) +"fCB" = ( +/obj/item/radio/intercom/directional/south, +/turf/open/floor/wood, +/area/station/service/library) +"fCD" = ( +/obj/effect/turf_decal/siding/wood/end{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/station/service/cafeteria) +"fCQ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/science/ordnance/freezerchamber) +"fCU" = ( +/turf/open/floor/carpet, +/area/station/service/lawoffice) +"fCV" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/curtain/cloth/fancy/mechanical{ + icon_state = "bounty-open"; + icon_type = "bounty"; + id = "dormscurtain5"; + name = "curtain" + }, +/turf/open/floor/plating, +/area/station/commons/dorms/room6) +"fCZ" = ( +/obj/structure/table, +/obj/item/food/cheese/royal, +/obj/machinery/light/directional/north, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/cafeteria, +/area/station/maintenance/department/medical/central) +"fDk" = ( +/obj/structure/rack, +/obj/effect/spawner/random/techstorage/rnd_secure_all, +/obj/machinery/light/directional/east, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) +"fDq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/garbage, +/turf/open/floor/plating, +/area/station/maintenance/department/security/upper) +"fDB" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 9 + }, +/turf/open/floor/iron/shuttle/evac/airless, +/area/space/nearstation) +"fDI" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/plating, +/area/station/science/research/abandoned) +"fDL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/south, +/obj/structure/cable, +/obj/structure/sign/poster/contraband/random/directional/south, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/wood, +/area/station/maintenance/abandon_office) +"fDP" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/dark/side, +/area/station/common/laser_tag) +"fDT" = ( +/turf/closed/wall/r_wall, +/area/station/science/xenobiology) +"fDV" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/circuit, +/area/station/command/gateway) +"fEp" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"fEr" = ( +/obj/effect/spawner/random/trash/mess, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"fEx" = ( +/obj/machinery/button/door/directional/south{ + id = "Toilet5"; + name = "Lock Control"; + normaldoorcontrol = 1; + specialfunctions = 4 + }, +/obj/structure/toilet{ + dir = 1 + }, +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron/cafeteria, +/area/station/commons/toilet/auxiliary) +"fEy" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"fEC" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/crate{ + icon_state = "crateopen" + }, +/obj/item/storage/belt/bandolier, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"fEG" = ( +/obj/machinery/space_heater, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"fEH" = ( +/obj/structure/trash_pile, +/turf/open/floor/plating, +/area/station/maintenance/abandon_arcade) +"fEM" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/science/ordnance) +"fEO" = ( +/obj/structure/table, +/obj/item/spear, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"fEY" = ( +/obj/machinery/newscaster/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/spawner/random/trash/mess, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/science/tele_sci) +"fFl" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/bar) +"fFo" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/service/chapel/office) +"fFq" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/lesser) +"fFB" = ( +/obj/structure/sink/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/button/door/directional/south{ + id = "ChapelHall"; + name = "Outer Garden Shutters" + }, +/turf/open/floor/iron/dark, +/area/station/service/chapel) +"fFE" = ( +/obj/machinery/smartfridge/organ, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/iron/dark, +/area/station/medical/surgery/theatre) +"fFR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/circuitboard/mecha/clarke/peripherals, +/turf/open/floor/circuit, +/area/station/science/research/abandoned) +"fFU" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/cable, +/obj/structure/railing{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/duct, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/captain) +"fFW" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"fGc" = ( +/obj/structure/closet/cardboard, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"fGf" = ( +/obj/structure/chair/office, +/obj/effect/landmark/start/assistant, +/turf/open/floor/iron, +/area/station/common/wrestling/lobby) +"fGm" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hallup39"; + location = "hallup18" + }, +/turf/open/floor/iron, +/area/station/commons/dorms) +"fGo" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/maintenance/abandon_psych) +"fGv" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/curtain/cloth/fancy/mechanical{ + icon_state = "bounty-open"; + icon_type = "bounty"; + id = "dormscurtain7"; + name = "curtain" + }, +/turf/open/floor/plating, +/area/station/commons/dorms/room8) +"fGy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"fGA" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/maintenance, +/obj/machinery/door/firedoor, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"fGR" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/engineering/storage_shared) +"fGV" = ( +/obj/effect/decal/cleanable/dirt, +/mob/living/simple_animal/pet/cat, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/maintenance/abandon_exam/cat) +"fGY" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/chair/sofa/bench{ + dir = 8; + pixel_x = 5 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/common/wrestling/arena) +"fGZ" = ( +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 4 + }, +/obj/structure/sign/poster/random/directional/west, +/obj/effect/landmark/start/hangover/closet, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/upper) +"fHc" = ( +/obj/structure/barricade/security/ctf, +/turf/open/floor/iron/dark, +/area/station/common/laser_tag) +"fHh" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "hosprivacy"; + name = "HoS Privacy Blast Door" + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/security/office) +"fHi" = ( +/turf/closed/wall, +/area/station/commons/dorms/vacantroom) +"fHl" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"fHr" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/carpet/blue, +/area/station/service/lawoffice) +"fHx" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/commons/dorms) +"fHz" = ( +/obj/machinery/light/small/directional/north, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"fHD" = ( +/obj/machinery/light/small/red/dim/directional/west, +/turf/open/floor/plating, +/area/station/escapepodbay) +"fHF" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/rods/fifty, +/obj/item/stack/rods/fifty, +/obj/effect/turf_decal/tile/blue/opposingcorners{ + dir = 8 + }, +/turf/open/floor/iron/cafeteria, +/area/station/engineering/atmos) +"fHM" = ( +/obj/structure/extinguisher_cabinet/directional/east, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/security/execution/transfer) +"fHR" = ( +/obj/item/kirbyplants/random, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/west, +/turf/open/floor/iron, +/area/station/engineering/atmos/office) +"fHX" = ( +/obj/structure/chair/pew/left{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/machinery/airalarm/directional/north, +/obj/effect/mapping_helpers/airalarm/all_access, +/turf/open/floor/wood, +/area/station/service/barber/spa) +"fIb" = ( +/obj/item/radio/intercom/directional/west, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/effect/turf_decal/tile/bar/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/service/bar) +"fIc" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/engineering/main) +"fId" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/night_club) +"fIe" = ( +/obj/structure/chair/office/light, +/obj/effect/turf_decal/trimline/purple/filled/corner{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/science/cytology) +"fIi" = ( +/turf/open/floor/iron, +/area/station/engineering/atmos/pumproom) +"fIj" = ( +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/landmark/start/detective, +/turf/open/floor/carpet, +/area/station/security/detectives_office) +"fIk" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/medical/psychology) +"fIr" = ( +/obj/effect/turf_decal/siding/blue, +/turf/open/floor/iron/dark/textured_edge, +/area/station/security/prison/garden) +"fIv" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/machinery/light_switch/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red/real_red/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hos) +"fIw" = ( +/obj/structure/table, +/obj/item/stack/sheet/plasteel{ + amount = 10 + }, +/obj/item/stack/rods/fifty, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/construction/mining/aux_base) +"fIA" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/station/engineering/atmos/upper) +"fIC" = ( +/obj/structure/chair/sofa/bench/right{ + dir = 8; + pixel_x = 5 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/iron, +/area/station/common/wrestling/locker) +"fIF" = ( +/obj/structure/table, +/obj/item/toy/cards/deck{ + pixel_x = 2 + }, +/obj/item/storage/dice{ + pixel_x = -11; + pixel_y = 5 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/commons/fitness/recreation) +"fIG" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/smooth, +/area/station/cargo/miningdock) +"fIT" = ( +/obj/structure/decorative/shelf, +/obj/item/computer_disk/maintenance/theme{ + pixel_y = -10 + }, +/obj/machinery/camera/autoname/directional/east, +/turf/open/floor/iron/smooth_edge{ + dir = 1 + }, +/area/station/cargo/miningdock) +"fJf" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"fJl" = ( +/obj/structure/table/reinforced, +/obj/item/wrench, +/obj/item/assembly/timer, +/obj/item/assembly/signaler, +/obj/effect/turf_decal/tile/dark_blue/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"fJu" = ( +/obj/machinery/light/small/broken/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) +"fJD" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/tcommsat/computer) +"fJF" = ( +/obj/effect/turf_decal/trimline/blue/line{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"fJJ" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/item/inducer, +/turf/open/floor/iron/dark, +/area/station/engineering/transit_tube) +"fJK" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"fJL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/carpet/purple, +/area/station/command/heads_quarters/rd) +"fJP" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"fJT" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/service/theater/abandoned) +"fJW" = ( +/obj/item/beacon, +/obj/machinery/holopad, +/turf/open/floor/iron, +/area/station/hallway/secondary/entry) +"fKc" = ( +/obj/machinery/airalarm/directional/north, +/obj/structure/extinguisher_cabinet/directional/west, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"fKf" = ( +/turf/closed/wall/r_wall, +/area/station/command/teleporter) +"fKg" = ( +/turf/closed/wall/r_wall, +/area/station/maintenance/fore/upper) +"fKh" = ( +/obj/machinery/power/tracker, +/obj/structure/cable, +/turf/open/floor/plating/airless, +/area/station/solars/starboard/aft) +"fKm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"fKq" = ( +/obj/structure/window/reinforced/plasma/spawner/directional/west, +/obj/machinery/power/shuttle_engine/heater{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"fKw" = ( +/obj/machinery/washing_machine, +/turf/open/floor/iron/kitchen{ + dir = 1 + }, +/area/station/security/prison/upper) +"fKz" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/common/wrestling/arena) +"fKK" = ( +/turf/open/floor/plating/airless, +/area/station/maintenance/eva_shed/port) +"fKL" = ( +/obj/effect/turf_decal/tile/brown, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) +"fKO" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/obj/machinery/camera/directional/south{ + c_tag = "Engineering - Engine Foyer"; + dir = 1; + name = "engineering camera" + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"fKP" = ( +/turf/open/floor/iron/stairs/medium, +/area/station/hallway/primary/port) +"fKQ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/structure/curtain/cloth/fancy/mechanical{ + icon_state = "bounty-open"; + icon_type = "bounty"; + id = "prisonlibrarycurtain3"; + name = "curtain" + }, +/turf/open/floor/plating, +/area/station/command/heads_quarters/nt_rep) +"fKW" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/window/spawner/directional/west, +/turf/open/floor/carpet/purple, +/area/station/commons/dorms/room4) +"fLb" = ( +/obj/effect/turf_decal/stripes{ + dir = 6 + }, +/obj/machinery/atmospherics/components/tank/oxygen, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/storage) +"fLc" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white/corner{ + dir = 8 + }, +/area/station/hallway/secondary/entry) +"fLl" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/curtain/cloth/fancy, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood/large, +/area/station/service/theater/abandoned) +"fLo" = ( +/obj/structure/table, +/obj/machinery/coffeemaker{ + pixel_y = 9 + }, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/hallway/secondary/service) +"fLw" = ( +/obj/structure/mirror{ + pixel_y = 32 + }, +/obj/structure/toilet{ + pixel_y = 10 + }, +/obj/structure/sink/directional/east, +/turf/open/floor/iron/freezer, +/area/station/command/heads_quarters/rd) +"fLL" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/dark, +/area/station/security/courtroom) +"fLS" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/test_chambers) +"fLW" = ( +/turf/closed/wall/r_wall, +/area/station/security/prison/work) +"fLX" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/common/night_club/changing_room) +"fLY" = ( +/obj/structure/grille, +/obj/effect/decal/cleanable/dirt, +/obj/structure/window/spawner/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"fMc" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/red, +/turf/open/floor/iron/dark/small, +/area/station/security/brig) +"fMm" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/security/lesser) +"fMp" = ( +/obj/structure/cable, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/wood{ + dir = 4; + layer = 2.8 + }, +/turf/open/floor/wood, +/area/station/service/abandoned_gambling_den) +"fMq" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/junction/flip{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"fMs" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain/private) +"fMx" = ( +/obj/effect/turf_decal/trimline/red/filled/line{ + color = "#DE3A3A"; + dir = 4 + }, +/obj/structure/table/reinforced, +/obj/item/clipboard, +/obj/item/toy/figure/hos, +/obj/machinery/light/directional/west, +/obj/structure/sign/calendar/directional/west, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hos) +"fMz" = ( +/obj/structure/chair/wood{ + dir = 4 + }, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/wood, +/area/station/service/abandoned_gambling_den) +"fMF" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/hop) +"fML" = ( +/obj/structure/closet/crate/wooden{ + name = "Instrument crate" + }, +/obj/item/instrument/piano_synth, +/obj/item/instrument/eguitar, +/obj/item/instrument/harmonica, +/obj/item/instrument/recorder, +/obj/item/instrument/trombone, +/obj/item/instrument/trumpet, +/obj/item/instrument/banjo, +/obj/item/instrument/guitar, +/obj/item/instrument/violin, +/obj/item/instrument/glockenspiel, +/obj/item/instrument/accordion, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/service/theater) +"fMM" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"fMS" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/circuit/green, +/area/station/ai_monitored/turret_protected/ai_upload) +"fMV" = ( +/obj/machinery/ai_slipper, +/obj/effect/landmark/event_spawn, +/mob/living/basic/clown/lube, +/turf/open/floor/noslip, +/area/station/maintenance/gag_room) +"fMW" = ( +/obj/machinery/button/door/incinerator_vent_ordmix{ + pixel_x = 25; + pixel_y = 5 + }, +/obj/machinery/button/ignition/incinerator/ordmix{ + pixel_x = 25; + pixel_y = -5 + }, +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4; + name = "Output Valve" + }, +/obj/effect/turf_decal/stripes{ + dir = 10 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/science/ordnance) +"fNa" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/caution/stand_clear, +/obj/machinery/door/poddoor/shutters{ + id = "toxinsaccess"; + name = "Toxins Storage" + }, +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/storage) +"fNc" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/storage) +"fNd" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/junction/flip{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/science/research) +"fNe" = ( +/obj/item/clothing/head/collectable/welding, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/security/lower) +"fNf" = ( +/obj/structure/stairs/south, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/central/fore) +"fNj" = ( +/obj/machinery/door/airlock/cmo{ + name = "Chief Medical Officer's Quarters" + }, +/obj/effect/mapping_helpers/airlock/access/all/medical/cmo, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/cmo) +"fNr" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/table, +/obj/item/paper/fluff/holodeck/disclaimer, +/obj/item/storage/medkit/regular{ + pixel_x = 3; + pixel_y = 3 + }, +/turf/open/floor/iron/dark/side{ + dir = 9 + }, +/area/station/commons/fitness/recreation) +"fNu" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/disposal/bin, +/obj/structure/noticeboard/directional/east, +/obj/machinery/light/directional/east, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/structure/sign/calendar/directional/south, +/turf/open/floor/wood, +/area/station/command/heads_quarters/nt_rep) +"fNB" = ( +/obj/machinery/power/shuttle_engine/large, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"fNC" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/command/heads_quarters/rd) +"fNF" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 6 + }, +/obj/machinery/medical_kiosk{ + pixel_x = -3 + }, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) +"fNK" = ( +/obj/structure/cable, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/ai_monitored/command/storage/eva/upper) +"fNT" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/science/research) +"fNZ" = ( +/obj/structure/filingcabinet, +/obj/machinery/computer/security/telescreen/entertainment/directional/north, +/obj/machinery/light/directional/east, +/obj/machinery/camera/directional/east{ + c_tag = "Bridge - Captain's Office"; + name = "command camera" + }, +/obj/structure/noticeboard/captain{ + dir = 8; + pixel_x = 30 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/carpet/blue, +/area/station/command/heads_quarters/captain/private) +"fOj" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron/dark/side{ + dir = 5 + }, +/area/station/security/prison/upper) +"fOk" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"fOl" = ( +/obj/machinery/telecomms/server/presets/medical, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 5 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/iron/white/telecomms, +/area/station/tcommsat/server) +"fOp" = ( +/obj/machinery/vending/wardrobe/cargo_wardrobe, +/obj/effect/turf_decal/bot, +/obj/machinery/digital_clock/directional/north, +/turf/open/floor/iron/dark, +/area/station/cargo/office) +"fOr" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"fOt" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/tcommsat/computer) +"fOy" = ( +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/brig) +"fOB" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/item/vending_refill/cola, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"fOE" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/table/reinforced, +/obj/item/clothing/ears/earmuffs{ + pixel_y = 7 + }, +/obj/effect/turf_decal/stripes, +/turf/open/floor/iron/dark, +/area/station/security/range) +"fOI" = ( +/obj/structure/chair/sofa/bench/right, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"fOL" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/station/maintenance/department/science/central) +"fOM" = ( +/obj/effect/turf_decal/bot_white, +/obj/machinery/portable_atmospherics/scrubber/huge, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/storage) +"fON" = ( +/obj/structure/table/reinforced, +/obj/item/storage/part_replacer, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) +"fOR" = ( +/obj/machinery/light/directional/south, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/station/maintenance/department/security/prison_upper) +"fOT" = ( +/obj/structure/window/spawner/directional/east, +/obj/structure/window/spawner/directional/west, +/obj/structure/flora/grass/jungle/a/style_4, +/obj/structure/flora/bush/flowers_br/style_3, +/turf/open/floor/grass, +/area/station/hallway/primary/port) +"fOZ" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer2, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/engineering/atmos) +"fPc" = ( +/obj/machinery/light/small/directional/south, +/obj/machinery/corral_corner{ + mapping_id = "1" + }, +/obj/machinery/corral_corner{ + mapping_id = "3" + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"fPj" = ( +/obj/effect/spawner/random/structure/closet_maintenance, +/obj/structure/sign/warning/vacuum/external/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"fPk" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"fPl" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/flowers_yw, +/turf/open/floor/grass, +/area/station/hallway/primary/central/fore) +"fPm" = ( +/obj/structure/table, +/obj/item/clothing/under/rank/prisoner/skirt{ + pixel_x = -13; + pixel_y = 5 + }, +/obj/item/clothing/under/rank/prisoner{ + pixel_x = -2; + pixel_y = 5 + }, +/obj/item/clothing/under/rank/prisoner/skirt{ + pixel_x = 9; + pixel_y = 5 + }, +/obj/item/clothing/shoes/sneakers/orange{ + pixel_x = -6; + pixel_y = -8 + }, +/obj/item/clothing/shoes/sneakers/orange{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/clothing/shoes/sneakers/orange{ + pixel_x = -6; + pixel_y = -2 + }, +/obj/item/clothing/shoes/sneakers/orange{ + pixel_x = -6; + pixel_y = 10 + }, +/obj/item/clothing/under/rank/prisoner{ + pixel_x = 8; + pixel_y = 5 + }, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/prison) +"fPo" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"fPr" = ( +/obj/structure/table/wood/fancy/red, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/item/paper_bin{ + pixel_y = 6 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/wood, +/area/station/security/courtroom) +"fPu" = ( +/obj/structure/filingcabinet/chestdrawer/wheeled, +/obj/machinery/newscaster/directional/north, +/turf/open/floor/iron/dark, +/area/station/service/barber) +"fPv" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 4 + }, +/obj/structure/flora/bush/fullgrass, +/obj/structure/flora/bush/flowers_br, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"fPx" = ( +/obj/structure/chair/office{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/security/checkpoint) +"fPB" = ( +/obj/machinery/door/firedoor, +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "roboticsprivacy"; + name = "Robotics Shutters" + }, +/obj/item/folder, +/obj/item/pen, +/obj/machinery/door/window/left/directional/east{ + name = "Robotics Desk"; + req_access = list("robotics") + }, +/turf/open/floor/iron/dark, +/area/station/science/robotics/lab) +"fQc" = ( +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/structure/cable, +/obj/effect/spawner/random/maintenance/two, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"fQd" = ( +/turf/closed/wall, +/area/station/commons/dorms) +"fQf" = ( +/obj/machinery/button/door/directional/west{ + id = "QMdoor"; + name = "Door lock"; + normaldoorcontrol = 1; + pixel_x = -32; + pixel_y = -6; + req_access = list("qm"); + specialfunctions = 4 + }, +/obj/machinery/button/door{ + id = "qmprivacy"; + name = "Privacy Control"; + pixel_x = -32; + pixel_y = 7; + req_access = list("qm") + }, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/qm) +"fQk" = ( +/obj/effect/spawner/structure/window/reinforced/tinted, +/turf/open/floor/plating, +/area/station/commons/dorms) +"fQu" = ( +/obj/effect/turf_decal/trimline/purple/filled/line, +/obj/machinery/light_switch/directional/south, +/obj/machinery/light/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/science/research) +"fQy" = ( +/obj/structure/chair/sofa/corp{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/carpet/lone, +/area/station/command/meeting_room/council) +"fQF" = ( +/obj/structure/window/spawner/directional/west, +/obj/structure/window/spawner/directional/north, +/turf/open/floor/wood, +/area/station/service/theater) +"fQH" = ( +/obj/structure/cable, +/obj/item/surgical_drapes, +/turf/open/floor/plating, +/area/station/maintenance/abandon_surgery) +"fQT" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 5 + }, +/turf/open/floor/iron/telecomms, +/area/station/tcommsat/server) +"fQX" = ( +/obj/item/kirbyplants/organic/plant21, +/obj/machinery/light/directional/west, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/carpet, +/area/station/service/chapel) +"fQZ" = ( +/obj/structure/chair/office{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/qm) +"fRf" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/flowers_pp, +/turf/open/floor/grass, +/area/station/service/hydroponics) +"fRi" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"fRk" = ( +/obj/machinery/space_heater, +/obj/machinery/atmospherics/pipe/smart/simple/general/visible{ + dir = 6 + }, +/turf/open/floor/iron/dark, +/area/station/security/execution/education) +"fRn" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "Mix To Incinerator" + }, +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/iron/smooth_corner, +/area/station/maintenance/disposal/incinerator) +"fRq" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron/white, +/area/station/science/research) +"fRs" = ( +/obj/structure/closet/secure_closet/personal/patient, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/medical/aslyum) +"fRu" = ( +/obj/structure/mirror/directional/north, +/obj/machinery/light/small/directional/north, +/turf/open/floor/carpet/black, +/area/station/security/prison) +"fRw" = ( +/obj/structure/table, +/obj/item/stock_parts/subspace/filter, +/obj/item/stock_parts/subspace/filter, +/obj/item/stock_parts/subspace/filter, +/obj/item/stock_parts/subspace/filter, +/obj/item/stock_parts/subspace/filter, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tcomms) +"fRy" = ( +/obj/item/clipboard, +/obj/item/folder/yellow, +/obj/machinery/light/directional/south, +/obj/structure/table/reinforced, +/obj/item/gps, +/obj/item/gps, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva) +"fRA" = ( +/obj/structure/cable, +/obj/effect/landmark/event_spawn, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"fRD" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/mask/gas/sechailer{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/mask/gas/sechailer, +/obj/item/clothing/mask/gas/sechailer{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/flashlight/seclite, +/obj/item/flashlight/seclite, +/obj/item/flashlight/seclite, +/obj/item/key/security, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/trimline/red/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured, +/area/station/ai_monitored/security/armory) +"fRM" = ( +/obj/effect/turf_decal/trimline/purple/filled/corner{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron/white, +/area/station/science/research) +"fRN" = ( +/obj/machinery/barsign, +/turf/closed/wall, +/area/station/service/bar/atrium) +"fRV" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/start/hangover, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"fSk" = ( +/obj/structure/table/glass, +/obj/item/clipboard, +/obj/item/toy/figure/engineer, +/turf/open/floor/iron, +/area/station/engineering/break_room) +"fSo" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 10 + }, +/turf/open/space/basic, +/area/space/nearstation) +"fSq" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/service/library) +"fSw" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 4 + }, +/obj/structure/reflector/box, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) +"fSC" = ( +/obj/structure/railing{ + dir = 9 + }, +/obj/effect/landmark/start/hangover, +/turf/open/floor/carpet/lone, +/area/station/service/bar/atrium) +"fSM" = ( +/obj/structure/chair/wood{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"fSN" = ( +/turf/open/floor/iron/stairs/right, +/area/station/hallway/primary/upper) +"fTa" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/dorms) +"fTd" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"fTe" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"fTh" = ( +/obj/structure/reagent_dispensers/plumbed{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"fTl" = ( +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/fitness) +"fTv" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/flowers_yw, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"fTz" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/port) +"fTA" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/medical/virology) +"fTD" = ( +/obj/machinery/computer/crew{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) +"fTF" = ( +/obj/machinery/light/small/directional/east, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/iron, +/area/station/science/xenobiology/control) +"fTL" = ( +/obj/structure/cable, +/obj/structure/railing{ + dir = 4 + }, +/obj/structure/railing, +/turf/open/floor/iron/white/corner{ + dir = 1 + }, +/area/station/science/xenobiology) +"fTM" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "bridgewindows"; + name = "Bridge View Blast Door" + }, +/obj/structure/cable, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Captainprivacy"; + name = "Privacy Shutters" + }, +/turf/open/floor/plating, +/area/station/command/heads_quarters/captain) +"fTN" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"fTV" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"fUa" = ( +/obj/machinery/door/airlock/captain{ + name = "Captain's Quarters" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/command/captain, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain/private) +"fUf" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/carpet/lone, +/area/station/command/meeting_room/council) +"fUp" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/station/hallway/primary/port) +"fUs" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "Xeno11"; + name = "Containment Breach Blast Door" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/science/xenobiology) +"fUt" = ( +/obj/structure/table, +/obj/item/paper_bin/construction, +/obj/item/airlock_painter, +/obj/machinery/airalarm/directional/east, +/obj/item/rcl/pre_loaded, +/obj/machinery/newscaster/directional/south, +/turf/open/floor/iron, +/area/station/commons/storage/art) +"fUC" = ( +/obj/machinery/light/floor/has_bulb, +/turf/open/floor/plating, +/area/station/science/auxlab/firing_range) +"fUD" = ( +/obj/effect/spawner/random/entertainment/arcade{ + dir = 4 + }, +/obj/structure/window/spawner/directional/west, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/eighties, +/area/station/maintenance/abandon_arcade) +"fUU" = ( +/obj/machinery/vending/games, +/turf/open/floor/eighties/red, +/area/station/common/arcade) +"fUV" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/service/hydroponics) +"fUZ" = ( +/turf/open/floor/iron/white, +/area/station/science/xenobiology/hallway) +"fVb" = ( +/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor, +/area/station/engineering/main) +"fVd" = ( +/obj/machinery/camera/directional/west{ + c_tag = "Recreation - Gym Upper"; + name = "hallway camera" + }, +/obj/machinery/light_switch/directional/west, +/turf/open/floor/iron, +/area/station/commons/fitness) +"fVl" = ( +/obj/effect/turf_decal/trimline/purple/filled/corner{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology/control) +"fVn" = ( +/obj/effect/turf_decal/trimline/blue/line{ + dir = 5 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"fVs" = ( +/obj/structure/closet, +/obj/item/clothing/under/rank/prisoner/highsec, +/obj/item/clothing/under/rank/prisoner/lowsec, +/obj/item/clothing/under/rank/prisoner/skirt/protcust, +/turf/open/floor/iron, +/area/station/maintenance/abandon_holding_cell) +"fVx" = ( +/obj/item/kirbyplants/random, +/obj/machinery/camera/directional/south{ + c_tag = "Command - Representative's Quarters"; + name = "command camera" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/machinery/digital_clock/directional/south, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/nt_rep) +"fVz" = ( +/obj/item/kirbyplants/random, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/medical/psychology) +"fVE" = ( +/obj/item/stack/ore/iron, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"fVH" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"fVN" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/bed{ + dir = 1; + pixel_y = 8 + }, +/obj/item/bedsheet{ + dir = 1; + pixel_y = 8 + }, +/obj/machinery/camera/autoname/directional/west, +/turf/open/floor/iron/dark, +/area/station/security/brig) +"fVQ" = ( +/obj/machinery/light/small/directional/north, +/obj/effect/spawner/random/vending/colavend, +/turf/open/floor/iron/cafeteria, +/area/station/maintenance/abandon_diner) +"fVS" = ( +/obj/structure/chair/stool/directional/west, +/obj/structure/cable, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/prison/visit) +"fVT" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/iron/smooth, +/area/station/cargo/storage) +"fVV" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/station/maintenance/department/security/lower) +"fVW" = ( +/obj/structure/curtain/cloth, +/obj/machinery/duct, +/turf/open/floor/iron/freezer, +/area/station/common/locker_room_shower) +"fVX" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/machinery/light/directional/east, +/obj/machinery/vending/hydronutrients, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics/garden) +"fWi" = ( +/turf/open/floor/iron, +/area/station/security/office) +"fWk" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + location = "Medbay" + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/door/window/left/directional/east{ + req_access = list("medical"); + name = "Medical Delivery" + }, +/turf/open/floor/iron/dark, +/area/station/medical/medbay/central) +"fWn" = ( +/obj/machinery/light/small/directional/east, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) +"fWo" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/wood, +/area/station/hallway/primary/central) +"fWt" = ( +/obj/structure/table/reinforced, +/obj/item/folder/red, +/obj/item/binoculars, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/security/warden) +"fWA" = ( +/obj/machinery/door/airlock/maintenance, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"fWB" = ( +/obj/machinery/light_switch/directional/east, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/eighties/red, +/area/station/common/arcade) +"fWI" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1; + name = "Waste connector port" + }, +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/iron/dark/corner{ + dir = 1 + }, +/area/station/hallway/primary/aft) +"fWO" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/abandon_diner) +"fWT" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/hallway/secondary/construction) +"fXc" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/obj/machinery/status_display/supply{ + pixel_x = 32 + }, +/obj/machinery/light/directional/east, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/cargo/lobby) +"fXd" = ( +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/science/ordnance/storage) +"fXh" = ( +/obj/structure/cable, +/obj/effect/landmark/start/medical_doctor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) +"fXi" = ( +/obj/structure/table/reinforced, +/obj/item/radio{ + pixel_x = -7; + pixel_y = 12 + }, +/obj/item/radio{ + pixel_y = 12 + }, +/obj/item/radio{ + pixel_x = 7; + pixel_y = 12 + }, +/obj/item/flashlight{ + pixel_x = -5; + pixel_y = 3 + }, +/obj/item/flashlight{ + pixel_x = -1; + pixel_y = 3 + }, +/obj/item/flashlight{ + pixel_x = 3; + pixel_y = 3 + }, +/turf/open/floor/iron/dark/side, +/area/station/ai_monitored/command/storage/eva/upper) +"fXl" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/food_packaging, +/turf/open/floor/carpet, +/area/station/maintenance/abandon_psych) +"fXr" = ( +/obj/structure/table/reinforced, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/iron, +/area/station/security/checkpoint) +"fXC" = ( +/obj/structure/cable, +/turf/open/floor/noslip, +/area/station/maintenance/gag_room) +"fXE" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless, +/area/station/maintenance/port/upper) +"fXN" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white/corner{ + dir = 8 + }, +/area/station/hallway/secondary/entry) +"fXO" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/obj/machinery/light/directional/west, +/obj/structure/sign/poster/random/directional/west, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) +"fXS" = ( +/obj/structure/reagent_dispensers/watertank{ + pixel_y = -1 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"fXT" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/commons/dorms/room7) +"fYj" = ( +/obj/machinery/door/firedoor, +/obj/structure/table/reinforced, +/obj/item/folder, +/obj/item/pen, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rnd"; + name = "Research Lab Shutters" + }, +/obj/machinery/door/window/left/directional/south{ + req_access = list("science"); + name = "Research Lab Desk" + }, +/turf/open/floor/iron/dark, +/area/station/science/lab) +"fYm" = ( +/turf/closed/wall, +/area/station/science/auxlab/firing_range) +"fYo" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/cargo/drone_bay) +"fYp" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/airalarm/directional/north, +/obj/machinery/duct, +/turf/open/floor/iron/stairs{ + dir = 4 + }, +/area/station/maintenance/disposal/incinerator) +"fYr" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/circuit, +/area/station/security/mechbay) +"fYz" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"fYG" = ( +/obj/structure/window/spawner/directional/north, +/obj/structure/chair/sofa/right/brown, +/obj/effect/landmark/start/assistant, +/obj/machinery/light/directional/west, +/obj/machinery/camera/directional/east{ + c_tag = "Bar - Fore"; + dir = 8; + name = "service camera" + }, +/obj/machinery/status_display/ai/directional/west, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"fYJ" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"fYK" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/iron/dark, +/area/station/security/interrogation) +"fYL" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/iron/smooth, +/area/station/cargo/storage) +"fYP" = ( +/obj/structure/table/wood/fancy/royalblack, +/obj/item/clipboard{ + pixel_y = 19 + }, +/obj/item/toy/figure/qm{ + pixel_y = 18 + }, +/obj/machinery/keycard_auth/directional/west, +/obj/machinery/light/directional/west, +/obj/machinery/fax{ + fax_name = "Quartermaster's Office"; + name = "Quartermaster's Fax Machine"; + pixel_y = 3 + }, +/turf/open/floor/carpet/royalblack, +/area/station/command/heads_quarters/qm) +"fYU" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/security/prison/upper) +"fYW" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/turf/open/floor/carpet/blue, +/area/station/medical/break_room) +"fZc" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/door/airlock/silver{ + name = "Catering Area" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/command/captain_dining) +"fZd" = ( +/obj/effect/turf_decal/stripes{ + dir = 5 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/machinery/computer/teleporter, +/obj/machinery/newscaster/directional/east, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/command/gateway) +"fZe" = ( +/obj/machinery/duct, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/service/hydroponics/garden) +"fZg" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/plating, +/area/station/maintenance/disposal) +"fZh" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/station/maintenance/central) +"fZs" = ( +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/structure/window/spawner/directional/south, +/obj/structure/flora/bush/jungle/b, +/turf/open/floor/grass, +/area/station/common/night_club) +"fZv" = ( +/obj/effect/turf_decal/bot_white, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/entry) +"fZC" = ( +/obj/structure/chair/pew/left{ + dir = 8 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/iron/dark, +/area/station/service/chapel) +"fZE" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"fZH" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/engineering/atmos/test_chambers) +"fZI" = ( +/turf/open/space/basic, +/area/space) +"fZJ" = ( +/obj/machinery/light/small/broken/directional/east, +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/start/hangover, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/bar) +"fZK" = ( +/obj/machinery/telecomms/server/presets/security, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 10 + }, +/turf/open/floor/iron/dark/telecomms, +/area/station/tcommsat/server) +"fZL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/dorms) +"fZR" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/curtain, +/turf/open/floor/plating, +/area/station/medical/virology) +"fZT" = ( +/obj/machinery/oven/range, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/dark, +/area/station/security/prison/mess) +"fZW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/spawner/random/structure/steam_vent, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"gae" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/science/upper) +"gag" = ( +/obj/effect/spawner/random/trash/mess, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/central) +"gah" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"gai" = ( +/obj/structure/chair, +/obj/item/radio/intercom/directional/west, +/obj/effect/landmark/start/paramedic, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/break_room) +"gaw" = ( +/obj/machinery/button/door{ + id = "xeno11"; + name = "Secure Pen Containment Breach Shutters"; + pixel_x = -30; + pixel_y = 7; + req_access = list("xenobiology") + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/obj/machinery/button/door{ + id = "XenoOffice"; + name = "Xenobiology Controll Room Lockdown"; + pixel_x = -30; + pixel_y = -6 + }, +/obj/structure/table/reinforced, +/turf/open/floor/iron/dark, +/area/station/science/xenobiology/control) +"gax" = ( +/obj/structure/table_frame, +/obj/machinery/light/small/directional/east, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"gaz" = ( +/obj/effect/spawner/random/structure/closet_maintenance, +/obj/machinery/light/small/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"gaA" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"gaE" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"gaG" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "cargoload" + }, +/obj/machinery/door/poddoor{ + id = "cargoload"; + name = "Supply Dock Loading Door" + }, +/turf/open/floor/iron/dark, +/area/station/cargo/storage) +"gaK" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/rus_surgery) +"gaM" = ( +/obj/structure/girder, +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/station/maintenance/department/eva) +"gaP" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/security/prison/workout) +"gaX" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/commons/dorms) +"gbc" = ( +/obj/effect/turf_decal/stripes{ + dir = 5 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"gbf" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes, +/obj/machinery/shieldgen, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/engineering/storage) +"gbh" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/item/folder, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/maintenance/xenobio_disposals) +"gbj" = ( +/obj/docking_port/stationary/random{ + name = "lavaland"; + shuttle_id = "pod_lavaland" + }, +/turf/open/floor/iron/dark/smooth_large/airless, +/area/space/nearstation) +"gbv" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/disposal/bin, +/obj/machinery/light_switch/directional/south, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/service/electronic_marketing_den) +"gbw" = ( +/obj/effect/spawner/structure/window, +/obj/structure/curtain/bounty, +/turf/open/floor/plating, +/area/station/service/library/printer) +"gby" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 1 + }, +/obj/structure/flora/bush/fullgrass, +/obj/structure/flora/bush/flowers_br, +/turf/open/floor/grass, +/area/station/command/heads_quarters/captain) +"gbC" = ( +/obj/structure/rack, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/item/reagent_containers/condiment/cherryjelly{ + pixel_x = -6 + }, +/obj/item/reagent_containers/condiment/bbqsauce{ + pixel_x = 5 + }, +/obj/item/reagent_containers/condiment/mayonnaise{ + pixel_y = -4 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/secondary/service) +"gbF" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"gbI" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/machinery/light/small/broken/directional/south, +/turf/open/floor/iron/dark, +/area/station/maintenance/abandon_exam/cat) +"gbM" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hallup18"; + location = "hallup17" + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"gbQ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"gbS" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/cargo/miningdock) +"gbV" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/dorms) +"gce" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/curtain/bounty/start_closed, +/turf/open/floor/plating, +/area/station/cargo/miningdock) +"gcg" = ( +/obj/structure/lattice/catwalk, +/turf/open/space/openspace, +/area/space/nearstation) +"gcn" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"gcr" = ( +/obj/machinery/airalarm/directional/north, +/obj/machinery/newscaster/directional/east, +/obj/machinery/light/directional/north, +/obj/machinery/smartfridge/organ, +/turf/open/floor/iron/dark/small, +/area/station/medical/morgue) +"gcs" = ( +/obj/structure/table/reinforced, +/obj/item/clipboard, +/obj/item/mining_voucher, +/obj/effect/turf_decal/tile/dark_blue/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"gct" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/service/barber) +"gcv" = ( +/obj/effect/turf_decal/vg_decals/numbers/nine{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/shuttle/evac/airless, +/area/station/solars/starboard/aft) +"gcy" = ( +/obj/machinery/door/airlock/bathroom{ + name = "Restroom"; + req_access = list("hos") + }, +/obj/machinery/duct, +/turf/open/floor/iron/freezer, +/area/station/command/heads_quarters/hos) +"gcF" = ( +/obj/structure/lattice/catwalk, +/turf/open/openspace, +/area/station/commons/dorms) +"gcP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/mess, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/dark/small, +/area/station/security/prison/upper) +"gcU" = ( +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/port) +"gcX" = ( +/obj/structure/filingcabinet/medical, +/obj/machinery/light/directional/north, +/obj/structure/noticeboard/directional/north, +/obj/machinery/button/curtain{ + id = "Psychologistcurtains"; + pixel_x = -23 + }, +/turf/open/floor/wood, +/area/station/medical/psychology) +"gcY" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/closet/secure_closet/personal, +/turf/open/floor/iron/dark, +/area/station/engineering/break_room) +"gda" = ( +/obj/effect/turf_decal/tile/red, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"gdj" = ( +/turf/closed/wall/r_wall, +/area/station/security/lockers) +"gdl" = ( +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/structure/disposaloutlet{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/box, +/turf/open/floor/plating, +/area/station/maintenance/xenobio_disposals) +"gdn" = ( +/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden, +/obj/machinery/atmospherics/pipe/smart/simple/supply/hidden/layer4{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/floor/iron, +/area/station/engineering/storage) +"gdq" = ( +/obj/effect/landmark/blobstart, +/turf/open/floor/iron, +/area/station/commons/vacant_room/commissary) +"gdx" = ( +/obj/effect/landmark/blobstart, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"gdD" = ( +/obj/effect/turf_decal/stripes/full, +/obj/machinery/camera/directional/south{ + c_tag = " Prison - Disposals"; + name = "Perma Disposals"; + network = list("ss13","prison") + }, +/obj/structure/disposaloutlet{ + dir = 1 + }, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plating/airless, +/area/station/security/prison/mess) +"gdH" = ( +/obj/machinery/door/airlock/highsecurity{ + name = "Bunker Safehouse" + }, +/obj/machinery/door/firedoor/heavy, +/obj/effect/mapping_helpers/airlock/access/all/command/general, +/turf/open/floor/iron/smooth_edge, +/area/station/command/secure_bunker) +"gdJ" = ( +/obj/machinery/photocopier, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/turf/open/floor/carpet/red, +/area/station/service/library/abandoned) +"gdK" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/obj/machinery/camera/directional/west{ + c_tag = "Medbay - Aux Surgery"; + name = "medbay camera"; + network = list("ss13","medbay") + }, +/obj/machinery/newscaster/directional/west, +/turf/open/floor/iron/white, +/area/station/medical/surgery) +"gdL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/wood{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/service/abandoned_gambling_den) +"gdN" = ( +/obj/structure/chair/sofa/bench/right{ + dir = 4; + pixel_x = -5 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/primary/central/aft) +"gdP" = ( +/obj/structure/chair/wood{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/service/chapel/office) +"gdX" = ( +/obj/machinery/atmospherics/components/unary/artifact_heatingpad{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/science/explab) +"gef" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"gel" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/crate{ + icon_state = "crateopen" + }, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"gep" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/carpet/royalblack, +/area/station/service/chapel/office) +"ger" = ( +/obj/machinery/door/airlock/external{ + space_dir = 8 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "greater-sec-maint-cluster" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/external, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"ges" = ( +/obj/structure/window/reinforced/tinted/frosted/spawner/directional/west, +/obj/structure/window/reinforced/tinted/frosted/spawner/directional/east, +/obj/machinery/shower/directional/south, +/obj/structure/curtain/cloth, +/obj/item/soap/deluxe, +/obj/item/bikehorn/rubberducky, +/obj/structure/drain, +/turf/open/floor/iron/freezer, +/area/station/command/heads_quarters/captain/private) +"geu" = ( +/obj/machinery/camera/directional/north{ + c_tag = " Prison - West"; + dir = 2; + network = list("ss13","prison") + }, +/obj/effect/turf_decal/trimline/red/filled/line, +/obj/effect/turf_decal/trimline/red/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/side, +/area/station/security/prison/upper) +"geF" = ( +/obj/machinery/door/airlock/research/glass{ + name = "Robotics Workshop" + }, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/science/robotics, +/turf/open/floor/iron/dark, +/area/station/science/robotics) +"geG" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/science/xenobiology/control) +"geH" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain/private) +"geL" = ( +/obj/effect/turf_decal/stripes/box, +/obj/machinery/camera/directional/west{ + c_tag = "Security - Mechbay" + }, +/turf/open/floor/iron/recharge_floor, +/area/station/security/mechbay) +"geQ" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable, +/turf/open/openspace, +/area/station/maintenance/department/medical/central) +"geY" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/service/hydroponics) +"geZ" = ( +/obj/effect/turf_decal/siding/dark{ + dir = 4 + }, +/turf/open/floor/glass/reinforced/airless, +/area/space/nearstation) +"gfk" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/sorting/mail{ + name = "Detective Junction" + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"gfo" = ( +/obj/structure/cable, +/turf/open/floor/plating/airless, +/area/station/maintenance/eva_shed/starboard) +"gfr" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hall2"; + location = "hall1" + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"gfB" = ( +/obj/structure/table, +/obj/item/wrench, +/turf/open/floor/iron, +/area/station/maintenance/solars/port/fore) +"gfF" = ( +/turf/open/floor/plating, +/area/station/cargo/storage) +"gfI" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/rack, +/obj/item/reagent_containers/condiment/quality_oil{ + pixel_x = -6 + }, +/obj/item/reagent_containers/condiment/ketchup{ + pixel_x = 5 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/secondary/service) +"gfL" = ( +/turf/closed/wall/r_wall, +/area/station/command/heads_quarters/captain) +"gfW" = ( +/obj/structure/door_assembly/door_assembly_hatch, +/obj/structure/barricade/wooden/crude, +/obj/structure/cable, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"ggh" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/machinery/smartfridge/extract/preloaded, +/turf/open/floor/iron, +/area/station/science/xenobiology) +"ggl" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"ggp" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/medical/storage) +"ggt" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron/white/side{ + dir = 1 + }, +/area/station/science/xenobiology) +"ggy" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/station/security/prison/upper) +"ggC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/dorms) +"ggF" = ( +/obj/structure/closet/cardboard, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"ggK" = ( +/obj/structure/chair/comfy/brown{ + color = "#A46106"; + dir = 8 + }, +/turf/open/floor/wood, +/area/station/commons/dorms/room7) +"ggP" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"ggY" = ( +/obj/structure/lattice/catwalk, +/obj/effect/landmark/carpspawn, +/obj/structure/cable, +/turf/open/space/basic, +/area/space/nearstation) +"gha" = ( +/obj/structure/wrestling_corner{ + dir = 1 + }, +/turf/open/floor/iron/dark/side{ + dir = 5 + }, +/area/station/common/wrestling/arena) +"ghc" = ( +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/commons/dorms/room5) +"ghg" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/box, +/turf/open/floor/iron/dark/textured_large, +/area/station/security/office) +"ghj" = ( +/obj/structure/closet/secure_closet/medical3, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 8 + }, +/obj/machinery/light/small/directional/east, +/turf/open/floor/iron, +/area/station/medical/break_room) +"ghm" = ( +/obj/structure/chair/office{ + dir = 8 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/iron/dark, +/area/station/common/tailoring) +"ghq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/lattice, +/turf/open/openspace, +/area/station/maintenance/clown_chamber) +"ghs" = ( +/turf/open/floor/grass, +/area/station/common/night_club/back_stage) +"ght" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/item/newspaper, +/turf/open/floor/carpet, +/area/station/common/wrestling/lobby) +"ghu" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock/public/glass{ + name = "Central Upper Hallway" + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"ghD" = ( +/obj/machinery/light/floor/has_bulb, +/turf/open/floor/iron/dark/textured_large, +/area/station/hallway/secondary/exit) +"ghL" = ( +/obj/effect/spawner/random/trash/cigbutt, +/obj/structure/disposalpipe/segment, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/maintenance/thruster_room/central) +"ghM" = ( +/obj/structure/fluff/divine/convertaltar{ + name = "Altar" + }, +/obj/item/book/bible, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/security/execution/education) +"ghV" = ( +/obj/effect/turf_decal/trimline/red/filled/warning{ + dir = 5 + }, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"gib" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/wood, +/area/station/security/detectives_office/private_investigators_office) +"gij" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/item/beacon, +/turf/open/floor/iron, +/area/station/command/bridge) +"gim" = ( +/obj/effect/turf_decal/bot, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/station/security/prison/upper) +"gir" = ( +/obj/effect/turf_decal/stripes/corner, +/obj/effect/turf_decal/stripes/red/corner, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/light_switch/directional/east{ + pixel_y = 6 + }, +/turf/open/floor/mineral/plastitanium, +/area/station/science/robotics/mechbay) +"git" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/station/service/cafeteria) +"giB" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/science/circuits) +"giS" = ( +/obj/effect/spawner/random/trash/graffiti, +/turf/closed/wall, +/area/station/maintenance/clown_chamber) +"giV" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/purple/half, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white/side, +/area/station/science) +"gjd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"gjg" = ( +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/command/meeting_room/council) +"gjh" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/effect/spawner/random/trash/mess, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/science/tele_sci) +"gji" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/power/shieldwallgen, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/engineering/storage) +"gjk" = ( +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) +"gjl" = ( +/obj/machinery/conveyor/inverted{ + dir = 6; + id = "Luggagebelt" + }, +/obj/machinery/light/small/red/dim/directional/north, +/turf/open/floor/plating, +/area/station/security/checkpoint) +"gjr" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Mix to Engine" + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"gjt" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/supply/visible, +/turf/open/floor/iron, +/area/station/maintenance/department/engineering/atmos_aux_port) +"gju" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/cup/glass/bottle/whiskey{ + pixel_x = 10; + pixel_y = 13 + }, +/obj/item/storage/fancy/cigarettes/cigars/cohiba{ + pixel_x = -5; + pixel_y = 3 + }, +/obj/item/storage/fancy/cigarettes/cigars/cohiba{ + pixel_x = -5; + pixel_y = 7 + }, +/obj/item/reagent_containers/cup/glass/drinkingglass/shotglass{ + pixel_x = 10; + pixel_y = 5 + }, +/obj/item/reagent_containers/cup/glass/drinkingglass/shotglass{ + pixel_x = 6; + pixel_y = 3 + }, +/obj/item/lighter{ + pixel_x = -5 + }, +/turf/open/floor/carpet/green, +/area/station/command/heads_quarters/nt_rep) +"gjv" = ( +/obj/structure/sign/painting/library{ + pixel_y = 32 + }, +/obj/machinery/light/small/directional/north, +/turf/open/floor/carpet, +/area/station/security/prison/rec) +"gjC" = ( +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/dark, +/area/station/cargo/warehouse) +"gjE" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/security/range) +"gjF" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron, +/area/station/command/bridge) +"gjW" = ( +/obj/structure/railing{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/layer_manifold/supply/visible, +/turf/open/floor/iron, +/area/station/maintenance/department/engineering/atmos_aux_port) +"gkd" = ( +/obj/effect/decal/cleanable/dirt, +/mob/living/basic/spider/growing/spiderling, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"gkh" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/field/generator, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/engineering/storage) +"gkk" = ( +/obj/item/radio/intercom/directional/south, +/obj/effect/turf_decal/trimline/red/filled/line, +/obj/effect/turf_decal/trimline/red/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/side, +/area/station/security/prison/upper) +"gkl" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/south, +/obj/structure/window/spawner/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"gkm" = ( +/turf/closed/wall/r_wall, +/area/station/ai_monitored/security/armory) +"gko" = ( +/turf/closed/wall/r_wall, +/area/station/maintenance/department/security) +"gkx" = ( +/obj/item/kirbyplants/random, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"gky" = ( +/obj/machinery/computer/atmos_control/nitrous_tank, +/obj/structure/window/spawner/directional/north, +/obj/effect/turf_decal/tile/red/real_red/diagonal_centre, +/turf/open/floor/iron/cafeteria, +/area/station/engineering/atmos) +"gkz" = ( +/obj/item/kirbyplants/random, +/obj/machinery/light/small/directional/east, +/turf/open/floor/iron/dark, +/area/station/medical/medbay/central) +"gkL" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/upper) +"gkN" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/maintenance/central) +"gkQ" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"gkT" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/engineering/atmos/test_chambers) +"gkY" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/maintenance/central) +"gla" = ( +/obj/machinery/door/poddoor/shutters{ + id = "evashutters4"; + name = "External Service Bay Shutters" + }, +/obj/machinery/button/door/directional/north{ + id = "evashutters4"; + name = "E.V.A. External Shutters"; + req_access = list("command") + }, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"glc" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron/dark/side, +/area/station/hallway/primary/central/fore) +"gle" = ( +/obj/machinery/door/airlock/freezer{ + name = "Prison Cold Room" + }, +/turf/open/floor/iron/dark, +/area/station/security/prison/mess) +"glg" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"glk" = ( +/obj/structure/table/wood/fancy/blue, +/obj/item/book/manual/wiki/surgery{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/book/manual/wiki/medicine, +/obj/item/computer_disk/medical, +/obj/item/computer_disk/medical, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/cmo) +"glr" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Science Maintenance" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/science/research, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"glt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/wrench, +/turf/open/floor/iron, +/area/station/hallway/secondary/construction) +"gly" = ( +/obj/structure/closet/crate/wooden, +/obj/item/stack/tile/iron{ + amount = 6 + }, +/obj/effect/turf_decal/vg_decals/numbers/three, +/obj/effect/turf_decal/trimline/red/filled/warning{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"glz" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"glD" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Hydroponics Animal Pen" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/service/hydroponics, +/obj/structure/cable, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/service/hydroponics) +"glI" = ( +/obj/effect/turf_decal/bot, +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 5 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) +"glJ" = ( +/obj/item/reagent_containers/cup/bucket/wooden{ + name = "waste bucket" + }, +/turf/open/floor/plating, +/area/station/security/prison/upper) +"glK" = ( +/turf/open/floor/carpet/black, +/area/station/service/barber) +"glL" = ( +/obj/structure/railing, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/light/floor/has_bulb, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/gold, +/area/station/common/wrestling/arena) +"glP" = ( +/obj/structure/table/glass, +/obj/item/reagent_containers/cup/glass/coffee, +/turf/open/floor/iron/dark, +/area/station/engineering/transit_tube) +"glS" = ( +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/station/commons/dorms/room3) +"glU" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"glW" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/machinery/light/directional/west, +/turf/open/floor/iron/white, +/area/station/medical/surgery) +"glX" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/station/hallway/primary/port) +"gma" = ( +/turf/open/floor/plating, +/area/station/maintenance/port/central) +"gmc" = ( +/obj/machinery/composters, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/machinery/light/directional/north, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/common/night_club/changing_room) +"gme" = ( +/obj/structure/table, +/obj/item/stack/sheet/iron/fifty, +/obj/item/stack/sheet/iron/fifty, +/obj/item/stack/sheet/iron/fifty, +/obj/item/stack/sheet/iron/fifty, +/obj/item/stack/sheet/iron/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/wrench, +/obj/item/crowbar, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/mineral/plastitanium, +/area/station/science/robotics/lab) +"gmf" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"gmi" = ( +/obj/structure/chair/stool/bar/directional{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/security/prison/mess) +"gml" = ( +/obj/structure/cable, +/turf/open/floor/iron/shuttle/evac/airless, +/area/station/solars/starboard/aft) +"gmr" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/aux_eva) +"gms" = ( +/obj/machinery/vending/games, +/obj/machinery/light/directional/west, +/turf/open/floor/iron/white, +/area/station/medical/aslyum) +"gmt" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/machinery/fax{ + fax_name = "Bridge"; + name = "Bridge Fax Machine"; + pixel_y = 3 + }, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"gmv" = ( +/obj/machinery/duct, +/obj/effect/spawner/random/trash/mess, +/turf/open/floor/carpet, +/area/station/commons/dorms/vacantroom) +"gmw" = ( +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron/dark/corner{ + dir = 4 + }, +/area/station/hallway/primary/central/aft) +"gmC" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple/layer4{ + dir = 9 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/layer2{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/science/ordnance/freezerchamber) +"gmN" = ( +/obj/structure/chair/sofa/bench/left, +/obj/machinery/light/small/directional/north, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/prison/shower) +"gmU" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/maintenance/solars/starboard/fore) +"gmZ" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/chair/sofa/bench/left{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron/cafeteria, +/area/station/hallway/secondary/entry) +"gna" = ( +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white/side{ + dir = 5 + }, +/area/station/medical/medbay/lobby) +"gnb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/landmark/start/hangover, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"gne" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"gni" = ( +/obj/machinery/door/airlock/medical{ + name = "Surgery B" + }, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/medical/surgery, +/turf/open/floor/iron/white, +/area/station/medical/surgery) +"gnj" = ( +/turf/open/floor/iron/stairs/right{ + dir = 4 + }, +/area/station/hallway/primary/upper) +"gnn" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer, +/obj/effect/turf_decal/trimline/purple/filled, +/obj/structure/sign/warning/cold_temp/directional/east, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"gno" = ( +/obj/structure/closet/cardboard, +/obj/effect/spawner/random/trash/food_packaging, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"gns" = ( +/obj/structure/cable, +/obj/effect/landmark/start/captain, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain/private) +"gnt" = ( +/obj/structure/noticeboard/directional/east, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/station/medical/power_station) +"gnw" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/obj/structure/cable, +/obj/structure/extinguisher_cabinet/directional/north, +/obj/machinery/light/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/science/research) +"gny" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/small, +/area/station/security/brig) +"gnB" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) +"gnD" = ( +/obj/machinery/newscaster/directional/north, +/obj/structure/table, +/obj/item/restraints/handcuffs, +/obj/item/assembly/flash/handheld, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/line, +/turf/open/floor/iron/dark/textured_edge{ + dir = 1 + }, +/area/station/security/lockers) +"gnI" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "atmoslock"; + name = "Atmospherics Lockdown Blast Door" + }, +/turf/open/floor/plating, +/area/station/engineering/atmos/office) +"gnL" = ( +/obj/effect/turf_decal/siding/dark, +/turf/open/floor/glass/reinforced/airless, +/area/space/nearstation) +"gnP" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/delivery, +/turf/open/floor/iron, +/area/station/cargo/lobby) +"gnU" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"goe" = ( +/obj/structure/chair/office, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/duct, +/turf/open/floor/carpet/green, +/area/station/command/heads_quarters/nt_rep) +"goi" = ( +/obj/effect/turf_decal/trimline/purple/filled/corner{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"gok" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/science) +"gom" = ( +/obj/effect/turf_decal/stripes, +/obj/effect/turf_decal/stripes/white/line, +/turf/open/floor/iron/dark, +/area/station/service/kitchen) +"gow" = ( +/obj/structure/cable, +/turf/open/floor/iron/stairs, +/area/station/science/xenobiology) +"goy" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/flowers_br, +/obj/structure/window/spawner/directional/south, +/obj/structure/window/spawner/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/grass, +/area/station/commons/dorms) +"goF" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/science/ordnance/storage) +"goG" = ( +/obj/structure/flora/bush/fullgrass, +/obj/machinery/growing/soil, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/grass, +/area/station/service/hydroponics) +"goM" = ( +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/painting/library{ + pixel_y = 32 + }, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/wood, +/area/station/maintenance/abandon_art_studio) +"goQ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/carpet, +/area/station/service/lawoffice) +"goS" = ( +/obj/structure/disposaloutlet, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"goT" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"gpn" = ( +/obj/machinery/disposal/delivery_chute{ + dir = 8 + }, +/obj/effect/turf_decal/delivery, +/obj/structure/window/reinforced/spawner/directional/north{ + layer = 2.9 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/disposal) +"gpp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/duct, +/turf/open/floor/carpet, +/area/station/service/chapel) +"gpq" = ( +/obj/structure/table/glass, +/obj/item/petri_dish{ + pixel_x = -6; + pixel_y = 8 + }, +/obj/item/petri_dish{ + pixel_x = 3; + pixel_y = 2 + }, +/obj/item/reagent_containers/cup/bottle/random_virus{ + pixel_x = 6; + pixel_y = 16 + }, +/obj/item/reagent_containers/cup/beaker/vial, +/obj/item/reagent_containers/cup/beaker/vial, +/obj/item/reagent_containers/cup/beaker/vial, +/turf/open/floor/iron/white, +/area/station/medical/virology) +"gpr" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/status_display/ai/directional/east, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"gpv" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_port) +"gpz" = ( +/turf/closed/wall/r_wall, +/area/station/engineering/gravity_generator) +"gpA" = ( +/turf/closed/wall, +/area/station/service/kitchen) +"gpD" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/xenobiology/hallway) +"gpJ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"gpM" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"gpT" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/atmos_aux_port) +"gpW" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister/carbon_dioxide, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/storage) +"gpX" = ( +/obj/effect/landmark/start/cook, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) +"gqa" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain) +"gqn" = ( +/obj/structure/mirror{ + pixel_y = 32 + }, +/obj/structure/sink/directional/south, +/turf/open/floor/iron/freezer, +/area/station/security/prison/shower) +"gqp" = ( +/obj/structure/chair/office{ + dir = 4 + }, +/obj/effect/landmark/start/librarian, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/station/service/library) +"gqr" = ( +/turf/open/floor/glass/reinforced/airless, +/area/station/hallway/secondary/exit) +"gqy" = ( +/obj/structure/table/reinforced, +/obj/item/stock_parts/manipulator/nano, +/obj/item/stock_parts/manipulator/nano, +/obj/item/stock_parts/micro_laser/high, +/obj/item/stock_parts/micro_laser/high, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) +"gqL" = ( +/obj/item/kirbyplants/random, +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/science/ordnance) +"gqM" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/flora/bush/fullgrass, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/flowers_yw, +/turf/open/floor/grass, +/area/station/service/hydroponics) +"gqN" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/common/wrestling/arena) +"gqU" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/sunny, +/obj/structure/flora/bush/flowers_pp, +/obj/structure/window/reinforced/shuttle, +/turf/open/floor/grass, +/area/station/common/cryopods) +"gqV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate{ + icon_state = "crateopen" + }, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"gqW" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/cable, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/prison/workout) +"gqX" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ + dir = 4 + }, +/obj/effect/spawner/random/structure/steam_vent, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/central) +"gqZ" = ( +/obj/structure/table, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/item/ai_module/supplied/oxygen{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/machinery/door/window/brigdoor/right/directional/west{ + id = list("ai_upload"); + name = "High-Risk Modules" + }, +/turf/open/floor/iron, +/area/station/ai_monitored/turret_protected/ai_upload) +"grb" = ( +/obj/structure/railing, +/obj/machinery/door/firedoor/border_only, +/turf/open/floor/iron/dark/small, +/area/station/cargo/storage) +"grc" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/science/xenobiology/hallway) +"grf" = ( +/mob/living/basic/garden_gnome, +/obj/structure/flora/bush/fullgrass/style_3, +/turf/open/floor/grass, +/area/station/maintenance/port/fore) +"grh" = ( +/obj/effect/turf_decal/stripes{ + dir = 5 + }, +/obj/structure/cable, +/obj/structure/sign/delam_procedure/directional/north, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"gri" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/maintenance/xenobio_disposals) +"grm" = ( +/obj/item/kirbyplants/organic/plant21, +/obj/machinery/camera/directional/south{ + c_tag = "Engineering - Tcomms entrance"; + dir = 8; + name = "engineering camera" + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/tcommsat/computer) +"grq" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/security/courtroom) +"grA" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/department/engineering/atmos_aux_port) +"grD" = ( +/obj/machinery/airalarm/directional/west, +/obj/effect/turf_decal/trimline/red/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/prison/upper) +"grJ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/contraband/random/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"grM" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/science/explab) +"grQ" = ( +/turf/open/floor/plating, +/area/station/maintenance/pool_maintenance) +"grS" = ( +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat_interior) +"grX" = ( +/obj/structure/closet/crate/wooden, +/turf/open/floor/iron, +/area/station/security/execution/transfer) +"gsd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"gsj" = ( +/obj/structure/flora/rock/pile, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/structure/flora/bush/sunny, +/obj/structure/beebox{ + name = "Bumble's hive" + }, +/turf/open/floor/grass, +/area/station/service/hydroponics) +"gsk" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"gsx" = ( +/obj/machinery/light/directional/north, +/turf/open/floor/iron/smooth_edge{ + dir = 8 + }, +/area/station/cargo/miningdock) +"gsF" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/effect/turf_decal/box, +/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer4{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/window/right/directional/east{ + name = "Ordnance Freezer Chamber Access" + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) +"gsG" = ( +/obj/structure/rack/shelf, +/obj/effect/turf_decal/bot, +/obj/item/storage/box/lights/mixed, +/obj/item/radio/off, +/turf/open/floor/iron, +/area/station/commons/vacant_room/commissary) +"gsM" = ( +/obj/machinery/vending/boozeomat, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/iron/dark, +/area/station/command/captain_dining) +"gsN" = ( +/obj/machinery/duct, +/turf/open/floor/carpet/purple, +/area/station/commons/dorms/room4) +"gsQ" = ( +/obj/machinery/telecomms/server/presets/service, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 5 + }, +/turf/open/floor/iron/telecomms, +/area/station/tcommsat/server) +"gsW" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/sign/poster/random/directional/south, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/upper) +"gsY" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/storage) +"gsZ" = ( +/obj/machinery/button/curtain{ + id = "prisoncell8"; + pixel_y = 21 + }, +/obj/structure/bed, +/obj/item/bedsheet/orange, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/dark, +/area/station/security/prison/safe) +"gta" = ( +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/wood, +/area/station/maintenance/abandon_art_studio) +"gtd" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"gtg" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/item/kirbyplants/random, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/west, +/turf/open/floor/iron/dark/corner, +/area/station/maintenance/xenobio_disposals) +"gtm" = ( +/obj/effect/turf_decal/bot, +/obj/structure/reagent_dispensers/watertank, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva/upper) +"gtp" = ( +/obj/effect/turf_decal/loading_area/white{ + dir = 1 + }, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/command) +"gtx" = ( +/obj/structure/stairs/north, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/port) +"gtz" = ( +/obj/structure/chair/office, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/station/maintenance/abandon_office) +"gtJ" = ( +/turf/closed/wall, +/area/station/maintenance/abandon_exam/cat) +"gtP" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"gtU" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/effect/decal/cleanable/oil, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless, +/area/station/maintenance/fore/upper) +"gtZ" = ( +/obj/effect/turf_decal/caution/stand_clear, +/obj/structure/cable, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/command/gateway) +"guj" = ( +/obj/structure/cable, +/obj/effect/landmark/start/paramedic, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"guo" = ( +/obj/structure/chair/stool/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/disposal) +"guu" = ( +/obj/structure/trash_pile, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"guv" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/ai_monitored/command/storage/eva/upper) +"gux" = ( +/obj/structure/table/wood, +/turf/open/floor/iron/dark, +/area/station/service/library) +"guy" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark/side{ + dir = 9 + }, +/area/station/hallway/primary/port) +"guz" = ( +/obj/structure/table/wood, +/obj/item/clipboard, +/obj/item/toy/figure/mime{ + pixel_x = 4 + }, +/obj/item/toy/figure/clown{ + pixel_x = -4 + }, +/obj/machinery/camera/directional/east{ + c_tag = "Theater Backstage"; + name = "service camera" + }, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/wood, +/area/station/service/theater) +"guC" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/pool_maintenance) +"guH" = ( +/obj/structure/dresser, +/obj/item/book/manual/wiki/security_space_law, +/turf/open/floor/carpet/red, +/area/station/security/warden) +"guK" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Bar" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/landmark/navigate_destination, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"guN" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/chapel) +"guQ" = ( +/obj/structure/closet/crate, +/obj/structure/grille/broken, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"guU" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/aisat/exterior) +"guW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/burnt_floor, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"gva" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/service/chapel) +"gvb" = ( +/obj/structure/table/wood/fancy/red, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/security/courtroom) +"gve" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"gvm" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"gvt" = ( +/obj/structure/cable, +/obj/machinery/light/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/stairs{ + dir = 1 + }, +/area/station/ai_monitored/turret_protected/aisat_interior) +"gvv" = ( +/obj/machinery/door/airlock/external{ + space_dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) +"gvD" = ( +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/iron/stairs/old{ + dir = 1 + }, +/area/station/cargo/miningdock) +"gvN" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/carpet/blue, +/area/station/command/heads_quarters/captain/private) +"gvO" = ( +/obj/structure/table/wood, +/obj/item/storage/crayons{ + pixel_y = 5 + }, +/obj/item/storage/crayons, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/wood, +/area/station/maintenance/abandon_art_studio) +"gvR" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/window/left/directional/south{ + name = "Service Deliveries"; + req_access = list("service") + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) +"gwb" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/item/radio/intercom, +/turf/open/floor/iron/dark/corner{ + dir = 1 + }, +/area/station/maintenance/xenobio_disposals) +"gwc" = ( +/obj/effect/turf_decal/stripes, +/obj/effect/turf_decal/stripes/white/line, +/obj/structure/sink/kitchen/directional/west, +/obj/structure/window/spawner/directional/south, +/turf/open/floor/iron/dark, +/area/station/service/kitchen) +"gwf" = ( +/turf/open/floor/plating, +/area/station/hallway/secondary/construction) +"gwh" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/moisture_trap, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"gwk" = ( +/obj/machinery/iv_drip, +/obj/machinery/defibrillator_mount/directional/south, +/obj/machinery/stasis{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) +"gwl" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/effect/landmark/generic_maintenance_landmark, +/turf/open/floor/plating, +/area/station/service/hydroponics/garden/abandoned) +"gwm" = ( +/obj/effect/landmark/start/botanist{ + required_jobtitle = "Rancher" + }, +/turf/open/floor/iron/dark/herringbone, +/area/station/common/night_club/back_stage) +"gww" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 6 + }, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/table/glass, +/obj/item/storage/box/bodybags{ + pixel_x = 4; + pixel_y = 12 + }, +/obj/item/storage/box/rxglasses{ + pixel_y = 5 + }, +/obj/item/reagent_containers/spray/cleaner{ + pixel_x = -8; + pixel_y = 8 + }, +/turf/open/floor/iron/white, +/area/station/medical/storage) +"gwF" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"gwO" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/filingcabinet/chestdrawer/wheeled, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 9 + }, +/turf/open/floor/iron/white, +/area/station/science/ordnance/storage) +"gwS" = ( +/obj/structure/flora/rock/pile, +/obj/structure/flora/bush/sparsegrass, +/turf/open/misc/grass, +/area/station/service/barber) +"gwW" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/secondary/command) +"gwX" = ( +/obj/structure/window/spawner/directional/west, +/obj/item/kirbyplants/random, +/obj/machinery/light/directional/south, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/carpet/blue, +/area/station/command/heads_quarters/captain/private) +"gxb" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/security/detectives_office) +"gxd" = ( +/obj/structure/cable, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"gxg" = ( +/obj/machinery/door/airlock/security{ + name = "Courtroom Bailiff Checkpoint" + }, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/turf/open/floor/iron/dark, +/area/station/security/courtroom) +"gxj" = ( +/obj/structure/table, +/obj/machinery/microwave{ + pixel_y = 8 + }, +/obj/machinery/computer/security/telescreen/entertainment/directional/west, +/turf/open/floor/wood, +/area/station/commons/dorms/room2) +"gxq" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/machinery/camera/directional/south{ + c_tag = "Medbay - Morgue"; + name = "medbay camera"; + network = list("ss13","medbay") + }, +/obj/effect/turf_decal/delivery/white, +/turf/open/floor/iron/dark/small, +/area/station/medical/morgue) +"gxs" = ( +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/station/command/meeting_room/council) +"gxw" = ( +/obj/effect/turf_decal/delivery, +/obj/item/kirbyplants/organic/plant21, +/obj/machinery/airalarm/directional/west, +/turf/open/floor/iron, +/area/station/engineering/storage/tech) +"gxA" = ( +/obj/structure/table, +/turf/open/floor/iron/dark, +/area/station/cargo/sorting) +"gxF" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/smooth, +/area/station/maintenance/starboard/fore) +"gxG" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rdrnd"; + name = "Research and Development Shutters" + }, +/turf/open/floor/plating, +/area/station/science/lab) +"gxL" = ( +/obj/structure/bed/double{ + dir = 4 + }, +/obj/item/bedsheet/blue/double{ + dir = 1 + }, +/obj/machinery/light_switch/directional/west, +/turf/open/floor/carpet/blue, +/area/station/commons/dorms/room3) +"gxT" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"gxY" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/carpet, +/area/station/service/chapel) +"gyb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"gyc" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar/opposingcorners{ + dir = 1 + }, +/obj/structure/chair/stool/bar/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/cafeteria, +/area/station/hallway/primary/port) +"gyd" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "surgeryb"; + name = "Surgery Privacy Shutters" + }, +/turf/open/floor/plating, +/area/station/medical/surgery) +"gyf" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"gyg" = ( +/obj/machinery/light/floor/has_bulb, +/turf/open/floor/iron/dark/small, +/area/station/cargo/miningdock) +"gyh" = ( +/obj/machinery/duct, +/turf/open/floor/iron/cafeteria, +/area/station/commons/locker) +"gyk" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/common/gaskiosk) +"gys" = ( +/obj/effect/spawner/random/trash/mess, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"gyG" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/commons/storage/primary) +"gyJ" = ( +/obj/structure/closet/secure_closet/research_director, +/obj/effect/turf_decal/stripes{ + dir = 10 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/rd) +"gyL" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/service/cafeteria) +"gyP" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/chair/wood{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/service/cafeteria) +"gyV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/clown_chamber) +"gyX" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/newscaster/directional/south, +/obj/machinery/cassette/dj_station{ + pixel_y = 12 + }, +/turf/open/floor/iron/dark, +/area/station/service/library/private) +"gzl" = ( +/obj/structure/toilet{ + dir = 1 + }, +/obj/structure/sink/directional/east, +/obj/structure/mirror{ + pixel_x = -27 + }, +/turf/open/floor/iron/freezer, +/area/station/commons/dorms/vacantroom) +"gzo" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/commons/toilet/restrooms) +"gzr" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/west, +/turf/open/floor/iron, +/area/station/security/prison/visit) +"gzt" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/firealarm/directional/west, +/obj/machinery/door/airlock/public/glass{ + name = "Central Hallway" + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"gzC" = ( +/obj/structure/chair/plastic{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"gzD" = ( +/obj/structure/flora/tree/jungle, +/turf/open/floor/grass, +/area/station/hallway/primary/central/aft) +"gzE" = ( +/obj/machinery/door/airlock/security/old{ + name = "Cryopods" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/security/prison/upper) +"gzF" = ( +/obj/structure/railing, +/obj/structure/chair/plastic{ + dir = 8; + layer = 2.7 + }, +/turf/open/floor/iron/dark/side, +/area/station/hallway/primary/upper) +"gzG" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/shower/directional/south, +/obj/effect/turf_decal/stripes/end, +/obj/effect/turf_decal/siding/thinplating/dark/end, +/obj/structure/drain, +/turf/open/floor/iron, +/area/station/engineering/atmos/test_chambers) +"gzH" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/commons/dorms/room6) +"gzI" = ( +/obj/machinery/light/directional/north, +/obj/structure/flora/bush/ferny, +/mob/living/basic/butterfly, +/turf/open/floor/grass, +/area/station/service/hydroponics) +"gzL" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron, +/area/station/command/bridge) +"gzR" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/medical/glass{ + name = "Recovery Ward" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"gAc" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/machinery/conveyor{ + dir = 4; + id = "Luggagebelt" + }, +/turf/open/floor/plating, +/area/station/security/checkpoint/customs) +"gAo" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"gAt" = ( +/obj/structure/table/greyscale, +/obj/item/toy/plush/beeplushie, +/turf/open/floor/mineral/titanium/tiled/white{ + name = "Padded tile" + }, +/area/station/medical/aslyum) +"gAu" = ( +/obj/structure/chair/sofa/bench/left{ + dir = 4; + pixel_x = -5 + }, +/obj/effect/turf_decal/tile/blue/half{ + dir = 4 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/iron/white/side{ + dir = 4 + }, +/area/station/medical/medbay/lobby) +"gAw" = ( +/obj/structure/sign/nanotrasen{ + pixel_x = -32 + }, +/obj/effect/landmark/start/hangover, +/turf/open/floor/wood, +/area/station/hallway/primary/port) +"gAC" = ( +/obj/structure/chair, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/machinery/newscaster/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"gAF" = ( +/obj/effect/spawner/random/structure/crate, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"gAH" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) +"gAJ" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"gAL" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted, +/obj/structure/sign/poster/random/directional/south, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"gAV" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Labor Camp Shuttle Airlock" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"gAW" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering/glass{ + name = "Engineering Break Room" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/general, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/engineering/lobby) +"gBa" = ( +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ + dir = 4 + }, +/obj/machinery/camera/autoname/directional/north, +/turf/open/floor/engine, +/area/station/science/explab) +"gBb" = ( +/obj/machinery/power/smes/engineering, +/obj/structure/cable, +/obj/structure/railing{ + dir = 5 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/engine_smes) +"gBc" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/security/prison/upper) +"gBd" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/red/filled/warning{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/line, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/brig) +"gBg" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"gBh" = ( +/obj/machinery/porta_turret/ai{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai_upload) +"gBj" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/commons/dorms) +"gBk" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/structure/cable/layer1, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"gBn" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/station/maintenance/department/security/upper) +"gBr" = ( +/obj/structure/chair/sofa/bench{ + pixel_y = 8 + }, +/obj/structure/cable, +/obj/machinery/camera/directional/south{ + c_tag = "Security - Brig Center"; + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + color = "#DE3A3A"; + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/line, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/brig) +"gBt" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/ai_monitored/command/storage/eva/upper) +"gBv" = ( +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"gBx" = ( +/obj/structure/flora/bush/jungle, +/obj/structure/flora/bush/flowers_yw/style_3, +/obj/structure/window/fulltile, +/turf/open/floor/grass, +/area/station/hallway/primary/upper) +"gBz" = ( +/obj/effect/spawner/random/trash/bacteria, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/engine, +/area/station/science/tele_sci) +"gBH" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 9 + }, +/area/station/commons/fitness) +"gBM" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"gBR" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/supermatter/room) +"gBT" = ( +/obj/machinery/door/airlock{ + name = "The Ring" + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/common/wrestling/arena) +"gCd" = ( +/obj/machinery/light/small/directional/south, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/structure/showcase/machinery/cloning_pod{ + desc = "An old decommissioned scanner, permanently scuttled."; + icon_state = "scanner"; + name = "decommissioned cloning scanner" + }, +/turf/open/floor/iron, +/area/station/medical/abandoned) +"gCg" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/science/robotics) +"gCk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"gCs" = ( +/obj/effect/turf_decal/stripes{ + dir = 5 + }, +/obj/machinery/rnd/production/protolathe/department/science, +/turf/open/floor/iron, +/area/station/science/lab) +"gCy" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 5 + }, +/turf/open/indestructible{ + base_icon_state = "reinf_glass"; + icon = 'icons/turf/floors/reinf_glass.dmi'; + icon_state = "reinf_glass-0"; + name = "Ultra Reinforced Glass Floor" + }, +/area/station/ai_monitored/turret_protected/aisat_interior) +"gCH" = ( +/obj/effect/decal/cleanable/blood/gibs, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) +"gCJ" = ( +/obj/effect/landmark/start/hangover, +/turf/open/floor/stone, +/area/station/hallway/primary/central) +"gCT" = ( +/obj/structure/girder, +/turf/open/floor/plating, +/area/station/maintenance/department/science/upper) +"gDi" = ( +/obj/structure/table, +/obj/item/storage/backpack/duffelbag/sec/surgery{ + pixel_y = 5 + }, +/obj/item/clothing/mask/balaclava, +/obj/item/reagent_containers/spray/cleaner{ + pixel_x = 5 + }, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/machinery/camera/directional/west{ + c_tag = "Security - Killcam" + }, +/obj/machinery/light/directional/east, +/turf/open/floor/iron/dark, +/area/station/security/execution/education) +"gDk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/stool/bar/directional/north, +/turf/open/floor/iron/cafeteria, +/area/station/maintenance/abandon_diner) +"gDn" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/structure/weightmachine, +/turf/open/floor/iron/dark/side, +/area/station/security/prison/workout) +"gDp" = ( +/obj/machinery/airalarm/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/stairs/old{ + dir = 8 + }, +/area/station/engineering/engine_smes) +"gDq" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/maintenance/department/science/ordnance_maint) +"gDu" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"gDy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"gDC" = ( +/obj/item/stack/sheet/cardboard, +/obj/item/storage/box/lights, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"gDF" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/security/checkpoint/escape) +"gDI" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/hallway/secondary/command) +"gDL" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Theatre" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/navigate_destination, +/turf/open/floor/wood/parquet, +/area/station/service/theater) +"gDN" = ( +/turf/closed/wall, +/area/station/science/xenobiology) +"gDW" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"gEa" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ + dir = 10 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"gEe" = ( +/obj/effect/turf_decal/bot_red, +/obj/effect/turf_decal/loading_area/red{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"gEo" = ( +/obj/structure/showcase/cyborg/old{ + pixel_y = 20 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai) +"gEp" = ( +/obj/item/radio/intercom/directional/north, +/obj/structure/chair/stool/directional/east, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/prison/visit) +"gEu" = ( +/obj/structure/table/wood, +/obj/item/book/manual/wiki/security_space_law, +/obj/machinery/light/directional/south, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/carpet, +/area/station/service/lawoffice) +"gEx" = ( +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"gEE" = ( +/turf/open/floor/carpet, +/area/station/service/chapel) +"gEI" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/obj/machinery/light/directional/south, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/commons/dorms) +"gEJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) +"gEV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/landmark/start/hangover, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"gEY" = ( +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/iron/smooth_edge{ + dir = 1 + }, +/area/station/cargo/miningdock) +"gFb" = ( +/obj/item/radio/intercom/directional/east, +/obj/machinery/camera/autoname/directional/east, +/turf/open/floor/carpet/black, +/area/station/service/barber) +"gFg" = ( +/obj/machinery/light/directional/west, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/nuke_storage) +"gFA" = ( +/obj/structure/chair/plastic{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/landmark/start/assistant, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"gFE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/smes, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/security/power_station) +"gFG" = ( +/obj/structure/table/wood/fancy/red, +/obj/item/storage/fancy/cigarettes/cigars/cohiba{ + pixel_y = 5 + }, +/obj/item/storage/fancy/cigarettes/cigars/havana{ + pixel_y = 9 + }, +/turf/open/floor/iron, +/area/station/command/captain_dining) +"gFK" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/machinery/disposal/delivery_chute{ + dir = 4 + }, +/obj/structure/plasticflaps, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/door/window/right/directional/east{ + req_access = list("cargo"); + name = "Science Deliveries" + }, +/turf/open/floor/iron/dark, +/area/station/cargo/sorting) +"gFM" = ( +/obj/effect/turf_decal/caution, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/command/gateway) +"gFO" = ( +/obj/structure/window/spawner/directional/west, +/obj/structure/table/wood/fancy/blue, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/computer/security/telescreen/entertainment/directional/north, +/obj/item/clipboard, +/obj/item/toy/figure/cmo, +/turf/open/floor/carpet/blue, +/area/station/command/heads_quarters/cmo) +"gFS" = ( +/obj/machinery/door/poddoor/shutters{ + id = "evashutters4"; + name = "External Service Bay Shutters" + }, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"gFV" = ( +/obj/structure/chair/sofa/corp{ + dir = 1 + }, +/obj/machinery/newscaster/directional/south, +/obj/effect/turf_decal/tile/blue/half/contrasted, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/customs/auxiliary) +"gFX" = ( +/turf/open/floor/iron, +/area/station/engineering/atmos/office) +"gGa" = ( +/obj/machinery/door/airlock/bathroom{ + name = "Restroom" + }, +/obj/machinery/duct, +/turf/open/floor/iron/freezer, +/area/station/command/heads_quarters/rd) +"gGf" = ( +/obj/machinery/door/firedoor, +/obj/machinery/firealarm/directional/east, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/door/airlock/public/glass{ + name = "Central Upper Hallway" + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"gGl" = ( +/obj/structure/sink/directional/south, +/obj/item/reagent_containers/cup/bucket, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"gGo" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/secondary/command) +"gGr" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/machinery/firealarm/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/engine, +/area/station/command/secure_bunker) +"gGw" = ( +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/maintenance/port/upper) +"gGy" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/command/secure_bunker) +"gGB" = ( +/obj/structure/reagent_dispensers/water_cooler, +/obj/structure/sign/poster/random/directional/north, +/turf/open/floor/eighties/red, +/area/station/common/arcade) +"gGC" = ( +/obj/effect/turf_decal/trimline/blue/line{ + dir = 8 + }, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/fitness) +"gGO" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/access/all/service/bar, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/bar) +"gHe" = ( +/obj/effect/turf_decal/stripes/white/box, +/obj/machinery/porta_turret/ai, +/obj/machinery/camera/motion/directional/south{ + c_tag = "AI Chamber - Aft"; + name = "motion-sensitive ai camera"; + network = list("aichamber") + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai) +"gHf" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/vending/access/command, +/turf/open/floor/iron/dark, +/area/station/command/meeting_room/council) +"gHo" = ( +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/door/airlock/captain{ + name = "Captain's Suite" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/command/general, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/captain) +"gHt" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron/dark, +/area/station/security/execution/education) +"gHy" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/turf/open/floor/engine/hull/reinforced, +/area/space/nearstation) +"gHz" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"gHH" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/cup/bottle/syrup_bottle/liqueur{ + pixel_x = -5; + pixel_y = 16 + }, +/obj/item/reagent_containers/cup/bottle/syrup_bottle/korta_nectar{ + pixel_x = 5; + pixel_y = 16 + }, +/obj/item/reagent_containers/cup/bottle/syrup_bottle/caramel{ + pixel_x = 15; + pixel_y = 16 + }, +/obj/item/storage/fancy/coffee_condi_display{ + pixel_x = 4; + pixel_y = 2 + }, +/obj/item/reagent_containers/cup/glass/ice{ + pixel_x = -10; + pixel_y = 2 + }, +/turf/open/floor/iron/dark, +/area/station/service/cafeteria) +"gHM" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"gHT" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"gHW" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/commons/dorms) +"gIc" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron, +/area/station/security/courtroom) +"gIe" = ( +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/hallway/secondary/command) +"gIh" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 10 + }, +/turf/open/indestructible{ + base_icon_state = "reinf_glass"; + icon = 'icons/turf/floors/reinf_glass.dmi'; + icon_state = "reinf_glass-0"; + name = "Ultra Reinforced Glass Floor" + }, +/area/station/ai_monitored/turret_protected/aisat_interior) +"gIp" = ( +/obj/structure/window/spawner/directional/west, +/obj/structure/window/spawner/directional/south, +/obj/structure/window/spawner/directional/east, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/stalky, +/turf/open/floor/grass, +/area/station/hallway/primary/port) +"gIM" = ( +/obj/machinery/biomass_recycler, +/obj/item/stack/biomass, +/obj/item/stack/biomass, +/obj/item/stack/biomass, +/obj/item/stack/biomass, +/obj/item/stack/biomass, +/turf/open/floor/iron/dark, +/area/station/science/xenobiology/control) +"gIN" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/maintenance/department/engineering/atmos_aux_port) +"gIR" = ( +/obj/effect/spawner/structure/window/reinforced/tinted, +/turf/open/floor/plating, +/area/station/maintenance/cult_chapel_maint) +"gIS" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/bar) +"gIV" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) +"gJd" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/junction{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue/fourcorners, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"gJe" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/security/upper) +"gJf" = ( +/obj/structure/fans/tiny, +/obj/machinery/door/airlock/wood{ + name = "Sauna" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/service/barber/spa) +"gJh" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/ai_upload) +"gJl" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/cardboard, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/wood, +/area/station/maintenance/abandon_art_studio) +"gJq" = ( +/obj/structure/statue/silver/sec, +/obj/effect/turf_decal/tile/red/real_red/anticorner/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hos) +"gJt" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/station/service/library/printer) +"gJC" = ( +/obj/structure/chair/comfy/barber_chair{ + dir = 8 + }, +/turf/open/floor/wood/tile, +/area/station/service/barber) +"gJL" = ( +/obj/effect/turf_decal/siding/thinplating/dark/corner{ + dir = 1 + }, +/obj/machinery/light/directional/east, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 + }, +/turf/open/floor/iron/dark/herringbone, +/area/station/common/night_club/back_stage) +"gJN" = ( +/obj/structure/rack/wooden, +/obj/item/clothing/under/plasmaman{ + pixel_x = -7; + pixel_y = -7 + }, +/obj/item/clothing/under/plasmaman{ + pixel_y = -7 + }, +/obj/item/clothing/under/plasmaman{ + pixel_x = 7; + pixel_y = -7 + }, +/obj/item/clothing/head/helmet/space/plasmaman{ + pixel_x = -7; + pixel_y = 8 + }, +/obj/item/clothing/head/helmet/space/plasmaman{ + pixel_y = 8 + }, +/obj/item/clothing/head/helmet/space/plasmaman{ + pixel_x = 7; + pixel_y = 8 + }, +/turf/open/floor/wood/parquet, +/area/station/common/gaskiosk) +"gJP" = ( +/obj/machinery/air_sensor/nitrous_tank, +/turf/open/floor/engine/n2o, +/area/station/engineering/atmos) +"gJT" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/security/office) +"gJW" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing{ + dir = 10 + }, +/turf/open/space/basic, +/area/space/nearstation) +"gJY" = ( +/turf/open/floor/iron/stairs/medium{ + dir = 8 + }, +/area/station/hallway/primary/central) +"gKa" = ( +/turf/open/floor/iron/stairs{ + dir = 4 + }, +/area/station/maintenance/solars/port/fore) +"gKc" = ( +/obj/structure/extinguisher_cabinet/directional/east, +/obj/item/kirbyplants/random, +/turf/open/floor/iron, +/area/station/engineering/break_room) +"gKf" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/obj/machinery/netpod, +/obj/structure/sign/poster/contraband/random/directional/south, +/obj/effect/decal/cleanable/dirt, +/obj/item/food/pizzaslice/sassysage{ + pixel_x = -2; + pixel_y = 3 + }, +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/iron/dark/small, +/area/station/security/prison/upper) +"gKk" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"gKn" = ( +/turf/open/floor/iron/stairs/right, +/area/station/hallway/primary/central/aft) +"gKq" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/iron/dark/corner{ + dir = 8 + }, +/area/station/maintenance/xenobio_disposals) +"gKv" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured_large, +/area/station/ai_monitored/security/armory) +"gKy" = ( +/obj/item/stack/sheet/cardboard, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"gKH" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/turf/open/floor/carpet/purple, +/area/station/command/heads_quarters/rd) +"gKN" = ( +/obj/structure/table, +/obj/item/reagent_containers/blood/random, +/obj/item/reagent_containers/syringe{ + pixel_y = 5 + }, +/obj/item/reagent_containers/syringe, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"gKQ" = ( +/obj/effect/turf_decal/trimline/blue/filled/corner, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) +"gKY" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 6 + }, +/obj/structure/flora/rock/pile/jungle, +/obj/effect/landmark/start/hangover, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"gLc" = ( +/turf/open/floor/iron/shuttle/arrivals/airless, +/area/space/nearstation) +"gLe" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"gLj" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 9 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"gLm" = ( +/obj/machinery/power/shuttle_engine/huge{ + dir = 8 + }, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"gLn" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/structure/chair/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/service/chapel/funeral) +"gLo" = ( +/obj/effect/spawner/liquids_spawner, +/turf/open/floor/lowered/iron/pool/cobble/corner{ + dir = 8 + }, +/area/station/common/pool) +"gLs" = ( +/obj/machinery/door/airlock/security/old{ + name = "ERT Response Centre" + }, +/obj/effect/mapping_helpers/airlock/access/all/admin/general, +/turf/open/floor/iron/smooth, +/area/station/maintenance/starboard/fore) +"gLt" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/mining{ + name = "Mining Office" + }, +/obj/effect/mapping_helpers/airlock/access/all/supply/mining, +/turf/open/floor/iron/dark, +/area/station/cargo/miningoffice) +"gLu" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/machinery/destructive_scanner, +/obj/effect/turf_decal/stripes/box, +/obj/effect/turf_decal/tile/purple/half, +/turf/open/floor/iron/white/side, +/area/station/science) +"gLv" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Central Hallway" + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"gLI" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Security Maintenance"; + welded = 1 + }, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/turf/open/floor/plating, +/area/station/maintenance/department/security/lower) +"gLQ" = ( +/obj/machinery/seed_extractor, +/obj/machinery/light/directional/west, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/service/hydroponics) +"gLY" = ( +/obj/structure/mirror{ + pixel_y = 32 + }, +/obj/structure/sink/directional/south, +/turf/open/floor/iron/white, +/area/station/commons/toilet/restrooms) +"gMj" = ( +/obj/effect/landmark/start/bartender, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/bar/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/service/bar) +"gMk" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating{ + dir = 8 + }, +/turf/open/misc/beach/sand, +/area/station/hallway/primary/central) +"gMl" = ( +/obj/structure/table, +/obj/item/stock_parts/subspace/analyzer, +/obj/item/stock_parts/subspace/analyzer, +/obj/item/stock_parts/subspace/analyzer, +/obj/item/stock_parts/subspace/amplifier, +/obj/item/stock_parts/subspace/amplifier, +/obj/item/stock_parts/subspace/amplifier, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tcomms) +"gMp" = ( +/obj/structure/table/wood, +/obj/structure/extinguisher_cabinet/directional/south, +/obj/item/paper_bin, +/turf/open/floor/carpet, +/area/station/service/lawoffice) +"gMw" = ( +/obj/item/kirbyplants/random, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/wood, +/area/station/maintenance/abandon_psych) +"gMz" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/science/research) +"gME" = ( +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"gMG" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/door/airlock/security{ + name = "Detective's Office" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/security/detective, +/obj/structure/cable, +/obj/effect/landmark/navigate_destination, +/turf/open/floor/iron, +/area/station/security/detectives_office) +"gMI" = ( +/obj/effect/spawner/random/structure/closet_empty, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_port) +"gMP" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/common/laser_tag) +"gMR" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/flora/bush/fullgrass, +/obj/structure/flora/bush/sunny, +/turf/open/floor/grass, +/area/station/command/heads_quarters/hos) +"gMW" = ( +/obj/structure/table, +/turf/open/floor/plating, +/area/station/maintenance/abandon_wrestle) +"gMX" = ( +/obj/structure/table, +/obj/item/circuitboard/computer/operating, +/obj/machinery/light/small/directional/east, +/turf/open/floor/iron/dark, +/area/station/maintenance/abandon_exam/cat) +"gMZ" = ( +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/security/range) +"gNf" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/locker) +"gNv" = ( +/obj/machinery/smartfridge, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) +"gNz" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Auxiliary E.V.A. Storage" + }, +/obj/effect/turf_decal/delivery, +/obj/effect/mapping_helpers/airlock/access/all/command/eva, +/turf/open/floor/iron, +/area/station/ai_monitored/command/storage/eva/upper) +"gNE" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/circuit, +/area/station/command/gateway) +"gNG" = ( +/obj/machinery/door/airlock/grunge{ + name = "Chapel Quarters" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/service/chapel_office, +/turf/open/floor/iron/dark, +/area/station/service/chapel/office) +"gNT" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/closet/secure_closet/engineering_electrical, +/turf/open/floor/iron/dark, +/area/station/engineering/main) +"gNW" = ( +/turf/open/floor/wood, +/area/station/command/heads_quarters/rd) +"gOb" = ( +/obj/machinery/computer/scan_consolenew{ + dir = 4 + }, +/obj/structure/window/spawner/directional/west{ + pixel_x = -3 + }, +/obj/effect/turf_decal/stripes{ + dir = 6 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 9 + }, +/turf/open/floor/iron/dark, +/area/station/science/genetics) +"gOi" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/table, +/obj/item/folder/blue, +/turf/open/floor/iron, +/area/station/common/wrestling/lobby) +"gOl" = ( +/obj/item/kirbyplants/random, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/effect/landmark/generic_maintenance_landmark, +/turf/open/floor/iron/dark, +/area/station/maintenance/solars/starboard/fore) +"gOn" = ( +/obj/structure/table/reinforced, +/obj/item/folder, +/obj/structure/cable, +/obj/item/storage/box/petridish{ + pixel_x = -5; + pixel_y = 8 + }, +/obj/item/storage/box/petridish{ + pixel_x = 5; + pixel_y = 3 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/science/explab) +"gOs" = ( +/obj/machinery/light/broken/directional/west, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine, +/area/station/science/tele_sci) +"gOw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"gOx" = ( +/obj/machinery/power/smes/engineering, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/power_station) +"gOy" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/space/basic, +/area/space/nearstation) +"gOz" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"gOA" = ( +/obj/machinery/power/shuttle_engine/heater{ + dir = 4 + }, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/station/maintenance/fore/upper) +"gOG" = ( +/turf/open/floor/iron/dark/textured_large, +/area/station/ai_monitored/security/armory) +"gOI" = ( +/obj/structure/chair/pew/left{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/security/courtroom) +"gON" = ( +/obj/effect/turf_decal/siding/yellow{ + dir = 4 + }, +/obj/machinery/computer/apc_control{ + dir = 4 + }, +/obj/machinery/requests_console/directional/north{ + department = "Chief Engineer's Desk"; + name = "Chief Engineer's Requests Console"; + pixel_x = -29; + pixel_y = 0 + }, +/obj/effect/mapping_helpers/requests_console/announcement, +/obj/effect/mapping_helpers/requests_console/information, +/turf/open/floor/iron/dark/textured_large, +/area/station/command/heads_quarters/ce) +"gOT" = ( +/obj/structure/closet/l3closet/virology, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron, +/area/station/medical/virology/isolation) +"gOY" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "roboticsprivacy"; + name = "Robotics Shutters" + }, +/turf/open/floor/plating, +/area/station/science/robotics/lab) +"gPb" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/window/spawner/directional/west, +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/item/clothing/under/rank/centcom/officer, +/obj/item/clothing/under/rank/centcom/officer_skirt, +/obj/item/clothing/under/rank/centcom/intern, +/obj/item/clothing/under/rank/centcom/commander, +/obj/item/clothing/under/rank/centcom/centcom_skirt, +/obj/item/clothing/head/hats/centcom_cap, +/obj/item/clothing/head/hats/centhat, +/obj/item/clothing/glasses/sunglasses, +/obj/item/clothing/suit/armor/centcom_formal, +/turf/open/floor/carpet/green, +/area/station/command/heads_quarters/nt_rep) +"gPh" = ( +/obj/structure/chair/wood{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/service/chapel/office) +"gPk" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"gPp" = ( +/obj/structure/chair/office, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 6 + }, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"gPq" = ( +/obj/machinery/light/directional/east, +/obj/machinery/camera/directional/east{ + c_tag = "Science - Xenobio Starboard Pens"; + name = "science camera"; + network = list("ss13","xeno","rd") + }, +/turf/open/floor/iron, +/area/station/science/xenobiology) +"gPs" = ( +/obj/machinery/camera/directional/east{ + c_tag = "Leisure Area - Lasertag Red Lower"; + name = "hallway camera" + }, +/turf/open/floor/iron/dark, +/area/station/common/laser_tag) +"gPt" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ + dir = 9 + }, +/turf/open/space/basic, +/area/space/nearstation) +"gPv" = ( +/obj/machinery/door/window/brigdoor/left/directional/east{ + id = "scicell"; + name = "RnD Cell"; + req_access = list("security") + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/science/research) +"gPC" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/port/upper) +"gPD" = ( +/obj/structure/table/reinforced, +/obj/item/folder, +/obj/item/radio/intercom/directional/south, +/obj/machinery/light/directional/south, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) +"gPE" = ( +/obj/structure/chair/sofa/bench/right{ + dir = 8; + pixel_x = 5 + }, +/obj/structure/cable, +/obj/effect/landmark/start/assistant, +/obj/effect/landmark/start/assistant, +/obj/effect/turf_decal/tile/purple/opposingcorners{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/service/barber) +"gPF" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/machinery/light/directional/north, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/service/barber) +"gPJ" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/decal/cleanable/dirt, +/obj/structure/filingcabinet, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/wood, +/area/station/service/electronic_marketing_den) +"gPM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/item/radio/intercom/directional/south, +/obj/machinery/duct, +/turf/open/floor/carpet/green, +/area/station/medical/virology/isolation) +"gPP" = ( +/obj/effect/decal/cleanable/blood/gibs/old, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/north, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"gPZ" = ( +/turf/closed/wall/r_wall, +/area/station/cargo/power_station/upper) +"gQa" = ( +/obj/machinery/power/smes/engineering, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/medical/power_station) +"gQe" = ( +/obj/structure/weightmachine, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/iron/dark, +/area/station/commons/fitness) +"gQj" = ( +/obj/effect/decal/cleanable/greenglow, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) +"gQp" = ( +/obj/machinery/status_display/door_timer{ + id = "Cell 3"; + name = "Cell 3"; + pixel_x = -32 + }, +/obj/machinery/status_display/door_timer{ + id = "Cell 6"; + name = "Cell 6"; + pixel_x = 32 + }, +/turf/open/floor/iron, +/area/station/security/brig) +"gQy" = ( +/obj/structure/chair/sofa/corp{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple/half{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet/directional/east, +/obj/machinery/light/directional/east, +/turf/open/floor/iron/white/side{ + dir = 8 + }, +/area/station/science) +"gQU" = ( +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4; + name = "Input Valve" + }, +/obj/effect/turf_decal/stripes{ + dir = 9 + }, +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/engine, +/area/station/science/ordnance) +"gQW" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/commons/dorms/room2) +"gQX" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Laundromat" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/locker) +"gRa" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/curtain/cloth/fancy/mechanical{ + icon_state = "bounty-open"; + icon_type = "bounty"; + id = "prisoncell3"; + name = "curtain" + }, +/turf/open/floor/plating, +/area/station/security/prison/safe) +"gRe" = ( +/obj/structure/chair/pew/right{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/security/prison/mess) +"gRh" = ( +/mob/living/basic/mouse/brown, +/turf/open/misc/sandy_dirt, +/area/station/maintenance/department/medical) +"gRi" = ( +/obj/machinery/ai_slipper{ + uses = 10 + }, +/obj/effect/turf_decal/bot_white, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/aisat/exterior) +"gRj" = ( +/obj/machinery/airalarm/directional/south, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 10 + }, +/turf/open/floor/iron/dark/herringbone, +/area/station/security/prison/safe) +"gRq" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/starboard) +"gRw" = ( +/obj/effect/turf_decal/stripes/end{ + dir = 8 + }, +/obj/machinery/airalarm/directional/south, +/obj/machinery/light/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/ai_monitored/command/storage/eva) +"gRC" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "bridgewindows"; + name = "Bridge View Blast Door" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/hallway/secondary/command) +"gRD" = ( +/obj/structure/table, +/obj/machinery/computer/records/medical/laptop, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/abandon_exam/cat) +"gRQ" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/effect/turf_decal/stripes, +/turf/open/floor/iron, +/area/station/security/checkpoint/escape) +"gRS" = ( +/obj/effect/turf_decal/tile/blue, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"gRV" = ( +/obj/structure/railing, +/obj/structure/cable, +/turf/open/floor/iron/telecomms, +/area/station/tcommsat/server) +"gRX" = ( +/obj/structure/chair/wood/wings{ + dir = 4 + }, +/obj/effect/landmark/start/assistant, +/obj/effect/landmark/start/assistant, +/turf/open/floor/carpet, +/area/station/service/library/lounge) +"gSg" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 6 + }, +/turf/open/space/basic, +/area/space/nearstation) +"gSi" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/airalarm/directional/east, +/obj/machinery/camera/directional/east{ + name = "hallway camera" + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/port) +"gSl" = ( +/obj/structure/sign/directions/security{ + dir = 1; + pixel_y = 8 + }, +/obj/structure/sign/directions/engineering{ + pixel_y = 2 + }, +/obj/structure/sign/directions/supply{ + pixel_y = -4 + }, +/obj/structure/sign/directions/evac{ + pixel_y = -10 + }, +/turf/closed/wall, +/area/station/service/hydroponics) +"gSr" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"gSu" = ( +/obj/structure/table/reinforced, +/obj/item/multitool, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/west, +/turf/open/floor/iron/dark, +/area/station/cargo/office) +"gSA" = ( +/obj/structure/table/reinforced, +/obj/machinery/light/directional/west, +/obj/machinery/airalarm/directional/west, +/obj/machinery/fax{ + fax_name = "Cargo Office"; + name = "Cargo Office Fax Machine" + }, +/obj/machinery/camera/autoname/directional/west, +/turf/open/floor/iron/dark, +/area/station/cargo/office) +"gSB" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/item/kitchen/fork{ + pixel_x = -12; + pixel_y = 2 + }, +/obj/item/kitchen/spoon{ + pixel_x = 10; + pixel_y = 2 + }, +/obj/item/kitchen/fork{ + pixel_x = -12; + pixel_y = 2 + }, +/obj/item/kitchen/fork{ + pixel_x = -12; + pixel_y = 2 + }, +/obj/item/kitchen/fork{ + pixel_x = -12; + pixel_y = 2 + }, +/obj/item/kitchen/spoon{ + pixel_x = 10; + pixel_y = 2 + }, +/obj/item/kitchen/spoon{ + pixel_x = 10; + pixel_y = 2 + }, +/obj/item/kitchen/spoon{ + pixel_x = 10; + pixel_y = 2 + }, +/obj/item/plate, +/obj/item/plate{ + pixel_y = 2 + }, +/obj/item/plate{ + pixel_y = 4 + }, +/obj/item/plate{ + pixel_y = 6 + }, +/obj/machinery/duct, +/obj/machinery/door/window/right/directional/south, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/nt_rep) +"gSE" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron/dark/side, +/area/station/hallway/secondary/command) +"gSL" = ( +/obj/effect/turf_decal/trimline/red/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 6 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 6 + }, +/turf/open/floor/iron/dark/side{ + dir = 6 + }, +/area/station/security/prison) +"gSQ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/maintenance/solars/starboard/fore) +"gST" = ( +/obj/effect/turf_decal/vg_decals/numbers/two, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/machinery/door/window/elevator/right/directional/east{ + elevator_mode = 1; + elevator_linked_id = "publicElevator" + }, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/upper) +"gSU" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/cocaine{ + pixel_x = 2; + pixel_y = 11 + }, +/obj/item/reagent_containers/cocaine{ + pixel_y = 2 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"gSZ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Engineering Security Post" + }, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/security/checkpoint/engineering) +"gTg" = ( +/obj/effect/decal/cleanable/glass, +/obj/structure/flippedtable{ + dir = 4 + }, +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"gTi" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/science/xenobiology) +"gTl" = ( +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white/textured, +/area/station/common/cryopods) +"gTn" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white/textured_large, +/area/station/common/cryopods) +"gTo" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/junction/flip, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/dorms) +"gTp" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/turf/open/floor/iron/shuttle/evac/airless, +/area/space/nearstation) +"gTF" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/security/interrogation) +"gTL" = ( +/obj/structure/cable, +/turf/open/floor/plating/airless, +/area/station/solars/starboard/aft) +"gTS" = ( +/obj/machinery/light/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/commons/toilet/restrooms) +"gTU" = ( +/obj/effect/turf_decal/trimline/purple/filled/line, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/science/lab) +"gTW" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/thermomachine/freezer, +/turf/open/floor/engine, +/area/station/science/ordnance) +"gTX" = ( +/obj/structure/curtain/cloth/fancy/mechanical/start_closed{ + desc = "A set of curtains serving as a fancy theater backdrop. They can only be opened by a button."; + id = "theater_curtains"; + name = "Theater Curtains" + }, +/obj/machinery/button/curtain{ + id = "theater_curtains"; + name = "curtain control"; + pixel_x = 23; + req_access = list("theatre") + }, +/turf/open/floor/wood, +/area/station/service/theater) +"gTZ" = ( +/turf/closed/wall/r_wall, +/area/station/command/heads_quarters/captain/private) +"gUa" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/loading_area, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/red/line{ + dir = 10 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_corner{ + dir = 4 + }, +/area/station/security/office) +"gUd" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/public/glass{ + name = "Upper Science Department" + }, +/turf/open/floor/iron, +/area/station/science/research) +"gUk" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister, +/obj/machinery/incident_display/delam/directional/south, +/turf/open/floor/iron/dark, +/area/station/engineering/supermatter/room) +"gUm" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch" + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/science/central) +"gUo" = ( +/turf/open/floor/iron/stairs{ + dir = 8 + }, +/area/station/common/wrestling/arena) +"gUp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"gUA" = ( +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 1 + }, +/obj/machinery/camera/directional/south, +/obj/structure/closet/firecloset, +/obj/machinery/newscaster/directional/south, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/starboard) +"gUG" = ( +/obj/structure/table/greyscale, +/obj/item/toy/plush/moth{ + name = "Moffee" + }, +/turf/open/floor/mineral/titanium/tiled/white{ + name = "Padded tile" + }, +/area/station/medical/aslyum) +"gUL" = ( +/obj/item/stack/ore/titanium, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"gVe" = ( +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"gVo" = ( +/obj/structure/falsewall, +/turf/open/floor/plating, +/area/station/security/courtroom) +"gVr" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood, +/obj/item/clipboard, +/obj/item/toy/figure/detective, +/turf/open/floor/carpet, +/area/station/security/detectives_office) +"gVu" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/secure_closet/personal/patient, +/obj/structure/window/spawner/directional/north, +/obj/effect/turf_decal/siding/thinplating_new/end{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/medical/medbay/central) +"gVw" = ( +/obj/effect/turf_decal/box/white{ + color = "#52B4E9" + }, +/obj/machinery/portable_atmospherics/canister/anesthetic_mix, +/turf/open/floor/iron/white, +/area/station/medical/coldroom) +"gVx" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"gVz" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/blood/gibs/old, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"gVD" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/science/research) +"gVE" = ( +/obj/structure/girder, +/turf/open/floor/plating, +/area/station/maintenance/department/science/ordnance_maint) +"gVQ" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"gVU" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/access/all/engineering/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "ERT dock" + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"gWc" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"gWf" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/line, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/prison/upper) +"gWh" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/flora/grass/jungle/b, +/obj/structure/flora/bush/flowers_br, +/obj/structure/curtain/cloth/fancy/mechanical{ + icon_state = "bounty-open"; + icon_type = "bounty"; + id = "prisonlibrarycurtain4"; + name = "curtain" + }, +/turf/open/floor/grass, +/area/station/command/heads_quarters/blueshield) +"gWj" = ( +/turf/open/floor/iron, +/area/station/service/bar/backroom) +"gWk" = ( +/obj/machinery/light/small/broken/directional/north, +/obj/machinery/power/port_gen/pacman/pre_loaded, +/obj/effect/turf_decal/bot, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"gWv" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/incinerator_input{ + dir = 1 + }, +/turf/open/floor/engine/vacuum, +/area/station/maintenance/disposal/incinerator) +"gWC" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/vending/tool, +/turf/open/floor/iron/dark, +/area/station/engineering/storage_shared) +"gWE" = ( +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) +"gWF" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen/diner) +"gWG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/cigbutt, +/obj/structure/sign/poster/contraband/random/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"gWR" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"gWU" = ( +/obj/structure/chair/sofa/bench{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple/half{ + dir = 1 + }, +/turf/open/floor/iron/white/side{ + dir = 1 + }, +/area/station/science/research) +"gXa" = ( +/obj/machinery/door/airlock/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) +"gXe" = ( +/obj/structure/closet/crate, +/obj/effect/landmark/blobstart, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/hallway/secondary/construction) +"gXf" = ( +/obj/effect/turf_decal/trimline/red/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 6 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 6 + }, +/turf/open/floor/iron/dark/side{ + dir = 6 + }, +/area/station/security/prison/upper) +"gXl" = ( +/obj/structure/closet/crate/bin, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/machinery/button/curtain{ + id = "dormscurtain7"; + pixel_y = -25 + }, +/turf/open/floor/wood, +/area/station/commons/dorms/room8) +"gXp" = ( +/obj/effect/turf_decal/trimline/red/filled/warning{ + color = "#DE3A3A" + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/side, +/area/station/security/prison/upper) +"gXw" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/smooth_edge{ + dir = 1 + }, +/area/station/command/secure_bunker) +"gXC" = ( +/obj/structure/cable, +/turf/open/floor/catwalk_floor, +/area/station/engineering/atmos) +"gXE" = ( +/turf/closed/wall, +/area/station/maintenance/night_club) +"gXF" = ( +/obj/machinery/door/airlock/command/glass{ + name = "Command Evac Lounge" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/command/general, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/customs/auxiliary) +"gXH" = ( +/obj/machinery/computer/security/telescreen/entertainment/directional/north, +/obj/machinery/light/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/common/wrestling/lobby) +"gXJ" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/science) +"gXL" = ( +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"gXM" = ( +/obj/structure/closet/crate/bin, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/spawner/random/trash/garbage, +/obj/effect/spawner/random/trash/garbage, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/station/maintenance/department/security/prison_upper) +"gXP" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/flora/bush/sparsegrass, +/obj/structure/flora/bush/jungle/a/style_3, +/obj/structure/curtain/cloth/fancy/mechanical{ + icon_state = "bounty-open"; + icon_type = "bounty"; + id = "prisonlibrarycurtain4"; + name = "curtain" + }, +/turf/open/floor/grass, +/area/station/command/heads_quarters/blueshield) +"gXR" = ( +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"gXV" = ( +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet, +/area/station/service/electronic_marketing_den) +"gXZ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/smooth, +/area/station/cargo/miningdock) +"gYf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"gYl" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/stairs{ + dir = 4 + }, +/area/station/maintenance/solars/starboard/fore) +"gYo" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron/checker, +/area/station/service/janitor) +"gYt" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/medical/exam_room) +"gYX" = ( +/obj/machinery/light/directional/west, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/primary/port) +"gZf" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Prison Wing" + }, +/obj/machinery/door/poddoor/preopen{ + id = "Prison Gate"; + name = "Prison Blast Door" + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/delivery/blue, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/security/brig, +/turf/open/floor/iron/dark, +/area/station/security/prison) +"gZk" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/circuit, +/area/station/command/gateway) +"gZm" = ( +/turf/open/floor/wood, +/area/station/service/library) +"gZu" = ( +/obj/machinery/computer/atmos_control/ordnancemix{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/science/ordnance) +"gZw" = ( +/obj/item/kirbyplants/organic/plant21, +/turf/open/floor/iron/dark, +/area/station/tcommsat/computer) +"gZx" = ( +/turf/open/floor/iron/dark, +/area/station/service/chapel/office) +"gZF" = ( +/turf/open/floor/iron/dark, +/area/station/commons/fitness) +"gZL" = ( +/obj/structure/cable, +/obj/effect/landmark/start/medical_doctor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/mob/living/basic/bot/cleanbot/medbay, +/obj/item/beacon, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"gZO" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/structure/frame/machine, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine, +/area/station/science/tele_sci) +"gZY" = ( +/turf/open/floor/plating, +/area/station/maintenance/abandon_wrestle) +"haa" = ( +/obj/machinery/light/small/directional/west{ + pixel_y = 11 + }, +/obj/machinery/duct, +/turf/open/floor/iron/freezer, +/area/station/medical/virology/isolation) +"hal" = ( +/turf/closed/wall/rust, +/area/station/security/detectives_office/private_investigators_office) +"haw" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/science/robotics) +"haD" = ( +/obj/effect/turf_decal/tile/green/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 5 + }, +/area/station/hallway/primary/central) +"haI" = ( +/obj/effect/turf_decal/siding/dark{ + dir = 10 + }, +/turf/open/floor/glass/reinforced/airless, +/area/space/nearstation) +"haK" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/access/all/service/hydroponics, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"haM" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/layer_manifold/violet/visible, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) +"haN" = ( +/obj/structure/rack/shelf, +/obj/item/stack/sheet/rglass{ + amount = 20; + pixel_x = 2; + pixel_y = -2 + }, +/obj/item/stack/rods/fifty, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/maintenance/aux_eva) +"haQ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat_interior) +"haT" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/space/openspace, +/area/space) +"haZ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/status_display/ai/directional/east, +/obj/machinery/light/directional/east, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"hbb" = ( +/obj/structure/dresser, +/obj/machinery/digital_clock/directional/north, +/turf/open/floor/carpet/purple, +/area/station/commons/dorms/room4) +"hbc" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Medbay Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/medical/chemistry, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"hbk" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured_edge{ + dir = 8 + }, +/area/station/common/night_club) +"hbn" = ( +/obj/structure/cable/layer1, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"hbo" = ( +/obj/machinery/smartfridge/organ, +/turf/open/floor/iron/white, +/area/station/maintenance/abandon_surgery) +"hbt" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/delam_scram/directional/east, +/turf/open/floor/engine, +/area/station/engineering/supermatter) +"hbu" = ( +/obj/item/reagent_containers/cup/bucket/wooden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/common/pool/sauna) +"hbv" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen/diner) +"hbA" = ( +/turf/closed/wall/r_wall, +/area/station/maintenance/department/science/central) +"hbD" = ( +/obj/structure/closet/secure_closet/brig/genpop, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/dark, +/area/station/security/prison) +"hbG" = ( +/obj/effect/turf_decal/bot, +/obj/structure/bed{ + name = "Justice Bed" + }, +/obj/item/clothing/suit/jacket/straight_jacket, +/obj/item/clothing/glasses/blindfold, +/obj/item/clothing/mask/muzzle, +/obj/item/electropack, +/obj/item/toy/plush/moth, +/turf/open/floor/iron/dark, +/area/station/security/execution/education) +"hbS" = ( +/obj/item/trash/pistachios, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/contraband/random/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"hbT" = ( +/obj/structure/chair/wood{ + dir = 4 + }, +/obj/machinery/button/door/directional/west{ + id = "Dorm1"; + name = "Dormitory Door Lock"; + normaldoorcontrol = 1; + specialfunctions = 4 + }, +/turf/open/floor/wood, +/area/station/commons/dorms/room2) +"hbU" = ( +/turf/open/floor/iron/dark, +/area/station/science/robotics) +"hbV" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/effect/spawner/random/trash/moisture_trap, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"hbZ" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/effect/spawner/random/maintenance/three, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"hce" = ( +/obj/effect/turf_decal/box/white/corners{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"hcf" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green{ + pixel_x = -6; + pixel_y = 11 + }, +/obj/item/reagent_containers/cup/glass/flask/det{ + pixel_y = 5 + }, +/obj/structure/cable, +/obj/item/paper_bin{ + pixel_x = 11; + pixel_y = 3 + }, +/obj/item/pen{ + pixel_x = 11; + pixel_y = 3 + }, +/turf/open/floor/carpet, +/area/station/security/detectives_office) +"hck" = ( +/obj/effect/decal/cleanable/dirt, +/turf/closed/wall, +/area/station/maintenance/clown_chamber) +"hcn" = ( +/obj/structure/rack/wooden, +/obj/machinery/light/directional/east, +/obj/machinery/status_display/ai/directional/east, +/obj/item/clothing/under/color/pink{ + pixel_x = -7; + pixel_y = 7 + }, +/obj/item/clothing/under/color/blue{ + pixel_y = 7 + }, +/obj/item/clothing/under/color/green{ + pixel_x = 7; + pixel_y = 7 + }, +/obj/item/clothing/under/color/jumpskirt/pink{ + pixel_x = -7; + pixel_y = -7 + }, +/obj/item/clothing/under/color/jumpskirt/blue{ + pixel_y = -7 + }, +/obj/item/clothing/under/color/jumpskirt/green{ + pixel_x = 7; + pixel_y = -7 + }, +/turf/open/floor/wood/parquet, +/area/station/common/tailoring) +"hco" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Security Maintenance" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"hcp" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/status_display/ai/directional/west, +/turf/open/floor/iron, +/area/station/commons/dorms) +"hcu" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 2 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/science/circuits) +"hcv" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/flowers_yw, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/grass, +/area/station/hallway/secondary/command) +"hcw" = ( +/obj/structure/chair/sofa/bench/left{ + dir = 8; + pixel_x = 5 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/secondary/entry) +"hcy" = ( +/obj/effect/turf_decal/tile/blue/full, +/turf/open/floor/iron/dark/smooth_large/airless, +/area/space/nearstation) +"hcK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"hcL" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"hcM" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/station/maintenance/department/security/prison_upper) +"hcO" = ( +/obj/machinery/camera/autoname/directional/west, +/turf/open/floor/iron/dark, +/area/station/tcommsat/computer) +"hcY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/night_club) +"hda" = ( +/obj/effect/turf_decal/tile/red, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"hdb" = ( +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"hdl" = ( +/obj/effect/turf_decal/trimline/red/line{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/red/filled/corner{ + color = "#DE3A3A"; + dir = 8 + }, +/turf/open/floor/iron/dark/corner{ + dir = 8 + }, +/area/station/security/prison/upper) +"hds" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/commons/toilet/restrooms) +"hdx" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/public/glass{ + name = "Command Hallway" + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/command) +"hdE" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering/glass{ + name = "Shared Engineering Storage" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/general, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/engineering/storage_shared) +"hdL" = ( +/obj/effect/turf_decal/stripes/end{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/catwalk_floor, +/area/station/science/ordnance/testlab) +"hdS" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"hdU" = ( +/obj/structure/table/wood/fancy/blue, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/item/clipboard{ + pixel_y = 4 + }, +/obj/item/toy/figure/captain{ + pixel_y = 3 + }, +/obj/machinery/airalarm/directional/south, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain/private) +"hdY" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/commons/fitness/recreation) +"hef" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/table, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"heh" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/obj/structure/window/spawner/directional/south, +/obj/effect/turf_decal/siding/wood, +/obj/structure/chair/comfy/barber_chair{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/service/barber) +"hel" = ( +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/security/courtroom) +"hep" = ( +/obj/machinery/photocopier, +/obj/machinery/status_display/evac/directional/west, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/wood, +/area/station/security/detectives_office) +"heq" = ( +/obj/structure/table/wood/fancy/blue, +/obj/item/plate, +/turf/open/floor/carpet/blue, +/area/station/command/captain_dining) +"hey" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/construction/mining/aux_base) +"heB" = ( +/obj/structure/sign/warning/vacuum/external/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"heN" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/ai) +"heO" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/flowers_br, +/obj/structure/window/spawner/directional/north, +/turf/open/floor/grass, +/area/station/science/research) +"heP" = ( +/obj/structure/cable, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/prison/visit) +"heV" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Spa and Backroom" + }, +/obj/structure/curtain/bounty, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/stairs{ + dir = 4 + }, +/area/station/service/barber) +"heY" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"heZ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/common/night_club/changing_room) +"hfd" = ( +/obj/effect/spawner/random/structure/closet_maintenance, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) +"hfg" = ( +/turf/closed/wall, +/area/space/nearstation) +"hfi" = ( +/obj/item/organ/internal/eyes, +/turf/open/floor/material/meat, +/area/station/maintenance/department/science/xenobiology) +"hfl" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/window/left/directional/south{ + req_access = list("morgue"); + name = "Coroner's Office" + }, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) +"hfm" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/item/radio/intercom/directional/west, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/dark/line{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured_edge{ + dir = 4 + }, +/area/station/security/prison/safe) +"hfr" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/bar) +"hfI" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/service/chapel) +"hfM" = ( +/obj/effect/turf_decal/stripes{ + dir = 10 + }, +/obj/item/kirbyplants/random, +/turf/open/floor/engine, +/area/station/science/ordnance) +"hfN" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/maintenance/abandon_office) +"hfR" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/station/service/library) +"hfW" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/primary/upper) +"hgj" = ( +/obj/machinery/light_switch/directional/east, +/turf/open/floor/carpet, +/area/station/service/bar/atrium) +"hgl" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/sign/poster/contraband/free_drone/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"hgo" = ( +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/iron, +/area/station/maintenance/department/engineering/engine_aft_port) +"hgp" = ( +/obj/machinery/newscaster/directional/north, +/turf/open/floor/iron/white, +/area/station/science/genetics) +"hgr" = ( +/obj/structure/table, +/obj/structure/window/spawner/directional/west{ + pixel_x = -3 + }, +/obj/effect/turf_decal/stripes{ + dir = 5 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 10 + }, +/obj/item/reagent_containers/pill/mutadone{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/reagent_containers/cup/bottle/mutagen, +/obj/item/reagent_containers/syringe, +/obj/item/storage/pill_bottle/mutadone{ + pixel_x = -8; + pixel_y = 9 + }, +/turf/open/floor/iron/dark, +/area/station/science/genetics) +"hgs" = ( +/obj/machinery/door/airlock/command{ + name = "Gateway Atrium" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/command/gateway, +/obj/effect/landmark/navigate_destination, +/turf/open/floor/iron/dark, +/area/station/command/gateway) +"hgv" = ( +/obj/effect/spawner/random/structure/crate, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"hgC" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/commons/fitness) +"hgG" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/dorms) +"hgH" = ( +/obj/structure/table, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/security/prison/mess) +"hgL" = ( +/obj/structure/toilet{ + dir = 1 + }, +/obj/machinery/light/small/directional/east{ + pixel_y = 11 + }, +/obj/structure/sink/directional/west, +/obj/structure/mirror/directional/east, +/turf/open/floor/iron/freezer, +/area/station/commons/dorms/room2) +"hgM" = ( +/obj/machinery/status_display/ai/directional/east, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/port) +"hgU" = ( +/obj/structure/industrial_lift/public, +/obj/structure/railing, +/turf/open/floor/plating/elevatorshaft, +/area/station/hallway/primary/central) +"hgY" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/security/courtroom) +"hha" = ( +/obj/structure/table/wood, +/obj/item/folder/red, +/obj/item/pen, +/obj/machinery/light/directional/south, +/obj/machinery/newscaster/directional/south, +/turf/open/floor/iron/dark, +/area/station/security/detectives_office) +"hhb" = ( +/obj/structure/table/wood/fancy, +/obj/structure/railing{ + dir = 6 + }, +/turf/open/floor/carpet/lone, +/area/station/service/chapel) +"hhd" = ( +/turf/open/floor/iron/smooth_corner{ + dir = 8 + }, +/area/station/engineering/atmos/hfr_room) +"hhq" = ( +/obj/structure/trash_pile, +/turf/open/floor/plating, +/area/station/maintenance/library/lower) +"hhr" = ( +/obj/machinery/light/small/red/dim/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/central) +"hhw" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/machinery/disposal/delivery_chute{ + dir = 4 + }, +/obj/structure/plasticflaps, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/door/window/right/directional/east{ + name = "Security Deliveries"; + req_access = list("cargo") + }, +/turf/open/floor/iron/dark, +/area/station/cargo/sorting) +"hhx" = ( +/obj/machinery/door/firedoor, +/obj/machinery/flasher{ + id = "secentranceflasher"; + pixel_x = 25 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "brig-enterance" + }, +/obj/machinery/door/airlock/security/glass{ + id_tag = "outerbrig"; + name = "Brig" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/delivery/blue, +/obj/machinery/door/poddoor/preopen{ + id = "brigfront"; + name = "Brig Blast Door" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/security/entrance, +/turf/open/floor/iron/dark, +/area/station/security/brig) +"hhy" = ( +/obj/machinery/door/poddoor/preopen{ + id = "ceblast"; + name = "Chief's Lockdown Shutters" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/door/airlock/ce{ + id_tag = "CEdoor"; + name = "Chief Engineer's Office" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/ce, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/command/heads_quarters/ce) +"hhE" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/dark/line{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark/corner{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_edge{ + dir = 8 + }, +/area/station/security/prison/safe) +"hhF" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/commons/dorms) +"hhH" = ( +/obj/effect/turf_decal/bot, +/obj/vehicle/ridden/wheelchair{ + dir = 4 + }, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/iron, +/area/station/medical/medbay/central) +"hhT" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/airalarm/directional/west, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"hhW" = ( +/obj/effect/decal/cleanable/greenglow, +/obj/effect/decal/remains/human, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) +"hhY" = ( +/obj/structure/extinguisher_cabinet/directional/east, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"hik" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/service/barber) +"him" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/heat_exchanging/junction, +/turf/open/floor/plating, +/area/station/tcommsat/computer) +"hiy" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"hiz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/secondary/construction) +"hiD" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/obj/structure/sign/painting/meat{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/command/captain_dining) +"hiH" = ( +/turf/open/floor/wood, +/area/station/security/prison/rec) +"hiK" = ( +/obj/structure/lattice/catwalk, +/obj/item/shard, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/openspace, +/area/station/maintenance/department/medical/central) +"hiM" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/machinery/airalarm/directional/east, +/turf/open/floor/iron/dark, +/area/station/science/auxlab/firing_range) +"hiO" = ( +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/eva) +"hiP" = ( +/obj/effect/turf_decal/loading_area{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/turf/open/floor/iron, +/area/station/medical/cryo) +"hiS" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"hiU" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"hiV" = ( +/turf/open/floor/iron, +/area/station/command/heads_quarters/hos) +"hiY" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/security/range) +"hiZ" = ( +/obj/machinery/porta_turret/ai{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/ai_monitored/turret_protected/ai_upload) +"hjd" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/junction/flip{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"hjh" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/security/office) +"hjn" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/miningdock) +"hjp" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/test_chambers) +"hjt" = ( +/obj/structure/sign/poster/contraband/masked_men, +/turf/closed/wall, +/area/station/common/wrestling/arena) +"hjv" = ( +/obj/machinery/chem_master/condimaster{ + name = "Repurposed Condimaster" + }, +/obj/effect/turf_decal/siding/thinplating/dark/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/station/maintenance/starboard/fore) +"hjI" = ( +/obj/structure/grille/broken, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_starboard) +"hjL" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/maintenance/department/security/upper) +"hjN" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/green/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"hjP" = ( +/obj/effect/turf_decal/stripes{ + dir = 6 + }, +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/science/explab) +"hjS" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"hjV" = ( +/obj/machinery/door/firedoor, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/port) +"hka" = ( +/obj/structure/table/reinforced, +/obj/item/poster/random_official{ + pixel_y = 5 + }, +/obj/item/poster/random_official, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/security/office) +"hkb" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Firing Range" + }, +/obj/structure/cable, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/turf/open/floor/iron/dark/small, +/area/station/security/range) +"hkt" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/lobby) +"hku" = ( +/obj/machinery/turretid{ + control_area = "/area/station/ai_monitored/turret_protected/aisat/hallway"; + name = "Chamber Hallway Turret Control"; + pixel_x = -2; + pixel_y = -28; + req_access = list("minisat") + }, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat_interior) +"hkv" = ( +/obj/item/cigbutt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/sign/poster/contraband/random/directional/south, +/obj/effect/spawner/random/trash/moisture, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"hkB" = ( +/obj/structure/chair/sofa/bench/right{ + dir = 8; + pixel_x = 5 + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/entry) +"hkC" = ( +/obj/item/trash/tray, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"hkK" = ( +/obj/structure/closet/crate/science{ + anchored = 1 + }, +/obj/item/mod/core/standard{ + pixel_y = 4 + }, +/obj/item/mod/core/standard{ + pixel_x = -4 + }, +/obj/item/mod/core/standard{ + pixel_x = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/station/science/robotics/lab) +"hkN" = ( +/turf/open/floor/wood, +/area/station/service/theater/abandoned) +"hkZ" = ( +/obj/structure/table_frame, +/obj/item/wrench, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"hlg" = ( +/obj/structure/table, +/obj/item/clothing/suit/apron/overalls, +/obj/item/cultivator, +/obj/item/seeds/cannabis, +/turf/open/floor/plating, +/area/station/service/hydroponics/garden/abandoned) +"hll" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/red, +/turf/open/floor/iron/dark/small, +/area/station/security/range) +"hlp" = ( +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "brig-enterance" + }, +/obj/machinery/door/airlock/security/glass{ + id_tag = "innerbrig"; + name = "Brig" + }, +/obj/effect/turf_decal/trimline/red/filled/corner{ + dir = 1 + }, +/obj/effect/turf_decal/delivery/blue, +/obj/machinery/door/poddoor/preopen{ + id = "brigfront"; + name = "Brig Blast Door" + }, +/obj/effect/mapping_helpers/airlock/access/all/security/entrance, +/turf/open/floor/iron/dark, +/area/station/security/brig) +"hls" = ( +/obj/effect/turf_decal/stripes{ + dir = 9 + }, +/obj/machinery/atmospherics/components/tank/oxygen, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/storage) +"hlu" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/commons/dorms/vacantroom) +"hlw" = ( +/obj/machinery/air_sensor/engine_chamber, +/turf/open/floor/engine, +/area/station/engineering/supermatter) +"hlC" = ( +/obj/effect/turf_decal/box, +/obj/machinery/holopad, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/start/shaft_miner, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) +"hlM" = ( +/obj/structure/table/reinforced, +/obj/item/clipboard, +/obj/item/key/janitor, +/obj/item/toy/figure/janitor, +/obj/machinery/light/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/camera/autoname/directional/north, +/turf/open/floor/iron/checker, +/area/station/service/janitor) +"hlQ" = ( +/obj/machinery/power/smes/full, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat_interior) +"hlR" = ( +/obj/structure/chair/sofa/bench/right{ + dir = 4; + pixel_x = -5 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/primary/central) +"hlY" = ( +/obj/effect/spawner/random/trash/mess, +/obj/structure/trash_pile, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"hmh" = ( +/obj/structure/chair/sofa/corp{ + dir = 8; + pixel_x = 7 + }, +/obj/effect/landmark/start/botanist{ + required_jobtitle = "Rancher" + }, +/turf/open/floor/wood/parquet, +/area/station/common/night_club) +"hmi" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/security/office) +"hmn" = ( +/obj/machinery/modular_computer/preset/civilian, +/obj/effect/turf_decal/bot, +/obj/machinery/camera/directional/south{ + c_tag = "Recreation - Barbershop"; + dir = 1; + name = "hallway camera" + }, +/obj/machinery/digital_clock/directional/north, +/turf/open/floor/iron/dark, +/area/station/service/barber) +"hmu" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/security/prison/upper) +"hmx" = ( +/obj/effect/turf_decal/trimline/blue/filled/corner, +/obj/structure/cable, +/turf/open/floor/iron/white/side{ + dir = 5 + }, +/area/station/medical/medbay/lobby) +"hmB" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/obj/machinery/airalarm/directional/west, +/turf/open/floor/iron/white, +/area/station/medical/surgery) +"hmD" = ( +/obj/effect/turf_decal/stripes/white/corner, +/turf/open/floor/engine/hull/reinforced, +/area/space/nearstation) +"hmH" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/iron, +/area/station/commons/dorms) +"hmP" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/door/airlock{ + name = "Jury Courtroom Acces" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/effect/mapping_helpers/airlock/access/all/security/court, +/turf/open/floor/wood, +/area/station/security/courtroom) +"hmQ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/sign/poster/random/directional/west, +/obj/machinery/duct, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/commons/dorms) +"hmS" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/chair/comfy/black{ + dir = 8 + }, +/turf/open/floor/carpet/blue, +/area/station/command/captain_dining) +"hmT" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/wood, +/area/station/command/meeting_room/council) +"hmV" = ( +/turf/closed/wall/r_wall, +/area/station/security/checkpoint/supply) +"hmY" = ( +/obj/structure/table, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"hnf" = ( +/obj/effect/turf_decal/trimline/blue/filled/corner, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) +"hng" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/reagent_dispensers/water_cooler, +/turf/open/floor/iron/dark/corner{ + dir = 8 + }, +/area/station/security/office) +"hnh" = ( +/obj/machinery/atmospherics/pipe/smart/simple/supply/hidden, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/atmos/test_chambers) +"hni" = ( +/obj/structure/chair/plastic{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"hnk" = ( +/obj/structure/bookcase/random/fiction, +/turf/open/floor/wood, +/area/station/command/meeting_room/council) +"hnz" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/bookcase/random/reference, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/hop) +"hnC" = ( +/turf/open/floor/plating, +/area/station/maintenance/department/science/upper) +"hnI" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/item/radio/intercom/directional/south, +/obj/machinery/door/airlock/public/glass{ + name = "East RnD Wing" + }, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/science/research) +"hnV" = ( +/obj/structure/table/glass, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/wood, +/area/station/hallway/primary/port) +"hnW" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/dorms) +"hnX" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/food_packaging, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"hnZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/maintenance/abandon_diner) +"hob" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/commons/dorms/room4) +"hod" = ( +/obj/machinery/holopad{ + name = "botany requests holopad" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) +"hog" = ( +/obj/machinery/light/small/directional/north, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"hov" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/effect/turf_decal/stripes, +/obj/machinery/suit_storage_unit/standard_unit, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva/upper) +"hoy" = ( +/obj/machinery/ai_slipper{ + uses = 10 + }, +/obj/effect/turf_decal/bot_white, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat_interior) +"hoz" = ( +/obj/structure/sign/painting/library{ + pixel_y = -32 + }, +/turf/open/floor/carpet, +/area/station/medical/patients_rooms) +"hoC" = ( +/obj/structure/table, +/obj/item/folder, +/obj/item/pen, +/obj/effect/turf_decal/delivery, +/obj/machinery/status_display/ai/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/camera/autoname/directional/north, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"hoE" = ( +/obj/structure/table_frame, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"hoF" = ( +/obj/structure/bodycontainer/morgue, +/obj/effect/turf_decal/bot_white, +/obj/machinery/status_display/evac/directional/west, +/turf/open/floor/iron/dark/small, +/area/station/medical/morgue) +"hoG" = ( +/obj/structure/trash_pile, +/turf/open/floor/plating, +/area/station/maintenance/department/security) +"hoH" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) +"hoI" = ( +/obj/effect/turf_decal/stripes{ + dir = 10 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"hoQ" = ( +/obj/effect/mapping_helpers/airlock/access/all/engineering, +/obj/machinery/door/airlock/engineering{ + name = "AI Sat Power Station" + }, +/turf/open/floor/plating, +/area/station/maintenance/abandon_arcade) +"hoT" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/stairs/left{ + dir = 4 + }, +/area/station/service/chapel) +"hpb" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/wood, +/area/station/service/library) +"hpc" = ( +/obj/structure/curtain/cloth, +/obj/machinery/shower/directional/south, +/obj/structure/drain, +/obj/item/soap/nanotrasen, +/turf/open/floor/iron/freezer, +/area/station/medical/virology/isolation) +"hpd" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/mining{ + name = "Drone Bay" + }, +/obj/effect/mapping_helpers/airlock/access/all/supply/general, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/cargo/drone_bay) +"hpj" = ( +/obj/structure/table/wood/fancy/black, +/obj/item/storage/photo_album/chapel, +/obj/machinery/camera/directional/north{ + c_tag = "Chapel Quarters"; + name = "chapel camera" + }, +/turf/open/floor/carpet/royalblack, +/area/station/service/chapel/office) +"hpn" = ( +/turf/closed/wall/r_wall, +/area/station/science/circuits) +"hpq" = ( +/obj/machinery/light/directional/north, +/obj/structure/sign/poster/random/directional/north, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/storage) +"hpu" = ( +/obj/machinery/door/airlock/virology{ + name = "Virology Access" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/medical/virology, +/obj/machinery/duct, +/obj/effect/turf_decal/tile/green/opposingcorners, +/turf/open/floor/iron/white, +/area/station/medical/virology) +"hpF" = ( +/obj/effect/turf_decal/tile/dark_blue/half/contrasted, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/obj/machinery/light/directional/south, +/turf/open/floor/iron/dark, +/area/station/security/mechbay) +"hpS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"hqa" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/vending/cigarette, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/primary/port) +"hqo" = ( +/obj/structure/window/spawner/directional/south, +/obj/structure/window/spawner/directional/east, +/obj/structure/window/spawner/directional/west, +/obj/structure/flora/bush/jungle/a/style_3, +/turf/open/floor/grass, +/area/station/hallway/primary/port) +"hqu" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"hqv" = ( +/obj/machinery/cryopod{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured_large, +/area/station/common/cryopods) +"hqC" = ( +/obj/structure/closet/radiation, +/obj/effect/turf_decal/bot, +/obj/item/clothing/glasses/meson, +/obj/machinery/firealarm/directional/north, +/obj/item/pipe_dispenser, +/obj/structure/sign/delam_procedure/directional/east, +/obj/machinery/camera/directional/south{ + c_tag = "Engineering - Engine Foyer"; + dir = 1; + name = "engineering camera" + }, +/turf/open/floor/iron/dark, +/area/station/engineering/main) +"hqF" = ( +/obj/structure/cable, +/obj/machinery/newscaster/directional/south, +/obj/machinery/camera/directional/south{ + c_tag = "Crew Area - Cryopods"; + name = "dormitories camera" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/stairs{ + dir = 8 + }, +/area/station/common/cryopods) +"hqN" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/structure/hedge/opaque, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/central) +"hqR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/security/power_station) +"hrb" = ( +/obj/item/weldingtool, +/obj/item/weldingtool, +/obj/item/clothing/head/utility/welding, +/obj/item/clothing/head/utility/welding, +/obj/structure/rack, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/mineral/plastitanium/red, +/area/station/science/robotics/lab) +"hrj" = ( +/obj/effect/turf_decal/bot, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/iron, +/area/station/engineering/supermatter/room) +"hrl" = ( +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/common/wrestling/arena) +"hro" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/security/checkpoint/escape) +"hrr" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/growing/tray, +/obj/effect/turf_decal/trimline/green/filled/line, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) +"hrs" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/medical/pharmacy) +"hrF" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/science) +"hrJ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"hrK" = ( +/turf/closed/wall/r_wall, +/area/station/maintenance/starboard/fore) +"hrN" = ( +/obj/structure/closet/crate/freezer{ + storage_capacity = 70 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/food/meat/slab/human, +/obj/item/food/meat/slab/human, +/obj/item/food/meat/slab/human/mutant, +/obj/item/food/meat/slab/human/mutant/ethereal, +/obj/item/food/meat/slab/human/mutant/fly, +/obj/item/food/meat/slab/human/mutant/lizard, +/obj/item/food/meat/slab/human/mutant/moth, +/obj/item/food/meat/slab/human/mutant/plant, +/obj/item/food/meat/slab/human/mutant/slime, +/obj/effect/spawner/random/medical/memeorgans, +/obj/effect/spawner/random/medical/organs, +/obj/effect/decal/cleanable/blood/old{ + icon_state = "floor2-old" + }, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"hrO" = ( +/obj/machinery/vending/wardrobe/jani_wardrobe, +/obj/structure/cable, +/turf/open/floor/iron/checker, +/area/station/service/janitor) +"hrU" = ( +/obj/item/cigbutt, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/wood, +/area/station/maintenance/abandon_office) +"hsd" = ( +/turf/closed/wall/rust, +/area/station/maintenance/department/science/xenobiology) +"hsh" = ( +/obj/item/stack/sheet/cardboard, +/obj/item/storage/box, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"hsi" = ( +/obj/machinery/door/airlock{ + id_tag = "Toilet4"; + name = "Stall 4" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/commons/toilet/restrooms) +"hsm" = ( +/obj/structure/sign/directions/medical{ + dir = 4 + }, +/turf/closed/wall, +/area/station/hallway/primary/upper) +"hss" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron/dark, +/area/station/security/prison/mess) +"hsF" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters{ + id = "SnacksKitchen"; + name = "Snack Bar Shutters" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/common/wrestling/concessions) +"hsI" = ( +/obj/machinery/light/directional/south, +/turf/open/floor/grass, +/area/station/common/night_club/back_stage) +"hsN" = ( +/obj/structure/chair, +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 4 + }, +/turf/open/floor/iron/white/side{ + dir = 6 + }, +/area/station/medical/medbay/lobby) +"hsQ" = ( +/obj/structure/chair/comfy/brown{ + buildstackamount = 0; + dir = 1 + }, +/turf/open/floor/carpet, +/area/station/command/meeting_room/council) +"hsZ" = ( +/obj/machinery/shower/directional/west, +/obj/structure/drain, +/turf/open/floor/iron/freezer, +/area/station/common/wrestling/locker) +"htc" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/obj/effect/landmark/start/shaft_miner, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) +"htf" = ( +/obj/structure/toilet{ + dir = 8 + }, +/obj/structure/mirror/directional/north{ + pixel_y = 33 + }, +/obj/structure/sink/directional/south, +/turf/open/floor/iron/freezer, +/area/station/science/breakroom) +"htq" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/floor/iron, +/area/station/engineering/storage/tech) +"htr" = ( +/obj/structure/rack, +/obj/item/circuitboard/machine/telecomms/broadcaster, +/obj/item/circuitboard/machine/telecomms/broadcaster, +/obj/item/circuitboard/machine/telecomms/receiver, +/obj/item/circuitboard/machine/telecomms/receiver, +/obj/item/circuitboard/machine/telecomms/relay, +/obj/item/circuitboard/machine/telecomms/relay, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/north, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tcomms) +"hts" = ( +/obj/machinery/door/airlock/virology/glass{ + name = "Isolation A" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/medical/virology, +/turf/open/floor/iron, +/area/station/medical/virology) +"htw" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "roboticsprivacy"; + name = "Robotics Shutters" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/science/robotics/mechbay) +"htE" = ( +/obj/structure/bookcase/random/reference, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain/private) +"htF" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/smooth_corner, +/area/station/cargo/miningdock) +"htK" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/commons/dorms) +"htQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/maintenance/port/aft) +"htS" = ( +/obj/machinery/light/small/directional/south, +/obj/effect/spawner/random/trash/mopbucket, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/port/aft) +"htV" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"hud" = ( +/obj/machinery/light/directional/south, +/obj/effect/landmark/start/chaplain, +/obj/machinery/light_switch/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/carpet/royalblack, +/area/station/service/chapel/office) +"hui" = ( +/turf/closed/wall/rust, +/area/station/maintenance/department/security/prison_upper) +"hup" = ( +/turf/closed/wall/r_wall, +/area/station/cargo/storage) +"hur" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/carpet, +/area/station/security/courtroom) +"hux" = ( +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/engineering/atmos/hfr_room) +"huy" = ( +/obj/effect/turf_decal/stripes{ + dir = 6 + }, +/turf/open/floor/engine, +/area/station/science/ordnance) +"huz" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white/corner{ + dir = 8 + }, +/area/station/hallway/secondary/entry) +"huI" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/security/detectives_office) +"huN" = ( +/turf/closed/wall/r_wall, +/area/station/ai_monitored/command/nuke_storage) +"huQ" = ( +/obj/structure/cable, +/obj/machinery/firealarm/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/hallway/primary/port) +"hvm" = ( +/obj/machinery/door/firedoor, +/obj/structure/table/reinforced, +/obj/item/folder/yellow, +/obj/item/pen, +/obj/machinery/door/window/left/directional/south{ + req_access = list("engineering","atmospherics"); + name = "Engineering Desk" + }, +/turf/open/floor/iron/dark, +/area/station/engineering/lobby) +"hvn" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/command/heads_quarters/ce) +"hvp" = ( +/obj/effect/turf_decal/stripes{ + dir = 6 + }, +/obj/structure/table/glass, +/obj/item/reagent_containers/cup/beaker/large, +/obj/item/reagent_containers/dropper, +/turf/open/floor/iron, +/area/station/medical/chemistry) +"hvq" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/department/engineering/atmos_aux_port) +"hvs" = ( +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_port) +"hvv" = ( +/obj/machinery/camera/directional/north{ + c_tag = "Courtroom - Entrance"; + dir = 3 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet/directional/south, +/turf/open/floor/iron/dark, +/area/station/security/courtroom) +"hvw" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/station/cargo/sorting) +"hvG" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/common/pool) +"hvH" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/table/reinforced, +/obj/item/clothing/ears/earmuffs{ + pixel_y = 7 + }, +/obj/item/clothing/glasses/sunglasses{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/effect/turf_decal/stripes, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/security/range) +"hvJ" = ( +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/aisat/hallway) +"hvK" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/effect/turf_decal/stripes, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/iron, +/area/station/science/research) +"hvU" = ( +/obj/effect/turf_decal/caution/stand_clear{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) +"hvV" = ( +/obj/structure/table/reinforced, +/obj/machinery/cell_charger_multi, +/obj/item/stock_parts/cell/high, +/turf/open/floor/iron/dark, +/area/station/engineering/storage_shared) +"hwb" = ( +/obj/machinery/vending/wardrobe/hydro_wardrobe, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) +"hwd" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/north, +/obj/structure/window/spawner/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"hwe" = ( +/obj/structure/flora/bush/jungle/a/style_2, +/obj/structure/flora/bush/flowers_yw/style_2, +/obj/structure/window/fulltile, +/turf/open/floor/grass, +/area/station/hallway/primary/upper) +"hwi" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_starboard) +"hwj" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/vehicle/ridden/janicart, +/obj/effect/turf_decal/siding/purple{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/service/janitor) +"hwl" = ( +/obj/machinery/suit_storage_unit/atmos, +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/office) +"hwp" = ( +/obj/machinery/door/airlock/wood{ + name = "Sauna" + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain/private) +"hwx" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/maintenance/solars/starboard/aft) +"hwD" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/white, +/area/station/command/heads_quarters/rd) +"hwM" = ( +/obj/machinery/space_heater, +/obj/structure/railing, +/turf/open/floor/plating/rust, +/area/station/maintenance/department/science/xenobiology) +"hwO" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/white, +/area/station/medical/virology) +"hwT" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/kitchen, +/area/station/security/prison/mess) +"hwU" = ( +/obj/machinery/light/no_nightlight/directional/west, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/machinery/camera/autoname/directional/west, +/turf/open/floor/iron/smooth_edge{ + dir = 8 + }, +/area/station/engineering/atmos/hfr_room) +"hxd" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/engineering/lobby) +"hxh" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line, +/turf/open/floor/iron/white, +/area/station/medical/pharmacy) +"hxm" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) +"hxn" = ( +/obj/structure/trash_pile, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/aft/upper) +"hxo" = ( +/obj/structure/table, +/obj/effect/turf_decal/stripes{ + dir = 6 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 9 + }, +/obj/machinery/computer/records/medical/laptop{ + pixel_y = 1 + }, +/obj/item/infuser_book{ + pixel_x = -18 + }, +/turf/open/floor/iron/dark, +/area/station/science/genetics) +"hxq" = ( +/obj/item/kirbyplants/random, +/obj/structure/window/spawner/directional/east, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/carpet, +/area/station/service/chapel/funeral) +"hxw" = ( +/obj/structure/showcase/cyborg/old{ + pixel_y = 20 + }, +/obj/structure/cable, +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat_interior) +"hxE" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless, +/area/station/maintenance/fore/upper) +"hxH" = ( +/obj/structure/table/reinforced/rglass, +/obj/item/folder/white, +/obj/item/reagent_containers/cup/beaker/large{ + pixel_x = -3 + }, +/obj/item/reagent_containers/cup/beaker{ + pixel_x = 3 + }, +/obj/item/reagent_containers/dropper, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/medical/pharmacy) +"hxO" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"hxV" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 + }, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron/dark, +/area/station/common/night_club) +"hxW" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/conveyor_switch/oneway{ + dir = 8; + id = "cargounload" + }, +/turf/open/floor/iron/smooth, +/area/station/cargo/storage) +"hxZ" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"hya" = ( +/obj/structure/table, +/obj/item/folder/red, +/turf/open/floor/plating, +/area/station/maintenance/abandon_holding_cell) +"hyp" = ( +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/plating, +/area/station/maintenance/department/security/lower) +"hyt" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/bed/dogbed, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/engine, +/area/station/command/secure_bunker) +"hyw" = ( +/obj/machinery/space_heater, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"hyx" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet/directional/east, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"hyz" = ( +/obj/effect/spawner/structure/electrified_grille, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"hyA" = ( +/turf/closed/wall, +/area/station/service/chapel) +"hyF" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/fermenting_barrel, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/wood, +/area/station/service/chapel) +"hyM" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/openspace, +/area/station/maintenance/department/medical/central) +"hyU" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 6 + }, +/obj/machinery/light/small/blacklight/directional/west, +/obj/structure/trash_pile, +/obj/effect/spawner/random/trash/garbage, +/obj/structure/cable, +/turf/open/floor/iron/dark/small, +/area/station/security/prison/upper) +"hyY" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) +"hza" = ( +/obj/structure/flora/bush/grassy, +/turf/open/floor/grass, +/area/station/hallway/primary/central/aft) +"hzj" = ( +/obj/effect/turf_decal/vg_decals/numbers/zero{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/shuttle/evac/airless, +/area/station/solars/starboard/aft) +"hzp" = ( +/turf/open/floor/wood/large, +/area/station/security/brig) +"hzr" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4 + }, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/bridge_pipe/yellow/visible, +/turf/open/floor/engine, +/area/station/science/ordnance) +"hzF" = ( +/obj/structure/chair/sofa/left/brown, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/landmark/start/assistant, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/turf/open/floor/carpet, +/area/station/common/wrestling/lobby) +"hzH" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/command) +"hzU" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/west, +/obj/structure/window/spawner/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"hzW" = ( +/obj/structure/window/spawner/directional/east, +/obj/structure/window/spawner/directional/west, +/obj/structure/flora/bush/large, +/turf/open/floor/grass, +/area/station/service/hydroponics) +"hAa" = ( +/obj/machinery/button/door/directional/north{ + id = "evashutter"; + name = "E.V.A. Shutters"; + req_access = list("command") + }, +/obj/effect/turf_decal/caution/stand_clear, +/obj/effect/turf_decal/bot, +/obj/machinery/door/poddoor/shutters{ + id = "evashutter"; + name = "E.V.A. Storage Shutter" + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva/upper) +"hAd" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) +"hAn" = ( +/obj/structure/closet/crate{ + name = "Stations and Syndicate Starter Bundle" + }, +/obj/item/toy/figure/assistant, +/obj/item/toy/figure/assistant, +/obj/item/toy/figure/syndie, +/obj/item/toy/figure/syndie, +/obj/item/toy/figure/wizard, +/obj/item/toy/figure/borg, +/obj/item/toy/figure/botanist, +/obj/item/toy/figure/chef, +/obj/item/toy/figure/curator, +/obj/item/folder/blue, +/obj/item/folder/red, +/obj/item/folder/red, +/obj/item/folder/blue, +/obj/item/clothing/head/wizard/fake, +/obj/item/clothing/suit/wizrobe/fake, +/obj/item/staff, +/obj/item/toy/plush/ratplush, +/turf/open/floor/iron/dark, +/area/station/service/library/lounge) +"hAp" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/chair/sofa/corp{ + dir = 4; + layer = 2.8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/light/floor/has_bulb, +/turf/open/floor/wood/parquet, +/area/station/common/night_club) +"hAz" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/blue/line{ + dir = 8 + }, +/obj/machinery/door/poddoor/shutters/window{ + id = "SecMech"; + name = "Security Mechbay Shutters" + }, +/turf/open/floor/iron/dark, +/area/station/security/mechbay) +"hAB" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 1 + }, +/turf/open/floor/iron/dark/small, +/area/station/science/circuits) +"hAI" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister/nitrogen, +/turf/open/floor/iron/dark, +/area/station/engineering/supermatter/room) +"hAJ" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/iron/stairs/medium, +/area/station/engineering/atmos/test_chambers) +"hAL" = ( +/obj/structure/closet/secure_closet/freezer/kitchen, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) +"hAO" = ( +/obj/structure/chair/sofa/bench/left{ + dir = 4 + }, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/iron/dark, +/area/station/cargo/lobby) +"hBc" = ( +/obj/structure/table/reinforced, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/medical/psychology) +"hBg" = ( +/obj/machinery/door/poddoor/preopen{ + id = "atmoslock"; + name = "Atmospherics Lockdown Blast Door" + }, +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Atmospherics Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/engineering/atmos/hfr_room) +"hBk" = ( +/obj/structure/window/spawner/directional/west, +/obj/structure/flora/bush/jungle/b, +/obj/structure/flora/biolumi/mine/weaklight, +/obj/structure/flora/ocean/glowweed{ + pixel_x = 11 + }, +/turf/open/floor/grass/fairy, +/area/station/common/night_club) +"hBm" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/science/ordnance) +"hBq" = ( +/obj/effect/turf_decal/tile/red, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/office) +"hBx" = ( +/obj/item/kirbyplants/random, +/obj/machinery/firealarm/directional/west, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/wood, +/area/station/command/heads_quarters/blueshield) +"hBC" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/science/ordnance_maint) +"hBF" = ( +/obj/structure/chair/stool/directional/east, +/turf/open/floor/glass, +/area/station/commons/dorms) +"hBJ" = ( +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/science/ordnance) +"hBL" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 10 + }, +/obj/effect/landmark/start/atmospheric_technician, +/turf/open/floor/iron, +/area/station/engineering/atmos/pumproom) +"hBM" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/commons/dorms) +"hBP" = ( +/obj/structure/flora/bush/sparsegrass, +/obj/structure/flora/bush/flowers_br, +/turf/open/floor/grass, +/area/station/service/chapel) +"hBT" = ( +/obj/structure/table/reinforced, +/obj/item/modular_computer/laptop/preset/civilian, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/science/explab) +"hCc" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured_edge{ + dir = 4 + }, +/area/station/engineering/supermatter/room) +"hCe" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/machinery/shieldgen, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva/upper) +"hCh" = ( +/obj/effect/turf_decal/bot, +/obj/structure/reagent_dispensers/fueltank{ + pixel_y = 1 + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva/upper) +"hCi" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/carpet, +/area/station/service/chapel/funeral) +"hCn" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/light/directional/east, +/obj/machinery/status_display/evac/directional/east, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"hCo" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"hCp" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible/layer2{ + dir = 8 + }, +/obj/effect/turf_decal/stripes, +/obj/machinery/light/directional/south, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"hCB" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/escapepodbay) +"hCF" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/security/prison/work) +"hCI" = ( +/obj/structure/table/reinforced, +/obj/item/paper_bin{ + pixel_y = 3 + }, +/obj/item/pen{ + pixel_y = 3 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/medical/psychology) +"hCP" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/flowers_yw, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "cmoshutter3"; + name = "CMO Quarters Shutters" + }, +/turf/open/floor/grass, +/area/station/command/heads_quarters/cmo) +"hCR" = ( +/obj/machinery/door/airlock/bathroom{ + name = "Restroom" + }, +/turf/open/floor/iron/freezer, +/area/station/medical/patients_rooms) +"hCT" = ( +/obj/machinery/door/airlock/corporate{ + name = "Representative's Office" + }, +/obj/effect/mapping_helpers/airlock/access/all/command/captain, +/turf/open/floor/carpet/green, +/area/station/command/heads_quarters/nt_rep) +"hCU" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/sunny, +/obj/structure/flora/bush/flowers_pp, +/obj/structure/window/spawner/directional/north, +/obj/structure/window/spawner/directional/east, +/obj/structure/window/spawner/directional/west, +/turf/open/floor/grass, +/area/station/security/checkpoint/escape) +"hCX" = ( +/obj/machinery/door/airlock/security/old{ + name = "Visitation" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/prison/visit) +"hDd" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/item/healthanalyzer{ + pixel_y = 9 + }, +/obj/item/plant_analyzer, +/obj/item/analyzer{ + pixel_y = -4 + }, +/obj/item/healthanalyzer{ + pixel_y = 9 + }, +/obj/item/plant_analyzer, +/obj/item/analyzer{ + pixel_y = -4 + }, +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/iron, +/area/station/engineering/storage/tech) +"hDp" = ( +/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"hDq" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1 + }, +/turf/open/floor/engine/vacuum, +/area/station/maintenance/disposal/incinerator) +"hDr" = ( +/turf/closed/wall, +/area/station/maintenance/department/engineering/engine_aft_port) +"hDu" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/components/trinary/mixer{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/science/ordnance) +"hDv" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/commons/dorms) +"hDz" = ( +/obj/structure/chair/sofa/right/brown, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/machinery/digital_clock/directional/north, +/turf/open/floor/wood, +/area/station/medical/psychology) +"hDA" = ( +/turf/open/floor/iron/checker, +/area/station/service/janitor) +"hDB" = ( +/obj/effect/turf_decal/trimline/purple/filled/corner{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/science/research) +"hDH" = ( +/obj/effect/turf_decal/stripes/corner, +/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"hDL" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/status_display/evac/directional/east, +/obj/machinery/egg_incubator, +/turf/open/floor/wood/parquet, +/area/station/common/night_club) +"hDM" = ( +/obj/machinery/seed_extractor, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/station/service/hydroponics/garden/abandoned) +"hDR" = ( +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) +"hDT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"hDU" = ( +/obj/structure/closet/radiation, +/obj/effect/turf_decal/bot, +/obj/item/clothing/glasses/meson, +/obj/item/radio/intercom/directional/north, +/obj/item/pipe_dispenser, +/obj/machinery/camera/directional/south{ + c_tag = "Engineering - Engine Foyer"; + dir = 1; + name = "engineering camera" + }, +/turf/open/floor/iron/dark, +/area/station/engineering/main) +"hDW" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/misc/asteroid/airless, +/area/space/nearstation) +"hDY" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/water_source/puddle, +/obj/structure/flora/bush/reed{ + pixel_y = 8 + }, +/turf/open/floor/grass, +/area/station/service/hydroponics) +"hEe" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"hEi" = ( +/obj/machinery/griddle, +/obj/item/radio/intercom/directional/south, +/obj/machinery/duct, +/turf/open/floor/iron/cafeteria, +/area/station/command/heads_quarters/nt_rep) +"hEu" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"hEv" = ( +/obj/structure/table/reinforced, +/obj/item/assembly/timer{ + pixel_x = -6; + pixel_y = 6 + }, +/obj/item/assembly/timer{ + pixel_x = -6; + pixel_y = 6 + }, +/obj/item/assembly/voice{ + pixel_x = -7 + }, +/obj/item/assembly/voice{ + pixel_x = -7 + }, +/obj/item/assembly/prox_sensor{ + pixel_x = 6; + pixel_y = 7 + }, +/obj/item/assembly/prox_sensor{ + pixel_x = 6; + pixel_y = 7 + }, +/obj/item/assembly/signaler{ + pixel_x = 6 + }, +/obj/item/assembly/signaler{ + pixel_x = 6 + }, +/obj/item/assembly/signaler{ + pixel_x = 6 + }, +/obj/item/assembly/signaler{ + pixel_x = 6 + }, +/obj/item/assembly/signaler{ + pixel_x = 6 + }, +/obj/machinery/status_display/evac/directional/north, +/obj/item/assembly/flash, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) +"hEA" = ( +/obj/machinery/door/firedoor, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) +"hEC" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/iron/white/corner{ + dir = 8 + }, +/area/station/hallway/secondary/entry) +"hED" = ( +/obj/structure/window/spawner/directional/north, +/obj/structure/chair/sofa/left/brown, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"hEI" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/port/central) +"hEL" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_edge, +/area/station/engineering/supermatter/room) +"hEP" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/machinery/button/elevator{ + id = "publicElevator"; + pixel_y = 32 + }, +/obj/machinery/lift_indicator/directional/north{ + linked_elevator_id = "publicElevator" + }, +/obj/machinery/light/directional/north, +/obj/machinery/door/window/elevator/left/directional/west, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/central) +"hES" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/terminal{ + dir = 8 + }, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/maintenance/starboard/fore) +"hEX" = ( +/obj/effect/turf_decal/stripes/white/line, +/obj/structure/railing, +/turf/closed/wall, +/area/station/security/prison/upper) +"hFf" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/common/wrestling/arena) +"hFh" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/table, +/obj/item/assembly/igniter, +/obj/item/assembly/igniter, +/obj/item/assembly/timer{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/assembly/timer{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/assembly/timer{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/medical/pharmacy) +"hFk" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/photocopier, +/obj/structure/window/spawner/directional/south, +/turf/open/floor/iron, +/area/station/medical/virology/isolation) +"hFo" = ( +/obj/structure/table/reinforced, +/obj/item/reagent_containers/cup/glass/ice{ + pixel_x = -6; + pixel_y = -1 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/item/reagent_containers/cup/rag{ + pixel_x = 8; + pixel_y = 16 + }, +/obj/machinery/door/poddoor/shutters{ + id = "BevStand"; + name = "Beverage Stand Shutters" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/common/wrestling/beverage) +"hFB" = ( +/obj/structure/window/reinforced/plasma/spawner/directional/south, +/obj/machinery/power/shuttle_engine/heater{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"hFC" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/item/kirbyplants/random, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/wood, +/area/station/hallway/secondary/service) +"hFJ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron/white/textured, +/area/station/medical/aslyum) +"hFM" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/commons/dorms) +"hFQ" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/exit/departure_lounge) +"hFR" = ( +/turf/open/floor/iron/white/textured, +/area/station/medical/aslyum) +"hFX" = ( +/obj/machinery/power/smes, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/medical/power_station) +"hFZ" = ( +/turf/open/floor/iron/white/textured, +/area/station/common/cryopods) +"hGf" = ( +/turf/closed/wall/r_wall, +/area/station/security/brig) +"hGi" = ( +/obj/machinery/computer/mecha, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/checkpoint/science/research) +"hGm" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"hGt" = ( +/obj/structure/table, +/obj/machinery/microwave{ + pixel_x = -1; + pixel_y = 6 + }, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/iron/dark, +/area/station/cargo/miningoffice) +"hGx" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/athletic_mixed, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/landmark/start/hangover/closet, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/commons/dorms) +"hGT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/sign/warning/electric_shock/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"hGU" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen" + }, +/obj/effect/spawner/random/maintenance, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"hGX" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/hallway/secondary/construction) +"hGY" = ( +/obj/structure/cable, +/obj/machinery/light_switch/directional/north, +/obj/machinery/duct, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/maintenance/disposal/incinerator) +"hHe" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/common/wrestling/arena) +"hHl" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/structure/chair/comfy, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"hHn" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/checkpoint/supply) +"hHr" = ( +/obj/effect/turf_decal/weather/sand, +/obj/structure/flora/bush/jungle/b, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"hHt" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/atmos_aux_port) +"hHv" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/table/reinforced, +/obj/item/clipboard, +/obj/item/toy/figure/cargotech, +/obj/machinery/light/directional/south, +/obj/structure/noticeboard/directional/south, +/turf/open/floor/iron/dark, +/area/station/cargo/office) +"hHH" = ( +/obj/effect/spawner/random/trash/moisture_trap, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"hHI" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"hHJ" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hall10"; + location = "hall9" + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/port) +"hHM" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen" + }, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"hHN" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/medical/medbay/lobby) +"hHR" = ( +/obj/structure/table/reinforced, +/obj/item/binoculars, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/testlab) +"hIa" = ( +/turf/closed/wall/rust, +/area/station/maintenance/aux_eva) +"hId" = ( +/obj/effect/turf_decal/tile/brown/anticorner/contrasted, +/obj/machinery/firealarm/directional/south, +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/iron, +/area/station/cargo/sorting) +"hIe" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/engine_smes) +"hIi" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister/nitrogen, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/storage) +"hIj" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/brown/visible, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"hIo" = ( +/obj/structure/table/reinforced, +/obj/item/paper_bin{ + pixel_y = 3 + }, +/obj/item/pen{ + pixel_y = 3 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/item/restraints/handcuffs/cable/cyan, +/turf/open/floor/iron, +/area/station/security/checkpoint/medical) +"hIp" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/freezer, +/area/station/maintenance/abandon_kitchen_upper) +"hIu" = ( +/turf/closed/wall, +/area/station/maintenance/department/science/xenobiology) +"hIv" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/siding/thinplating_new/end{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/customs) +"hIx" = ( +/turf/closed/wall/r_wall, +/area/station/command/captain_dining) +"hIB" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"hIV" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/fitness) +"hIY" = ( +/obj/machinery/power/shuttle_engine/heater, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/atmos_aux_port) +"hJb" = ( +/obj/machinery/sparker/directional/north{ + id = "Xenobio" + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"hJf" = ( +/obj/structure/table, +/obj/item/paper_bin, +/obj/item/pen, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/iron, +/area/station/maintenance/thruster_room/central) +"hJh" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/hallway/primary/central) +"hJk" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 9 + }, +/obj/structure/cable, +/obj/structure/extinguisher_cabinet/directional/north, +/obj/machinery/light/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/science/research) +"hJm" = ( +/obj/effect/turf_decal/trimline/blue/corner{ + dir = 8 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/iron, +/area/station/commons/fitness) +"hJo" = ( +/obj/effect/spawner/random/trash/cigbutt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"hJr" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "CytologyShutters"; + name = "Cytology Shutters" + }, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "CytologyShutters"; + name = "Cytology Shutters"; + pixel_y = -32 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/science/xenobiology) +"hJw" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet/directional/east, +/obj/machinery/light/directional/east, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"hJz" = ( +/obj/structure/table/reinforced/rglass, +/obj/item/stack/sheet/mineral/plasma, +/obj/item/reagent_containers/cup/bottle/multiver{ + pixel_x = 6 + }, +/obj/item/reagent_containers/cup/bottle/epinephrine, +/obj/structure/window/spawner/directional/east, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/medical/pharmacy) +"hJA" = ( +/obj/effect/turf_decal/stripes/corner, +/obj/structure/extinguisher_cabinet/directional/west, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/circuit, +/area/station/command/gateway) +"hJE" = ( +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes{ + dir = 9 + }, +/turf/open/floor/engine, +/area/station/science/ordnance) +"hJH" = ( +/turf/closed/wall, +/area/station/maintenance/fore/upper) +"hJJ" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/structure/barricade/wooden/crude, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/curtain/bounty/start_closed, +/turf/open/floor/iron/dark/herringbone, +/area/station/security/prison/upper) +"hJL" = ( +/obj/structure/table, +/obj/structure/cable, +/obj/item/storage/bag/construction, +/obj/item/storage/bag/construction, +/obj/item/storage/bag/construction, +/obj/item/stack/sheet/iron/fifty, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/test_chambers) +"hJR" = ( +/turf/closed/wall, +/area/station/science/research) +"hJU" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/abandon_wrestle) +"hKf" = ( +/obj/structure/table, +/obj/item/paper_bin, +/obj/item/pen, +/obj/effect/turf_decal/delivery, +/obj/machinery/status_display/ai/directional/south, +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"hKi" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"hKj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/frame/computer, +/obj/item/stack/cable_coil/cut, +/obj/item/shard, +/obj/machinery/barsign{ + pixel_y = 32 + }, +/obj/machinery/light/small/directional/north, +/turf/open/floor/wood, +/area/station/service/electronic_marketing_den) +"hKn" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/iron/shuttle/arrivals/airless, +/area/space/nearstation) +"hKt" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"hKw" = ( +/obj/structure/window/reinforced/plasma/spawner/directional/south, +/obj/machinery/power/shuttle_engine/heater{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"hKC" = ( +/obj/structure/chair/office{ + dir = 4 + }, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/cmo) +"hKI" = ( +/obj/machinery/light/directional/south, +/turf/open/openspace, +/area/station/hallway/primary/upper) +"hKK" = ( +/obj/machinery/mecha_part_fabricator, +/obj/machinery/status_display/ai/directional/north, +/turf/open/floor/mineral/plastitanium/red, +/area/station/science/robotics/lab) +"hKO" = ( +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"hKV" = ( +/turf/closed/wall/r_wall, +/area/station/engineering/break_room) +"hLd" = ( +/obj/item/ammo_casing/a357, +/obj/item/ammo_casing/a357{ + pixel_x = 7; + pixel_y = 7 + }, +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"hLg" = ( +/obj/structure/sign/warning/vacuum/external/directional/south, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"hLj" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/science/ordnance) +"hLk" = ( +/obj/structure/chair/office{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/thruster_room/central) +"hLl" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"hLn" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/dish_drive/bullet, +/obj/effect/turf_decal/trimline/red/line{ + dir = 6 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark/corner{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_corner{ + dir = 1 + }, +/area/station/ai_monitored/security/armory) +"hLu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/broken/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"hLx" = ( +/obj/structure/cable, +/obj/structure/table/wood/poker, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/station/service/abandoned_gambling_den) +"hLA" = ( +/obj/machinery/light/small/red/dim/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/bar) +"hLH" = ( +/obj/structure/ore_box, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"hLJ" = ( +/obj/structure/frame/machine, +/turf/open/floor/plating, +/area/station/hallway/secondary/construction) +"hLQ" = ( +/obj/effect/landmark/start/hangover, +/turf/open/floor/wood, +/area/station/hallway/primary/central) +"hLY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/grille, +/obj/structure/window/spawner/directional/east, +/obj/structure/window/spawner/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"hLZ" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) +"hMe" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/smart/simple/violet/visible/layer2, +/turf/open/space/basic, +/area/space/nearstation) +"hMh" = ( +/obj/structure/chair/office, +/turf/open/floor/iron, +/area/station/maintenance/console_room) +"hMj" = ( +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) +"hMm" = ( +/turf/closed/wall/r_wall, +/area/station/engineering/storage) +"hMr" = ( +/obj/structure/easel{ + anchored = 1 + }, +/obj/item/canvas{ + pixel_x = 9 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/science/ordnance_maint) +"hMu" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/eighties/red, +/area/station/common/arcade) +"hMw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/wood, +/area/station/maintenance/abandon_art_studio) +"hMx" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/structure/disposalpipe/junction/flip{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white/corner{ + dir = 1 + }, +/area/station/hallway/secondary/entry) +"hMy" = ( +/obj/item/kirbyplants/random, +/obj/machinery/camera/directional/east{ + c_tag = "Chapel Morgue"; + name = "chapel camera" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/service/chapel) +"hMz" = ( +/obj/structure/closet/crate/bin, +/turf/open/floor/iron/white, +/area/station/medical/aslyum) +"hMB" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/vg_decals/numbers/three, +/obj/machinery/door/window/brigdoor/security/cell/right/directional/west{ + name = "Cell 3" + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/brig) +"hMF" = ( +/turf/open/floor/plating, +/area/space/nearstation) +"hMG" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/external, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"hMH" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/dark/side, +/area/station/common/laser_tag) +"hMI" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"hML" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/science/research) +"hMP" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/hallway/secondary/service) +"hMW" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/wood, +/area/station/service/lawoffice) +"hNc" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/structure/sign/nanotrasen{ + pixel_x = -32 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/primary/central/aft) +"hNh" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/light/directional/east, +/obj/machinery/light_switch/directional/east, +/turf/open/floor/carpet, +/area/station/service/chapel/office) +"hNj" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/commons/fitness/recreation) +"hNk" = ( +/obj/structure/table, +/obj/item/binoculars, +/turf/open/floor/iron, +/area/station/science/ordnance/office) +"hNo" = ( +/turf/open/floor/iron/stairs/left{ + dir = 1 + }, +/area/station/maintenance/port/upper) +"hNq" = ( +/obj/item/reagent_containers/cup/bucket/wooden, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain/private) +"hNr" = ( +/obj/structure/cable, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/aisat/hallway) +"hNu" = ( +/turf/open/floor/plating/airless, +/area/station/maintenance/fore/upper) +"hNz" = ( +/obj/structure/drain, +/obj/machinery/shower/directional/west, +/turf/open/floor/iron/freezer, +/area/station/commons/toilet/restrooms) +"hNB" = ( +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/engineering/engine_smes) +"hNC" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron/smooth, +/area/station/cargo/power_station/upper) +"hND" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Toxins Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/ordnance_storage, +/turf/open/floor/plating, +/area/station/maintenance/department/science/upper) +"hNI" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/carpet/lone, +/area/station/command/meeting_room/council) +"hNP" = ( +/obj/machinery/light/small/directional/east, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_port) +"hNU" = ( +/obj/effect/turf_decal/caution/stand_clear/red{ + dir = 4 + }, +/turf/open/floor/iron/shuttle/evac/airless, +/area/space/nearstation) +"hNX" = ( +/obj/effect/turf_decal/bot, +/obj/structure/reagent_dispensers/watertank, +/obj/structure/window/spawner/directional/north, +/turf/open/floor/iron/dark, +/area/station/commons/storage/primary) +"hNZ" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Flash Coolant" + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"hOe" = ( +/obj/structure/sink/kitchen/directional/west, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron/cafeteria, +/area/station/common/wrestling/concessions) +"hOg" = ( +/obj/effect/turf_decal/bot_white/right, +/obj/structure/filingcabinet, +/obj/item/folder/documents, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/nuke_storage) +"hOk" = ( +/obj/effect/spawner/random/entertainment/arcade{ + dir = 8 + }, +/obj/structure/window/spawner/directional/east, +/turf/open/floor/eighties, +/area/station/maintenance/abandon_arcade) +"hOn" = ( +/obj/machinery/duct, +/turf/open/floor/iron/freezer, +/area/station/commons/dorms/room1) +"hOo" = ( +/obj/machinery/camera/directional/west{ + c_tag = "AI Chamber - Port"; + network = list("aicore") + }, +/obj/structure/showcase/cyborg/old{ + dir = 4; + pixel_x = -9; + pixel_y = 2 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai) +"hOr" = ( +/turf/open/floor/iron/stairs/medium{ + dir = 1 + }, +/area/station/hallway/secondary/exit) +"hOt" = ( +/obj/machinery/door/airlock/external{ + name = "Atmospherics External Airlock"; + space_dir = 2 + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/engineering/atmos/test_chambers) +"hOv" = ( +/obj/machinery/duct, +/turf/open/floor/carpet/blue, +/area/station/commons/dorms/room3) +"hOw" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/bridge_pipe/green/visible, +/obj/machinery/atmospherics/pipe/bridge_pipe/violet/visible/layer2, +/turf/open/space/basic, +/area/space/nearstation) +"hOx" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/carpet/lone, +/area/station/service/chapel) +"hOA" = ( +/turf/closed/wall/r_wall, +/area/station/science/robotics/lab) +"hOC" = ( +/obj/structure/flora/bush/fullgrass, +/obj/effect/landmark/blobstart, +/turf/open/floor/grass, +/area/station/science/genetics) +"hOE" = ( +/obj/structure/closet/cardboard, +/obj/effect/spawner/random/maintenance, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"hOL" = ( +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"hOT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/grille_or_waste, +/obj/machinery/light/small/directional/west, +/obj/structure/sign/warning/electric_shock/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"hOY" = ( +/obj/machinery/door/airlock/research{ + name = "Research Division Access" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/unres, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "rnd-enterance" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/effect/mapping_helpers/airlock/access/all/science/general, +/turf/open/floor/iron, +/area/station/science/research) +"hPg" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_y = 3 + }, +/obj/item/pen{ + pixel_y = 3 + }, +/obj/machinery/status_display/evac/directional/south, +/turf/open/floor/iron/dark/side{ + dir = 10 + }, +/area/station/commons/vacant_room/commissary) +"hPl" = ( +/obj/effect/turf_decal/stripes{ + dir = 6 + }, +/turf/open/floor/plating, +/area/station/cargo/storage) +"hPm" = ( +/obj/machinery/modular_computer/preset/research, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"hPp" = ( +/obj/structure/table/wood, +/obj/item/modular_computer/laptop/preset/civilian, +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/wood, +/area/station/service/lawoffice) +"hPq" = ( +/obj/structure/sign/directions/command{ + dir = 4; + pixel_x = -32; + pixel_y = 6 + }, +/obj/structure/sign/directions/medical{ + dir = 4; + pixel_x = -32 + }, +/obj/structure/sign/directions/science{ + dir = 4; + pixel_x = -32; + pixel_y = -6 + }, +/turf/open/floor/iron/stairs/left, +/area/station/hallway/primary/central/aft) +"hPv" = ( +/obj/effect/spawner/random/structure/crate, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"hPD" = ( +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"hPE" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/flowers_pp, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"hPK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/oil, +/obj/effect/landmark/generic_maintenance_landmark, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"hPL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/abandon_arcade) +"hPM" = ( +/obj/structure/chair/sofa/middle/brown{ + dir = 1 + }, +/obj/structure/window/spawner/directional/south, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"hPN" = ( +/turf/open/floor/iron/dark/side{ + dir = 5 + }, +/area/station/hallway/secondary/command) +"hPQ" = ( +/obj/item/kirbyplants/random, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/engineering/main) +"hPR" = ( +/obj/effect/spawner/random/trash/hobo_squat, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"hPW" = ( +/obj/structure/sign/directions/command{ + dir = 8; + pixel_y = 3 + }, +/obj/structure/sign/directions/science{ + pixel_y = -9 + }, +/obj/structure/sign/directions/medical{ + dir = 4; + pixel_y = -3 + }, +/turf/closed/wall, +/area/station/hallway/primary/upper) +"hPY" = ( +/obj/structure/fence/door/opened{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"hPZ" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/machinery/button/door/directional/north{ + id = "trashcompactor"; + name = "Trash Compactor"; + pixel_x = 6; + pixel_y = 38 + }, +/turf/open/floor/iron/dark, +/area/station/security/corrections_officer) +"hQc" = ( +/obj/machinery/door/airlock/external{ + space_dir = 8 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/external, +/turf/open/floor/plating, +/area/station/maintenance/department/security/upper) +"hQd" = ( +/obj/structure/table/glass, +/obj/effect/turf_decal/tile/purple/half{ + dir = 1 + }, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/iron/white/side{ + dir = 1 + }, +/area/station/science/research) +"hQg" = ( +/obj/structure/railing, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/stairs{ + dir = 4 + }, +/area/station/hallway/primary/port) +"hQh" = ( +/obj/machinery/door/airlock/medical{ + name = "Surgery Observation" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/medical/surgery/theatre) +"hQi" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"hQm" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/curtain/cloth/fancy/mechanical{ + icon_state = "bounty-open"; + icon_type = "bounty"; + id = "dormscurtain1"; + name = "curtain" + }, +/turf/open/floor/plating, +/area/station/commons/dorms/room1) +"hQo" = ( +/obj/structure/chair/office{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/security/detectives_office) +"hQp" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/maintenance/solars/port/fore) +"hQA" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/abandon_wrestle) +"hQE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old{ + icon_state = "floor3-old" + }, +/turf/open/floor/plating, +/area/station/maintenance/department/security/lower) +"hQL" = ( +/obj/machinery/power/port_gen/pacman/pre_loaded, +/turf/open/floor/plating, +/area/station/maintenance/department/security/prison_upper) +"hQP" = ( +/obj/effect/spawner/random/maintenance, +/obj/structure/closet/cardboard, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"hQZ" = ( +/obj/structure/cable, +/turf/closed/wall/r_wall, +/area/station/medical/virology) +"hRa" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/item/kirbyplants/random, +/turf/open/floor/wood, +/area/station/hallway/primary/port) +"hRi" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/iron/dark/smooth_large/airless, +/area/space/nearstation) +"hRq" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/turf/open/floor/iron/recharge_floor, +/area/station/cargo/warehouse) +"hRr" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Captainprivacy"; + name = "Privacy Shutters" + }, +/turf/open/floor/plating, +/area/station/command/heads_quarters/captain/private) +"hRu" = ( +/obj/item/crowbar/large/heavy, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"hRv" = ( +/obj/machinery/light/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/stone, +/area/station/common/wrestling/arena) +"hRD" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/airalarm/directional/east, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"hRG" = ( +/obj/structure/table/wood, +/obj/item/storage/box/ids{ + pixel_x = 3; + pixel_y = 4 + }, +/obj/item/storage/box/pdas{ + pixel_x = -3; + pixel_y = 2 + }, +/obj/item/storage/box/silver_ids, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/command/heads_quarters/hop) +"hRO" = ( +/turf/closed/wall, +/area/station/command/captain_dining) +"hSd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/stone, +/area/station/common/wrestling/arena) +"hSi" = ( +/obj/structure/table, +/obj/item/organ/external/tail/cat{ + pixel_x = -5; + pixel_y = 4 + }, +/obj/item/organ/external/tail/lizard{ + pixel_x = -3; + pixel_y = 2 + }, +/obj/item/organ/external/tail/lizard, +/obj/item/organ/internal/ears/cat, +/obj/effect/decal/cleanable/dirt, +/obj/structure/window/spawner/directional/south, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"hSj" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"hSm" = ( +/obj/item/hatchet, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/grass, +/area/station/service/hydroponics/garden/abandoned) +"hSo" = ( +/obj/machinery/photocopier, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/hop) +"hSq" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/chair/comfy/brown{ + color = "#A46106"; + dir = 8 + }, +/turf/open/floor/carpet, +/area/station/medical/aslyum) +"hSt" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/blueshield) +"hSu" = ( +/obj/structure/sink/kitchen/directional/west, +/turf/open/floor/iron/white/side{ + dir = 1 + }, +/area/station/maintenance/abandon_diner) +"hSy" = ( +/obj/item/radio/intercom/directional/east, +/obj/machinery/light/directional/east, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"hSA" = ( +/obj/item/wrench, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"hSH" = ( +/obj/effect/spawner/random/trash/mess, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/abandon_holding_cell) +"hSJ" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/generic, +/obj/structure/flora/bush/flowers_pp, +/obj/structure/window/spawner/directional/north, +/turf/open/floor/grass, +/area/station/science/research) +"hSQ" = ( +/turf/open/floor/iron/dark/side, +/area/station/hallway/secondary/command) +"hSR" = ( +/obj/machinery/light/directional/north, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/sign/departments/security/directional/north, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"hSS" = ( +/obj/item/bodypart/leg/right/monkey, +/obj/effect/decal/cleanable/blood/gibs/core, +/turf/open/floor/cult, +/area/station/maintenance/department/science/xenobiology) +"hSU" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/command/meeting_room/council) +"hSW" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"hTb" = ( +/obj/structure/cable, +/obj/machinery/door/airlock/hatch, +/obj/structure/sign/warning/electric_shock/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"hTf" = ( +/obj/structure/chair, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/machinery/airalarm/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"hTh" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/landmark/generic_maintenance_landmark, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"hTp" = ( +/turf/closed/wall, +/area/station/command/heads_quarters/captain) +"hTD" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"hTF" = ( +/turf/open/floor/iron/stairs/medium{ + dir = 1 + }, +/area/station/hallway/secondary/command) +"hTG" = ( +/obj/machinery/computer/upload/ai{ + dir = 8 + }, +/obj/effect/turf_decal/delivery/white, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai_upload) +"hTI" = ( +/obj/effect/landmark/start/scientist, +/obj/structure/chair/office{ + dir = 1 + }, +/turf/open/floor/iron/white/smooth_large, +/area/station/science/explab) +"hTM" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/service/chapel/office) +"hTO" = ( +/obj/machinery/camera/directional/north{ + c_tag = "Recreation - Nightclub Bar"; + name = "hallway camera" + }, +/obj/structure/flora/bush/sparsegrass{ + pixel_x = -6 + }, +/turf/open/floor/grass, +/area/station/common/night_club) +"hTS" = ( +/obj/machinery/door/airlock{ + name = "Harvest Chamber" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/rus_surgery) +"hTY" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/medical/psychology) +"hUg" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/medical/cryo) +"hUh" = ( +/mob/living/basic/chicken{ + forced_gender = "male" + }, +/turf/open/floor/grass, +/area/station/common/night_club) +"hUn" = ( +/obj/effect/turf_decal/bot, +/obj/structure/tank_dispenser, +/turf/open/floor/iron, +/area/station/engineering/break_room) +"hUo" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/splicer, +/obj/structure/table/wood, +/turf/open/floor/iron/dark/textured_edge{ + dir = 1 + }, +/area/station/security/prison/garden) +"hUs" = ( +/obj/structure/closet/secure_closet/brig, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/security/courtroom) +"hUw" = ( +/obj/structure/cable, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/station/maintenance/department/engineering/atmos_aux_port) +"hUy" = ( +/obj/machinery/camera/directional/east, +/turf/open/floor/engine/vacuum, +/area/station/maintenance/department/engineering/atmos_aux_port) +"hUD" = ( +/obj/machinery/camera/autoname/directional/west, +/turf/open/floor/wood, +/area/station/hallway/primary/port) +"hUE" = ( +/obj/structure/marker_beacon/burgundy, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"hUF" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/camera/directional/west{ + c_tag = "Departures Hallway - Port"; + name = "hallway camera" + }, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/exit/departure_lounge) +"hUN" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/light/directional/east, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/port) +"hUX" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/command/captain_dining) +"hVd" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Equipment Room" + }, +/obj/effect/turf_decal/delivery/blue, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/turf/open/floor/iron/dark, +/area/station/security/lockers) +"hVk" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/mob/living/basic/mouse/brown/tom, +/turf/open/floor/iron/kitchen{ + dir = 1 + }, +/area/station/security/prison/upper) +"hVo" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Security Office" + }, +/obj/structure/cable, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/turf/open/floor/iron/dark/textured_large, +/area/station/security/office) +"hVp" = ( +/obj/structure/cable, +/turf/open/floor/iron/dark/corner{ + dir = 4 + }, +/area/station/engineering/atmos/hfr_room) +"hVt" = ( +/obj/structure/cable, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/hop) +"hVx" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/aisat/exterior) +"hVA" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/turf/open/floor/glass, +/area/station/commons/dorms) +"hVE" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/commons/toilet/restrooms) +"hVF" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"hVH" = ( +/obj/effect/turf_decal/bot, +/obj/structure/table/reinforced, +/obj/item/analyzer{ + pixel_y = 5 + }, +/obj/item/analyzer, +/obj/machinery/requests_console/directional/north{ + department = "Tool Storage"; + name = "Tool Storage Requests Console"; + pixel_y = -30 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/iron/dark, +/area/station/commons/storage/primary) +"hVM" = ( +/obj/structure/chair/sofa/bench/left{ + dir = 4; + pixel_x = -5 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/primary/central) +"hVN" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/security/office) +"hVY" = ( +/obj/effect/turf_decal/siding/dark{ + dir = 9 + }, +/turf/open/floor/glass/reinforced/airless, +/area/space/nearstation) +"hWj" = ( +/turf/open/floor/plating, +/area/station/security/prison/mess) +"hWl" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"hWp" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/abandon_exam/cat) +"hWs" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/checker, +/area/station/service/janitor) +"hWy" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/trimline/green/filled/corner{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/virology) +"hWz" = ( +/obj/structure/sign/directions/security{ + dir = 1; + pixel_y = 8 + }, +/obj/structure/sign/directions/engineering{ + pixel_y = 2 + }, +/obj/structure/sign/directions/supply{ + pixel_y = -4 + }, +/obj/structure/sign/directions/evac{ + pixel_y = -10 + }, +/turf/closed/wall, +/area/station/service/bar) +"hWB" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/smart/simple/violet/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/station/engineering/atmos) +"hWC" = ( +/obj/effect/turf_decal/stripes/white/line, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/obj/effect/turf_decal/caution/stand_clear/blue, +/obj/machinery/door/poddoor/shutters/window/preopen{ + id = "Psychward2"; + name = "Cell Door 2" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/aslyum) +"hWG" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "justice gas pump" + }, +/obj/machinery/door/window/left/directional/east{ + name = "Gas Ports" + }, +/turf/open/floor/iron/dark, +/area/station/security/execution/education) +"hWI" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"hWN" = ( +/obj/structure/closet/crate/bin, +/obj/effect/spawner/random/trash/garbage, +/obj/effect/spawner/random/trash/garbage, +/obj/effect/spawner/random/contraband/prison, +/turf/open/floor/iron/dark, +/area/station/security/prison/workout) +"hWT" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/window/brigdoor/left/directional/north{ + name = "Creature Pen"; + req_access = list("research") + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"hWZ" = ( +/obj/structure/table, +/obj/item/pai_card, +/turf/open/floor/glass, +/area/station/commons/dorms) +"hXb" = ( +/obj/structure/flora/grass/jungle/b, +/obj/structure/flora/bush/grassy, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"hXi" = ( +/obj/structure/bookcase/random/reference, +/turf/open/floor/wood, +/area/station/service/library) +"hXk" = ( +/obj/machinery/light/small/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"hXo" = ( +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) +"hXp" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Chapel Maintenance" + }, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/service/crematorium, +/turf/open/floor/plating, +/area/station/maintenance/department/chapel) +"hXr" = ( +/turf/closed/wall, +/area/station/maintenance/cult_chapel_maint) +"hXD" = ( +/obj/structure/anvil, +/turf/open/floor/iron/smooth, +/area/station/cargo/miningdock) +"hXG" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/directional/south, +/obj/structure/chair/stool/directional/west, +/turf/open/floor/iron/dark, +/area/station/maintenance/abandon_diner) +"hXH" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted, +/obj/structure/cable, +/obj/structure/disposalpipe/junction, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/cargo/sorting) +"hXK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/trash/peanuts, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"hXL" = ( +/obj/structure/chair/sofa/bench/right{ + dir = 4; + pixel_x = -5 + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/entry) +"hXM" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/item/kirbyplants/random, +/turf/open/floor/iron/dark, +/area/station/cargo/miningoffice) +"hXO" = ( +/obj/structure/cable, +/obj/machinery/door/airlock{ + name = "The Ring" + }, +/turf/open/floor/iron, +/area/station/common/wrestling/arena) +"hXS" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics Auxiliary Port" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/turf/open/floor/iron, +/area/station/maintenance/department/engineering/atmos_aux_port) +"hXY" = ( +/obj/effect/spawner/random/trash/grille_or_waste, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"hYd" = ( +/obj/effect/spawner/random/structure/crate_loot, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"hYe" = ( +/obj/structure/weightmachine, +/turf/open/floor/iron/dark/side, +/area/station/security/prison/workout) +"hYi" = ( +/obj/effect/turf_decal/siding/purple{ + dir = 1 + }, +/obj/effect/turf_decal/siding/purple, +/obj/structure/railing, +/obj/machinery/slime_extract_requestor, +/turf/open/floor/glass/reinforced, +/area/station/science) +"hYo" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/dark/small, +/area/station/security/prison/upper) +"hYs" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/flowers_pp, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/turf/open/floor/grass, +/area/station/security/prison/garden) +"hYu" = ( +/obj/structure/chair/pew/left{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/service/chapel) +"hYF" = ( +/obj/item/kirbyplants/random, +/obj/machinery/light_switch/directional/north, +/obj/effect/turf_decal/trimline/red/filled/line{ + color = "#DE3A3A"; + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/line, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/brig) +"hYG" = ( +/obj/structure/cable, +/turf/open/floor/catwalk_floor, +/area/station/engineering/atmos/test_chambers) +"hYI" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/light/small/directional/east, +/turf/open/floor/iron/dark, +/area/station/security/execution/education) +"hYS" = ( +/obj/machinery/duct, +/obj/item/cigbutt, +/turf/open/floor/iron, +/area/station/engineering/atmos/test_chambers) +"hYV" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/medical/surgery/theatre) +"hYX" = ( +/obj/effect/landmark/start/bartender, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/hallway/secondary/service) +"hYZ" = ( +/turf/closed/wall, +/area/station/common/pool) +"hZa" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible, +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) +"hZg" = ( +/obj/machinery/light/small/directional/north, +/obj/machinery/duct, +/turf/open/floor/iron/freezer, +/area/station/common/pool) +"hZj" = ( +/obj/machinery/door/window/brigdoor/left/directional/west{ + name = "Experimental Containment" + }, +/turf/open/floor/engine, +/area/station/science/explab) +"hZm" = ( +/obj/machinery/light/directional/west, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/engineering/atmos/test_chambers) +"hZo" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/door/airlock{ + name = "Hidden Library" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/service/library/abandoned) +"hZq" = ( +/obj/machinery/space_heater/improvised_chem_heater, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/station/maintenance/starboard/fore) +"hZy" = ( +/turf/closed/wall, +/area/station/commons/locker) +"hZz" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Prison Side Wing" + }, +/obj/effect/mapping_helpers/airlock/access/all/security/brig, +/turf/open/floor/iron/dark, +/area/station/security/prison) +"hZB" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) +"hZC" = ( +/obj/structure/table/wood, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/iron/dark, +/area/station/service/library/lounge) +"hZE" = ( +/turf/closed/wall, +/area/station/security/prison/garden) +"hZH" = ( +/obj/machinery/camera/directional/west{ + c_tag = "Science - Ordnance Mixing Lab Center"; + dir = 1; + name = "science camera"; + network = list("ss13","rd") + }, +/turf/open/floor/iron, +/area/station/science/ordnance) +"hZI" = ( +/turf/closed/wall, +/area/station/security/execution/transfer) +"hZO" = ( +/obj/structure/closet/secure_closet/hydroponics, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/item/botanical_lexicon, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) +"hZP" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/iron/grimy, +/area/station/command/meeting_room/council) +"iaa" = ( +/obj/structure/chair, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/machinery/digital_clock/directional/north, +/turf/open/floor/iron/dark, +/area/station/medical/surgery/theatre) +"iac" = ( +/obj/structure/cable, +/obj/effect/landmark/start/medical_doctor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/mob/living/basic/bot/medbot{ + name = "Doctor Heals-The-Idiot" + }, +/obj/effect/turf_decal/tile/blue/fourcorners, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"ian" = ( +/obj/effect/turf_decal/vg_decals/numbers/two{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/shuttle/evac/airless, +/area/station/solars/starboard/aft) +"iau" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/stairs, +/area/station/maintenance/department/engineering/atmos_aux_port) +"iav" = ( +/obj/structure/chair/sofa/right/brown, +/obj/machinery/light/directional/north, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/commons/dorms/room1) +"iax" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/west, +/turf/open/floor/mineral/plastitanium/red, +/area/station/maintenance/cult_chapel_maint) +"iaz" = ( +/obj/structure/chair/sofa/right/brown{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/station/hallway/primary/port) +"iaD" = ( +/obj/structure/table/wood, +/obj/item/paper/fluff/gateway, +/obj/item/coin/gold{ + pixel_x = -7; + pixel_y = 8 + }, +/obj/item/phone{ + pixel_x = -5; + pixel_y = 6 + }, +/obj/item/clothing/mask/cigarette/pipe{ + pixel_x = -5 + }, +/turf/open/floor/carpet/green, +/area/station/command/heads_quarters/nt_rep) +"iaE" = ( +/obj/effect/spawner/liquids_spawner, +/turf/open/floor/lowered/iron/pool/cobble/side{ + dir = 4 + }, +/area/station/common/pool) +"iaH" = ( +/turf/open/floor/iron/stairs/left{ + dir = 4 + }, +/area/station/hallway/secondary/command) +"iaI" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/sign/warning/vacuum/external/directional/north, +/turf/open/floor/plating, +/area/station/construction/mining/aux_base) +"iaP" = ( +/obj/effect/spawner/random/trash/mess, +/turf/open/floor/engine, +/area/station/maintenance/department/science/xenobiology) +"iaT" = ( +/obj/machinery/computer/mech_bay_power_console{ + dir = 1 + }, +/obj/effect/turf_decal/bot_red, +/obj/machinery/posialert/directional/south, +/turf/open/floor/mineral/plastitanium, +/area/station/science/robotics/mechbay) +"ibf" = ( +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hos) +"ibi" = ( +/obj/effect/spawner/random/trash/graffiti, +/turf/closed/wall, +/area/station/maintenance/department/security/greater) +"ibk" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/dorms) +"ibl" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/obj/machinery/camera/directional/north{ + c_tag = "Science - Fore Port"; + name = "science camera"; + network = list("ss13","rd") + }, +/obj/machinery/light/directional/north, +/turf/open/floor/iron/white, +/area/station/science/research) +"ibm" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"ibo" = ( +/obj/structure/table/reinforced, +/obj/item/folder/red, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/item/toy/figure/secofficer, +/turf/open/floor/iron/dark, +/area/station/security/office) +"ibr" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/security/prison/shower) +"ibw" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/table/wood, +/obj/item/storage/crayons, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/wood, +/area/station/service/library/abandoned) +"ibA" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/brown/visible{ + dir = 1 + }, +/obj/machinery/meter, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"ibK" = ( +/obj/structure/table/wood/poker, +/obj/item/toy/cards/deck, +/obj/item/gun/ballistic/revolver/russian{ + pixel_y = 5 + }, +/obj/effect/spawner/random/entertainment/gambling, +/obj/effect/spawner/random/entertainment/money, +/turf/open/floor/iron, +/area/station/maintenance/department/crew_quarters/bar) +"ibL" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/item/storage/pill_bottle/lsdpsych{ + pixel_x = 6; + pixel_y = 7 + }, +/obj/item/storage/pill_bottle/mannitol{ + pixel_x = -2; + pixel_y = 8 + }, +/obj/item/storage/pill_bottle/neurine{ + pixel_x = 2; + pixel_y = 4 + }, +/obj/item/reagent_containers/pill/lsd{ + pixel_x = -5 + }, +/turf/open/floor/carpet, +/area/station/medical/psychology) +"ibR" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/stairs/old, +/area/station/cargo/warehouse) +"ica" = ( +/obj/machinery/light/directional/south, +/obj/machinery/firealarm/directional/south, +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/iron/smooth_edge, +/area/station/cargo/miningdock) +"icc" = ( +/obj/machinery/camera/autoname/directional/south{ + network = list("ss13","xeno","rd") + }, +/obj/machinery/corral_corner{ + mapping_id = "2" + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"icm" = ( +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"icr" = ( +/obj/structure/girder, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"icu" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/dorms) +"icv" = ( +/obj/machinery/modular_computer/preset/id{ + dir = 8 + }, +/obj/machinery/status_display/ai/directional/east, +/obj/effect/turf_decal/tile/red/real_red/anticorner/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hos) +"icG" = ( +/obj/structure/table, +/obj/item/clothing/suit/apron/chef, +/obj/item/kitchen/rollingpin{ + pixel_x = -3 + }, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) +"icH" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/warning/vacuum/external/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"icJ" = ( +/mob/living/basic/mouse/gray, +/turf/open/floor/grass, +/area/station/maintenance/department/medical) +"icK" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"icN" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/red/corner, +/obj/effect/turf_decal/trimline/red/filled/line{ + color = "#DE3A3A"; + dir = 9 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 9 + }, +/turf/open/floor/iron/dark/side{ + dir = 9 + }, +/area/station/security/prison/upper) +"icO" = ( +/obj/machinery/power/shieldwallgen/xenobiologyaccess, +/obj/effect/turf_decal/stripes{ + dir = 9 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/plating, +/area/station/science/xenobiology) +"icQ" = ( +/turf/closed/wall, +/area/station/maintenance/abandon_diner) +"icR" = ( +/obj/machinery/computer/atmos_control/plasma_tank, +/obj/effect/turf_decal/tile/purple/fourcorners, +/obj/structure/window/spawner/directional/north, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"icV" = ( +/obj/structure/chair/stool/directional/west, +/turf/open/floor/glass, +/area/station/commons/dorms) +"icW" = ( +/obj/effect/turf_decal/stripes/end{ + dir = 1 + }, +/obj/effect/spawner/random/structure/crate, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"icX" = ( +/obj/structure/table/wood, +/obj/item/grenade/firecracker{ + pixel_x = -3; + pixel_y = -4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/reagent_containers/cup/glass/bottle/molotov{ + pixel_x = 7; + pixel_y = 12 + }, +/obj/item/grenade/smokebomb{ + pixel_x = 2; + pixel_y = -9 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"idd" = ( +/obj/structure/chair/pew/right{ + dir = 1 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/mineral/plastitanium, +/area/station/maintenance/cult_chapel_maint) +"ide" = ( +/turf/closed/wall/r_wall, +/area/station/command/heads_quarters/nt_rep) +"idq" = ( +/obj/structure/falsewall, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"idx" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"idB" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + color = "#DE3A3A"; + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + color = "#DE3A3A" + }, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"idP" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/poddoor/preopen{ + id = "Biohazard"; + name = "Biohazard Containment Door" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/science/research) +"idV" = ( +/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/sorting) +"idW" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/delivery, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"idX" = ( +/obj/machinery/holopad, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"idY" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"iej" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron/white, +/area/station/science/lab) +"iek" = ( +/obj/structure/reagent_dispensers/plumbed{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"iel" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/structure/sign/nanotrasen{ + pixel_x = -32 + }, +/obj/structure/sign/barber{ + pixel_x = -13 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/primary/port) +"iem" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/red/line{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark, +/turf/open/floor/iron/dark/textured_edge, +/area/station/ai_monitored/security/armory) +"ien" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/caution/stand_clear/blue{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/security/brig) +"ies" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/chair/stool/bar/directional/west, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/command/captain_dining) +"ieu" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/security/detectives_office) +"iev" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"ieG" = ( +/obj/structure/cable, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/port) +"ieR" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/tank_holder/extinguisher, +/obj/machinery/light/directional/north, +/turf/open/floor/iron/dark, +/area/station/tcommsat/computer) +"ieT" = ( +/obj/structure/closet/crate/freezer{ + name = "organ storage" + }, +/obj/effect/turf_decal/bot, +/obj/item/bodypart/arm/left, +/obj/item/organ/internal/eyes, +/obj/effect/decal/cleanable/blood/old, +/obj/item/organ/external/tail/lizard, +/turf/open/floor/iron/dark, +/area/station/maintenance/department/security/prison_upper) +"ieW" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/engineering/transit_tube) +"ieX" = ( +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/obj/machinery/door/airlock/atmos/glass{ + name = "Distribution Loop" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/engineering/atmos/office) +"ifb" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/glass/reinforced, +/area/station/maintenance/aft/upper) +"ifi" = ( +/obj/machinery/button/door/directional/north{ + id = "portbow_maint_shutters"; + name = "shutters" + }, +/obj/structure/closet/crate, +/turf/open/floor/iron/grimy, +/area/station/maintenance/starboard/fore) +"ifj" = ( +/obj/structure/table/wood/fancy/red, +/obj/item/reagent_containers/cup/rag{ + pixel_x = 2; + pixel_y = 11 + }, +/obj/item/reagent_containers/cup/glass/drinkingglass/shotglass{ + pixel_x = -6; + pixel_y = 14 + }, +/obj/item/reagent_containers/cup/glass/drinkingglass/shotglass{ + pixel_x = -2; + pixel_y = 9 + }, +/obj/item/reagent_containers/cup/glass/drinkingglass/shotglass{ + pixel_x = -6; + pixel_y = 14 + }, +/obj/item/reagent_containers/cup/glass/drinkingglass/shotglass{ + pixel_x = -2; + pixel_y = 9 + }, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/command/captain_dining) +"ifn" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/chair/comfy/brown{ + color = "#A46106"; + dir = 1 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/carpet, +/area/station/service/cafeteria) +"ifp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"ifq" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/commons/fitness/recreation) +"ifx" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"ify" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/trimline/blue/filled/corner, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/iron/white/side{ + dir = 4 + }, +/area/station/medical/medbay/lobby) +"ifG" = ( +/obj/machinery/chem_heater/withbuffer, +/obj/structure/window/spawner/directional/west, +/obj/effect/turf_decal/trimline/yellow/filled/line, +/turf/open/floor/iron/white, +/area/station/medical/pharmacy) +"ifQ" = ( +/obj/structure/cable, +/obj/machinery/light_switch/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white/textured, +/area/station/common/cryopods) +"ifR" = ( +/obj/structure/window/spawner/directional/south, +/obj/structure/chair/sofa/left/brown{ + dir = 1 + }, +/obj/machinery/computer/security/telescreen/entertainment/directional/west, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"ifS" = ( +/obj/effect/turf_decal/delivery, +/turf/open/floor/plating, +/area/station/escapepodbay) +"ifT" = ( +/obj/machinery/light/small/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"ifU" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/structure/chair/wood{ + dir = 1 + }, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/wood, +/area/station/service/chapel/funeral) +"igf" = ( +/obj/structure/closet/secure_closet/freezer/kitchen/maintenance, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/station/maintenance/abandon_diner) +"igE" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/white, +/area/station/science/research) +"igH" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_port) +"igK" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/structure/table/rolling, +/obj/item/circular_saw{ + pixel_y = 12 + }, +/obj/item/reagent_containers/cup/bottle/formaldehyde{ + pixel_x = 7; + pixel_y = 4 + }, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) +"igL" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/crate, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/maintenance, +/obj/item/dnainjector/elvismut, +/turf/open/floor/plating, +/area/station/maintenance/department/science/upper) +"igM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/mess, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"igN" = ( +/obj/effect/turf_decal/siding/purple, +/obj/effect/turf_decal/siding/purple{ + dir = 1 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/glass/reinforced, +/area/station/science/research) +"igP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/security/power_station) +"igR" = ( +/obj/effect/turf_decal/siding/thinplating/dark/end{ + dir = 1 + }, +/obj/structure/drain, +/obj/machinery/shower/directional/north, +/turf/open/floor/iron/checker, +/area/station/engineering/gravity_generator) +"ihg" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/secondary/command) +"ihs" = ( +/obj/structure/bookcase/manuals/engineering, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain/private) +"ihD" = ( +/obj/effect/landmark/start/security_officer, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/dark/textured_large, +/area/station/security/lockers) +"ihH" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/command/captain_dining) +"ihM" = ( +/obj/structure/table/wood, +/obj/item/newspaper{ + pixel_x = 3; + pixel_y = 5 + }, +/obj/item/newspaper, +/turf/open/floor/carpet, +/area/station/security/prison/rec) +"ihO" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/sunny, +/obj/structure/flora/bush/flowers_pp, +/obj/structure/window/spawner/directional/east, +/obj/structure/window/spawner/directional/west, +/obj/structure/window/spawner/directional/north, +/turf/open/floor/grass, +/area/station/command/captain_dining) +"ihY" = ( +/obj/machinery/modular_computer/preset/civilian{ + dir = 1 + }, +/obj/structure/sign/poster/random/directional/south, +/turf/open/floor/wood/parquet, +/area/station/common/arcade) +"iia" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/security/office) +"iie" = ( +/obj/structure/table/wood, +/obj/item/taperecorder, +/obj/item/restraints/handcuffs, +/obj/machinery/light_switch/directional/west, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/wood, +/area/station/security/detectives_office) +"iig" = ( +/obj/machinery/status_display/evac/directional/south, +/obj/machinery/light/directional/south, +/obj/item/kirbyplants/organic/plant21, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"iij" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/holopad, +/turf/open/floor/iron, +/area/station/security/checkpoint) +"iik" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/garbage, +/turf/open/floor/iron, +/area/station/maintenance/aux_eva) +"iim" = ( +/obj/effect/turf_decal/trimline/blue/line{ + dir = 8; + pixel_x = 5 + }, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 8; + pixel_x = 10 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/iron, +/area/station/commons/fitness) +"iiq" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"iiw" = ( +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/iron/smooth_edge{ + dir = 4 + }, +/area/station/command/secure_bunker) +"iiC" = ( +/obj/structure/cable, +/obj/machinery/door/airlock/maintenance{ + name = "Abandoned Surgery Room" + }, +/obj/effect/mapping_helpers/airlock/access/all/medical/general, +/obj/effect/mapping_helpers/airlock/abandoned, +/turf/open/floor/plating, +/area/station/maintenance/abandon_surgery) +"iiE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/common/wrestling/locker) +"iiL" = ( +/obj/structure/closet/secure_closet/exile, +/obj/machinery/firealarm/directional/east, +/obj/machinery/light/directional/east, +/obj/machinery/airalarm/directional/east{ + pixel_x = 28 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/command/gateway) +"iiT" = ( +/obj/item/kirbyplants/random, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/effect/turf_decal/tile/purple/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/service/barber) +"ijc" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/carpet, +/area/station/service/theater) +"iji" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/engineering/lobby) +"ijj" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/dorms) +"ijk" = ( +/obj/item/kirbyplants/random/dead, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plating, +/area/station/maintenance/abandon_art_studio) +"ijl" = ( +/obj/machinery/door/airlock/research{ + name = "Testing Labs" + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/trimline/purple/filled/warning, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/science/research, +/turf/open/floor/iron/white, +/area/station/science/explab) +"ijm" = ( +/obj/structure/grille, +/obj/structure/barricade/wooden, +/obj/structure/curtain/bounty, +/turf/open/floor/plating, +/area/station/maintenance/abandon_psych) +"ijo" = ( +/obj/structure/table/wood, +/obj/item/folder/red, +/obj/item/hand_labeler, +/obj/structure/cable, +/turf/open/floor/carpet, +/area/station/security/detectives_office) +"ijq" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/wood/parquet, +/area/station/service/theater) +"ijw" = ( +/obj/structure/dresser, +/obj/structure/cable, +/turf/open/floor/carpet/red, +/area/station/command/heads_quarters/hos) +"ijy" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"ijC" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/cargo/miningoffice) +"ijJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"ijK" = ( +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/machinery/power/port_gen/pacman, +/obj/structure/cable, +/obj/machinery/light/small/directional/north, +/turf/open/floor/plating/airless, +/area/station/maintenance/eva_shed/port) +"ijM" = ( +/obj/structure/table/reinforced/rglass, +/obj/structure/mirror/directional/west, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/light/directional/west, +/obj/item/clothing/head/wig/random{ + pixel_x = 4; + pixel_y = 3 + }, +/obj/item/clothing/head/wig/natural, +/turf/open/floor/iron/dark, +/area/station/service/barber) +"ijR" = ( +/obj/machinery/duct, +/turf/open/floor/carpet/green, +/area/station/commons/dorms/room2) +"ijZ" = ( +/obj/structure/window/reinforced/tinted/spawner/directional/west, +/obj/item/toy/plush/nukeplushie{ + name = "Lasertag Red Flag" + }, +/obj/structure/window/reinforced/tinted/spawner/directional/north, +/obj/structure/window/reinforced/tinted/spawner/directional/south, +/obj/effect/turf_decal/tile/red/real_red/fourcorners, +/turf/open/floor/iron/dark, +/area/station/common/laser_tag) +"ikb" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/break_room) +"ike" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/item/radio/intercom/directional/north, +/obj/machinery/door/window/brigdoor/right/directional/south{ + name = "Cargo Deliveries"; + req_access = list("security") + }, +/turf/open/floor/iron/dark, +/area/station/security/brig) +"iki" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/service/theater/abandoned) +"ikn" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_starboard) +"ikp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/cigbutt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"ikr" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "ceprivacy"; + name = "Chief's Privacy Shutters" + }, +/turf/open/floor/plating, +/area/station/engineering/storage_shared) +"ikt" = ( +/obj/machinery/photocopier, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/command/meeting_room/council) +"iky" = ( +/obj/effect/turf_decal/trimline/green/filled/warning{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/virology/isolation) +"ikD" = ( +/obj/structure/chair/stool, +/obj/machinery/light_switch/directional/east, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) +"ikG" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/iron/dark, +/area/station/maintenance/solars/starboard/fore) +"ikJ" = ( +/obj/item/stack/sheet/cardboard, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"ikQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/abandon_diner) +"ilg" = ( +/obj/effect/turf_decal/stripes, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/security/range) +"ili" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/effect/spawner/random/decoration/glowstick, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"ilm" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/camera/directional/east{ + c_tag = "Dorm Hallway - Port Central Right"; + name = "hallway camera" + }, +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/iron, +/area/station/commons/dorms) +"ilB" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/mob/living/simple_animal/bot/secbot/beepsky/officer, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/hallway/primary/central/fore) +"ilE" = ( +/obj/effect/turf_decal/caution/stand_clear/red{ + dir = 8 + }, +/turf/open/floor/iron/shuttle/evac/airless, +/area/space/nearstation) +"ilJ" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/iron/white/corner{ + dir = 4 + }, +/area/station/hallway/secondary/entry) +"ilK" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/railing{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/dorms) +"ilP" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/aisat/exterior) +"ilS" = ( +/turf/closed/wall, +/area/station/cargo/storage) +"ilT" = ( +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/camera/directional/south{ + network = list("ss13","medbay") + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"ilW" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/wood, +/area/station/service/barber) +"ilY" = ( +/obj/machinery/light_switch/directional/east, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/prison) +"ima" = ( +/obj/effect/spawner/random/structure/crate_loot, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"imb" = ( +/obj/effect/landmark/start/assistant, +/obj/structure/chair/stool/directional/east, +/turf/open/floor/iron, +/area/station/commons/fitness/recreation) +"img" = ( +/obj/structure/window/reinforced/tinted/spawner/directional/west, +/obj/effect/turf_decal/tile/red/real_red/fourcorners, +/turf/open/floor/iron/dark, +/area/station/common/laser_tag) +"iml" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/cell/high, +/turf/open/floor/iron/dark, +/area/station/science/robotics) +"imm" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/chapel{ + dir = 8 + }, +/area/station/service/chapel) +"imA" = ( +/obj/effect/turf_decal/stripes, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"imC" = ( +/obj/structure/table, +/obj/effect/turf_decal/siding/wood, +/obj/item/food/burger/bigbite{ + pixel_x = -9; + pixel_y = 6 + }, +/obj/item/food/burger/bigbite{ + pixel_x = 10; + pixel_y = 6 + }, +/obj/item/food/burger/superbite, +/obj/machinery/camera/autoname/directional/north, +/turf/open/floor/iron/dark, +/area/station/command/captain_dining) +"imD" = ( +/obj/structure/cable, +/obj/machinery/airalarm/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"imH" = ( +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/carpet, +/area/station/service/library) +"imQ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) +"imR" = ( +/obj/structure/bed/maint, +/obj/machinery/flasher{ + id = "IsolationCell_1"; + pixel_x = -22; + pixel_y = 28 + }, +/obj/machinery/camera/directional/south{ + c_tag = " Prison - Isolation 1"; + network = list("ss13","prison") + }, +/obj/machinery/light/small/directional/south, +/turf/open/floor/vault/rock, +/area/station/security/prison/safe) +"imT" = ( +/obj/structure/chair/sofa/left/brown, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/machinery/computer/security/telescreen/entertainment/directional/east, +/obj/machinery/button/door/directional/west{ + id = "Dorm2"; + name = "Dormitory Door Lock"; + normaldoorcontrol = 1; + pixel_x = 0; + pixel_y = 25; + specialfunctions = 4 + }, +/turf/open/floor/wood, +/area/station/commons/dorms/room1) +"inc" = ( +/obj/effect/decal/cleanable/oil/streak, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"ine" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/chair/sofa/bench/right{ + dir = 4; + pixel_x = -5 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/checkpoint/escape) +"inj" = ( +/obj/structure/chair/comfy/brown, +/obj/effect/landmark/start/research_director, +/turf/open/floor/carpet/purple, +/area/station/command/heads_quarters/rd) +"inl" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/iron/stairs/left{ + dir = 8 + }, +/area/station/security/execution/transfer) +"inm" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/west, +/obj/structure/window/spawner/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/department/science/upper) +"inn" = ( +/obj/effect/spawner/random/trash/mess, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/effect/landmark/generic_maintenance_landmark, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"inq" = ( +/obj/machinery/computer/slot_machine, +/turf/open/floor/wood, +/area/station/service/abandoned_gambling_den) +"inu" = ( +/obj/machinery/door/airlock/medical{ + name = "Auxilliary Surgical Theatres" + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/effect/mapping_helpers/airlock/access/all/medical/surgery, +/turf/open/floor/iron/white, +/area/station/medical/surgery) +"inF" = ( +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/obj/machinery/door/airlock/atmos/glass{ + name = "Distribution Loop" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/engineering/atmos/office) +"inQ" = ( +/obj/effect/turf_decal/tile/green/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/central) +"inS" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/rack, +/obj/item/restraints/handcuffs, +/obj/item/restraints/handcuffs, +/obj/item/restraints/handcuffs, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/security/courtroom) +"inZ" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/pumproom) +"ioc" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/warning/vacuum/external/directional/west, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"iof" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/digital_clock/directional/east, +/obj/machinery/camera/autoname/directional/east, +/turf/open/floor/wood, +/area/station/command/heads_quarters/hop) +"iol" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/openspace, +/area/station/maintenance/aft/upper) +"ior" = ( +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"iox" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/closet/firecloset, +/turf/open/floor/plating, +/area/station/engineering/atmos) +"ioy" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"ioE" = ( +/obj/structure/table, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 8 + }, +/obj/item/aicard, +/obj/machinery/turretid{ + control_area = "/area/station/ai_monitored/turret_protected/aisat_interior"; + name = "Antechamber Turret Control"; + pixel_y = -36; + req_access = list("minisat") + }, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/iron/grimy, +/area/station/ai_monitored/turret_protected/aisat_interior) +"ioW" = ( +/obj/machinery/airalarm/directional/south, +/obj/machinery/computer/atmos_alert{ + dir = 1 + }, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/lobby) +"ipb" = ( +/obj/structure/railing, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"ipg" = ( +/obj/effect/turf_decal/bot_white, +/turf/open/floor/iron/dark/small, +/area/station/cargo/storage) +"ipn" = ( +/obj/structure/chair/office, +/obj/effect/landmark/start/roboticist, +/turf/open/floor/iron/dark, +/area/station/science/robotics) +"ipo" = ( +/obj/structure/reagent_dispensers/water_cooler, +/obj/effect/turf_decal/bot, +/obj/machinery/light/directional/north, +/turf/open/floor/iron, +/area/station/science/breakroom) +"ipv" = ( +/obj/effect/spawner/random/trash/moisture_trap, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_port) +"ipA" = ( +/obj/effect/turf_decal/siding/wood/corner, +/obj/machinery/newscaster/directional/west, +/obj/machinery/light/directional/west, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/station/command/captain_dining) +"ipC" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/machinery/conveyor{ + dir = 9; + id = "Luggagebelt" + }, +/obj/structure/sign/departments/cargo/directional/south, +/obj/machinery/light/no_nightlight/directional/south, +/turf/open/floor/plating, +/area/station/security/checkpoint/customs) +"ipE" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/machinery/firealarm/directional/north, +/obj/item/radio/intercom/directional/west, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/command/teleporter) +"ipO" = ( +/obj/effect/turf_decal/stripes/blue/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/red/corner, +/turf/open/floor/iron/dark/side{ + dir = 9 + }, +/area/station/security/brig) +"ipQ" = ( +/obj/effect/decal/cleanable/glass, +/obj/machinery/airalarm/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/atmos_aux_port) +"ipR" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"ipY" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"ipZ" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/brig) +"iqb" = ( +/obj/structure/table/reinforced/rglass, +/obj/structure/mirror/directional/west, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/light/directional/west, +/obj/item/reagent_containers/dropper{ + pixel_x = 3; + pixel_y = 1 + }, +/obj/machinery/dryer{ + pixel_y = 14 + }, +/turf/open/floor/iron/dark, +/area/station/service/barber) +"iqf" = ( +/obj/machinery/atmospherics/components/binary/valve/digital/layer4{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue/opposingcorners{ + dir = 8 + }, +/turf/open/floor/iron/cafeteria, +/area/station/engineering/atmos) +"iqh" = ( +/obj/structure/table/wood, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/wood, +/area/station/service/cafeteria) +"iqi" = ( +/obj/structure/sign/directions/security{ + dir = 1; + pixel_y = 8 + }, +/obj/structure/sign/directions/engineering{ + pixel_y = 2 + }, +/obj/structure/sign/directions/supply{ + pixel_y = -4 + }, +/obj/structure/sign/directions/evac{ + pixel_y = -10 + }, +/turf/closed/wall/r_wall, +/area/station/security/detectives_office) +"iqk" = ( +/obj/effect/turf_decal/bot, +/obj/effect/landmark/event_spawn, +/turf/open/floor/engine, +/area/station/engineering/atmos/hfr_room) +"iqm" = ( +/obj/structure/window/reinforced/plasma/spawner/directional/west, +/obj/machinery/power/shuttle_engine/heater{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"iqn" = ( +/obj/machinery/light/directional/west, +/obj/structure/lattice, +/turf/open/openspace, +/area/station/hallway/primary/upper) +"iqx" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + name = "Waste connector port" + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/engineering/atmos) +"iqz" = ( +/obj/structure/lattice/catwalk, +/obj/structure/marker_beacon/burgundy, +/turf/open/space/basic, +/area/space/nearstation) +"iqA" = ( +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/wood, +/area/station/service/abandoned_gambling_den) +"iqB" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/machinery/camera/directional/north, +/turf/open/floor/iron, +/area/station/engineering/main) +"iqG" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/spawner/random/vending/colavend, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/secondary/exit/departure_lounge) +"iqH" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/layer_manifold/green/visible, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) +"iqJ" = ( +/obj/structure/chair/sofa/corp/right, +/obj/effect/turf_decal/siding/thinplating_new/dark/corner, +/obj/machinery/light/floor/has_bulb, +/turf/open/floor/iron/grimy, +/area/station/engineering/supermatter/room) +"iqN" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red/real_red/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hos) +"iqP" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/yellow/opposingcorners, +/turf/open/floor/iron, +/area/station/engineering/main) +"iqT" = ( +/obj/structure/trash_pile, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"iqX" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron/stairs/left{ + dir = 4 + }, +/area/station/service/chapel) +"iqZ" = ( +/obj/effect/turf_decal/stripes, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Xenobio Containment"; + name = "Xenobiology Containment Shutters" + }, +/turf/open/floor/iron, +/area/station/science/xenobiology/hallway) +"ird" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/chair/comfy/brown{ + color = "#A46106" + }, +/turf/open/floor/wood/parquet, +/area/station/service/theater) +"irj" = ( +/obj/structure/closet/crate/engineering/electrical, +/obj/effect/turf_decal/bot, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/turf/open/floor/iron, +/area/station/maintenance/solars/port/fore) +"irq" = ( +/obj/effect/spawner/random/trash/mess, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/library/lower) +"iru" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/hallway/secondary/service) +"irA" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/landmark/start/hangover, +/turf/open/floor/wood, +/area/station/hallway/primary/port) +"irC" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"irI" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/disposaloutlet, +/obj/structure/disposalpipe/trunk, +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron/dark, +/area/station/science/xenobiology/control) +"irJ" = ( +/obj/machinery/camera/autoname/directional/north, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/hallway/primary/port) +"irK" = ( +/obj/effect/turf_decal/trimline/purple/filled/line, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/science/research) +"irR" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/table, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/iron, +/area/station/common/cryopods) +"isb" = ( +/obj/effect/mapping_helpers/burnt_floor, +/obj/machinery/door/airlock/maintenance, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"isg" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/duct, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/test_chambers) +"isi" = ( +/obj/structure/chair/sofa/bench/right{ + dir = 4; + pixel_x = -5 + }, +/obj/effect/turf_decal/tile/blue/half{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/white/side{ + dir = 4 + }, +/area/station/medical/medbay/lobby) +"iss" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/turf/open/floor/iron/smooth, +/area/station/maintenance/starboard/fore) +"isy" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible, +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible/layer2, +/obj/effect/turf_decal/stripes{ + dir = 10 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"isF" = ( +/turf/closed/wall, +/area/station/security/checkpoint/medical) +"isJ" = ( +/obj/structure/rack/shelf, +/obj/effect/spawner/random/techstorage/tcomms_all, +/obj/machinery/light/directional/south, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) +"isQ" = ( +/obj/structure/trash_pile, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"isR" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron, +/area/station/command/gateway) +"isT" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/station/science/robotics/mechbay) +"isY" = ( +/obj/structure/rack, +/obj/item/fuel_pellet, +/obj/item/fuel_pellet, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating/airless, +/area/station/maintenance/fore/upper) +"ita" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/turf_decal/trimline/red, +/turf/open/floor/iron/dark/small, +/area/station/security/prison/upper) +"itv" = ( +/turf/open/floor/iron/dark, +/area/station/maintenance/aux_eva) +"itJ" = ( +/obj/machinery/power/shuttle_engine/huge, +/turf/open/space/basic, +/area/space) +"itP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/light_switch/directional/north, +/turf/open/floor/wood, +/area/station/maintenance/rus_gambling) +"itY" = ( +/obj/machinery/door/airlock/silver{ + name = "Growing Zone" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/service/hydroponics, +/obj/machinery/duct, +/turf/open/floor/iron/dark/side, +/area/station/common/night_club/changing_room) +"itZ" = ( +/obj/structure/chair/pew/right{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium, +/area/station/maintenance/cult_chapel_maint) +"iub" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/aisat/exterior) +"ium" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/carpet/red, +/area/station/service/library/abandoned) +"iuq" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/public/glass{ + name = "Central Hallway" + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"iur" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"iuy" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"iuD" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"iuF" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/iron, +/area/station/science/explab) +"iuJ" = ( +/turf/closed/wall, +/area/station/commons/dorms/room5) +"iuN" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/carpet/red, +/area/station/command/heads_quarters/hos) +"iuP" = ( +/obj/structure/fans/tiny, +/obj/machinery/door/poddoor/massdriver_ordnance, +/obj/effect/turf_decal/stripes, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/science/ordnance/testlab) +"iuS" = ( +/obj/effect/turf_decal/trimline/yellow/filled/corner, +/turf/open/floor/iron/white, +/area/station/medical/pharmacy) +"iuT" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Gulag Processing" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/security/execution/transfer) +"iuU" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/security/upper) +"iuW" = ( +/obj/structure/window/spawner/directional/north, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) +"ivc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/computer/station_alert{ + dir = 8 + }, +/turf/open/floor/iron/smooth, +/area/station/maintenance/starboard/fore) +"ivh" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/item/folder/white{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/folder/red, +/obj/effect/spawner/random/maintenance, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/grimy, +/area/station/security/detectives_office/private_investigators_office) +"ivl" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron/white/side{ + dir = 8 + }, +/area/station/command/heads_quarters/ce) +"ivp" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 10 + }, +/turf/open/floor/iron/white, +/area/station/science/research) +"ivr" = ( +/obj/machinery/mass_driver/trash{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/disposal) +"ivs" = ( +/obj/structure/closet/secure_closet/medical3, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 8 + }, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/iron, +/area/station/medical/break_room) +"ivx" = ( +/turf/open/floor/plating, +/area/station/hallway/secondary/entry) +"ivy" = ( +/obj/effect/spawner/random/medical/two_percent_xeno_egg_spawner, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"ivB" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/iron/dark, +/area/station/common/laser_tag) +"ivC" = ( +/obj/structure/chair/wood{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/service/abandoned_gambling_den) +"ivJ" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/obj/machinery/status_display/ai/directional/west, +/obj/structure/railing, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/ai) +"ivL" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/status_display/evac/directional/north, +/turf/open/floor/iron, +/area/station/commons/dorms) +"ivN" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Thruster Controll Room" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/iron/dark, +/area/station/maintenance/thruster_room/central) +"ivS" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/aux_base, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"ivU" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/cargo/sorting) +"ivV" = ( +/obj/structure/window/spawner/directional/north, +/obj/structure/window/spawner/directional/east, +/obj/structure/window/spawner/directional/west, +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/flowers_br, +/turf/open/floor/grass, +/area/station/hallway/primary/port) +"ivW" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/effect/spawner/random/maintenance/three, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"ivX" = ( +/obj/machinery/computer/diseasesplicer, +/turf/open/floor/iron, +/area/station/medical/virology) +"iwb" = ( +/obj/effect/turf_decal/stripes/end, +/obj/machinery/portable_atmospherics/pump, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/explab) +"iwe" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/service/power_station) +"iwl" = ( +/obj/effect/turf_decal/delivery/red, +/obj/machinery/door/airlock/security/old{ + glass = 1; + name = "Cafeteria" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "prison-mess-hall" + }, +/obj/machinery/duct, +/turf/open/floor/iron/dark, +/area/station/security/prison/mess) +"iwm" = ( +/obj/structure/chair/comfy{ + color = "#596479"; + dir = 8 + }, +/turf/open/floor/carpet, +/area/station/security/prison/rec) +"iwo" = ( +/obj/machinery/door/poddoor/incinerator_ordmix, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/science/ordnance/burnchamber) +"iwq" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/engineering/main) +"iwt" = ( +/obj/machinery/deepfryer, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"iwu" = ( +/obj/effect/spawner/random/structure/tank_holder, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"iwv" = ( +/obj/effect/turf_decal/trimline/purple/filled/line, +/obj/machinery/light_switch/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/science) +"iwD" = ( +/obj/structure/dresser, +/obj/machinery/digital_clock/directional/south, +/turf/open/floor/carpet/orange, +/area/station/commons/dorms/room1) +"iwF" = ( +/obj/item/shard, +/obj/effect/decal/cleanable/glass, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"iwG" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/landmark/start/hangover, +/turf/open/floor/wood, +/area/station/hallway/primary/central) +"iwN" = ( +/turf/closed/wall/r_wall, +/area/station/escapepodbay) +"iwV" = ( +/obj/effect/turf_decal/trimline/green/filled/warning, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/virology/isolation) +"ixb" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 5 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"ixe" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/glass/reinforced, +/area/station/security/prison/safe) +"ixf" = ( +/obj/effect/turf_decal/tile/blue/half/contrasted, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"ixh" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/chair/sofa/bench/right, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/security/prison/workout) +"ixj" = ( +/turf/open/floor/wood, +/area/station/command/meeting_room/council) +"ixn" = ( +/obj/machinery/door/firedoor, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/door/airlock/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"ixp" = ( +/obj/machinery/door/airlock/maintenance, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/wood, +/area/station/service/abandoned_gambling_den) +"ixq" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/siding/thinplating_new/dark/corner, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/red/corner, +/turf/open/floor/iron/dark/textured_corner, +/area/station/security/lockers) +"ixs" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/command/heads_quarters/blueshield) +"ixt" = ( +/obj/structure/table/wood, +/obj/machinery/computer/records/medical/laptop, +/obj/structure/sign/calendar/directional/north, +/turf/open/floor/carpet/executive, +/area/station/command/heads_quarters/blueshield) +"ixy" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/science/research) +"ixA" = ( +/obj/structure/table, +/obj/item/clothing/mask/russian_balaclava{ + pixel_y = 7 + }, +/obj/item/clothing/mask/russian_balaclava, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"ixC" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/iron/white/corner{ + dir = 4 + }, +/area/station/hallway/secondary/entry) +"ixD" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/gloves/color/black, +/obj/item/clothing/gloves/color/black, +/obj/item/clothing/gloves/color/black, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/iron, +/area/station/maintenance/aux_eva) +"ixG" = ( +/obj/machinery/door/airlock/grunge{ + name = "Forbidden Chapel" + }, +/obj/effect/mapping_helpers/airlock/abandoned, +/obj/effect/decal/cleanable/blood/tracks{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/cult_chapel_maint) +"ixJ" = ( +/obj/machinery/airalarm/directional/west, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/service/power_station) +"ixK" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/security/execution/transfer) +"ixQ" = ( +/obj/machinery/shower/directional/east, +/obj/structure/drain, +/obj/machinery/light/small/directional/south, +/turf/open/floor/iron/freezer, +/area/station/command/heads_quarters/hos) +"ixU" = ( +/obj/machinery/telecomms/processor/preset_two, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 10 + }, +/turf/open/floor/iron/telecomms, +/area/station/tcommsat/server) +"ixW" = ( +/obj/structure/rack/wooden, +/obj/machinery/light_switch/directional/north, +/obj/structure/extinguisher_cabinet/directional/west, +/obj/item/clothing/under/plasmaman{ + pixel_x = -7; + pixel_y = -7 + }, +/obj/item/clothing/under/plasmaman{ + pixel_y = -7 + }, +/obj/item/clothing/under/plasmaman{ + pixel_x = 7; + pixel_y = -7 + }, +/obj/item/clothing/head/helmet/space/plasmaman{ + pixel_x = -7; + pixel_y = 8 + }, +/obj/item/clothing/head/helmet/space/plasmaman{ + pixel_y = 8 + }, +/obj/item/clothing/head/helmet/space/plasmaman{ + pixel_x = 7; + pixel_y = 8 + }, +/turf/open/floor/wood/parquet, +/area/station/common/gaskiosk) +"ixY" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"iyf" = ( +/obj/structure/fence/door/opened{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/abandon_holding_cell) +"iyl" = ( +/obj/machinery/door/airlock/command/glass{ + name = "Secure Tools Storage" + }, +/obj/effect/mapping_helpers/airlock/access/all/command/general, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Tool"; + name = "Secure Tool Storage Blast Door" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/engineering/transit_tube) +"iyE" = ( +/obj/effect/turf_decal/bot_red, +/obj/effect/turf_decal/loading_area/red, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/mineral/plastitanium, +/area/station/science/robotics/lab) +"iyH" = ( +/obj/effect/turf_decal/vg_decals/atmos/mix, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/engine, +/area/station/science/ordnance) +"iyR" = ( +/obj/effect/turf_decal/bot_red, +/obj/structure/cable, +/obj/machinery/light/floor/has_bulb, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/engine, +/area/station/command/secure_bunker) +"iyX" = ( +/obj/item/radio/intercom/directional/west, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet, +/area/station/service/chapel/office) +"iyZ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"izc" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/red/filled/warning{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/line, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/brig) +"izf" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 8 + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"izm" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/carpet, +/area/station/service/theater/abandoned) +"izq" = ( +/obj/structure/railing, +/turf/open/floor/iron/dark/side, +/area/station/ai_monitored/command/storage/eva) +"izM" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/cmo) +"izO" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood/corner, +/obj/machinery/door/airlock/corporate{ + name = "Blueshield's Quarters" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/command/captain, +/turf/open/floor/wood, +/area/station/command/heads_quarters/blueshield) +"izS" = ( +/obj/machinery/light/small/directional/west, +/obj/structure/table/reinforced, +/obj/item/assembly/flash/handheld{ + pixel_x = -7; + pixel_y = 18 + }, +/obj/item/storage/toolbox/mechanical{ + pixel_y = 9 + }, +/obj/item/mecha_parts/mecha_equipment/drill, +/turf/open/floor/iron, +/area/station/science/research/abandoned) +"iAg" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/station/construction/mining/aux_base) +"iAj" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/trimline/red/filled/warning{ + color = "#DE3A3A" + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/side, +/area/station/security/brig) +"iAl" = ( +/obj/structure/closet/cardboard, +/obj/effect/spawner/random/maintenance/two, +/turf/open/floor/plating, +/area/station/maintenance/department/security/prison_upper) +"iAr" = ( +/obj/machinery/shower/directional/east, +/obj/structure/drain, +/turf/open/floor/iron/freezer, +/area/station/security/prison/shower) +"iAt" = ( +/obj/effect/spawner/random/trash/mess, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"iAG" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/effect/landmark/start/scientist, +/turf/open/floor/wood/parquet, +/area/station/science/breakroom) +"iAI" = ( +/obj/item/kirbyplants/random, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/science/ordnance) +"iAK" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/digital_clock/directional/north, +/obj/machinery/duct, +/turf/open/floor/carpet/red, +/area/station/commons/dorms/room6) +"iAN" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/turf/open/floor/glass, +/area/station/commons/dorms) +"iAU" = ( +/obj/structure/chair/sofa/bench/right{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/cargo/lobby) +"iAZ" = ( +/obj/structure/closet{ + name = "Waiter Outfits" + }, +/obj/effect/turf_decal/bot, +/obj/item/clothing/under/costume/maid, +/obj/item/clothing/under/costume/maid, +/obj/item/clothing/accessory/maidapron, +/obj/item/clothing/accessory/maidapron, +/obj/item/clothing/under/suit/tuxedo, +/obj/item/clothing/under/suit/tuxedo, +/obj/item/clothing/under/suit/waiter, +/obj/item/clothing/under/suit/waiter, +/obj/item/clothing/shoes/laceup, +/obj/item/clothing/shoes/laceup, +/obj/item/clothing/accessory/waistcoat, +/obj/item/clothing/accessory/waistcoat, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/effect/spawner/costume/butler, +/obj/effect/spawner/costume/maid, +/obj/effect/spawner/costume/waiter, +/turf/open/floor/iron, +/area/station/command/captain_dining) +"iBb" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/science/research) +"iBc" = ( +/turf/open/floor/iron/smooth_edge{ + dir = 8 + }, +/area/station/cargo/miningdock) +"iBd" = ( +/obj/machinery/door/airlock/engineering{ + name = "Science Power Station" + }, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/any/science/rd, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/turf/open/floor/plating, +/area/station/science/power_station) +"iBm" = ( +/obj/machinery/vending/wardrobe/curator_wardrobe, +/obj/effect/turf_decal/bot, +/obj/structure/sign/painting/library_private{ + pixel_x = -32 + }, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/iron/dark, +/area/station/service/library/private) +"iBp" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/plasma_output, +/turf/open/floor/engine/plasma, +/area/station/engineering/atmos) +"iBr" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/structure/railing{ + dir = 10 + }, +/turf/open/floor/wood/large, +/area/station/service/theater/abandoned) +"iBs" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) +"iBv" = ( +/obj/item/stack/sheet/cardboard, +/obj/effect/spawner/random/maintenance, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/chapel) +"iBx" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/turf/closed/wall, +/area/space/nearstation) +"iBE" = ( +/obj/machinery/door/airlock/virology/glass{ + name = "Isolation B" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/medical/virology, +/turf/open/floor/iron, +/area/station/medical/virology) +"iBH" = ( +/obj/structure/fence/cut/medium{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/turf/open/floor/iron/dark/herringbone, +/area/station/cargo/storage) +"iBL" = ( +/obj/machinery/announcement_system, +/turf/open/floor/iron/dark, +/area/station/tcommsat/computer) +"iBV" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/machinery/conveyor_switch/oneway{ + id = "Luggagebelt"; + name = "Luggage conveyor switch"; + pixel_y = 8 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/iron/dark/side, +/area/station/security/checkpoint) +"iBZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"iCd" = ( +/obj/effect/spawner/random/structure/crate, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"iCe" = ( +/obj/structure/table/wood/fancy, +/obj/item/statuebust{ + pixel_y = 12 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/directional/south, +/turf/open/floor/carpet/red, +/area/station/service/library/abandoned) +"iCf" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/cargo/warehouse) +"iCi" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/structure/cable, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen/diner) +"iCr" = ( +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat_interior) +"iCv" = ( +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"iCw" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/hallway/primary/port) +"iCC" = ( +/obj/machinery/computer/shuttle/labor{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"iCD" = ( +/obj/structure/railing, +/obj/structure/rack, +/obj/effect/spawner/random/food_or_drink/booze, +/obj/effect/spawner/random/food_or_drink/snack, +/turf/open/floor/plating, +/area/station/maintenance/central) +"iCF" = ( +/obj/machinery/door/firedoor, +/obj/machinery/firealarm/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/side, +/area/station/hallway/secondary/exit) +"iCJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/delivery, +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"iCM" = ( +/obj/structure/bodycontainer, +/obj/effect/turf_decal/bot_white, +/obj/machinery/status_display/ai/directional/west, +/obj/structure/window/spawner/directional/north, +/turf/open/floor/iron/dark/small, +/area/station/medical/morgue) +"iCV" = ( +/obj/item/reagent_containers/pill/maintenance, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/department/engineering/engine_aft_port) +"iCX" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/storage) +"iDa" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing{ + dir = 1 + }, +/obj/item/toy/plush/space_lizard_plushie, +/turf/open/space/basic, +/area/space/nearstation) +"iDd" = ( +/obj/structure/window/spawner/directional/east, +/obj/effect/spawner/random/structure/closet_maintenance, +/turf/open/floor/plating, +/area/station/maintenance/central) +"iDe" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"iDw" = ( +/obj/machinery/door/airlock/maintenance, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/security/lower) +"iDx" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/white, +/area/station/science/tele_sci) +"iDC" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/effect/spawner/random/entertainment/toy, +/turf/open/floor/plating/reinforced{ + initial_gas_mix = "TEMP=2.7" + }, +/area/station/science/ordnance/bomb) +"iDH" = ( +/obj/structure/closet/crate/bin, +/obj/machinery/light/directional/south, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/item/clothing/mask/cigarette/pipe/crackpipe, +/turf/open/floor/iron/kitchen{ + dir = 1 + }, +/area/station/security/prison/upper) +"iDM" = ( +/obj/structure/disposalpipe/junction/flip{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"iDX" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"iEg" = ( +/obj/structure/trash_pile, +/turf/open/floor/plating, +/area/station/maintenance/department/chapel) +"iEm" = ( +/obj/machinery/light/directional/south, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/iron, +/area/station/engineering/main) +"iEp" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron/dark/side, +/area/station/security/prison/upper) +"iEr" = ( +/obj/effect/spawner/random/trash/mess, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable/multilayer/connected, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"iEu" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/cargo/warehouse) +"iEx" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"iEy" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/engineering/atmos) +"iEz" = ( +/obj/structure/window/green_glass_pane, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "ChapelHall"; + name = "Chapel Garden Shutters" + }, +/turf/open/floor/plating, +/area/station/service/chapel) +"iEB" = ( +/obj/effect/turf_decal/vg_decals/numbers/one, +/obj/structure/closet/emcloset/wall{ + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/escapepodbay) +"iEC" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/duct, +/turf/open/floor/carpet, +/area/station/commons/dorms/room7) +"iEF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/trash/can/food/peaches/maint, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/thruster_room/central) +"iEG" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/machinery/status_display/door_timer{ + id = "Cell 1"; + name = "Cell 1"; + pixel_x = -32 + }, +/turf/open/floor/iron, +/area/station/security/brig) +"iEH" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/iron, +/area/station/maintenance/port/aft) +"iEK" = ( +/obj/structure/dresser, +/obj/machinery/digital_clock/directional/south, +/turf/open/floor/carpet, +/area/station/commons/dorms/room7) +"iEO" = ( +/obj/machinery/flasher/directional/east{ + id = "AI"; + pixel_y = 26 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/holopad/secure, +/obj/machinery/door/window/brigdoor/left/directional/west{ + name = "Tertiary AI Core Acces Door"; + req_access = list("ai_upload") + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai) +"iER" = ( +/obj/machinery/deepfryer, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/turf/open/floor/iron/cafeteria, +/area/station/common/wrestling/concessions) +"iEU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"iEX" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/eva) +"iEZ" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/effect/turf_decal/stripes, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"iFa" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/flowers_br, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/grass, +/area/station/hallway/secondary/entry) +"iFg" = ( +/obj/effect/turf_decal/trimline/red/filled/corner{ + color = "#DE3A3A"; + dir = 8 + }, +/obj/machinery/photocopier, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hos) +"iFl" = ( +/obj/structure/sign/painting/library, +/turf/closed/wall/mineral/wood, +/area/station/service/library) +"iFu" = ( +/obj/structure/chair/stool/directional/south, +/turf/open/floor/iron, +/area/station/engineering/break_room) +"iFx" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"iFz" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/grimy, +/area/station/command/heads_quarters/captain) +"iFA" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 8 + }, +/turf/open/floor/engine/vacuum, +/area/station/maintenance/department/engineering/atmos_aux_port) +"iFJ" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/department/science/ordnance_maint) +"iFM" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 1 + }, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"iFP" = ( +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"iFR" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/landmark/generic_maintenance_landmark, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/solars/starboard/aft) +"iFU" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/item/pushbroom, +/obj/item/pushbroom, +/obj/item/mop, +/obj/item/mop, +/obj/effect/turf_decal/siding/purple{ + dir = 1 + }, +/obj/structure/mop_bucket/janitorialcart, +/obj/structure/mop_bucket/janitorialcart, +/turf/open/floor/iron/dark, +/area/station/service/janitor) +"iFV" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/table/reinforced, +/obj/item/paper_bin{ + pixel_y = 3 + }, +/obj/item/pen{ + pixel_y = 3 + }, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 5 + }, +/turf/open/floor/iron/white, +/area/station/science/ordnance/storage) +"iFX" = ( +/obj/structure/table, +/obj/machinery/power/shuttle_engine/propulsion{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/security/execution/transfer) +"iGa" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"iGb" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"iGe" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/engineering/break_room) +"iGg" = ( +/obj/machinery/light/directional/north, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/carpet/lone, +/area/station/service/chapel) +"iGk" = ( +/turf/closed/wall, +/area/station/maintenance/abandon_wrestle) +"iGr" = ( +/obj/machinery/shower/directional/west, +/obj/structure/drain, +/turf/open/floor/iron/freezer, +/area/station/medical/aslyum) +"iGt" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/chair/comfy{ + color = "#596479"; + dir = 4 + }, +/obj/machinery/newscaster/directional/west, +/turf/open/floor/carpet/green, +/area/station/command/heads_quarters/nt_rep) +"iGu" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/medical/power_station) +"iGA" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/item/crowbar, +/obj/item/wrench, +/obj/item/clothing/mask/gas, +/turf/open/floor/iron/dark, +/area/station/engineering/main) +"iGE" = ( +/obj/item/soap/nanotrasen, +/turf/open/floor/iron/freezer, +/area/station/common/locker_room_shower) +"iGF" = ( +/turf/closed/wall/r_wall, +/area/station/security/courtroom) +"iGH" = ( +/obj/structure/railing, +/turf/open/floor/iron/stairs/left{ + dir = 4 + }, +/area/station/hallway/primary/starboard) +"iGP" = ( +/obj/effect/landmark/start/geneticist, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/science/genetics) +"iGU" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/dorms) +"iGV" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/modular_computer/preset/curator{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/station/service/library) +"iHf" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/camera/directional/east, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"iHj" = ( +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/primary/port) +"iHl" = ( +/obj/machinery/door/airlock/security{ + name = "Interrogation" + }, +/obj/effect/turf_decal/delivery/blue, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/turf/open/floor/iron/dark, +/area/station/security/interrogation) +"iHq" = ( +/obj/effect/turf_decal/stripes/end{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/ai_monitored/command/storage/eva) +"iHu" = ( +/obj/structure/bookcase/random, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/carpet/blue, +/area/station/command/heads_quarters/captain) +"iHv" = ( +/obj/effect/turf_decal/trimline/purple/filled/line, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/science/research) +"iHw" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"iHC" = ( +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"iHD" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/maintenance/abandon_arcade) +"iHI" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/commons/dorms) +"iHJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/duct, +/obj/effect/decal/cleanable/food/flour, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/cafeteria, +/area/station/common/wrestling/concessions) +"iHL" = ( +/obj/machinery/duct, +/turf/closed/wall/r_wall, +/area/station/command/heads_quarters/nt_rep) +"iHQ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "Xeno11"; + name = "Containment Breach Blast Door" + }, +/turf/open/floor/plating, +/area/station/science/xenobiology) +"iHU" = ( +/obj/effect/turf_decal/stripes, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"iIe" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"iIf" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/vending/cigarette, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light/directional/north, +/obj/machinery/light_switch/directional/north, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/commons/dorms) +"iIi" = ( +/obj/machinery/computer/records/security{ + dir = 8 + }, +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/iron/dark, +/area/station/security/office) +"iIk" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister/anesthetic_mix, +/obj/effect/turf_decal/bot, +/obj/structure/window/spawner/directional/east, +/obj/structure/window/spawner/directional/south, +/turf/open/floor/iron, +/area/station/medical/cryo) +"iIu" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/bluespace_vendor/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"iIv" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/external{ + name = "Escape Pod 2" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/escapepodbay) +"iIw" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/holopad, +/turf/open/floor/iron, +/area/station/security/checkpoint/science/research) +"iIy" = ( +/turf/open/floor/iron/kitchen, +/area/station/security/prison/mess) +"iIz" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/xenobio_disposals) +"iIJ" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Law Office Maintenance" + }, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/service/lawyer, +/turf/open/floor/plating, +/area/station/maintenance/law) +"iIL" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/hallway/secondary/entry) +"iIZ" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/effect/turf_decal/trimline/blue/line, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/commons/fitness) +"iJe" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/maintenance/thruster_room/central) +"iJh" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/duct, +/turf/open/floor/carpet/green, +/area/station/command/heads_quarters/nt_rep) +"iJw" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"iJz" = ( +/obj/machinery/door/airlock{ + id_tag = "Toilet3"; + name = "Stall 3" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/commons/toilet/restrooms) +"iJK" = ( +/obj/structure/table/wood, +/obj/item/folder, +/obj/item/flashlight/pen, +/obj/effect/spawner/random/maintenance, +/obj/machinery/airalarm/directional/south, +/turf/open/floor/carpet/red, +/area/station/service/library/abandoned) +"iJS" = ( +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/station/hallway/primary/central) +"iJV" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/junction{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"iJY" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/machinery/newscaster/directional/north, +/obj/machinery/light/directional/north, +/obj/machinery/camera/directional/south{ + c_tag = "Medbay - Central"; + dir = 1; + name = "medbay camera"; + network = list("ss13","medbay") + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"iKj" = ( +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/iron, +/area/station/hallway/secondary/command) +"iKp" = ( +/obj/effect/spawner/random/trash/graffiti, +/turf/closed/wall, +/area/station/maintenance/central) +"iKs" = ( +/turf/closed/mineral/asteroid, +/area/space/nearstation) +"iKw" = ( +/obj/structure/closet, +/obj/effect/turf_decal/delivery, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"iKD" = ( +/obj/machinery/button/door{ + id = "Barshutters"; + name = "Bar Shutters"; + pixel_x = 25; + pixel_y = 8; + req_access = list("bar") + }, +/obj/machinery/button/door{ + id = "BarBlastDoor"; + name = "Bar Blast Doors"; + pixel_x = 25; + pixel_y = -6; + req_access = list("bar") + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/landmark/start/hangover, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/service/bar) +"iKG" = ( +/obj/item/circuitboard/mecha/ripley/main, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"iKI" = ( +/obj/structure/railing{ + dir = 6 + }, +/obj/structure/rack/shelf, +/turf/open/floor/iron/smooth_corner{ + dir = 1 + }, +/area/station/cargo/miningdock) +"iKJ" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/law) +"iKV" = ( +/obj/machinery/camera/directional/west{ + c_tag = "Recreation - Arcade Lower"; + name = "hallway camera" + }, +/obj/machinery/light/directional/west, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/machinery/computer/security/telescreen/entertainment/directional/west, +/turf/open/floor/wood/parquet, +/area/station/common/arcade) +"iLd" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Security Maintenance" + }, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"iLn" = ( +/obj/structure/table/reinforced, +/obj/machinery/microwave{ + pixel_y = 5 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/iron, +/area/station/science/breakroom) +"iLo" = ( +/obj/effect/turf_decal/trimline/purple/filled/line, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/science) +"iLq" = ( +/obj/structure/chair/sofa/corp/right{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple/half{ + dir = 8 + }, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/iron/white/side{ + dir = 8 + }, +/area/station/science) +"iLs" = ( +/obj/machinery/door/airlock/highsecurity{ + name = "AI Upload Access" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/command/ai_upload, +/turf/open/floor/iron, +/area/station/ai_monitored/turret_protected/ai_upload_foyer) +"iLw" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/spawner/random/trash/bin, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"iLx" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white/textured, +/area/station/medical/aslyum) +"iLD" = ( +/obj/structure/sink/directional/west, +/turf/open/floor/iron/checker, +/area/station/service/janitor) +"iLG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/storage/box/matches{ + pixel_x = -3; + pixel_y = 5 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/service/electronic_marketing_den) +"iLH" = ( +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"iLI" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 6 + }, +/obj/structure/flora/bush/fullgrass, +/obj/structure/statue/sandstone/venus{ + anchored = 1; + pixel_x = -3; + pixel_y = 7; + layer = 3.4 + }, +/turf/open/floor/grass, +/area/station/hallway/primary/aft) +"iLK" = ( +/turf/closed/wall/r_wall, +/area/station/security/warden) +"iLN" = ( +/turf/closed/wall, +/area/station/hallway/primary/port) +"iLO" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/filingcabinet/employment, +/obj/machinery/newscaster/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/nt_rep) +"iLR" = ( +/obj/effect/landmark/start/assistant, +/obj/structure/chair/comfy/brown{ + color = "#A46106" + }, +/turf/open/floor/wood, +/area/station/service/library) +"iLS" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/lobby) +"iMb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/girder, +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"iMc" = ( +/turf/closed/wall/r_wall, +/area/station/common/pool) +"iMf" = ( +/obj/structure/flora/bush/jungle/c/style_3, +/obj/structure/flora/bush/flowers_br, +/obj/structure/window/fulltile, +/turf/open/floor/grass, +/area/station/hallway/primary/upper) +"iMj" = ( +/obj/structure/closet, +/obj/effect/turf_decal/delivery, +/obj/effect/spawner/random/maintenance/two, +/obj/machinery/light/small/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"iMq" = ( +/obj/structure/bookcase/manuals/research_and_development, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain/private) +"iMx" = ( +/obj/machinery/power/floodlight, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/station/command/secure_bunker) +"iMB" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/customs/auxiliary) +"iMC" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/closet, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"iME" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron, +/area/station/ai_monitored/command/storage/eva) +"iMF" = ( +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/security/prison_upper) +"iMN" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/science) +"iMU" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/light/directional/south, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/primary/central/fore) +"iNb" = ( +/obj/effect/turf_decal/vg_decals/numbers/two, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/hallway/secondary/exit) +"iNf" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) +"iNr" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/science/research/abandoned) +"iNy" = ( +/obj/effect/turf_decal/trimline/blue/corner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"iNB" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/security/execution/transfer) +"iNE" = ( +/obj/effect/spawner/random/trash/food_packaging, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"iNU" = ( +/obj/structure/chair, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"iOb" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/firealarm/directional/west, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"iOk" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/smart/simple/violet/visible/layer2{ + dir = 10 + }, +/turf/open/space/basic, +/area/space/nearstation) +"iOl" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron, +/area/station/science/explab) +"iOn" = ( +/obj/effect/turf_decal/trimline/red/filled/corner{ + color = "#DE3A3A" + }, +/obj/structure/table/reinforced, +/obj/item/folder/red{ + pixel_x = -7; + pixel_y = 6 + }, +/obj/item/folder/red{ + pixel_x = -7 + }, +/obj/structure/noticeboard/hos{ + dir = 4; + pixel_x = -28 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hos) +"iOq" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"iOG" = ( +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"iOK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/maintenance/thruster_room/central) +"iOL" = ( +/obj/effect/turf_decal/box, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/science/ordnance) +"iON" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/cargo/drone_bay) +"iOR" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/openspace, +/area/station/maintenance/aft/upper) +"iOX" = ( +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron, +/area/station/commons/dorms) +"iPd" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/security/lower) +"iPj" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock/public/glass{ + name = "Central Hallway" + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"iPk" = ( +/obj/effect/turf_decal/trimline/red/filled/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 10 + }, +/turf/open/floor/iron/dark/corner{ + dir = 4 + }, +/area/station/security/brig) +"iPq" = ( +/obj/structure/falsewall, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"iPw" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/decal/cleanable/cobweb, +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"iPA" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"iPE" = ( +/turf/closed/wall/r_wall, +/area/station/command/meeting_room/council) +"iPI" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"iPK" = ( +/obj/structure/table/wood, +/obj/item/clipboard, +/obj/item/folder, +/obj/item/lipstick/random{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/lipstick/random{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/lipstick/random, +/turf/open/floor/iron/dark, +/area/station/service/barber) +"iPV" = ( +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"iPX" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/item/book/manual/wiki/security_space_law, +/obj/item/radio, +/obj/machinery/newscaster/directional/east, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint) +"iQb" = ( +/obj/effect/turf_decal/delivery/white, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/obj/machinery/door/airlock/security/glass{ + name = "Flight Control" + }, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"iQi" = ( +/obj/effect/turf_decal/trimline/red/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/filled/warning{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/prison/upper) +"iQl" = ( +/turf/open/floor/iron, +/area/station/science/ordnance/testlab) +"iQv" = ( +/obj/machinery/byteforge, +/turf/open/floor/circuit/green, +/area/station/security/prison/upper) +"iQx" = ( +/obj/effect/turf_decal/stripes/red/line{ + dir = 8 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/science/xenobiology) +"iQD" = ( +/obj/machinery/door/airlock/maintenance, +/obj/effect/mapping_helpers/airlock/abandoned, +/obj/structure/barricade/wooden/crude, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/abandon_exam/cat) +"iQN" = ( +/obj/structure/chair/office/light{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/grimy, +/area/station/ai_monitored/turret_protected/aisat_interior) +"iQT" = ( +/obj/machinery/door/airlock/external{ + name = "Construction Zone"; + space_dir = 8 + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/aux_base, +/turf/open/floor/plating, +/area/station/construction/mining/aux_base) +"iQV" = ( +/obj/effect/spawner/structure/window/reinforced/tinted{ + polarizer_id = "interro" + }, +/turf/open/floor/plating, +/area/station/security/interrogation) +"iQX" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/bot, +/obj/item/crowbar, +/obj/item/wrench, +/obj/item/gps, +/obj/item/radio{ + pixel_x = -8 + }, +/obj/item/radio{ + pixel_x = -8 + }, +/obj/item/radio{ + pixel_x = -8 + }, +/turf/open/floor/iron/dark, +/area/station/commons/storage/primary) +"iRa" = ( +/obj/machinery/duct, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"iRb" = ( +/obj/item/kirbyplants/random, +/obj/machinery/airalarm/directional/west, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron, +/area/station/security/execution/transfer) +"iRe" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/noslip, +/area/station/maintenance/gag_room) +"iRf" = ( +/obj/machinery/light/small/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/department/security) +"iRo" = ( +/obj/effect/spawner/random/trash/mopbucket, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"iRq" = ( +/obj/structure/chair/pew/left{ + dir = 8 + }, +/obj/structure/cable, +/obj/effect/turf_decal/tile/bar/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/security/prison/mess) +"iRz" = ( +/obj/effect/spawner/random/trash/moisture_trap, +/obj/machinery/light/small/directional/north, +/turf/open/floor/iron, +/area/station/maintenance/port/aft) +"iRC" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat_interior) +"iRJ" = ( +/obj/machinery/camera/directional/east{ + c_tag = "Security - Shuttle Bay West"; + dir = 10 + }, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"iRO" = ( +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/iron/stairs/old{ + dir = 1 + }, +/area/station/engineering/atmos) +"iRR" = ( +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) +"iRZ" = ( +/obj/machinery/iv_drip, +/obj/structure/bed/roller{ + dir = 1 + }, +/obj/machinery/defibrillator_mount/directional/north, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) +"iSa" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"iSj" = ( +/obj/structure/bookcase/random/religion, +/turf/open/floor/wood, +/area/station/command/meeting_room/council) +"iSr" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/lobby) +"iSt" = ( +/obj/structure/railing/wrestling{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/common/wrestling/arena) +"iSC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/maintenance/port/aft) +"iSV" = ( +/obj/structure/cable, +/obj/machinery/airalarm/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/common/locker_room_shower) +"iSX" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/engineering/main) +"iTg" = ( +/obj/structure/bookcase/random/reference, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/cmo) +"iTo" = ( +/obj/effect/spawner/random/trash/mess, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"iTp" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"iTr" = ( +/obj/structure/girder/displaced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"iTs" = ( +/obj/machinery/light/directional/south, +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/iron/smooth_edge, +/area/station/cargo/miningdock) +"iTA" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark/herringbone, +/area/station/security/brig) +"iTC" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/effect/turf_decal/stripes, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"iTI" = ( +/obj/machinery/suit_storage_unit/open, +/turf/open/floor/iron/dark, +/area/station/maintenance/aux_eva) +"iTN" = ( +/turf/open/floor/carpet/green, +/area/station/service/abandoned_gambling_den) +"iTP" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/curtain/cloth/fancy/mechanical{ + icon_state = "bounty-open"; + icon_type = "bounty"; + id = "dormscurtain8"; + name = "curtain" + }, +/turf/open/floor/plating, +/area/station/commons/dorms/room7) +"iTQ" = ( +/turf/closed/wall/r_wall, +/area/station/maintenance/night_club) +"iTR" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"iTV" = ( +/obj/structure/chair/sofa/right/brown{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/open/floor/wood/parquet, +/area/station/service/theater) +"iTW" = ( +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/entry) +"iTX" = ( +/obj/structure/table/reinforced, +/obj/item/paper_bin, +/obj/item/pen/blue, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/machinery/airalarm/directional/north, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/customs) +"iUc" = ( +/obj/structure/window/reinforced/plasma/spawner/directional/north, +/obj/machinery/power/shuttle_engine/heater{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/station/maintenance/fore/upper) +"iUe" = ( +/obj/structure/table, +/obj/item/storage/box/beakers{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/storage/box/syringes, +/obj/machinery/newscaster/directional/south, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"iUj" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/item/storage/part_replacer, +/turf/open/floor/iron/dark, +/area/station/engineering/transit_tube) +"iUk" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/simple/violet/visible/layer2{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) +"iUs" = ( +/obj/structure/chair, +/obj/machinery/status_display/evac/directional/north, +/obj/machinery/camera/directional/south{ + c_tag = "Medbay - Surgery observation"; + dir = 1; + name = "medbay camera"; + network = list("ss13","medbay") + }, +/turf/open/floor/iron/dark, +/area/station/medical/surgery/theatre) +"iUv" = ( +/obj/effect/landmark/start/chief_medical_officer, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/cmo) +"iUy" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/bluespace_vendor/directional/east, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"iUz" = ( +/obj/structure/bookcase/random/reference, +/turf/open/floor/wood, +/area/station/command/meeting_room/council) +"iUB" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/corrections_officer) +"iUK" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 1 + }, +/obj/structure/flora/bush/lavendergrass, +/obj/structure/chair/sofa/bench{ + dir = 1 + }, +/turf/open/floor/grass, +/area/station/hallway/primary/aft) +"iUL" = ( +/turf/open/floor/iron/white/smooth_corner{ + dir = 1 + }, +/area/station/science/explab) +"iUM" = ( +/obj/machinery/growing/tray, +/turf/open/floor/grass, +/area/station/security/prison/garden) +"iUQ" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/machinery/disposal/delivery_chute{ + dir = 1; + name = "Medical Deliveries" + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/medical/medbay/central) +"iUS" = ( +/obj/item/radio/intercom/directional/east, +/obj/machinery/camera/directional/east{ + c_tag = "Bridge - Bunker Controll Room"; + name = "command camera" + }, +/turf/open/floor/iron/smooth_edge{ + dir = 1 + }, +/area/station/command/secure_bunker) +"iUW" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 8 + }, +/obj/structure/table/reinforced, +/obj/machinery/fax{ + fax_name = "Engineering Lobby"; + name = "Engineering Lobby Fax Machine" + }, +/turf/open/floor/iron/dark, +/area/station/engineering/break_room) +"iUY" = ( +/obj/structure/rack, +/obj/item/storage/medkit/regular, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/command/gateway) +"iVe" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/item/kirbyplants/random, +/obj/machinery/camera/directional/west, +/turf/open/floor/wood, +/area/station/hallway/primary/port) +"iVh" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron/cafeteria, +/area/station/command/heads_quarters/nt_rep) +"iVj" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/noslip, +/area/station/maintenance/gag_room) +"iVl" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/lobby) +"iVo" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/broken/directional/west, +/obj/machinery/duct, +/turf/open/floor/iron/freezer, +/area/station/commons/dorms/vacantroom) +"iVq" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/turf/open/floor/grass, +/area/station/common/night_club) +"iVx" = ( +/obj/machinery/computer/arcade/amputation{ + dir = 4 + }, +/obj/structure/window/spawner/directional/west, +/obj/machinery/light/directional/south, +/turf/open/floor/eighties, +/area/station/maintenance/abandon_arcade) +"iVB" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/obj/machinery/light/directional/east, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/captain) +"iVC" = ( +/obj/machinery/button/door/directional/west{ + id = "scidoor"; + name = "Science Cell Control"; + normaldoorcontrol = 1; + pixel_y = -7 + }, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/iron, +/area/station/security/checkpoint/science/research) +"iVF" = ( +/turf/closed/wall/r_wall, +/area/station/maintenance/aft/upper) +"iVM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"iVN" = ( +/obj/machinery/conveyor/inverted{ + dir = 10; + id = "cargodeliver" + }, +/turf/open/floor/iron/dark, +/area/station/cargo/lobby) +"iVR" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"iVV" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"iWe" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/service/hydroponics/garden) +"iWi" = ( +/obj/structure/frame/computer{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/station/maintenance/console_room) +"iWl" = ( +/obj/machinery/vending/wardrobe/det_wardrobe, +/turf/open/floor/wood, +/area/station/security/detectives_office) +"iWu" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/junction/flip{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"iWw" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/command/captain_dining) +"iWz" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/maintenance/clown_chamber) +"iWE" = ( +/obj/structure/chair/comfy/black{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/carpet/blue, +/area/station/command/captain_dining) +"iWF" = ( +/obj/structure/flora/bush/jungle/c/style_3, +/obj/structure/flora/bush/flowers_yw/style_3, +/obj/structure/window/fulltile, +/turf/open/floor/grass, +/area/station/hallway/primary/upper) +"iWJ" = ( +/obj/structure/bed, +/obj/item/bedsheet/medical, +/turf/open/floor/iron/white, +/area/station/medical/patients_rooms) +"iWN" = ( +/turf/closed/wall, +/area/station/commons/vacant_room/commissary) +"iWV" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/primary/port) +"iXb" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/stairs, +/area/station/science/xenobiology) +"iXf" = ( +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/central/fore) +"iXh" = ( +/obj/structure/wrestling_corner, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/side{ + dir = 10 + }, +/area/station/common/wrestling/arena) +"iXl" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/chapel{ + dir = 1 + }, +/area/station/service/chapel) +"iXt" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/turf/open/floor/iron/stairs, +/area/station/maintenance/thruster_room/central) +"iXv" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/digital_clock/directional/south, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain/private) +"iXx" = ( +/obj/effect/turf_decal/bot, +/obj/structure/chair/plastic{ + dir = 8 + }, +/obj/machinery/firealarm/directional/east, +/obj/machinery/camera/directional/east{ + c_tag = "Science - Toxins Airlock"; + name = "science camera"; + network = list("ss13","rd") + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron, +/area/station/science/ordnance) +"iXC" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen" + }, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/law) +"iXD" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/effect/landmark/start/virologist, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/machinery/duct, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 6 + }, +/turf/open/floor/iron/white, +/area/station/medical/virology) +"iXF" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/primary/central) +"iXJ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/eighties/red, +/area/station/common/arcade) +"iXL" = ( +/obj/structure/window/spawner/directional/east, +/obj/structure/chair/stool/directional/west, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/bar) +"iXR" = ( +/obj/structure/table/wood, +/obj/item/folder/white{ + pixel_x = 3; + pixel_y = 5 + }, +/obj/item/folder/white, +/obj/item/pen/fountain, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/carpet, +/area/station/medical/psychology) +"iXS" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"iXT" = ( +/obj/machinery/light/small/directional/south, +/obj/machinery/corral_corner{ + mapping_id = "1" + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"iXV" = ( +/obj/effect/turf_decal/tile/red, +/obj/machinery/light/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/table/reinforced, +/obj/machinery/fax{ + fax_name = "Security Office"; + name = "Security Office Fax Machine"; + pixel_y = 3 + }, +/turf/open/floor/iron/dark/side, +/area/station/security/office) +"iYc" = ( +/obj/effect/turf_decal/bot_white, +/obj/machinery/camera/directional/north{ + c_tag = "Command Hallway - HoP Line" + }, +/obj/machinery/photobooth, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/command) +"iYg" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/north, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"iYk" = ( +/obj/structure/chair/comfy/brown{ + dir = 1 + }, +/obj/structure/cable, +/obj/effect/landmark/start/research_director, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/command/heads_quarters/rd) +"iYl" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/wood, +/area/station/security/courtroom) +"iYm" = ( +/obj/effect/turf_decal/tile/brown/anticorner/contrasted, +/obj/item/kirbyplants/random, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/cargo/office) +"iYx" = ( +/obj/effect/spawner/random/trash/mess, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"iYA" = ( +/obj/structure/chair, +/obj/effect/landmark/start/assistant, +/turf/open/floor/wood, +/area/station/hallway/primary/port) +"iYD" = ( +/obj/machinery/mech_bay_recharge_port{ + dir = 2 + }, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/cargo/warehouse) +"iYE" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/central) +"iYJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/item/kirbyplants/random, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/wood, +/area/station/maintenance/abandon_art_studio) +"iYN" = ( +/obj/item/clothing/under/rank/security/detective, +/obj/item/clothing/suit/jacket/det_suit{ + icon_state = "curator" + }, +/obj/item/clothing/head/fedora/det_hat{ + icon_state = "curator" + }, +/obj/machinery/camera/directional/east{ + c_tag = "Detective's Study" + }, +/obj/structure/filingcabinet/security, +/turf/open/floor/wood/parquet, +/area/station/security/detectives_office) +"iYT" = ( +/obj/structure/chair/wood, +/obj/effect/landmark/start/assistant, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"iYU" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/thinplating_new/dark, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_edge, +/area/station/security/prison/safe) +"iYV" = ( +/obj/effect/turf_decal/trimline/blue/corner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"iYW" = ( +/obj/effect/spawner/random/trash/soap, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"iYY" = ( +/turf/closed/wall/r_wall, +/area/station/maintenance/department/science/xenobiology) +"iYZ" = ( +/obj/structure/chair/sofa/bench/left{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple/half{ + dir = 1 + }, +/turf/open/floor/iron/white/side{ + dir = 1 + }, +/area/station/science/research) +"iZc" = ( +/obj/structure/cable, +/mob/living/basic/mouse/gray{ + health = 0 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"iZi" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/effect/turf_decal/caution/stand_clear, +/obj/machinery/door/airlock/external{ + name = "External Docking Port" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/escape) +"iZl" = ( +/turf/open/floor/engine/hull, +/area/space/nearstation) +"iZn" = ( +/obj/machinery/requests_console/directional/south{ + department = "Chapel"; + name = "Chapel Requests Console" + }, +/obj/effect/mapping_helpers/requests_console/supplies, +/obj/structure/cable, +/obj/machinery/light/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/service/chapel/office) +"iZs" = ( +/obj/structure/table/reinforced, +/obj/item/assembly/prox_sensor{ + pixel_x = 8; + pixel_y = 9 + }, +/obj/item/assembly/prox_sensor{ + pixel_x = 9; + pixel_y = -2 + }, +/obj/item/assembly/prox_sensor{ + pixel_x = -4; + pixel_y = 1 + }, +/obj/item/assembly/prox_sensor{ + pixel_y = 2 + }, +/obj/machinery/newscaster/directional/west, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) +"iZv" = ( +/turf/open/floor/iron/stairs/right, +/area/station/commons/dorms) +"iZx" = ( +/obj/machinery/light/small/directional/south, +/obj/machinery/atmospherics/components/binary/valve/digital/on/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/valve/digital/on/layer2{ + dir = 4 + }, +/obj/structure/lattice/catwalk, +/turf/open/openspace, +/area/station/maintenance/department/medical/central) +"iZC" = ( +/obj/structure/table/wood, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/item/storage/briefcase/secure{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/storage/lockbox/medal, +/turf/open/floor/carpet/blue, +/area/station/command/heads_quarters/captain/private) +"iZG" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron/white/side{ + dir = 8 + }, +/area/station/command/heads_quarters/ce) +"iZM" = ( +/obj/machinery/light/no_nightlight/directional/south, +/obj/machinery/newscaster/directional/south, +/turf/open/floor/iron, +/area/station/engineering/atmos/hfr_room) +"iZQ" = ( +/obj/effect/landmark/start/assistant, +/turf/open/floor/wood/parquet, +/area/station/common/tailoring) +"iZT" = ( +/obj/effect/landmark/carpspawn, +/turf/open/floor/iron/shuttle/evac/airless, +/area/space/nearstation) +"iZW" = ( +/obj/structure/mirror{ + pixel_y = 32 + }, +/obj/structure/sink/directional/south, +/turf/open/floor/iron/freezer, +/area/station/medical/aslyum) +"iZZ" = ( +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"jac" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) +"jad" = ( +/obj/structure/chair/pew/right{ + dir = 1 + }, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain/private) +"jae" = ( +/obj/structure/cable, +/turf/open/floor/iron/stairs{ + dir = 4 + }, +/area/station/common/wrestling/arena) +"jal" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/nitrous_input{ + dir = 1 + }, +/turf/open/floor/engine/n2o, +/area/station/engineering/atmos) +"jas" = ( +/obj/machinery/door/airlock/command/glass{ + name = "Control Room" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "tcomms-internal" + }, +/obj/machinery/door/firedoor/heavy, +/obj/effect/mapping_helpers/airlock/access/all/command/general, +/turf/open/floor/iron, +/area/station/tcommsat/computer) +"jay" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/item/wrench, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"jaB" = ( +/obj/machinery/light/directional/west, +/obj/machinery/status_display/ai/directional/west, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/primary/central/aft) +"jaI" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron/airless, +/area/space/nearstation) +"jaJ" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister/nitrogen, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/storage) +"jaK" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/security/prison/upper) +"jaM" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/service/theater/abandoned) +"jaR" = ( +/turf/open/floor/iron, +/area/station/commons/dorms) +"jaZ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/machinery/firealarm/directional/north, +/obj/machinery/light/directional/north, +/turf/open/floor/wood, +/area/station/medical/exam_room) +"jbe" = ( +/obj/effect/turf_decal/stripes, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8; + name = "Engine Coolant Bypass" + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"jbh" = ( +/turf/open/floor/iron/dark/herringbone, +/area/station/cargo/storage) +"jbj" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/smooth, +/area/station/cargo/power_station/upper) +"jbn" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 9 + }, +/obj/structure/railing, +/turf/open/floor/iron/telecomms, +/area/station/tcommsat/server) +"jbo" = ( +/obj/structure/table/wood/fancy/green, +/obj/effect/spawner/random/entertainment/money, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/broken/directional/south, +/turf/open/floor/carpet/green, +/area/station/service/abandoned_gambling_den) +"jbr" = ( +/obj/effect/turf_decal/trimline/red/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/prison/safe) +"jbv" = ( +/obj/structure/table, +/obj/structure/railing, +/turf/open/floor/iron, +/area/station/maintenance/thruster_room/central) +"jby" = ( +/obj/effect/spawner/random/structure/crate, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"jbA" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"jbE" = ( +/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/junction{ + dir = 8 + }, +/obj/machinery/camera/directional/south, +/turf/open/floor/iron, +/area/station/engineering/atmos/office) +"jbI" = ( +/obj/structure/chair/comfy/black, +/obj/effect/landmark/start/librarian, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/service/library/private) +"jbR" = ( +/obj/structure/table/reinforced, +/obj/machinery/recharger{ + pixel_y = 4 + }, +/obj/item/geiger_counter{ + pixel_x = 7; + pixel_y = 3 + }, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/engineering) +"jbS" = ( +/obj/machinery/door/airlock/medical/glass{ + id_tag = "MedbayFoyer"; + name = "Medbay" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 4 + }, +/obj/machinery/firealarm/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/landmark/navigate_destination, +/obj/effect/mapping_helpers/airlock/access/all/medical/general, +/obj/effect/turf_decal/tile/blue/fourcorners, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"jbX" = ( +/obj/item/kirbyplants/random, +/obj/machinery/airalarm/directional/west, +/turf/open/floor/wood, +/area/station/service/chapel/office) +"jce" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/hallway/primary/port) +"jcf" = ( +/obj/structure/railing, +/turf/open/floor/iron/dark, +/area/station/common/wrestling/arena) +"jcg" = ( +/turf/open/floor/iron/dark, +/area/station/security/prison/upper) +"jcj" = ( +/obj/effect/turf_decal/bot, +/obj/structure/table, +/obj/item/storage/medkit/regular, +/obj/machinery/status_display/ai/directional/west, +/turf/open/floor/iron/dark, +/area/station/commons/fitness) +"jcl" = ( +/obj/effect/turf_decal/siding/thinplating/corner{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"jcn" = ( +/obj/machinery/light/directional/north, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/structure/extinguisher_cabinet/directional/north, +/obj/structure/closet/wardrobe/robotics_black, +/obj/item/clothing/glasses/welding, +/obj/item/storage/belt/utility, +/obj/item/clothing/suit/hooded/techpriest, +/obj/item/clothing/head/hooded/techpriest, +/obj/item/storage/fancy/candle_box, +/obj/effect/turf_decal/bot_red, +/turf/open/floor/iron/dark, +/area/station/science/robotics) +"jco" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible, +/turf/open/space/basic, +/area/space/nearstation) +"jct" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/iron/dark/corner{ + dir = 8 + }, +/area/station/security/office) +"jcu" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/dark/small, +/area/station/security/corrections_officer) +"jcw" = ( +/obj/machinery/plumbing/ooze_sucker{ + mapping_id = "1"; + dir = 1 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"jcB" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/lavendergrass, +/obj/structure/flora/bush/flowers_br, +/obj/structure/window/spawner/directional/south, +/obj/structure/window/spawner/directional/north, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Examshutters"; + name = "Exam Room Shutters" + }, +/turf/open/floor/grass, +/area/station/medical/exam_room) +"jcN" = ( +/obj/machinery/rnd/production/techfab/department/service, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/service) +"jcQ" = ( +/obj/machinery/light/small/directional/west, +/obj/machinery/duct, +/obj/effect/landmark/start/chief_engineer, +/turf/open/floor/iron/freezer, +/area/station/command/heads_quarters/ce) +"jcR" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/blue/fourcorners, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"jcV" = ( +/obj/effect/turf_decal/trimline/red/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + color = "#DE3A3A"; + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/prison/upper) +"jda" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/north, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/window/spawner/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/dorms) +"jdg" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/firecloset, +/turf/open/floor/iron/dark, +/area/station/engineering/main) +"jdh" = ( +/obj/structure/window/spawner/directional/west, +/obj/structure/window/spawner/directional/south, +/obj/structure/flora/rock, +/turf/open/floor/grass, +/area/station/service/cafeteria) +"jdm" = ( +/turf/closed/wall, +/area/station/commons/dorms/room2) +"jdx" = ( +/obj/structure/sign/directions/security{ + dir = 1; + pixel_y = 8 + }, +/obj/structure/sign/directions/engineering{ + pixel_y = 2 + }, +/obj/structure/sign/directions/supply{ + dir = 4; + pixel_y = -4 + }, +/obj/structure/sign/directions/evac{ + dir = 8; + pixel_y = -10 + }, +/turf/closed/wall, +/area/station/service/chapel) +"jdy" = ( +/obj/structure/table, +/obj/item/folder{ + pixel_x = 3; + pixel_y = 2 + }, +/obj/item/folder, +/turf/open/floor/wood, +/area/station/security/prison/rec) +"jdz" = ( +/obj/effect/turf_decal/tile/brown/anticorner/contrasted, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/drone_bay) +"jdJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"jdO" = ( +/obj/machinery/griddle, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) +"jdR" = ( +/obj/machinery/light/small/directional/east, +/obj/structure/reagent_dispensers/plumbed{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/dorms) +"jdZ" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/carpet/green, +/area/station/command/heads_quarters/nt_rep) +"jec" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/iron/white/corner, +/area/station/hallway/secondary/entry) +"jes" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/window/spawner/directional/west, +/obj/structure/closet/secure_closet/personal/cabinet, +/turf/open/floor/carpet/green, +/area/station/commons/dorms/room2) +"jeu" = ( +/obj/structure/table, +/obj/effect/spawner/random/maintenance/two, +/obj/item/wirecutters, +/turf/open/floor/plating, +/area/station/hallway/secondary/construction) +"jev" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Medbay Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/medical/psychology, +/turf/open/floor/plating, +/area/station/maintenance/department/science/upper) +"jew" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/iron, +/area/station/commons/dorms) +"jeH" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/obj/structure/curtain/cloth/fancy, +/turf/open/floor/wood/large, +/area/station/service/theater/abandoned) +"jeL" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/chair/wood, +/obj/effect/landmark/start/assistant, +/turf/open/floor/wood, +/area/station/service/cafeteria) +"jeR" = ( +/obj/structure/barricade/wooden, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"jeT" = ( +/obj/structure/table, +/obj/item/storage/fancy/coffee_condi_display{ + pixel_x = 4; + pixel_y = 3 + }, +/obj/item/storage/fancy/coffee_cart_rack{ + pixel_x = -10; + pixel_y = 4 + }, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/service/bar) +"jfa" = ( +/obj/effect/spawner/random/trash/graffiti, +/turf/closed/wall, +/area/station/maintenance/aux_eva) +"jfg" = ( +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/entry) +"jfh" = ( +/obj/machinery/button/door{ + id = "commissaryshutter"; + name = "Commissary Shutter Control"; + pixel_x = -26; + pixel_y = 6 + }, +/obj/machinery/button/door{ + id = "commissarydoor"; + name = "Commissary Door Lock"; + normaldoorcontrol = 1; + pixel_x = -26; + pixel_y = -6; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron, +/area/station/commons/vacant_room/commissary) +"jfj" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/airalarm/directional/west, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/commons/fitness/recreation) +"jfk" = ( +/obj/structure/window/spawner/directional/south, +/obj/item/kirbyplants/random, +/turf/open/floor/iron/dark, +/area/station/engineering/transit_tube) +"jfE" = ( +/obj/machinery/disposal/bin, +/obj/machinery/newscaster/directional/west, +/obj/structure/noticeboard/directional/north, +/turf/open/floor/carpet/executive, +/area/station/command/heads_quarters/blueshield) +"jfO" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/fax{ + fax_name = "Law Office"; + name = "Law Office Fax Machine" + }, +/turf/open/floor/carpet/blue, +/area/station/service/lawoffice) +"jfR" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/security/execution/education) +"jfV" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/maintenance/solars/starboard/fore) +"jfW" = ( +/obj/effect/spawner/random/trash/mess, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/security/prison/upper) +"jgd" = ( +/turf/open/floor/circuit/green, +/area/station/engineering/gravity_generator) +"jgg" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/door/airlock{ + name = "Law Office" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/service/lawyer, +/turf/open/floor/wood, +/area/station/service/lawoffice) +"jgk" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"jgo" = ( +/turf/open/floor/iron, +/area/station/engineering/transit_tube) +"jgq" = ( +/obj/machinery/power/terminal, +/obj/structure/cable, +/obj/machinery/airalarm/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes, +/obj/machinery/camera/directional/north{ + c_tag = "Science - Power Station"; + name = "engineering camera"; + network = list("ss13","ce") + }, +/turf/open/floor/iron/dark, +/area/station/science/power_station) +"jgr" = ( +/obj/structure/light_construct/directional/east, +/turf/open/floor/iron, +/area/station/hallway/secondary/construction) +"jgv" = ( +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/dorms) +"jgJ" = ( +/obj/structure/stairs/north, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/central) +"jgT" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/catwalk_floor, +/area/station/science/ordnance/testlab) +"jgV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/carpet/green, +/area/station/service/abandoned_gambling_den) +"jha" = ( +/obj/effect/spawner/random/structure/table_or_rack, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_port) +"jhg" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/common/cryopods) +"jhk" = ( +/obj/structure/chair/office{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/hop) +"jho" = ( +/obj/machinery/atmospherics/pipe/smart/simple/supply/hidden{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/department/engineering/atmos_aux_port) +"jhu" = ( +/obj/structure/flora/bush/jungle/b, +/obj/structure/flora/bush/flowers_pp, +/turf/open/floor/grass, +/area/station/medical/virology/isolation) +"jhw" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"jhC" = ( +/turf/open/floor/iron/dark, +/area/station/engineering/supermatter/room) +"jhF" = ( +/obj/effect/spawner/random/trash/cigbutt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"jhL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/mob/living/simple_animal/bot/secbot{ + name = "Officer Beats-The-Kobold" + }, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/hallway/primary/upper) +"jhN" = ( +/obj/structure/decorative/shelf/alcohol_assortment, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/qm) +"jhO" = ( +/obj/machinery/light/small/directional/east, +/obj/machinery/atmospherics/components/binary/valve, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron, +/area/station/maintenance/department/engineering/atmos_aux_port) +"jhS" = ( +/obj/structure/closet/crate, +/obj/effect/turf_decal/bot, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/department/security/lesser) +"jhT" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/security/power_station) +"jhU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"jhW" = ( +/obj/machinery/computer/holodeck{ + dir = 4 + }, +/obj/structure/railing, +/turf/open/floor/iron/dark/side{ + dir = 10 + }, +/area/station/commons/fitness/recreation) +"jhX" = ( +/obj/machinery/atmospherics/pipe/smart/simple/violet/visible{ + dir = 6 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/pumproom) +"jhZ" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/wrestle) +"jio" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/obj/effect/turf_decal/bot_red, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/cargo/lobby) +"jiu" = ( +/turf/closed/wall/r_wall, +/area/station/ai_monitored/turret_protected/ai_upload) +"jiv" = ( +/obj/structure/trash_pile, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/button/door/directional/west{ + id = "Dorm9"; + name = "Dormitory Door Lock"; + normaldoorcontrol = 1; + specialfunctions = 4 + }, +/turf/open/floor/wood, +/area/station/commons/dorms/vacantroom) +"jiA" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/office) +"jiC" = ( +/obj/structure/reflector, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) +"jiE" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 8 + }, +/obj/structure/sign/poster/contraband/secborg_vale/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 + }, +/turf/open/floor/iron/dark/herringbone, +/area/station/common/night_club/back_stage) +"jiF" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"jiS" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/checker, +/area/station/hallway/primary/aft) +"jiU" = ( +/obj/structure/table, +/obj/item/plate, +/obj/item/plate, +/obj/item/plate, +/obj/item/reagent_containers/cup/bowl{ + pixel_y = 15 + }, +/obj/item/reagent_containers/cup/bowl{ + pixel_y = 15 + }, +/obj/item/reagent_containers/cup/bowl{ + pixel_y = 15 + }, +/obj/item/food/ready_donk/donkhiladas{ + pixel_x = -2; + pixel_y = 1 + }, +/obj/structure/sign/poster/official/love_ian/directional/north, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/iron, +/area/station/medical/patients_rooms) +"jiV" = ( +/obj/item/reagent_containers/cup/bucket/wooden, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/service/barber/spa) +"jjb" = ( +/obj/structure/railing, +/obj/effect/spawner/random/trash/graffiti, +/turf/closed/wall/rust, +/area/station/cargo/miningdock) +"jjf" = ( +/obj/item/kirbyplants/random, +/obj/machinery/camera/directional/east{ + c_tag = "Central Hallway - Port Aft"; + name = "hallway camera" + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/central/aft) +"jjg" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/maintenance/department/engineering/atmos_aux_port) +"jjm" = ( +/mob/living/basic/deer, +/obj/structure/flora/bush/jungle/b, +/turf/open/floor/grass, +/area/station/common/night_club) +"jjq" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/table, +/obj/item/radio{ + desc = "An old handheld radio. You could use it, if you really wanted to."; + icon_state = "radio"; + name = "old radio"; + pixel_y = 9 + }, +/obj/item/reagent_containers/cup/glass/coffee{ + pixel_x = -7 + }, +/turf/open/floor/plating, +/area/station/maintenance/central) +"jjr" = ( +/obj/machinery/door/firedoor, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/poddoor/shutters{ + id = "Portbowmaints"; + name = "Port Bow Maintenance" + }, +/turf/open/floor/iron/stairs/left, +/area/station/maintenance/port/upper) +"jjt" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"jju" = ( +/obj/machinery/door/airlock/bathroom{ + name = "Restroom" + }, +/obj/machinery/duct, +/turf/open/floor/iron/freezer, +/area/station/medical/virology/isolation) +"jjy" = ( +/obj/effect/spawner/random/structure/crate_abandoned, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"jjC" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Science Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/research, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/dorms) +"jjF" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"jjG" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/machinery/duct, +/obj/structure/hoop/minigame{ + dir = 4; + pixel_x = -5 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/commons/fitness) +"jjP" = ( +/obj/effect/spawner/random/structure/crate, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/dorms) +"jjS" = ( +/obj/structure/table/reinforced, +/obj/machinery/light_switch/directional/north, +/obj/machinery/coffeemaker, +/obj/item/coffee_cartridge, +/obj/item/coffee_cartridge, +/obj/item/coffee_cartridge, +/turf/open/floor/iron/white, +/area/station/medical/break_room) +"jkg" = ( +/obj/effect/turf_decal/stripes, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/ai_monitored/command/storage/eva/upper) +"jkj" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/medical/patients_rooms) +"jkk" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/central) +"jku" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/cigbutt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/cafeteria, +/area/station/maintenance/abandon_diner) +"jkx" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/command/gateway) +"jky" = ( +/obj/structure/cable, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 5 + }, +/obj/machinery/power/apc/auto_name/directional/north, +/turf/open/floor/iron/white, +/area/station/medical/virology/isolation) +"jkA" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/access/all/engineering, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_port) +"jkO" = ( +/obj/structure/chair/sofa/bench/left{ + dir = 8; + pixel_x = 5 + }, +/obj/effect/turf_decal/tile/blue/half{ + dir = 8 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/iron/white/side{ + dir = 8 + }, +/area/station/medical/medbay/lobby) +"jkR" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"jkT" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/service/cafeteria) +"jkZ" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/start/assistant, +/turf/open/floor/carpet, +/area/station/common/tailoring) +"jlb" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"jlc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/item/cigbutt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"jlt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"jlE" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/stairs{ + dir = 4 + }, +/area/station/common/wrestling/arena) +"jlJ" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/dorms) +"jlL" = ( +/obj/structure/rack/shelf, +/obj/item/clothing/mask/breath/vox{ + pixel_x = -6 + }, +/obj/item/clothing/mask/breath/vox, +/obj/item/clothing/mask/breath/vox{ + pixel_x = 6 + }, +/obj/item/clothing/mask/breath/vox{ + pixel_x = -6 + }, +/obj/item/clothing/mask/breath/vox, +/obj/item/clothing/mask/breath/vox{ + pixel_x = 6 + }, +/turf/open/floor/wood/parquet, +/area/station/common/gaskiosk) +"jlS" = ( +/obj/structure/sign/warning/electric_shock/directional/south, +/obj/structure/reagent_dispensers/plumbed{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"jlT" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "maintZ3-1" + }, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 1 + }, +/obj/machinery/door/airlock/external/glass, +/obj/effect/mapping_helpers/airlock/access/all/engineering/external, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"jlU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/trash_pile, +/turf/open/floor/plating, +/area/station/maintenance/abandon_art_studio) +"jlY" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/newscaster/directional/east, +/turf/open/floor/iron, +/area/station/commons/dorms) +"jma" = ( +/obj/machinery/light/directional/north, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"jmb" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/machinery/modular_computer/preset/engineering, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"jmg" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8; + external_pressure_bound = 140; + name = "server vent"; + pressure_checks = 0 + }, +/obj/effect/turf_decal/siding/thinplating/dark/end{ + dir = 1 + }, +/turf/open/floor/circuit/telecomms{ + initial_gas_mix = "o2=22;n2=82;TEMP=293.15" + }, +/area/station/science/xenobiology) +"jmk" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/iron/white/side{ + dir = 6 + }, +/area/station/command/heads_quarters/ce) +"jmn" = ( +/obj/machinery/door/airlock/maintenance, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"jmt" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 5 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/cytology) +"jmD" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white/corner, +/area/station/hallway/secondary/entry) +"jmH" = ( +/obj/item/stack/sheet/plasteel/twenty, +/obj/item/stack/sheet/rglass{ + amount = 30; + pixel_x = 2; + pixel_y = -2 + }, +/obj/item/crowbar, +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/firealarm/directional/west, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva) +"jmJ" = ( +/obj/structure/chair/wood/wings, +/obj/effect/landmark/start/assistant, +/obj/effect/landmark/start/assistant, +/obj/machinery/camera/directional/north, +/turf/open/floor/carpet, +/area/station/service/library/lounge) +"jmM" = ( +/obj/effect/turf_decal/arrows/red, +/obj/effect/turf_decal/stripes/red/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, +/turf/open/floor/engine/hull, +/area/space/nearstation) +"jmN" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/machinery/duct, +/turf/open/floor/iron/kitchen, +/area/station/security/prison/mess) +"jmT" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/blueshield) +"jmZ" = ( +/obj/machinery/light/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/command/bridge) +"jnb" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/green/visible{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/engineering/atmos) +"jnd" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/red/half{ + dir = 1 + }, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/office) +"jne" = ( +/obj/machinery/gibber, +/obj/effect/turf_decal/bot, +/obj/machinery/light_switch/directional/west, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) +"jnf" = ( +/obj/effect/mob_spawn/corpse/human/assistant, +/obj/effect/decal/cleanable/blood/old, +/obj/structure/cable, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"jnk" = ( +/obj/structure/chair/comfy{ + color = "#596479"; + dir = 1 + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/blueshield) +"jnn" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/cigbutt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"jnr" = ( +/obj/machinery/atmospherics/components/tank/air, +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible/layer4, +/turf/open/floor/plating, +/area/station/security/prison/upper) +"jnt" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/structure/closet/secure_closet/freezer/fridge/open, +/obj/machinery/button/door/directional/west{ + id = "Dorm4"; + name = "Dormitory Door Lock"; + normaldoorcontrol = 1; + pixel_x = 0; + pixel_y = -25; + specialfunctions = 4 + }, +/turf/open/floor/wood, +/area/station/commons/dorms/room3) +"jny" = ( +/obj/effect/turf_decal/bot_white/left, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/engineering/gravity_generator) +"jnA" = ( +/obj/machinery/light/directional/west, +/obj/effect/turf_decal/delivery/white{ + color = "#52B4E9" + }, +/turf/open/floor/iron/dark, +/area/station/medical/treatment_center) +"jnG" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/machinery/iv_drip, +/obj/structure/bed/roller, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) +"jnJ" = ( +/obj/machinery/newscaster/directional/east, +/obj/machinery/camera/directional/east{ + c_tag = "Recreation - Ring lobby"; + name = "recreation camera" + }, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/common/wrestling/lobby) +"jnN" = ( +/obj/machinery/status_display/evac/directional/south, +/obj/item/radio/intercom/directional/east, +/obj/machinery/camera/directional/south{ + c_tag = "Science - Experiment Lab"; + name = "science camera"; + network = list("ss13","rd") + }, +/obj/structure/hedge, +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 1 + }, +/turf/open/floor/iron/dark/small, +/area/station/science/circuits) +"jnR" = ( +/obj/machinery/ai_slipper{ + uses = 10 + }, +/obj/effect/turf_decal/bot_white, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/ai_monitored/turret_protected/ai_upload_foyer) +"jnW" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/security/checkpoint/supply) +"joa" = ( +/obj/effect/turf_decal/bot, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"jod" = ( +/obj/effect/landmark/start/assistant, +/turf/open/floor/iron/dark/side{ + dir = 9 + }, +/area/station/commons/fitness) +"joe" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/command/heads_quarters/nt_rep) +"jok" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/machinery/door/poddoor/shutters/radiation/preopen{ + id = "engsm"; + name = "Radiation Chamber Shutters" + }, +/turf/open/floor/plating, +/area/station/engineering/supermatter) +"jom" = ( +/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/engineering/main) +"jon" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/curtain/bounty, +/turf/open/floor/plating, +/area/station/command/heads_quarters/nt_rep) +"jop" = ( +/obj/structure/chair/comfy{ + color = "#596479"; + dir = 4 + }, +/turf/open/floor/carpet/green, +/area/station/command/heads_quarters/nt_rep) +"jos" = ( +/obj/effect/turf_decal/siding/purple/end, +/turf/open/floor/glass/reinforced, +/area/station/science) +"joA" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/effect/turf_decal/stripes, +/obj/effect/spawner/random/armory/riot_armor, +/obj/effect/turf_decal/trimline/red/line{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark, +/turf/open/floor/iron/dark/textured_edge, +/area/station/ai_monitored/security/armory) +"joC" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/prison) +"joF" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron/checker, +/area/station/service/janitor) +"joK" = ( +/obj/machinery/light/small/directional/west, +/obj/machinery/power/port_gen/pacman/pre_loaded, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"joM" = ( +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/machinery/light/directional/south, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/iron/white, +/area/station/security/prison) +"joN" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/maintenance/central) +"joU" = ( +/obj/machinery/light/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/iron/stairs/left{ + dir = 4 + }, +/area/station/hallway/primary/upper) +"jpm" = ( +/obj/item/organ/internal/liver, +/turf/open/floor/material/meat, +/area/station/maintenance/department/science/xenobiology) +"jpn" = ( +/obj/structure/drain, +/obj/machinery/shower/directional/south, +/obj/structure/curtain/cloth, +/turf/open/floor/iron/freezer, +/area/station/commons/dorms/room2) +"jpo" = ( +/obj/structure/holosign/barrier/engineering, +/turf/open/floor/iron/stairs/left, +/area/station/hallway/primary/port) +"jpq" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/closet/radiation, +/obj/effect/turf_decal/bot, +/obj/item/clothing/glasses/meson, +/obj/machinery/light/directional/north, +/obj/machinery/status_display/evac/directional/north, +/turf/open/floor/iron/dark, +/area/station/engineering/main) +"jpr" = ( +/obj/structure/chair/plastic{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/contraband/tools/directional/west, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"jpv" = ( +/obj/effect/spawner/random/trash/garbage, +/obj/effect/landmark/blobstart, +/turf/open/floor/plating, +/area/station/maintenance/department/security) +"jpx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"jpA" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/stairs, +/area/station/security/execution/transfer) +"jpC" = ( +/obj/effect/turf_decal/trimline/blue/line{ + dir = 9 + }, +/obj/machinery/shower/directional/west, +/obj/structure/drain, +/obj/structure/curtain, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/noslip, +/area/station/medical/treatment_center) +"jpD" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 8 + }, +/obj/structure/disposalpipe/junction, +/turf/open/floor/iron/white, +/area/station/science) +"jpF" = ( +/turf/open/floor/iron/stairs/right{ + dir = 4 + }, +/area/station/hallway/primary/central) +"jpQ" = ( +/obj/structure/table, +/obj/machinery/microwave{ + pixel_y = 8 + }, +/turf/open/floor/wood, +/area/station/commons/dorms/room1) +"jpR" = ( +/obj/effect/landmark/start/head_of_security, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/red/real_red/half/contrasted, +/obj/structure/railing, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hos) +"jpY" = ( +/obj/structure/chair/office{ + dir = 8 + }, +/obj/machinery/computer/security/telescreen{ + desc = "Used for monitoring medbay to ensure patient safety."; + dir = 1; + name = "Medbay Monitor"; + network = list("medbay"); + pixel_y = -28 + }, +/obj/effect/landmark/start/psychologist, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/medical/psychology) +"jqa" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "Mix to Ports" + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"jqe" = ( +/obj/structure/railing, +/obj/machinery/door/firedoor/border_only, +/turf/open/floor/glass, +/area/station/commons/dorms) +"jqf" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet, +/area/station/service/chapel/funeral) +"jqg" = ( +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/item/stack/ore/silver, +/obj/item/stack/ore/silver, +/obj/item/shovel{ + pixel_x = -5 + }, +/obj/item/pickaxe{ + pixel_x = 5 + }, +/obj/item/shovel{ + pixel_x = -5 + }, +/obj/item/pickaxe{ + pixel_x = 5 + }, +/obj/effect/turf_decal/tile/brown/anticorner/contrasted, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) +"jqr" = ( +/obj/effect/decal/remains/human, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"jqx" = ( +/obj/machinery/vending/cigarette, +/obj/effect/turf_decal/siding/thinplating/dark/corner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 5 + }, +/turf/open/floor/iron/dark/textured_corner{ + dir = 8 + }, +/area/station/common/night_club) +"jqz" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/common/arcade) +"jqC" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/maintenance/aft/upper) +"jqG" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/security/execution/education) +"jqJ" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/structure/sign/poster/random/directional/east, +/turf/open/floor/iron/white/corner, +/area/station/hallway/secondary/entry) +"jqK" = ( +/obj/structure/table, +/obj/item/surgery_tray/deployed, +/turf/open/floor/iron/white, +/area/station/medical/morgue) +"jqP" = ( +/obj/structure/sink/directional/west, +/obj/machinery/camera/directional/west{ + c_tag = "Hydroponics Upper"; + dir = 4; + name = "service camera" + }, +/obj/machinery/status_display/ai/directional/east, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"jqV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"jrg" = ( +/obj/machinery/door/airlock/medical{ + name = "Psychologist's Office" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/medical/psychology, +/turf/open/floor/wood, +/area/station/medical/psychology) +"jri" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"jrn" = ( +/obj/effect/turf_decal/stripes{ + dir = 9 + }, +/obj/machinery/plumbing/ooze_compressor, +/turf/open/floor/iron, +/area/station/science/xenobiology) +"jrw" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/airalarm/directional/west, +/obj/structure/closet/secure_closet/security/cargo, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/obj/machinery/camera/autoname/directional/west, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/checkpoint/supply) +"jry" = ( +/obj/structure/window/reinforced/plasma/spawner/directional/west, +/obj/machinery/atmospherics/pipe/smart/simple/general/visible{ + dir = 9 + }, +/obj/structure/cable, +/obj/machinery/power/energy_accumulator/tesla_coil/anchored, +/turf/open/floor/engine, +/area/station/engineering/supermatter) +"jrA" = ( +/turf/closed/wall/r_wall, +/area/station/maintenance/department/engineering/atmos_aux_port) +"jrG" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood/parquet, +/area/station/common/night_club) +"jrH" = ( +/obj/effect/turf_decal/stripes/end{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/circuit, +/area/station/command/gateway) +"jrS" = ( +/obj/structure/table/optable, +/obj/effect/decal/cleanable/blood/old, +/obj/item/surgical_drapes, +/obj/item/clothing/mask/surgical, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/station/maintenance/abandon_exam/cat) +"jrU" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/flowers_br, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "cmoshutter3"; + name = "CMO Quarters Shutters" + }, +/turf/open/floor/grass, +/area/station/command/heads_quarters/cmo) +"jrX" = ( +/obj/structure/chair/stool/directional/south, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/broken/directional/west, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"jsd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/multilayer/connected, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"jsj" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Psychward4"; + name = "Control Room Shutters" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/medical/psychology) +"jsl" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 10 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron/white, +/area/station/science/research) +"jss" = ( +/turf/open/floor/engine/n2o, +/area/station/engineering/atmos) +"jst" = ( +/obj/structure/table, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/carpet, +/area/station/security/courtroom) +"jsD" = ( +/obj/effect/turf_decal/stripes, +/obj/machinery/light/directional/north, +/turf/open/floor/circuit, +/area/station/command/gateway) +"jsH" = ( +/obj/machinery/button/ignition{ + id = "executionburn"; + name = "Justice Ignition Switch"; + pixel_x = -25; + pixel_y = 36 + }, +/obj/machinery/button/flasher{ + id = "justiceflash"; + name = "Justice Flash Control"; + pixel_x = -36; + pixel_y = 36; + req_access = list("security") + }, +/obj/machinery/button/door{ + id = "executionfireblast"; + name = "Justice Area Lockdown"; + pixel_x = -25; + pixel_y = 26; + req_access = list("brig") + }, +/obj/machinery/atmospherics/pipe/smart/simple/general/visible{ + dir = 9 + }, +/obj/machinery/button/door{ + id = "SecJusticeChamber"; + layer = 4; + name = "Justice Vent Control"; + pixel_x = -36; + pixel_y = 26; + req_access = list("armory") + }, +/turf/open/floor/iron/dark, +/area/station/security/execution/education) +"jsI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/freezer, +/area/station/maintenance/abandon_kitchen_upper) +"jsO" = ( +/obj/structure/reagent_dispensers/water_cooler, +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/command/gateway) +"jsT" = ( +/obj/machinery/computer/telecomms/monitor{ + dir = 4; + network = "tcommsat" + }, +/turf/open/floor/iron/dark, +/area/station/tcommsat/computer) +"jsX" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/landmark/start/hangover, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/service/bar) +"jtc" = ( +/obj/structure/extinguisher_cabinet/directional/north, +/obj/machinery/light/directional/north, +/obj/effect/spawner/random/entertainment/arcade, +/turf/open/floor/eighties/red, +/area/station/common/arcade) +"jte" = ( +/turf/closed/wall, +/area/station/service/power_station) +"jtm" = ( +/obj/structure/cable, +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/law) +"jtq" = ( +/obj/machinery/power/shuttle_engine/heater{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"jtt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot, +/obj/structure/cable/multilayer/multiz, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"jtu" = ( +/obj/machinery/light/directional/west, +/obj/machinery/cryopod{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured_large, +/area/station/common/cryopods) +"jtB" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/chair/sofa/bench/left{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"jtF" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"jtJ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/spawner/random/trash/mess, +/turf/open/floor/plating/reinforced{ + initial_gas_mix = "TEMP=2.7" + }, +/area/station/science/ordnance/bomb) +"jtO" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/random/entertainment/money, +/obj/item/storage/pill_bottle/maintenance_pill/full, +/obj/item/coin/adamantine, +/obj/item/clothing/glasses/sunglasses, +/obj/effect/mapping_helpers/broken_floor, +/obj/item/storage/belt/utility/full/engi, +/obj/item/clothing/suit/armor/vest/old, +/obj/effect/spawner/random/contraband/plus, +/turf/open/floor/plating, +/area/station/security/prison/upper) +"jtP" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/cargo/office) +"jub" = ( +/obj/machinery/airalarm/directional/west, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/port_gen/pacman/pre_loaded, +/turf/open/floor/iron/dark, +/area/station/medical/power_station) +"jui" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Council of Practical Gags" + }, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/service/theatre, +/turf/open/floor/noslip, +/area/station/maintenance/gag_room) +"jul" = ( +/obj/structure/bookcase/random/nonfiction, +/turf/open/floor/wood, +/area/station/medical/psychology) +"jun" = ( +/turf/open/floor/iron, +/area/station/command/captain_dining) +"juo" = ( +/obj/effect/spawner/random/structure/crate, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"juD" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/security/prison) +"juE" = ( +/obj/machinery/door/airlock/maintenance, +/obj/machinery/atmospherics/pipe/layer_manifold/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) +"juF" = ( +/turf/closed/wall, +/area/station/security/checkpoint) +"juG" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/security/detectives_office) +"juK" = ( +/turf/closed/wall/r_wall, +/area/station/common/locker_room_shower) +"juQ" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/obj/machinery/status_display/evac/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/security/interrogation) +"juT" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/obj/machinery/newscaster/directional/north, +/obj/machinery/camera/directional/north{ + c_tag = "Science - Far Fore Port"; + name = "science camera"; + network = list("ss13","rd") + }, +/turf/open/floor/iron/white, +/area/station/science/research) +"juW" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"jvd" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/carpet, +/area/station/service/theater) +"jve" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/table/reinforced, +/obj/item/folder/blue, +/obj/item/pen, +/turf/open/floor/iron/dark, +/area/station/engineering/gravity_generator) +"jvj" = ( +/obj/machinery/flasher{ + id = "AI"; + pixel_y = 24 + }, +/obj/effect/turf_decal/siding/thinplating/dark, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/ai) +"jvm" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/structure/chair/wood{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/station/service/chapel/funeral) +"jvn" = ( +/obj/structure/ore_box, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"jvo" = ( +/turf/open/floor/circuit, +/area/station/ai_monitored/command/nuke_storage) +"jvp" = ( +/obj/effect/turf_decal/stripes/white/line, +/turf/open/floor/iron/dark/small, +/area/station/cargo/miningdock) +"jvs" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/ai_monitored/turret_protected/aisat/hallway) +"jvx" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/north, +/turf/open/floor/plating, +/area/station/service/abandoned_gambling_den) +"jvz" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/item/kirbyplants/random, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/station/service/library/abandoned) +"jvA" = ( +/obj/machinery/camera/directional/west{ + c_tag = "Xenobiology - Secure Cell"; + name = "xenobiology camera"; + network = list("ss13","xeno","rd") + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"jvL" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/simple/violet/visible/layer2{ + dir = 4 + }, +/obj/structure/lattice/catwalk, +/turf/open/space/basic, +/area/space/nearstation) +"jvQ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/red/opposingcorners, +/turf/open/floor/iron, +/area/station/security/execution/transfer) +"jvV" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/machinery/portable_atmospherics/canister, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/engineering/atmos/upper) +"jvX" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/floodlight_frame, +/turf/open/floor/iron, +/area/station/hallway/secondary/construction) +"jvZ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"jwf" = ( +/obj/structure/frame/computer{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron, +/area/station/maintenance/console_room) +"jwh" = ( +/obj/machinery/newscaster/directional/north, +/obj/machinery/camera/autoname/directional/north, +/turf/open/floor/circuit, +/area/station/ai_monitored/command/nuke_storage) +"jwi" = ( +/obj/structure/table_frame, +/obj/effect/spawner/random/trash/mess, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"jwF" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/item/storage/box/syringes{ + pixel_y = 12 + }, +/turf/open/floor/iron/white, +/area/station/medical/exam_room) +"jwI" = ( +/obj/structure/table/wood, +/obj/structure/window/spawner/directional/south, +/obj/item/food/muffin/berry{ + pixel_x = -11; + pixel_y = 9 + }, +/obj/item/food/muffin/berry{ + pixel_y = 3 + }, +/obj/item/food/muffin/berry{ + pixel_x = -10; + pixel_y = -1 + }, +/obj/item/food/cherrycupcake{ + pixel_x = 10; + pixel_y = 12 + }, +/turf/open/floor/iron/dark, +/area/station/service/cafeteria) +"jwJ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"jwK" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/north, +/turf/open/floor/plating/airless, +/area/station/maintenance/eva_shed/starboard) +"jwR" = ( +/obj/machinery/door/poddoor/shutters{ + id = "armory"; + name = "Armoury Shutter" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/security/armory) +"jwV" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/security/checkpoint/customs/auxiliary) +"jwX" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/science/xenobiology) +"jwY" = ( +/obj/structure/chair, +/obj/machinery/firealarm/directional/north, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron/dark, +/area/station/medical/surgery/theatre) +"jxc" = ( +/obj/structure/reagent_dispensers/plumbed{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/commons/dorms) +"jxj" = ( +/mob/living/basic/mushroom, +/obj/effect/decal/cleanable/blood/gibs, +/obj/item/organ/internal/eyes, +/turf/open/floor/plating, +/area/station/maintenance/department/science/ordnance_maint) +"jxk" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/engineering/main) +"jxl" = ( +/obj/structure/chair/office, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/wood, +/area/station/maintenance/abandon_office) +"jxo" = ( +/turf/closed/wall, +/area/station/security/prison/safe) +"jxq" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/carpet, +/area/station/service/library) +"jxr" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/security/prison) +"jxs" = ( +/obj/structure/trash_pile, +/turf/open/floor/plating, +/area/station/maintenance/central) +"jxu" = ( +/obj/structure/dresser, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/qm) +"jxv" = ( +/obj/structure/fluff/fokoff_sign, +/turf/open/floor/glass/reinforced/airless, +/area/space/nearstation) +"jxx" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"jxy" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"jxA" = ( +/obj/structure/window/reinforced/plasma/spawner/directional/south, +/obj/machinery/power/shuttle_engine/heater{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"jxD" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/vending/coffee, +/turf/open/floor/iron/dark/side{ + dir = 9 + }, +/area/station/hallway/primary/port) +"jxF" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/carpet/blue, +/area/station/command/heads_quarters/captain/private) +"jxM" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 5 + }, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) +"jxT" = ( +/obj/structure/marker_beacon/burgundy, +/obj/effect/turf_decal/trimline/white, +/turf/open/floor/iron/shuttle/evac/airless, +/area/space/nearstation) +"jya" = ( +/obj/structure/frame/computer{ + dir = 8 + }, +/obj/item/shard, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"jyn" = ( +/obj/structure/table/reinforced, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high{ + pixel_x = 2; + pixel_y = 7 + }, +/obj/item/stock_parts/cell/high, +/turf/open/floor/iron/dark, +/area/station/engineering/break_room) +"jyo" = ( +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/flowers_yw, +/obj/structure/window/spawner/directional/south, +/obj/structure/window/spawner/directional/north, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Examshutters"; + name = "Exam Room Shutters" + }, +/turf/open/floor/grass, +/area/station/medical/exam_room) +"jyr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"jyx" = ( +/obj/structure/chair/stool/directional/north, +/obj/effect/landmark/start/assistant, +/turf/open/floor/iron, +/area/station/commons/fitness/recreation) +"jyy" = ( +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/service/hydroponics) +"jyE" = ( +/obj/effect/turf_decal/trimline/purple/filled/corner{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/science/research) +"jyG" = ( +/turf/open/floor/iron, +/area/station/construction/mining/aux_base) +"jyJ" = ( +/obj/machinery/status_display/evac/directional/east, +/turf/open/openspace, +/area/station/hallway/secondary/command) +"jyY" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/locker) +"jyZ" = ( +/obj/item/cigbutt, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/dorms) +"jza" = ( +/obj/machinery/door/airlock/engineering/glass{ + name = "Supermatter Engine Room" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/general, +/obj/machinery/door/firedoor, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/engineering/engine_smes) +"jzb" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/machinery/light/directional/east, +/turf/open/floor/iron/shuttle/evac/airless, +/area/space/nearstation) +"jze" = ( +/obj/structure/window/spawner/directional/north, +/obj/structure/window/spawner/directional/west, +/obj/structure/flora/bush/jungle/b, +/turf/open/floor/grass, +/area/station/hallway/primary/central/aft) +"jzg" = ( +/obj/machinery/shower/directional/east, +/obj/structure/drain, +/turf/open/floor/iron/freezer, +/area/station/medical/aslyum) +"jzh" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/large, +/area/station/cargo/lobby) +"jzj" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/break_room) +"jzp" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/science/server) +"jzr" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/carpet, +/area/station/security/courtroom) +"jzs" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"jzt" = ( +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics Factory" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/turf/open/floor/iron/stairs/old{ + dir = 1 + }, +/area/station/engineering/atmos/test_chambers) +"jzw" = ( +/obj/machinery/griddle, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/contraband/narcotics, +/turf/open/floor/iron/cafeteria, +/area/station/maintenance/department/medical/central) +"jzy" = ( +/obj/structure/rack/shelf, +/obj/effect/turf_decal/bot, +/obj/item/toner/extreme, +/obj/item/toner/extreme{ + pixel_y = -5 + }, +/obj/item/toner/extreme{ + pixel_y = 5 + }, +/obj/item/airlock_painter/decal{ + pixel_y = -5 + }, +/obj/item/airlock_painter, +/turf/open/floor/iron/dark, +/area/station/engineering/transit_tube) +"jzJ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/service/library/private) +"jzZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/firedoor, +/obj/machinery/button/door/directional/north{ + id = "Portbowmaints"; + name = "Shutter control"; + pixel_x = -24; + pixel_y = 0; + req_access = list("command") + }, +/obj/machinery/door/poddoor/shutters{ + id = "Portbowmaints"; + name = "Port Bow Maintenance" + }, +/turf/open/floor/iron/stairs/left{ + dir = 1 + }, +/area/station/maintenance/port/upper) +"jAa" = ( +/obj/machinery/vending/coffee, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron, +/area/station/engineering/break_room) +"jAf" = ( +/obj/item/storage/secure/safe/caps_spare{ + base_icon_state = "floorsafe"; + icon_state = "floorsafe"; + pixel_x = -1; + density = 0 + }, +/turf/open/floor/iron, +/area/station/command/bridge) +"jAj" = ( +/obj/structure/cable/layer1, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"jAk" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/siding/wood, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/wood, +/area/station/security/courtroom) +"jAp" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/item/food/pizzaslice/moldy, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"jAq" = ( +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/carpet, +/area/station/security/prison/rec) +"jAu" = ( +/obj/structure/table/wood/fancy/red, +/obj/item/reagent_containers/cup/glass/trophy/gold_cup{ + pixel_y = 11 + }, +/obj/item/storage/belt/champion{ + name = "Wrestling belt" + }, +/turf/open/floor/mineral/gold, +/area/station/common/wrestling/arena) +"jAy" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/security/prison/shower) +"jAz" = ( +/obj/structure/chair/sofa/bench{ + dir = 8; + pixel_x = 5 + }, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 4 + }, +/obj/machinery/newscaster/directional/east, +/obj/machinery/light/directional/east, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/science/research) +"jAB" = ( +/obj/effect/turf_decal/vg_decals/atmos/air, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/engine, +/area/station/maintenance/department/science/xenobiology) +"jAD" = ( +/obj/machinery/door/airlock/research{ + name = "Telescience Lab" + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/purple/filled/warning, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/effect/mapping_helpers/airlock/access/all/science/research, +/obj/effect/mapping_helpers/airlock/abandoned, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/white, +/area/station/science/tele_sci) +"jAS" = ( +/obj/machinery/door/airlock/hatch, +/obj/structure/barricade/wooden/crude, +/obj/structure/sign/warning/electric_shock/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"jAY" = ( +/obj/effect/turf_decal/stripes, +/turf/open/floor/circuit, +/area/station/command/gateway) +"jAZ" = ( +/obj/structure/window/spawner/directional/east, +/obj/structure/chair/sofa/corp/left{ + color = "#DE3A3A"; + dir = 8 + }, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen/diner) +"jBa" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/grandfatherclock, +/turf/open/floor/wood, +/area/station/medical/patients_rooms) +"jBj" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron, +/area/station/security/courtroom) +"jBn" = ( +/obj/structure/table/glass, +/obj/item/folder/white, +/obj/item/assembly/infra, +/obj/structure/window/spawner/directional/south, +/obj/effect/turf_decal/tile/purple/half{ + dir = 8 + }, +/turf/open/floor/iron/white/side{ + dir = 8 + }, +/area/station/science) +"jBr" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/wood, +/area/station/security/courtroom) +"jBs" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/openspace, +/area/station/maintenance/aft/upper) +"jBz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/spawner/random/structure/steam_vent, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"jBC" = ( +/obj/effect/turf_decal/delivery/red, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/window/preopen{ + id = "prisonlockdown1"; + name = "Lockdown" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron/dark, +/area/station/security/prison/upper) +"jBI" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/checker, +/area/station/hallway/secondary/service) +"jBN" = ( +/obj/structure/table_frame, +/obj/effect/spawner/random/trash/mess, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"jBP" = ( +/obj/structure/table, +/obj/item/flashlight/lamp, +/turf/open/floor/iron, +/area/station/maintenance/abandon_holding_cell) +"jBQ" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/light/directional/south, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"jBW" = ( +/obj/structure/water_source/puddle, +/obj/structure/flora/bush/reed{ + pixel_y = 8 + }, +/turf/open/floor/grass, +/area/station/science/genetics) +"jBX" = ( +/obj/effect/spawner/random/trash/graffiti, +/turf/closed/wall/rust, +/area/station/maintenance/starboard/fore) +"jBZ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/mineral/titanium/tiled/white{ + name = "Padded tile" + }, +/area/station/medical/aslyum) +"jCb" = ( +/obj/structure/window/spawner/directional/west, +/obj/structure/closet/crate/bin, +/turf/open/floor/plating, +/area/station/maintenance/abandon_exam/cat) +"jCc" = ( +/obj/structure/girder, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"jCp" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/research{ + name = "Robotics" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/robotics, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/white, +/area/station/science/robotics) +"jCr" = ( +/obj/structure/table/reinforced, +/obj/item/phone{ + desc = "Supposedly a direct line to Nanotrasen Central Command. It's not even plugged in."; + pixel_x = -3; + pixel_y = 8 + }, +/obj/item/clothing/mask/cigarette/cigar/havana{ + pixel_x = -3 + }, +/obj/item/clothing/mask/cigarette/cigar/cohiba{ + pixel_x = 3 + }, +/obj/item/clothing/mask/cigarette/cigar, +/turf/open/floor/carpet/red, +/area/station/command/heads_quarters/hos) +"jCs" = ( +/obj/effect/turf_decal/bot_white, +/obj/machinery/power/tracker, +/obj/structure/cable, +/turf/open/floor/plating/airless, +/area/station/solars/port/fore) +"jCu" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/break_room) +"jCJ" = ( +/obj/structure/cable, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"jCK" = ( +/obj/structure/barricade/security, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/effect/turf_decal/stripes, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/engine, +/area/station/command/secure_bunker) +"jCN" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/station/service/theater) +"jCY" = ( +/obj/structure/fluff/big_chain, +/turf/open/floor/cult, +/area/station/maintenance/cult_chapel_maint) +"jCZ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/machinery/light/directional/east, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/brig) +"jDb" = ( +/obj/structure/table/wood, +/obj/item/paper_bin{ + pixel_y = 3 + }, +/obj/item/pen{ + pixel_y = 3 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/wood, +/area/station/maintenance/abandon_psych) +"jDh" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/small, +/area/station/cargo/storage) +"jDj" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"jDp" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/brown/visible, +/obj/effect/spawner/structure/window/reinforced/plasma, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) +"jDr" = ( +/obj/machinery/camera/directional/south{ + c_tag = " Prison - Kitchen"; + network = list("ss13","prison") + }, +/obj/machinery/light/directional/south, +/obj/machinery/light_switch/directional/south, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/kitchen, +/area/station/security/prison/mess) +"jDs" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/turf/open/floor/iron/smooth_edge{ + dir = 8 + }, +/area/station/command/secure_bunker) +"jDx" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/commons/dorms) +"jDy" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/virology/isolation) +"jDB" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/circuit/red, +/area/station/science/robotics/mechbay) +"jDE" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/smooth_edge{ + dir = 8 + }, +/area/station/cargo/miningdock) +"jDF" = ( +/obj/structure/reagent_dispensers/water_cooler, +/obj/machinery/newscaster/directional/north, +/turf/open/floor/iron/white, +/area/station/medical/aslyum) +"jDQ" = ( +/obj/structure/grille/broken, +/obj/item/chair, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"jDU" = ( +/obj/structure/rack, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/item/radio/intercom/directional/west, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/brig) +"jDW" = ( +/obj/structure/window/spawner/directional/south, +/obj/machinery/computer/department_orders/service{ + dir = 1 + }, +/turf/open/floor/iron/dark/side, +/area/station/hallway/secondary/service) +"jEg" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"jEk" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder{ + pixel_y = 4 + }, +/obj/effect/spawner/random/entertainment/drugs{ + pixel_y = 4 + }, +/obj/effect/spawner/random/entertainment/drugs{ + pixel_y = 1 + }, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"jEs" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/stairs{ + dir = 4 + }, +/area/station/cargo/miningoffice) +"jEw" = ( +/obj/effect/turf_decal/tile/dark_blue/half/contrasted{ + dir = 8 + }, +/obj/machinery/cell_charger_multi/wall_mounted/directional/west, +/obj/structure/table, +/obj/item/circuitboard/computer/mech_bay_power_console, +/obj/item/stack/sheet/glass{ + pixel_y = 14 + }, +/turf/open/floor/iron/dark, +/area/station/security/mechbay) +"jEz" = ( +/turf/open/floor/iron/dark, +/area/station/security/prison/garden) +"jED" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/service/kitchen/diner) +"jEJ" = ( +/obj/structure/bed/roller{ + dir = 1 + }, +/obj/machinery/iv_drip, +/obj/item/bedsheet/medical, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 5 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/white, +/area/station/medical/virology) +"jEP" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"jER" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/smooth, +/area/station/command/secure_bunker) +"jEU" = ( +/obj/machinery/photocopier, +/obj/item/newspaper{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/newspaper, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/station/security/detectives_office/private_investigators_office) +"jFd" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/science/ordnance) +"jFf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/maintenance/port/aft) +"jFj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"jFk" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/camera/directional/south{ + c_tag = "Bridge - Command Dining Room"; + name = "command camera" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/command/captain_dining) +"jFp" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/table/reinforced/rglass, +/obj/structure/window/spawner/directional/south, +/turf/open/floor/iron/white, +/area/station/service/barber) +"jFs" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/station/service/abandoned_gambling_den) +"jFt" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/carpet, +/area/station/medical/psychology) +"jFw" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/engineering/transit_tube) +"jFz" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/command/teleporter) +"jFE" = ( +/obj/machinery/modular_computer/preset/id, +/obj/effect/turf_decal/stripes, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/rd) +"jFL" = ( +/obj/structure/chair/office, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/science/ordnance/testlab) +"jFN" = ( +/obj/structure/cable, +/obj/item/radio/intercom/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/hallway/primary/port) +"jFZ" = ( +/obj/structure/table/reinforced, +/obj/item/gun_maintenance_supplies{ + pixel_x = -4; + pixel_y = 10 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/blueshield) +"jGa" = ( +/obj/effect/turf_decal/loading_area, +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/pumproom) +"jGf" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/turf_decal/trimline/red, +/turf/open/floor/iron/dark/small, +/area/station/security/prison/upper) +"jGk" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron/white, +/area/station/science/research) +"jGm" = ( +/obj/structure/cable, +/turf/open/floor/plating/airless, +/area/station/solars/starboard/fore) +"jGp" = ( +/turf/closed/wall, +/area/station/security/prison/rec) +"jGu" = ( +/obj/structure/closet/secure_closet/freezer/fridge/all_access, +/obj/item/reagent_containers/cup/glass/bottle/beer, +/obj/item/reagent_containers/cup/glass/bottle/beer, +/obj/item/reagent_containers/cup/glass/bottle/beer, +/obj/item/reagent_containers/cup/glass/bottle/beer, +/obj/item/reagent_containers/cup/glass/bottle/beer, +/obj/item/reagent_containers/cup/glass/bottle/beer/light, +/obj/item/reagent_containers/cup/glass/bottle/beer/light, +/obj/item/reagent_containers/cup/glass/bottle/beer/light, +/obj/item/reagent_containers/cup/glass/bottle/beer/light, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 4 + }, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/iron, +/area/station/common/wrestling/beverage) +"jGw" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering/glass{ + name = "Engineering Foyer" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/general, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/navigate_destination, +/turf/open/floor/iron, +/area/station/engineering/lobby) +"jGA" = ( +/obj/structure/table/glass, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/dryer{ + dir = 4; + pixel_x = -6; + pixel_y = 13 + }, +/turf/open/floor/carpet/black, +/area/station/service/barber) +"jGS" = ( +/obj/structure/chair/comfy/beige, +/obj/effect/landmark/start/psychologist, +/turf/open/floor/carpet, +/area/station/medical/psychology) +"jGT" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall/r_wall, +/area/station/security/prison/mess) +"jGU" = ( +/obj/effect/spawner/random/trash/mess, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"jGV" = ( +/obj/effect/spawner/random/trash/mess, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"jHd" = ( +/obj/machinery/door/airlock/security{ + name = "Isolation Cell 1"; + id_tag = "IsolationCell_1" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/security/brig, +/turf/open/floor/iron/dark, +/area/station/security/prison/safe) +"jHf" = ( +/obj/machinery/door/airlock/bathroom{ + name = "Restroom" + }, +/obj/machinery/duct, +/turf/open/floor/iron/freezer, +/area/station/science/breakroom) +"jHg" = ( +/obj/effect/turf_decal/trimline/purple/filled/line, +/obj/machinery/light/directional/south, +/obj/item/radio/intercom/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"jHh" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/table, +/obj/machinery/fax{ + fax_name = "Research Division"; + name = "Research Division Fax Machine"; + pixel_y = 3 + }, +/turf/open/floor/iron/white, +/area/station/science/lab) +"jHk" = ( +/turf/open/floor/carpet/red, +/area/station/command/heads_quarters/hos) +"jHm" = ( +/obj/structure/chair/sofa/bench{ + dir = 4; + pixel_x = -5 + }, +/turf/open/floor/iron, +/area/station/common/wrestling/locker) +"jHn" = ( +/obj/structure/table/wood/fancy, +/turf/open/floor/carpet, +/area/station/service/theater) +"jHu" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 9 + }, +/obj/structure/cable, +/obj/structure/extinguisher_cabinet/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/science/research) +"jHD" = ( +/obj/structure/mirror{ + pixel_y = 32 + }, +/obj/structure/toilet{ + pixel_y = 16 + }, +/obj/structure/sink/directional/east, +/turf/open/floor/iron/freezer, +/area/station/command/heads_quarters/nt_rep) +"jHF" = ( +/obj/structure/table/glass, +/obj/item/wrench, +/obj/item/flashlight{ + pixel_x = 1; + pixel_y = 5 + }, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/engineering/transit_tube) +"jHG" = ( +/turf/closed/wall, +/area/station/maintenance/clown_chamber) +"jHK" = ( +/turf/open/floor/iron, +/area/station/security/execution/transfer) +"jHO" = ( +/obj/item/kirbyplants/random, +/obj/machinery/light/directional/east, +/turf/open/floor/wood/parquet, +/area/station/common/gaskiosk) +"jHP" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/carpet, +/area/station/service/library/printer) +"jHV" = ( +/obj/structure/table/reinforced, +/obj/item/flashlight/lamp, +/turf/open/floor/iron, +/area/station/science/explab) +"jHY" = ( +/turf/closed/wall, +/area/station/medical/aslyum) +"jHZ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/window/spawner/directional/east, +/obj/structure/table/wood/fancy, +/obj/item/flashlight/lamp{ + pixel_y = 5 + }, +/turf/open/floor/carpet, +/area/station/commons/dorms/room7) +"jIc" = ( +/turf/open/floor/iron/white/smooth_large, +/area/station/command/heads_quarters/ce) +"jId" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/structure/rack, +/obj/machinery/camera/directional/north{ + c_tag = "Service - Power Station"; + name = "engineering camera"; + network = list("ss13","ce") + }, +/turf/open/floor/iron/dark, +/area/station/service/power_station) +"jIf" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/command/gateway) +"jIh" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/machinery/camera/directional/south{ + c_tag = "Engineering - Engine Foyer"; + dir = 1; + name = "engineering camera" + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"jIk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/reagent_dispensers/plumbed{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/eva) +"jIl" = ( +/obj/machinery/light/directional/east, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/engineering/atmos) +"jIn" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/newscaster/directional/west, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/office) +"jIp" = ( +/obj/structure/flora/bush/fullgrass, +/obj/structure/flora/bush/flowers_yw, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"jIJ" = ( +/obj/structure/chair/sofa/bench/right{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple/half{ + dir = 1 + }, +/turf/open/floor/iron/white/side{ + dir = 1 + }, +/area/station/science/research) +"jIX" = ( +/obj/machinery/vending/coffee, +/obj/structure/sign/poster/random/directional/east, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/port) +"jJb" = ( +/obj/effect/spawner/random/trash/graffiti, +/turf/closed/wall, +/area/station/cargo/power_station/upper) +"jJf" = ( +/obj/structure/chair/office, +/obj/effect/landmark/start/assistant, +/turf/open/floor/iron/dark, +/area/station/common/gaskiosk) +"jJh" = ( +/obj/structure/flora/bush/jungle/c/style_3, +/obj/structure/flora/bush/flowers_pp/style_3, +/obj/structure/window/fulltile, +/turf/open/floor/grass, +/area/station/hallway/primary/upper) +"jJi" = ( +/obj/structure/railing, +/obj/effect/turf_decal/stripes, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"jJl" = ( +/obj/structure/statue/silver/sec, +/obj/effect/turf_decal/tile/red/real_red/anticorner/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hos) +"jJm" = ( +/obj/structure/table, +/obj/item/reagent_containers/condiment/saltshaker{ + pixel_x = -3; + pixel_y = 9 + }, +/obj/item/reagent_containers/condiment/peppermill{ + dir = 1; + pixel_x = 3; + pixel_y = 9 + }, +/obj/structure/cable, +/turf/open/floor/iron/kitchen, +/area/station/security/prison/mess) +"jJx" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/escape) +"jJA" = ( +/obj/effect/turf_decal/delivery/red, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/window/preopen{ + id = "prisonlockdown1"; + name = "Lockdown" + }, +/obj/machinery/button/door{ + id = "prisonlockdown1"; + name = "Lockdown"; + pixel_x = 24; + req_access = list("security") + }, +/turf/open/floor/iron/dark, +/area/station/security/prison/upper) +"jJF" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"jJJ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/eighties/red, +/area/station/common/arcade) +"jJK" = ( +/obj/structure/table, +/obj/item/plate, +/obj/item/reagent_containers/condiment/saltshaker{ + pixel_x = 3; + pixel_y = 11 + }, +/obj/item/reagent_containers/condiment/peppermill{ + pixel_x = -3; + pixel_y = 11 + }, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen/diner) +"jJU" = ( +/turf/closed/wall/r_wall, +/area/station/engineering/supermatter/room) +"jKa" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"jKf" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"jKm" = ( +/obj/item/stack/sheet/cardboard, +/turf/open/floor/plating, +/area/station/maintenance/department/security) +"jKn" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/structure/chair/sofa/bench/left{ + dir = 4; + pixel_x = -5 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/common/wrestling/arena) +"jKs" = ( +/obj/machinery/light/small/directional/north, +/obj/structure/table, +/obj/effect/spawner/random/clothing/backpack, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"jKw" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 8 + }, +/obj/structure/sink/directional/west, +/turf/open/floor/iron/dark, +/area/station/medical/treatment_center) +"jKx" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/landmark/start/hangover, +/turf/open/floor/wood, +/area/station/service/cafeteria) +"jKz" = ( +/obj/effect/turf_decal/stripes/white/corner{ + dir = 1 + }, +/turf/open/floor/engine/hull/reinforced, +/area/space/nearstation) +"jKM" = ( +/obj/effect/landmark/start/bartender, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/bar/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/service/bar) +"jKP" = ( +/turf/open/floor/wood/parquet, +/area/station/common/gaskiosk) +"jKU" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/sorting/mail{ + dir = 1; + name = "Kitchen Junction"; + sortType = 20 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"jLb" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + name = "Customs Desk" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint) +"jLd" = ( +/obj/effect/spawner/random/structure/crate, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"jLi" = ( +/obj/structure/table/reinforced/rglass, +/obj/item/clothing/suit/apron/surgical, +/obj/item/clothing/mask/surgical, +/obj/item/reagent_containers/medigel/sterilizine{ + pixel_x = 8; + pixel_y = 15 + }, +/obj/item/clothing/gloves/latex, +/turf/open/floor/iron/white, +/area/station/service/barber) +"jLj" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"jLo" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/seeds/liberty, +/turf/open/misc/asteroid/airless, +/area/space/nearstation) +"jLp" = ( +/obj/structure/barricade/wooden/crude, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/service/hydroponics/garden/abandoned) +"jLu" = ( +/obj/structure/bed, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/common/pool) +"jLv" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/stairs, +/area/station/medical/cryo) +"jLw" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/carpet, +/area/station/maintenance/abandon_office) +"jLy" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/station/hallway/primary/port) +"jLA" = ( +/obj/machinery/newscaster/directional/west, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/commons/storage/primary) +"jLC" = ( +/turf/closed/wall, +/area/station/commons/dorms/room1) +"jLG" = ( +/obj/structure/table, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/iron/dark, +/area/station/security/prison/mess) +"jLJ" = ( +/obj/structure/chair/sofa/left/brown, +/obj/structure/window/spawner/directional/north, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"jLK" = ( +/obj/structure/window/reinforced/plasma/spawner/directional/west, +/obj/machinery/power/shuttle_engine/heater, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"jLT" = ( +/obj/machinery/door/airlock/external{ + name = "External Docking Port" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/hallway/secondary/exit) +"jLZ" = ( +/obj/effect/landmark/carpspawn, +/turf/open/space/basic, +/area/space) +"jMf" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/obj/structure/sign/calendar/directional/east, +/obj/machinery/fax{ + fax_name = "Head of Personnel's Office"; + name = "Head of Personnel's Fax Machine"; + pixel_y = 3 + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/hop) +"jMj" = ( +/obj/machinery/door/morgue{ + name = "Confession Booth" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/carpet, +/area/station/service/chapel) +"jMm" = ( +/obj/machinery/door/airlock/engineering/glass{ + name = "Supermatter Engine Room" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/general, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/supermatter/room) +"jMn" = ( +/obj/structure/rack/shelf, +/obj/item/storage/toolbox/mechanical, +/obj/machinery/light/small/directional/south, +/turf/open/floor/iron/dark, +/area/station/maintenance/department/engineering/atmos_aux_port) +"jMr" = ( +/obj/item/cigbutt, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/eva) +"jMs" = ( +/obj/effect/landmark/start/chemist, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"jMy" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/newscaster/directional/east, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"jMz" = ( +/obj/machinery/computer/security/labor{ + dir = 4 + }, +/obj/structure/window/spawner/directional/north, +/obj/machinery/newscaster/directional/west, +/obj/machinery/camera/autoname/directional/west, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"jME" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 1 + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/external, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"jMO" = ( +/obj/structure/easel, +/obj/item/canvas/twentythree_twentythree{ + pixel_x = 3 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/wood, +/area/station/maintenance/abandon_art_studio) +"jMU" = ( +/obj/effect/spawner/random/entertainment/arcade, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"jMW" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "Air to Ports" + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"jMZ" = ( +/obj/structure/chair, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"jNc" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/iron/dark/small, +/area/station/cargo/storage) +"jNf" = ( +/obj/machinery/door/poddoor/shutters{ + id = "qm_warehouse"; + name = "Warehouse Shutters" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/dark/small, +/area/station/cargo/warehouse) +"jNi" = ( +/obj/item/stock_parts/capacitor/adv, +/obj/item/stock_parts/micro_laser{ + pixel_x = -6; + pixel_y = 8 + }, +/turf/open/floor/plating, +/area/station/science/research/abandoned) +"jNj" = ( +/obj/structure/table, +/obj/machinery/microwave{ + pixel_x = -1; + pixel_y = 6 + }, +/obj/machinery/camera/directional/east{ + c_tag = "Service Hallway - Main Room"; + name = "hallway camera" + }, +/obj/machinery/light/directional/east, +/obj/machinery/status_display/ai/directional/east, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/hallway/secondary/service) +"jNq" = ( +/obj/structure/chair/plastic{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/wood, +/area/station/security/prison/upper) +"jNs" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "CytologyShutters"; + name = "Cytology Shutters" + }, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/science/xenobiology) +"jNv" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) +"jNx" = ( +/obj/structure/table, +/obj/item/modular_computer/laptop/preset/civilian, +/turf/open/floor/iron, +/area/station/maintenance/console_room) +"jND" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/science/ordnance) +"jNE" = ( +/obj/machinery/door/airlock/engineering/glass{ + name = "Primary Tool Storage" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/landmark/navigate_destination, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/commons/storage/primary) +"jNH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east, +/turf/open/floor/wood, +/area/station/maintenance/rus_gambling) +"jNK" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/iron/white/corner, +/area/station/hallway/secondary/entry) +"jNL" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium, +/area/station/science/robotics/mechbay) +"jNN" = ( +/obj/structure/chair/pew/left{ + dir = 8 + }, +/obj/machinery/camera/directional/north{ + c_tag = "Courtroom - Fore" + }, +/obj/effect/landmark/start/hangover, +/turf/open/floor/wood, +/area/station/security/courtroom) +"jNQ" = ( +/obj/structure/rack, +/obj/item/book/manual/wiki/surgery, +/obj/item/toy/cattoy, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/medical/abandoned) +"jNU" = ( +/obj/machinery/modular_computer/preset/command{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/box, +/obj/machinery/newscaster/directional/east, +/turf/open/floor/iron/smooth, +/area/station/command/secure_bunker) +"jNV" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/command/heads_quarters/nt_rep) +"jOg" = ( +/obj/machinery/plumbing/ooze_sucker{ + mapping_id = "4"; + dir = 1 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"jOi" = ( +/turf/closed/wall/r_wall, +/area/station/tcommsat/server) +"jOj" = ( +/obj/machinery/door/airlock/research{ + name = "Circuit Lab" + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/science/general, +/turf/open/floor/iron/white/side{ + dir = 4 + }, +/area/station/science/circuits) +"jOk" = ( +/obj/structure/chair/plastic{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple/half{ + dir = 1 + }, +/turf/open/floor/iron/white/side{ + dir = 1 + }, +/area/station/science/research) +"jOn" = ( +/obj/item/kirbyplants/random, +/obj/machinery/light/directional/south, +/turf/open/floor/iron/dark, +/area/station/security/interrogation) +"jOo" = ( +/obj/machinery/door/airlock/maintenance, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/service/theater/abandoned) +"jOu" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/window/left/directional/north{ + name = "Hydroponics Desk"; + req_access = list("hydroponics") + }, +/obj/machinery/door/window/left/directional/south{ + name = "Kitchen Desk"; + req_access = list("kitchen") + }, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) +"jOx" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 4 + }, +/obj/machinery/door/airlock/public/glass{ + name = "Captains Office Access" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron/grimy, +/area/station/command/heads_quarters/captain) +"jOV" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/storage) +"jPa" = ( +/obj/structure/sink/kitchen/directional/south, +/obj/effect/landmark/start/scientist, +/turf/open/floor/iron, +/area/station/science/breakroom) +"jPb" = ( +/obj/item/clothing/mask/gas/clown_hat, +/turf/open/floor/iron/shuttle/evac/airless, +/area/space/nearstation) +"jPe" = ( +/obj/structure/table/glass, +/obj/item/reagent_containers/cup/bottle/multiver{ + pixel_x = -5; + pixel_y = 6 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 9 + }, +/obj/machinery/status_display/ai/directional/west, +/obj/item/reagent_containers/cup/bottle/morphine{ + pixel_x = 8; + pixel_y = 5 + }, +/obj/item/reagent_containers/cup/bottle/formaldehyde{ + pixel_y = 2 + }, +/obj/item/reagent_containers/syringe{ + pixel_x = 6; + pixel_y = -3 + }, +/turf/open/floor/iron/white, +/area/station/medical/surgery) +"jPh" = ( +/obj/item/wrench, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"jPi" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet, +/area/station/service/theater) +"jPj" = ( +/obj/machinery/atmospherics/components/binary/pump/layer4, +/turf/open/floor/iron, +/area/station/maintenance/department/engineering/atmos_aux_port) +"jPq" = ( +/obj/effect/decal/cleanable/cobweb, +/obj/item/mop, +/turf/open/floor/iron, +/area/station/maintenance/fore/upper) +"jPr" = ( +/obj/structure/table, +/obj/item/folder/red{ + pixel_x = 3 + }, +/obj/item/taperecorder{ + pixel_x = -3 + }, +/obj/item/storage/fancy/cigarettes, +/obj/item/assembly/flash/handheld, +/obj/item/reagent_containers/spray/pepper, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/iron/dark, +/area/station/security/execution/education) +"jPt" = ( +/obj/structure/closet/secure_closet/personal, +/obj/effect/turf_decal/bot_white, +/obj/machinery/light/small/directional/east, +/turf/open/floor/iron/dark, +/area/station/security/prison/shower) +"jPu" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/smooth, +/area/station/cargo/miningdock) +"jPv" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/trimline/red/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/filled/warning{ + dir = 6 + }, +/turf/open/floor/iron/dark, +/area/station/security/brig) +"jPz" = ( +/obj/machinery/computer/nanite_chamber_control, +/turf/open/floor/iron/dark/small, +/area/station/science/circuits) +"jPK" = ( +/obj/machinery/light/directional/east, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/engineering/storage_shared) +"jPM" = ( +/obj/effect/landmark/start/assistant, +/turf/open/floor/iron, +/area/station/commons/fitness/recreation) +"jPP" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/turf/open/floor/iron/dark/side, +/area/station/hallway/secondary/command) +"jPQ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/service{ + name = "Service Hallway" + }, +/obj/effect/mapping_helpers/airlock/access/all/service/general, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/checker, +/area/station/hallway/secondary/service) +"jPR" = ( +/obj/structure/table, +/obj/item/storage/fancy/donut_box, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/commons/fitness/recreation) +"jPT" = ( +/obj/machinery/blackbox_recorder, +/turf/open/floor/circuit/telecomms/mainframe, +/area/station/tcommsat/server) +"jPU" = ( +/obj/effect/landmark/carpspawn, +/turf/open/floor/engine/hull/reinforced, +/area/space/nearstation) +"jQe" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/hallway/secondary/command) +"jQg" = ( +/obj/structure/extinguisher_cabinet/directional/north, +/obj/structure/chair/comfy/brown{ + color = "#A46106" + }, +/turf/open/floor/wood, +/area/station/service/library) +"jQk" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/station/medical/aslyum) +"jQm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot_white, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/iron/dark/small, +/area/station/maintenance/starboard/fore) +"jQn" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Overseer Office" + }, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/iron, +/area/station/maintenance/abandon_holding_cell) +"jQp" = ( +/obj/machinery/light/directional/east, +/obj/structure/flora/bush/sparsegrass/style_random, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"jQq" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) +"jQu" = ( +/obj/effect/spawner/structure/window/reinforced/tinted, +/turf/open/floor/plating, +/area/station/security/courtroom) +"jQA" = ( +/turf/closed/wall, +/area/station/commons/toilet/auxiliary) +"jQB" = ( +/obj/structure/ore_box, +/turf/open/floor/plating, +/area/station/maintenance/department/science/upper) +"jQD" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/security/power_station) +"jQG" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 8 + }, +/obj/effect/landmark/start/hangover/closet, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/port) +"jQH" = ( +/obj/structure/table/reinforced, +/obj/item/book/manual/wiki/security_space_law, +/obj/item/radio, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/engineering) +"jQR" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/machinery/suit_storage_unit/security, +/turf/open/floor/iron/dark, +/area/station/security/lockers) +"jQT" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/structure/chair/office{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) +"jQX" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/hedge, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/central) +"jQY" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"jQZ" = ( +/obj/structure/bed, +/obj/item/bedsheet/chaplain, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/carpet/royalblack, +/area/station/service/chapel/office) +"jRa" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"jRc" = ( +/obj/structure/lattice/catwalk, +/turf/open/floor/glass/reinforced, +/area/station/security/prison/safe) +"jRe" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/structure/displaycase/forsale/kitchen{ + pixel_y = 8 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Barshutters"; + name = "Bar Shutters" + }, +/turf/open/floor/iron/dark, +/area/station/service/bar) +"jRh" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command/glass{ + name = "Bridge" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "bridge-west" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/command/general, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"jRi" = ( +/obj/structure/table, +/obj/item/reagent_containers/cup/beaker/large, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"jRl" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/structure/chair/stool/directional/north, +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/station/maintenance/starboard/fore) +"jRs" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/random/maintenance/six, +/turf/open/floor/iron/dark/small, +/area/station/cargo/miningdock) +"jRz" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/station/security/detectives_office/private_investigators_office) +"jRA" = ( +/obj/machinery/light/directional/east, +/turf/open/openspace, +/area/station/commons/dorms) +"jRB" = ( +/obj/structure/table/reinforced, +/obj/item/stock_parts/scanning_module/adv, +/obj/item/stock_parts/scanning_module/adv, +/obj/machinery/light_switch/directional/west, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) +"jRF" = ( +/obj/machinery/computer/operating{ + dir = 1; + name = "Robotics Operating Computer" + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 6 + }, +/turf/open/floor/iron/white, +/area/station/science/robotics) +"jRG" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/landmark/start/shaft_miner, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) +"jRI" = ( +/turf/closed/wall/mineral/wood, +/area/station/command/heads_quarters/captain/private) +"jRJ" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/obj/structure/chair/wood{ + dir = 1 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/wood, +/area/station/service/chapel/funeral) +"jRK" = ( +/obj/structure/chair/sofa/bench/left{ + dir = 4; + pixel_x = -5 + }, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/science/research) +"jRR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"jSa" = ( +/obj/effect/turf_decal/stripes/white/line, +/obj/structure/cable, +/obj/machinery/camera/directional/east{ + c_tag = "AI Satellite - Teleporter"; + name = "ai camera"; + network = list("minisat"); + start_active = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat_interior) +"jSd" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating{ + dir = 4 + }, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"jSs" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green{ + pixel_x = 4; + pixel_y = 11 + }, +/obj/item/reagent_containers/cup/glass/flask/gold{ + pixel_x = -8 + }, +/obj/item/razor{ + pixel_x = -7 + }, +/obj/machinery/camera/directional/north{ + c_tag = "Bridge - Captain's Quarters"; + name = "command camera" + }, +/obj/structure/window/reinforced/tinted/spawner/directional/east, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/captain/private) +"jSE" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"jSH" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/camera/directional/north, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/command) +"jSI" = ( +/obj/item/kirbyplants/organic/plant21, +/obj/machinery/camera/directional/west{ + c_tag = "Chapel - Port"; + name = "chapel camera" + }, +/obj/machinery/light/directional/west, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/carpet, +/area/station/service/chapel) +"jSR" = ( +/obj/structure/trash_pile, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/port/aft) +"jSV" = ( +/obj/structure/closet/secure_closet/brig/genpop, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/dark, +/area/station/security/prison) +"jSY" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/disposal) +"jTd" = ( +/obj/structure/chair/wood{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/station/service/abandoned_gambling_den) +"jTj" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/prison/visit) +"jTl" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/machinery/light/small/directional/north, +/obj/effect/landmark/generic_maintenance_landmark, +/turf/open/floor/iron/dark, +/area/station/maintenance/abandon_exam/cat) +"jTz" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/hallway/primary/port) +"jTD" = ( +/obj/effect/turf_decal/trimline/blue, +/obj/item/toy/basketball, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 8; + pixel_x = 5 + }, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 8; + pixel_x = 10 + }, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/fitness) +"jTH" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/firecloset, +/turf/open/floor/iron/dark, +/area/station/maintenance/solars/port/fore) +"jTN" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/effect/landmark/start/scientist, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/science/lab) +"jTO" = ( +/obj/structure/table, +/obj/machinery/door/poddoor/shutters{ + id = "visitation"; + name = "Visitation Shutters" + }, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/security/prison/visit) +"jTQ" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/engineering/gravity_generator) +"jTV" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/station/maintenance/wrestle) +"jTX" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/machinery/light/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/science/explab) +"jTY" = ( +/obj/effect/turf_decal/stripes, +/obj/structure/rack/gunrack, +/obj/effect/spawner/armory_spawn/shotguns, +/turf/open/floor/engine, +/area/station/command/secure_bunker) +"jTZ" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8; + name = "Air to Distro" + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron, +/area/station/engineering/atmos/pumproom) +"jUg" = ( +/obj/machinery/light/directional/east, +/turf/open/floor/iron/dark/side{ + dir = 5 + }, +/area/station/security/prison) +"jUh" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"jUj" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"jUk" = ( +/obj/item/kirbyplants/random, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/security/courtroom) +"jUp" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/disposal) +"jUt" = ( +/obj/structure/table/wood/poker, +/obj/effect/spawner/random/entertainment/gambling, +/obj/machinery/airalarm/directional/west, +/turf/open/floor/plating, +/area/station/service/abandoned_gambling_den) +"jUx" = ( +/obj/item/hemostat, +/obj/effect/decal/cleanable/blood/old, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/maintenance/abandon_surgery) +"jUy" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing{ + dir = 8 + }, +/obj/machinery/light/directional/south, +/obj/structure/chair/sofa/bench/right{ + dir = 4 + }, +/turf/open/floor/glass/reinforced, +/area/station/security/prison/safe) +"jUA" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/spawner/random/trash/mess, +/obj/structure/closet/crate{ + icon_state = "crateopen" + }, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"jUF" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/large, +/area/station/cargo/lobby) +"jUM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/airalarm/directional/south, +/turf/open/floor/iron, +/area/station/common/wrestling/arena) +"jUN" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/dark/small, +/area/station/security/prison/upper) +"jUO" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/trimline/red/filled/line, +/obj/effect/turf_decal/trimline/red/line{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark, +/turf/open/floor/iron/dark/side, +/area/station/security/brig) +"jUQ" = ( +/obj/structure/extinguisher_cabinet/directional/north, +/mob/living/basic/pet/poppy, +/obj/machinery/camera/autoname/directional/north, +/turf/open/floor/iron, +/area/station/engineering/main) +"jUS" = ( +/obj/structure/table, +/obj/machinery/microwave{ + pixel_y = 8 + }, +/obj/effect/turf_decal/siding/wood, +/obj/machinery/button/door/directional/north{ + id = "Wardshutters"; + name = "Recovery Ward Privacy Shutters" + }, +/obj/machinery/light_switch/directional/west, +/turf/open/floor/iron, +/area/station/medical/patients_rooms) +"jUT" = ( +/obj/machinery/newscaster/directional/west, +/obj/item/paper{ + default_raw_text = "Jim Norton's Quebecois Coffee. You see, in 2265 the Quebecois had finally had enough of Canada's shit, and went to the one place that wasn't corrupted by Canuckistan.Je vais au seul endroit qui n'a pas ??? corrompu par les Canadiens ... ESPACE."; + name = "Coffee Shop"; + pixel_x = -4; + pixel_y = 6 + }, +/obj/item/clothing/suit/apron/chef{ + name = "Jim Norton's Quebecois Coffee apron" + }, +/obj/item/clothing/head/soft/green{ + color = "#00a62e"; + desc = "It's a baseball hat in a tastefull green colour."; + name = "Jim Norton's Quebecois Coffee cap" + }, +/turf/open/floor/iron/dark, +/area/station/service/cafeteria) +"jUW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/rack_parts, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"jUX" = ( +/obj/machinery/door/window/left/directional/north, +/turf/open/floor/iron/dark, +/area/station/science/xenobiology) +"jVd" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"jVg" = ( +/turf/closed/wall/rust, +/area/station/maintenance/cult_chapel_maint) +"jVk" = ( +/obj/effect/spawner/random/trash/moisture_trap, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"jVm" = ( +/obj/structure/cable, +/obj/machinery/light/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"jVo" = ( +/obj/effect/spawner/random/trash/mess, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/bar) +"jVp" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/engineering/main) +"jVt" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/railing{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/stairs/old, +/area/station/engineering/atmos) +"jVv" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/dark/small, +/area/station/security/brig) +"jVw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/emcloset{ + name = "plasmaperson emergency closet" + }, +/obj/item/clothing/under/plasmaman, +/obj/item/clothing/under/plasmaman, +/obj/item/clothing/head/helmet/space/plasmaman, +/obj/item/clothing/head/helmet/space/plasmaman, +/obj/item/tank/internals/plasmaman/belt/full, +/obj/item/tank/internals/plasmaman/belt/full, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"jVz" = ( +/obj/effect/turf_decal/tile/blue/fourcorners, +/obj/structure/cable, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"jVB" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/turf/open/floor/iron/dark/small, +/area/station/cargo/miningdock) +"jVH" = ( +/turf/open/floor/iron/stairs, +/area/station/command/heads_quarters/hos) +"jVI" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"jVO" = ( +/obj/structure/chair/sofa/corp/right{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/science/research) +"jVP" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/camera/directional/north{ + c_tag = "Leisure Hallway - Far Starboard"; + name = "hallway camera" + }, +/obj/structure/extinguisher_cabinet/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"jVR" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 4; + id = "qmprivacy"; + name = "Quartermaster's Privacy Shutters" + }, +/turf/open/floor/plating, +/area/station/command/heads_quarters/qm) +"jVT" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/power/smes/engineering, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/security/power_station) +"jVV" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold/green/visible{ + dir = 8 + }, +/obj/machinery/meter, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"jWd" = ( +/obj/item/tank/jetpack/carbondioxide{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/tank/jetpack/carbondioxide, +/obj/structure/rack, +/turf/open/floor/iron/dark, +/area/station/engineering/break_room) +"jWg" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/grass, +/area/station/common/night_club) +"jWh" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/rack, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/gloves/color/black, +/obj/item/clothing/gloves/color/black, +/obj/item/clothing/gloves/color/black, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/turf/open/floor/iron, +/area/station/engineering/atmos/test_chambers) +"jWi" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"jWo" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/effect/landmark/start/paramedic, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/medical/storage) +"jWr" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"jWA" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{ + dir = 9 + }, +/obj/machinery/light/small/directional/south, +/obj/machinery/firealarm/directional/south, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/engine_smes) +"jWB" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/floor/iron, +/area/station/engineering/storage) +"jWJ" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/iron/stairs/right, +/area/station/cargo/storage) +"jWL" = ( +/obj/structure/holosign/barrier/engineering, +/turf/open/floor/iron/stairs/right, +/area/station/hallway/primary/port) +"jWU" = ( +/obj/structure/cable, +/obj/structure/chair/stool/directional/east, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/prison/visit) +"jXa" = ( +/obj/machinery/computer/records/medical{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red/real_red/anticorner/contrasted{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hos) +"jXA" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"jXB" = ( +/obj/machinery/camera/directional/west{ + c_tag = "Atmospherics - Crystallizer" + }, +/obj/structure/fireaxecabinet/directional/west, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/engineering/atmos/test_chambers) +"jXG" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/bot_white, +/obj/structure/cable, +/obj/machinery/door/poddoor/shutters/window/preopen{ + id = "ArrivalsEntry2"; + name = "Secure Acces Shutters" + }, +/obj/machinery/door/airlock/public/glass{ + name = "Arrivals" + }, +/obj/effect/turf_decal/arrows/white{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/entry) +"jXI" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/science/robotics) +"jXK" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/command/captain_dining) +"jXN" = ( +/turf/closed/wall, +/area/station/cargo/power_station/upper) +"jXO" = ( +/obj/structure/chair/sofa/bench/left{ + dir = 8; + pixel_x = 5 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/command) +"jXT" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/science) +"jXV" = ( +/obj/structure/table/reinforced/rglass, +/obj/item/storage/box/hug{ + pixel_y = 5 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/prison) +"jYd" = ( +/obj/structure/closet/crate/large, +/obj/effect/spawner/random/maintenance/two, +/turf/open/floor/iron, +/area/station/security/execution/transfer) +"jYj" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"jYl" = ( +/obj/structure/closet, +/obj/effect/turf_decal/delivery, +/obj/machinery/light/small/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/law) +"jYm" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/red, +/obj/item/storage/box/bodybags{ + pixel_x = 2; + pixel_y = 6 + }, +/obj/item/storage/box/prisoner{ + pixel_x = -4 + }, +/obj/item/radio/intercom/directional/west, +/obj/item/pushbroom, +/turf/open/floor/iron/dark, +/area/station/security/prison) +"jYp" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/machinery/duct, +/turf/open/floor/iron/dark/side, +/area/station/hallway/secondary/command) +"jYr" = ( +/obj/effect/spawner/random/structure/crate, +/turf/open/floor/plating, +/area/station/maintenance/department/security/lesser) +"jYs" = ( +/obj/machinery/atmospherics/components/binary/valve/digital{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/science/ordnance) +"jYt" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"jYw" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/science/xenobiology/control) +"jYy" = ( +/turf/open/openspace, +/area/station/maintenance/port/upper) +"jYG" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/iron/dark/side{ + dir = 9 + }, +/area/station/service/hydroponics) +"jYH" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"jYJ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/security/prison/work) +"jYP" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "hopblast"; + name = "HoP Blast Door" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/command/heads_quarters/hop) +"jYQ" = ( +/obj/structure/table/reinforced, +/obj/item/storage/belt/utility, +/obj/item/storage/belt/utility, +/obj/item/storage/belt/utility, +/obj/item/clothing/glasses/meson, +/obj/item/clothing/glasses/meson, +/obj/item/clothing/glasses/meson, +/obj/item/airlock_painter/decal, +/turf/open/floor/iron/dark, +/area/station/engineering/main) +"jYW" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"jYX" = ( +/turf/open/floor/iron/white, +/area/station/science/research) +"jZa" = ( +/obj/machinery/light/small/broken/directional/west, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/department/engineering/engine_aft_port) +"jZb" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/public/glass{ + name = "West RnD Wing" + }, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/science/research) +"jZd" = ( +/obj/structure/table, +/obj/item/storage/toolbox/electrical{ + pixel_y = 8 + }, +/obj/item/storage/toolbox/mechanical, +/obj/item/multitool, +/obj/item/multitool, +/obj/machinery/airalarm/directional/south, +/obj/machinery/light/directional/south, +/turf/open/floor/mineral/plastitanium, +/area/station/science/robotics/lab) +"jZk" = ( +/obj/effect/spawner/random/structure/closet_maintenance, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_port) +"jZl" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/cargo/power_station/upper) +"jZm" = ( +/obj/structure/table/wood/poker, +/obj/item/storage/dice, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"jZq" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/red/filled/line{ + color = "#DE3A3A"; + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/prison/safe) +"jZr" = ( +/obj/structure/table, +/obj/item/storage/box/papersack{ + icon_state = "paperbag_NanotrasenStandard_closed" + }, +/obj/item/storage/box/papersack{ + icon_state = "paperbag_NanotrasenStandard_closed" + }, +/obj/item/storage/box/papersack{ + icon_state = "paperbag_NanotrasenStandard_closed" + }, +/obj/item/storage/box/papersack{ + icon_state = "paperbag_NanotrasenStandard_closed" + }, +/obj/item/knife/butcher, +/obj/item/storage/box/papersack{ + icon_state = "paperbag_NanotrasenStandard_closed" + }, +/obj/item/knife{ + pixel_x = -13 + }, +/obj/machinery/pollution_scrubber{ + pixel_x = 8; + pixel_y = 12 + }, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) +"jZy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/obj/item/storage/toolbox/mechanical/old, +/turf/open/floor/wood, +/area/station/security/prison/upper) +"jZA" = ( +/obj/item/kirbyplants/random, +/obj/machinery/light/directional/south, +/obj/structure/extinguisher_cabinet/directional/south, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/testlab) +"jZC" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 9 + }, +/turf/open/floor/iron/white, +/area/station/medical/storage) +"jZG" = ( +/obj/item/reagent_containers/cup/bucket, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/grass, +/area/station/service/hydroponics/garden/abandoned) +"jZJ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/service/kitchen/diner) +"jZK" = ( +/obj/machinery/door/firedoor, +/obj/machinery/firealarm/directional/south, +/obj/effect/turf_decal/trimline/red/filled/line{ + color = "#DE3A3A" + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/side, +/area/station/security/brig) +"jZN" = ( +/obj/structure/chair/stool/directional/west, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/prison/visit) +"jZP" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/port) +"jZZ" = ( +/obj/structure/window/spawner/directional/north, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/station/maintenance/abandon_exam/cat) +"kac" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/flora/bush/sparsegrass, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/lavendergrass, +/turf/open/floor/grass, +/area/station/command/heads_quarters/hos) +"kaj" = ( +/turf/closed/wall/r_wall, +/area/station/ai_monitored/command/storage/eva/upper) +"kak" = ( +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/iron/stairs/old{ + dir = 4 + }, +/area/station/service/bar/atrium) +"kas" = ( +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/security/prison) +"kau" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron, +/area/station/commons/dorms) +"kaK" = ( +/obj/structure/grille/broken, +/obj/effect/spawner/random/trash/mess, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"kaN" = ( +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/large, +/area/station/cargo/lobby) +"kaW" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron/white, +/area/station/command/heads_quarters/rd) +"kba" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/science/ordnance) +"kbe" = ( +/obj/structure/dresser, +/turf/open/floor/carpet/red, +/area/station/commons/dorms/room6) +"kbf" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"kbi" = ( +/turf/open/floor/mineral/plastitanium/red, +/area/station/maintenance/cult_chapel_maint) +"kbo" = ( +/turf/open/space/openspace, +/area/station/cargo/mining/asteroid_magnet) +"kbs" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/station/common/wrestling/arena) +"kbD" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/closet, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/department/eva) +"kbK" = ( +/obj/structure/closet/cardboard, +/obj/effect/spawner/random/maintenance, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"kbL" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/door/airlock/command{ + name = "Council Chambers" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/access/all/command/general, +/turf/open/floor/wood, +/area/station/command/meeting_room/council) +"kbN" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/science) +"kbZ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/station/service/cafeteria) +"kcg" = ( +/obj/structure/drain, +/obj/machinery/shower/directional/west, +/turf/open/floor/iron/freezer, +/area/station/commons/toilet/auxiliary) +"kci" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron/dark, +/area/station/service/chapel) +"kcj" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/item/clothing/shoes/magboots{ + pixel_y = 4 + }, +/obj/item/clothing/shoes/magboots, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva/upper) +"kcv" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"kcI" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/common/laser_tag) +"kcM" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/turf/open/floor/wood, +/area/station/security/prison/mess) +"kcP" = ( +/obj/structure/table, +/obj/item/storage/bag/tray, +/obj/item/storage/box/donkpockets/donkpocketteriyaki, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) +"kcQ" = ( +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 1 + }, +/obj/structure/sign/departments/restroom/directional/south, +/obj/item/kirbyplants/random, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/port) +"kcR" = ( +/obj/structure/chair/pew/right{ + dir = 4 + }, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/common/pool/sauna) +"kcW" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 9 + }, +/obj/machinery/airalarm/directional/north, +/obj/structure/closet, +/obj/effect/spawner/random/medical/medkit, +/turf/open/floor/iron/white, +/area/station/security/medical) +"kcZ" = ( +/obj/effect/turf_decal/bot, +/obj/structure/liquid_pump, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/secondary/service) +"kdc" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"kdg" = ( +/obj/item/kirbyplants/random, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron/dark, +/area/station/cargo/sorting) +"kdl" = ( +/obj/structure/hedge, +/obj/structure/window/spawner/directional/west, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics/garden) +"kdm" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research{ + name = "Genetics Lab" + }, +/obj/effect/turf_decal/trimline/purple/filled/warning, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/science/genetics, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/science/genetics) +"kdw" = ( +/obj/machinery/firealarm/directional/south, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/commons/toilet/restrooms) +"kdC" = ( +/obj/machinery/door/airlock/research/glass/incinerator/ordmix_interior, +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/airlock_controller/incinerator_ordmix{ + pixel_y = 23 + }, +/turf/open/floor/engine, +/area/station/science/ordnance/burnchamber) +"kdE" = ( +/obj/effect/turf_decal/trimline/red/filled/warning{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/brig) +"kdH" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/science/ordnance) +"kdO" = ( +/obj/machinery/light/directional/west, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/test_chambers) +"kdU" = ( +/obj/structure/bookcase/random, +/obj/machinery/light/directional/south, +/obj/structure/sign/flag/nanotrasen/directional/south, +/turf/open/floor/carpet/blue, +/area/station/command/heads_quarters/captain) +"kdY" = ( +/obj/structure/curtain/bounty, +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/maintenance/abandon_psych) +"kec" = ( +/obj/structure/chair/sofa/bench/left, +/obj/machinery/bluespace_vendor/directional/north, +/turf/open/floor/iron/dark/side{ + dir = 5 + }, +/area/station/hallway/secondary/exit) +"keh" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "DetShutters"; + name = "Privacy Shutters" + }, +/turf/open/floor/plating, +/area/station/security/detectives_office) +"kem" = ( +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"ker" = ( +/obj/machinery/light/directional/west, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"key" = ( +/obj/structure/cable, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"kez" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/machinery/door/poddoor/shutters/radiation/preopen{ + id = "engsm"; + name = "Radiation Chamber Shutters" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/energy_accumulator/grounding_rod, +/turf/open/floor/plating, +/area/station/engineering/supermatter) +"keD" = ( +/turf/closed/wall, +/area/station/security/prison/visit) +"keF" = ( +/obj/machinery/duct, +/turf/open/floor/iron/dark/side, +/area/station/hallway/secondary/command) +"keK" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"keQ" = ( +/obj/item/radio/intercom/directional/west, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/command/meeting_room/council) +"keS" = ( +/obj/machinery/conveyor{ + dir = 10; + id = "Luggagebelt" + }, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/plasticflaps/opaque, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/security/checkpoint) +"keT" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 6 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/pumproom) +"keX" = ( +/obj/structure/cable, +/obj/machinery/door/poddoor/shutters/window/preopen{ + id = "Xeno11"; + name = "Containment Breach Shutters" + }, +/obj/machinery/button/door{ + id = "xenosecure"; + name = "Containment Control"; + pixel_y = 32; + req_access = list("xenobiology") + }, +/turf/open/floor/iron/stairs/left{ + dir = 8 + }, +/area/station/science/xenobiology) +"keY" = ( +/turf/open/openspace, +/area/station/maintenance/aft/upper) +"keZ" = ( +/obj/structure/table, +/obj/item/reagent_containers/condiment/saltshaker{ + pixel_x = 3; + pixel_y = 11 + }, +/obj/item/reagent_containers/condiment/peppermill{ + pixel_x = -3; + pixel_y = 11 + }, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen/diner) +"kfe" = ( +/obj/effect/spawner/structure/window, +/obj/structure/curtain/cloth/fancy/mechanical{ + id = "Psychologistcurtains" + }, +/turf/open/floor/plating, +/area/station/medical/psychology) +"kfi" = ( +/turf/open/floor/iron/dark, +/area/station/escapepodbay) +"kfl" = ( +/obj/structure/table/wood/poker, +/obj/item/storage/dice, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/green, +/area/station/service/abandoned_gambling_den) +"kfm" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"kft" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/table, +/obj/machinery/airalarm/directional/east, +/obj/effect/mapping_helpers/airalarm/mixingchamber_access, +/obj/effect/mapping_helpers/airalarm/tlv_no_checks, +/obj/effect/mapping_helpers/airalarm/link{ + chamber_id = "ordnanceburn" + }, +/turf/open/floor/iron, +/area/station/science/ordnance) +"kfv" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/item/trash/peanuts, +/obj/structure/cable, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"kfA" = ( +/obj/structure/table, +/obj/machinery/light/directional/north, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/commons/dorms/room2) +"kfB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/maintenance/aft/upper) +"kfD" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/light/directional/east, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"kfE" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/chair/sofa/bench/right{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"kfF" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"kfJ" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/chair/wood{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/station/service/chapel/funeral) +"kfR" = ( +/obj/structure/table/reinforced, +/obj/item/stack/package_wrap, +/obj/item/hand_labeler, +/obj/machinery/light/directional/south, +/turf/open/floor/iron, +/area/station/maintenance/aux_eva) +"kfS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/cigbutt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"kfW" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/obj/machinery/light/directional/west, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/primary/port) +"kfX" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"kfY" = ( +/obj/item/trash/popcorn, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"kgc" = ( +/obj/structure/lattice, +/turf/open/openspace, +/area/station/maintenance/department/medical) +"kgd" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/mining{ + name = "Deliveries" + }, +/obj/effect/mapping_helpers/airlock/access/all/supply/general, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/cargo/sorting) +"kgf" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/service/chapel) +"kgh" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/security/office) +"kgk" = ( +/obj/effect/turf_decal/stripes, +/obj/machinery/suit_storage_unit/security, +/obj/machinery/status_display/ai/directional/north, +/turf/open/floor/iron/dark, +/area/station/security/lockers) +"kgl" = ( +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"kgm" = ( +/obj/effect/spawner/random/trash/mess, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"kgo" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/maintenance/aft/upper) +"kgq" = ( +/obj/effect/turf_decal/trimline/yellow/filled/warning{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"kgr" = ( +/obj/structure/table/glass, +/obj/structure/window/spawner/directional/west, +/obj/item/reagent_containers/chem_pack{ + pixel_x = 1; + pixel_y = 1 + }, +/obj/item/reagent_containers/chem_pack{ + pixel_x = 7; + pixel_y = 5 + }, +/obj/machinery/status_display/ai/directional/north, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) +"kgt" = ( +/obj/structure/window/reinforced/tinted/spawner/directional/east, +/obj/effect/turf_decal/tile/dark_blue/fourcorners, +/turf/open/floor/iron/dark, +/area/station/common/laser_tag) +"kgv" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/chair/sofa/bench/left, +/obj/effect/turf_decal/siding/thinplating_new, +/turf/open/floor/iron/dark, +/area/station/cargo/miningdock) +"kgy" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/landmark/start/hangover, +/turf/open/floor/eighties/red, +/area/station/common/arcade) +"kgD" = ( +/obj/effect/turf_decal/tile/yellow/opposingcorners{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/machinery/door/window/left/directional/north{ + name = "Engineering Deliveries"; + req_access = list("engineering") + }, +/obj/machinery/camera/directional/east, +/turf/open/floor/iron/checker, +/area/station/engineering/lobby) +"kgE" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"kgH" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/door/airlock/bathroom{ + name = "Restroom" + }, +/obj/machinery/duct, +/turf/open/floor/iron/freezer, +/area/station/command/heads_quarters/hop) +"kgI" = ( +/obj/machinery/status_display/ai/directional/north, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/security/prison/mess) +"kgO" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/closet/secure_closet/engineering_welding, +/turf/open/floor/iron/dark, +/area/station/engineering/main) +"kgQ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/door/airlock/hop{ + id_tag = "HoPdoor"; + name = "Head Of Personel's Office" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/command/hop, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/command/heads_quarters/hop) +"kgW" = ( +/obj/effect/turf_decal/bot, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"kgX" = ( +/obj/effect/spawner/random/maintenance, +/turf/open/floor/iron, +/area/station/maintenance/console_room) +"kha" = ( +/obj/structure/table/glass, +/obj/item/book/manual/wiki/cytology, +/obj/item/biopsy_tool, +/obj/effect/turf_decal/tile/purple/half{ + dir = 1 + }, +/turf/open/floor/iron/white/side{ + dir = 1 + }, +/area/station/science/cytology) +"khb" = ( +/obj/machinery/power/port_gen/pacman/pre_loaded, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/station/maintenance/department/science/ordnance_maint) +"khd" = ( +/obj/machinery/door/airlock{ + id_tag = "Dorm4"; + name = "Cabin 4" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/commons/dorms/room3) +"khh" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 4 + }, +/obj/structure/lattice/catwalk, +/turf/open/space/basic, +/area/space/nearstation) +"khi" = ( +/obj/effect/turf_decal/stripes, +/turf/open/floor/engine, +/area/station/science/explab) +"khn" = ( +/obj/effect/landmark/start/librarian, +/turf/open/floor/wood, +/area/station/service/library) +"kho" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/door/airlock/command{ + name = "Council Chambers" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/effect/mapping_helpers/airlock/access/all/command/general, +/turf/open/floor/wood, +/area/station/command/meeting_room/council) +"khq" = ( +/turf/closed/wall/r_wall, +/area/station/commons/fitness/recreation) +"khr" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/item/wrench, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"khx" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron/white, +/area/station/science/research) +"khA" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/science/explab) +"khB" = ( +/obj/structure/chair/comfy/brown, +/obj/machinery/light/broken/directional/north, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet, +/area/station/maintenance/rus_gambling) +"khE" = ( +/obj/machinery/conveyor_switch/oneway{ + id = "robo1"; + pixel_y = 21 + }, +/turf/open/floor/mineral/plastitanium, +/area/station/science/robotics/lab) +"khH" = ( +/obj/machinery/door/poddoor/preopen{ + id = "atmoslock"; + name = "Atmospherics Lockdown Blast Door" + }, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Atmospherics Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/lesser) +"khL" = ( +/obj/structure/table, +/obj/item/shovel/spade, +/obj/item/reagent_containers/cup/bottle/nutrient/ez{ + pixel_x = -5 + }, +/obj/item/reagent_containers/cup/bottle/nutrient/rh{ + pixel_x = 5 + }, +/obj/item/reagent_containers/syringe, +/turf/open/floor/plating, +/area/station/service/hydroponics/garden/abandoned) +"khN" = ( +/obj/structure/table, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/commons/dorms) +"khO" = ( +/obj/structure/reagent_dispensers/plumbed{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"khT" = ( +/obj/machinery/door/airlock/virology{ + autoclose = 0; + frequency = 1449; + id_tag = "virology_airlock_exterior"; + name = "Virology Exterior Airlock" + }, +/obj/machinery/door_buttons/access_button{ + dir = 1; + idDoor = "virology_airlock_exterior"; + idSelf = "virology_airlock_control"; + name = "Virology Access Button"; + pixel_y = -24; + req_access = list("pathology") + }, +/obj/effect/mapping_helpers/airlock/locked, +/obj/effect/turf_decal/trimline/green/filled/warning{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/green/filled/warning{ + dir = 4 + }, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/medical/virology, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/virology) +"khX" = ( +/obj/structure/grille, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"kib" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/engineering/supermatter/room) +"kif" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/structure/crate, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"kih" = ( +/obj/machinery/door/airlock{ + name = "Commentator Studio" + }, +/turf/open/floor/iron, +/area/station/common/wrestling/arena) +"kij" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood, +/obj/structure/window/reinforced/tinted/spawner/directional/east, +/obj/machinery/fax{ + fax_name = "Captain's Office"; + name = "Captain's Fax Machine"; + pixel_y = 6 + }, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/captain/private) +"kir" = ( +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/command/heads_quarters/hos) +"kix" = ( +/obj/machinery/light_switch/directional/west, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) +"kiL" = ( +/obj/machinery/door/airlock/engineering{ + name = "Starboard Aft Solar Access" + }, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/engineering/general, +/turf/open/floor/plating, +/area/station/maintenance/solars/starboard/aft) +"kiR" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/grass, +/area/station/common/night_club) +"kiX" = ( +/obj/structure/rack/shelf, +/obj/item/pipe_dispenser, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/dark, +/area/station/maintenance/department/engineering/atmos_aux_port) +"kiY" = ( +/obj/machinery/porta_turret/ai{ + dir = 8 + }, +/obj/machinery/flasher/directional/south{ + id = "AI" + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai_upload) +"kiZ" = ( +/obj/machinery/vending/hydroseeds, +/turf/open/floor/iron/dark, +/area/station/common/night_club) +"kje" = ( +/obj/structure/table/reinforced, +/obj/item/storage/toolbox/emergency{ + pixel_y = 7 + }, +/obj/item/storage/toolbox/mechanical, +/obj/item/flashlight, +/turf/open/floor/iron, +/area/station/maintenance/aux_eva) +"kjh" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/weldingtool, +/turf/open/floor/plating, +/area/station/science/research/abandoned) +"kji" = ( +/obj/machinery/door/airlock/silver{ + name = "Locker Room" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron/dark, +/area/station/common/locker_room_shower) +"kjk" = ( +/obj/effect/landmark/event_spawn, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/pool_maintenance) +"kjr" = ( +/obj/structure/table/reinforced, +/obj/item/storage/box/beakers{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/box/syringes, +/obj/item/gun/syringe, +/obj/structure/window/spawner/directional/west, +/obj/structure/window/spawner/directional/south, +/turf/open/floor/iron, +/area/station/medical/storage) +"kjx" = ( +/obj/machinery/light/directional/east, +/turf/open/openspace, +/area/station/hallway/secondary/exit) +"kjF" = ( +/obj/structure/table, +/obj/item/exodrone{ + pixel_y = 8 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/obj/machinery/airalarm/directional/west, +/turf/open/floor/iron, +/area/station/cargo/drone_bay) +"kjK" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) +"kjL" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hall8"; + location = "hall7" + }, +/turf/open/floor/iron/dark/corner{ + dir = 1 + }, +/area/station/hallway/primary/port) +"kjN" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"kkb" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"kkf" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"kkv" = ( +/obj/machinery/door/airlock/bathroom{ + name = "Restroom" + }, +/obj/machinery/duct, +/turf/open/floor/carpet/orange, +/area/station/commons/dorms/room1) +"kkx" = ( +/obj/structure/chair/sofa/right/brown{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood/parquet, +/area/station/service/theater) +"kky" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/circuit/red, +/area/station/science/robotics/mechbay) +"kkC" = ( +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/obj/machinery/airalarm/directional/south, +/obj/effect/turf_decal/tile/bar/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/security/prison/mess) +"kkD" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/access/all/command/general, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"kkI" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"kkJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/dorms) +"kkM" = ( +/obj/structure/flora/bush/flowers_pp, +/obj/structure/sink/directional/east{ + reclaim_rate = 5 + }, +/turf/open/floor/grass, +/area/station/security/prison/garden) +"kkO" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_starboard) +"kkT" = ( +/obj/structure/closet/l3closet/scientist, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron, +/area/station/science/explab) +"klc" = ( +/obj/effect/spawner/random/trash/mess, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"klh" = ( +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/common/wrestling/lobby) +"klm" = ( +/obj/structure/cable, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/medical/virology/isolation) +"klp" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/spawner/random/contraband/narcotics, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"klx" = ( +/obj/effect/turf_decal/stripes/end, +/obj/effect/turf_decal/siding/thinplating/dark/end, +/obj/machinery/shower/directional/south, +/obj/structure/drain, +/turf/open/floor/iron/checker, +/area/station/science/research) +"kly" = ( +/obj/effect/turf_decal/stripes{ + dir = 10 + }, +/turf/open/floor/circuit, +/area/station/command/gateway) +"klB" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain/private) +"klO" = ( +/obj/machinery/status_display/shuttle, +/turf/closed/wall, +/area/station/hallway/secondary/entry) +"klU" = ( +/obj/machinery/power/solar{ + id = "aftstarboard"; + name = "Aft-Starboard Solar Array" + }, +/obj/structure/cable, +/turf/open/floor/iron/solarpanel/airless, +/area/station/solars/starboard/aft) +"klV" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/duct, +/obj/effect/turf_decal/trimline/red/filled/warning{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/line, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/prison/upper) +"klX" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate{ + icon_state = "crateopen" + }, +/obj/item/clothing/gloves/color/fyellow, +/obj/item/clothing/under/color/grey, +/obj/item/clothing/mask/gas{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"klZ" = ( +/obj/machinery/skill_station, +/turf/open/floor/iron/dark, +/area/station/service/library/printer) +"kmb" = ( +/obj/structure/table/reinforced, +/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/cell/high, +/obj/machinery/newscaster/directional/north, +/obj/machinery/cell_charger, +/obj/machinery/camera/autoname/directional/north, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) +"kmc" = ( +/obj/effect/spawner/random/maintenance, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/dorms) +"kmg" = ( +/obj/machinery/light/small/directional/south, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/commons/fitness/recreation) +"kmh" = ( +/obj/machinery/shower/directional/north, +/obj/effect/turf_decal/stripes/end{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating/dark/end{ + dir = 1 + }, +/obj/structure/drain, +/turf/open/floor/iron/checker, +/area/station/science/research) +"kmi" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/smooth, +/area/station/command/secure_bunker) +"kmj" = ( +/obj/machinery/duct, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/security/prison/workout) +"kmk" = ( +/obj/machinery/door/firedoor, +/obj/machinery/firealarm/directional/west, +/obj/machinery/door/airlock/public/glass{ + name = "Central Hallway" + }, +/turf/open/floor/iron/dark/side{ + dir = 10 + }, +/area/station/hallway/secondary/command) +"kml" = ( +/obj/machinery/door/airlock/maintenance, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/unres, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"kmq" = ( +/obj/structure/window/spawner/directional/west, +/obj/effect/turf_decal/bot, +/obj/structure/closet/wardrobe/mixed, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/landmark/start/hangover/closet, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/commons/locker) +"kmr" = ( +/obj/structure/trash_pile, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_port) +"kms" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/primary/port) +"kmu" = ( +/obj/structure/girder, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"kmy" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/cyan/visible{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced/plasma, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/atmos_aux_port) +"kmG" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/prison/upper) +"kmI" = ( +/obj/structure/chair/comfy/brown{ + color = "#A46106"; + dir = 1 + }, +/turf/open/floor/wood, +/area/station/service/library) +"kmK" = ( +/turf/open/floor/iron/smooth_corner{ + dir = 4 + }, +/area/station/engineering/atmos/hfr_room) +"kmU" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "hosprivacy"; + name = "HoS Privacy Blast Door" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/security/office) +"knf" = ( +/obj/effect/spawner/structure/window/reinforced/tinted, +/turf/open/floor/plating, +/area/station/service/chapel/funeral) +"kng" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/commons/dorms) +"knj" = ( +/obj/structure/table, +/obj/item/folder, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/iron, +/area/station/maintenance/console_room) +"knl" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron/white, +/area/station/science/ordnance/storage) +"knm" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/closet/secure_closet/brig{ + id = "cargocell"; + name = "Cargo Cell Locker" + }, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/checkpoint/supply) +"knn" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible/layer4, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/security/prison/upper) +"kno" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/duct, +/obj/machinery/door/airlock/public/glass{ + name = "Central Hallway" + }, +/turf/open/floor/iron/dark, +/area/station/security/prison/workout) +"knr" = ( +/obj/structure/flora/bush/jungle/a, +/obj/structure/flora/bush/flowers_br/style_3, +/obj/structure/window/fulltile, +/turf/open/floor/grass, +/area/station/hallway/primary/upper) +"knt" = ( +/obj/structure/chair/pew/right{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/iron/dark, +/area/station/service/chapel) +"knw" = ( +/obj/effect/turf_decal/trimline/purple/filled/line, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/arrows/red{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/science) +"knB" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/light_switch/directional/south, +/obj/machinery/camera/directional/north{ + c_tag = "Bridge - Vanguard Quarters"; + name = "command camera"; + dir = 3 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/command/gateway) +"knC" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/machinery/firealarm/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/public/glass{ + name = "West RnD Wing" + }, +/turf/open/floor/iron, +/area/station/science/research) +"knM" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"knN" = ( +/obj/machinery/camera/directional/north{ + c_tag = "Security - Departures Holding" + }, +/obj/machinery/light/directional/north, +/turf/open/floor/iron, +/area/station/security/checkpoint/escape) +"knP" = ( +/obj/machinery/door/firedoor, +/obj/structure/sign/nanotrasen{ + pixel_x = 32 + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/command) +"knV" = ( +/obj/machinery/light/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/airalarm/directional/west, +/turf/open/floor/iron, +/area/station/security/prison/visit) +"knY" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/camera/autoname/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"koc" = ( +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/item/stack/cable_coil, +/obj/item/stack/cable_coil, +/obj/item/multitool, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/aux_eva) +"kow" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/reagent_dispensers/water_cooler, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"kox" = ( +/obj/structure/bookcase/manuals/research_and_development, +/obj/machinery/digital_clock/directional/north, +/turf/open/floor/wood, +/area/station/command/heads_quarters/rd) +"koH" = ( +/obj/machinery/camera/directional/south{ + c_tag = "Science - Firing Range"; + name = "science camera"; + network = list("ss13","rd") + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/science/auxlab/firing_range) +"koJ" = ( +/obj/structure/bed, +/obj/item/bedsheet/red, +/turf/open/floor/carpet/red, +/area/station/security/warden) +"koK" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/landmark/start/hangover/closet, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/hallway/primary/starboard) +"kpg" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 10 + }, +/obj/machinery/netpod, +/obj/structure/sign/poster/contraband/lusty_xenomorph/directional/east, +/obj/machinery/light/small/blacklight/directional/east, +/obj/effect/spawner/random/trash/garbage, +/obj/effect/spawner/random/trash/garbage, +/obj/effect/spawner/random/trash/garbage, +/obj/effect/spawner/random/trash/garbage, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/small, +/area/station/security/prison/upper) +"kpo" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/flowers_pp, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/turf/open/floor/grass, +/area/station/security/prison/garden) +"kpq" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/machinery/disposal/delivery_chute{ + dir = 4 + }, +/obj/structure/plasticflaps, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/door/window/right/directional/east{ + req_access = list("cargo"); + name = "Service Deliveries" + }, +/turf/open/floor/iron/dark, +/area/station/cargo/sorting) +"kpz" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hall7"; + location = "hall6" + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"kpG" = ( +/obj/effect/spawner/random/trash/mess, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"kpH" = ( +/obj/effect/turf_decal/trimline/purple/filled/corner{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"kpP" = ( +/obj/effect/turf_decal/siding/brown{ + dir = 1 + }, +/obj/machinery/computer/piratepad_control{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/qm) +"kpQ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/door/airlock/highsecurity{ + name = "Blueshield's Equipment Room" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/command/captain, +/turf/open/floor/wood, +/area/station/command/heads_quarters/blueshield) +"kpS" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/curtain/cloth/fancy/mechanical{ + icon_state = "bounty-open"; + icon_type = "bounty"; + id = "prisoncell8"; + name = "curtain" + }, +/turf/open/floor/plating, +/area/station/security/prison/safe) +"kpV" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer2{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible/layer4{ + dir = 10 + }, +/obj/machinery/light/directional/east, +/obj/machinery/camera/autoname/directional/east, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/engineering/atmos) +"kpW" = ( +/obj/structure/table/wood/fancy/blue, +/obj/item/reagent_containers/cup/glass/trophy/silver_cup{ + name = "#2nd prize for the Nanotrasen official comdom competition"; + pixel_y = 6 + }, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/captain) +"kqa" = ( +/turf/open/floor/grass, +/area/station/maintenance/port/fore) +"kqc" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/effect/spawner/random/maintenance, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"kqd" = ( +/obj/effect/spawner/random/trash/garbage, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"kqf" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/hallway/secondary/service) +"kqg" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Security Maintenance" + }, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/turf/open/floor/plating, +/area/station/maintenance/department/security) +"kql" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/warning/vacuum/external/directional/west, +/obj/effect/spawner/random/trash/moisture_trap, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"kqo" = ( +/obj/structure/bed, +/obj/item/bedsheet/clown, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/structure/window/reinforced/tinted/spawner/directional/south, +/turf/open/floor/iron, +/area/station/service/theater) +"kqs" = ( +/obj/machinery/door/airlock/external{ + name = "External Thrusters Access"; + space_dir = 8 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/airlock/access/all/engineering/external, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"kqx" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/structure/chair/comfy{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"kqy" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, +/turf/open/space/basic, +/area/space/nearstation) +"kqC" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/grille, +/turf/open/floor/plating, +/area/station/hallway/primary/upper) +"kqE" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/newscaster/directional/west, +/obj/machinery/camera/directional/west{ + c_tag = "Library Desk"; + name = "library camera" + }, +/turf/open/floor/carpet, +/area/station/service/library) +"kqI" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 6 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"kqL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/command/heads_quarters/hop) +"kqU" = ( +/turf/open/floor/iron/dark, +/area/station/maintenance/solars/starboard/fore) +"kqX" = ( +/obj/structure/chair/sofa/bench/left{ + dir = 4; + pixel_x = -5 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/wood, +/area/station/hallway/primary/central) +"kqY" = ( +/obj/structure/sign/warning/vacuum/external/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"krj" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/turf/open/floor/iron/shuttle/evac/airless, +/area/space/nearstation) +"krl" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark, +/turf/open/floor/iron/dark/textured_edge, +/area/station/ai_monitored/security/armory) +"kro" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "lawyerprivacy"; + name = "Lawyer's Privacy Shutter" + }, +/turf/open/floor/plating, +/area/station/service/lawoffice) +"krs" = ( +/obj/effect/turf_decal/siding/purple{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/command/heads_quarters/rd) +"krt" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/security/lockers) +"kru" = ( +/obj/effect/turf_decal/bot_white, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/effect/turf_decal/stripes{ + dir = 6 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 9 + }, +/turf/open/floor/iron/dark, +/area/station/science/xenobiology) +"krG" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/portable_atmospherics/scrubber, +/obj/machinery/light/small/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"krJ" = ( +/obj/machinery/chem_master, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/structure/noticeboard/directional/north, +/turf/open/floor/iron, +/area/station/medical/chemistry) +"krK" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/stone, +/area/station/common/wrestling/arena) +"krU" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"krV" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/science/xenobiology) +"ksa" = ( +/obj/structure/chair/wood{ + dir = 1 + }, +/obj/effect/landmark/start/assistant, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"ksj" = ( +/obj/effect/turf_decal/stripes, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white/side{ + dir = 1 + }, +/area/station/science/xenobiology) +"ksm" = ( +/turf/closed/wall/r_wall, +/area/station/science/auxlab/firing_range) +"ksn" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red/half{ + dir = 1 + }, +/obj/effect/landmark/start/warden, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/warden) +"kss" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Central Hallway" + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"kst" = ( +/obj/machinery/photocopier, +/obj/structure/sign/calendar/directional/south, +/turf/open/floor/carpet/blue, +/area/station/medical/exam_room) +"ksu" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/engine, +/area/station/ai_monitored/turret_protected/aisat/hallway) +"ksJ" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 9 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"ksM" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/sign/poster/abductor/random/directional/east, +/turf/open/space/basic, +/area/space/nearstation) +"ksR" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/security/checkpoint/science/research) +"ksV" = ( +/obj/item/radio/intercom/directional/east, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/brig) +"ksY" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) +"kta" = ( +/turf/closed/wall/r_wall, +/area/station/maintenance/department/science/lower) +"ktc" = ( +/obj/effect/spawner/random/trash/moisture_trap, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"ktl" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"kts" = ( +/obj/machinery/light_switch/directional/north, +/obj/machinery/camera/autoname/directional/north, +/obj/effect/turf_decal/trimline/red/filled/line{ + color = "#DE3A3A"; + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/line, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/brig) +"ktu" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/window/right/directional/north, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/service/hydroponics/garden) +"ktv" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plating, +/area/station/maintenance/department/eva) +"kty" = ( +/obj/machinery/libraryscanner, +/obj/structure/window/spawner/directional/north, +/turf/open/floor/wood, +/area/station/service/library) +"ktA" = ( +/obj/structure/bookcase/random/religion, +/turf/open/floor/carpet, +/area/station/service/chapel/office) +"ktB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/end{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/multiz/supply/visible/layer4{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/multiz/scrubbers/visible/layer2{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"ktK" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hall19"; + location = "hall18" + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"ktQ" = ( +/obj/machinery/cryopod{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured_large, +/area/station/common/cryopods) +"ktT" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/security/execution/education) +"ktU" = ( +/obj/structure/flora/bush/sparsegrass, +/obj/structure/flora/bush/flowers_yw, +/obj/item/food/grown/banana, +/turf/open/floor/grass, +/area/station/medical/virology/isolation) +"ktY" = ( +/turf/open/floor/iron/smooth, +/area/station/cargo/miningdock) +"ktZ" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/machinery/light/directional/west, +/obj/machinery/light_switch/directional/west, +/turf/open/floor/iron/white, +/area/station/medical/surgery) +"kub" = ( +/obj/machinery/door/airlock/engineering{ + name = "Service Power Station" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/turf/open/floor/plating, +/area/station/service/power_station) +"kuh" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/night_club) +"kus" = ( +/obj/structure/table/wood, +/obj/item/paper_bin{ + pixel_y = 3 + }, +/obj/item/pen/fountain{ + pixel_y = 5 + }, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/hop) +"kut" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron/dark, +/area/station/security/prison/garden) +"kuu" = ( +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron, +/area/station/science/ordnance/storage) +"kuA" = ( +/obj/structure/filingcabinet/chestdrawer/wheeled, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/firealarm/directional/west, +/obj/machinery/status_display/ai/directional/south, +/turf/open/floor/iron/white, +/area/station/command/heads_quarters/rd) +"kuB" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/xenobiology/control) +"kuF" = ( +/obj/item/kirbyplants/random, +/obj/machinery/light/directional/north, +/turf/open/floor/iron, +/area/station/medical/medbay/central) +"kuM" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/structure/rack, +/obj/item/assembly/health{ + pixel_x = 6; + pixel_y = 5 + }, +/obj/item/assembly/health{ + pixel_x = -6; + pixel_y = 5 + }, +/obj/item/assembly/health{ + pixel_y = 5 + }, +/obj/item/assembly/infra{ + pixel_x = 4; + pixel_y = -4 + }, +/obj/item/assembly/infra{ + pixel_x = -3; + pixel_y = -4 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/testlab) +"kvp" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/science/research) +"kvs" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/iron/dark, +/area/station/service/chapel/office) +"kvt" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/newscaster/directional/east, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"kvx" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/science/auxlab/firing_range) +"kvE" = ( +/obj/structure/falsewall, +/turf/open/floor/plating, +/area/station/medical/patients_rooms) +"kvF" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/door/airlock/hop{ + id_tag = "HoPdoor"; + name = "Head of Personel's Quarters" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/command/hop, +/turf/open/floor/wood, +/area/station/command/heads_quarters/hop) +"kvH" = ( +/obj/machinery/light/directional/east, +/obj/machinery/status_display/evac/directional/east, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/central/aft) +"kvQ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/security/interrogation) +"kvR" = ( +/obj/structure/table, +/obj/item/plate, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen/diner) +"kvS" = ( +/turf/open/floor/wood/tile, +/area/station/service/barber) +"kvW" = ( +/obj/item/radio/intercom/chapel{ + pixel_y = 22 + }, +/obj/structure/chair/wood{ + dir = 4 + }, +/obj/machinery/light/small/directional/north, +/obj/effect/landmark/start/chaplain, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/service/chapel/office) +"kvY" = ( +/mob/living/simple_animal/bot/floorbot, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/railing, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat_interior) +"kwa" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"kwh" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/delivery, +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"kwi" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp, +/turf/open/floor/carpet, +/area/station/medical/aslyum) +"kwk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating/airless, +/area/station/maintenance/port/upper) +"kwo" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/light/directional/east, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"kwr" = ( +/obj/machinery/keycard_auth/directional/east{ + pixel_y = -8 + }, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 4 + }, +/obj/item/radio/intercom/directional/east, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/command/heads_quarters/rd) +"kws" = ( +/obj/machinery/door/airlock{ + name = "Service Supply Closet" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) +"kwu" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/airalarm/directional/north{ + pixel_y = 22 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/science/xenobiology/control) +"kwv" = ( +/obj/structure/bed/double, +/obj/item/bedsheet/purple/double, +/obj/machinery/light_switch/directional/east, +/turf/open/floor/carpet/purple, +/area/station/commons/dorms/room4) +"kww" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"kwB" = ( +/obj/machinery/door/airlock/maintenance, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) +"kwD" = ( +/obj/effect/spawner/random/trash/mess, +/obj/structure/sign/warning/vacuum/external/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"kwE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/trash_pile, +/obj/machinery/light/small/directional/west, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/maintenance/thruster_room/central) +"kwF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/oil/streak, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"kwG" = ( +/obj/machinery/door/firedoor, +/obj/structure/table/reinforced, +/obj/item/folder/blue, +/obj/machinery/door/poddoor/preopen{ + id = "hopblast"; + name = "HoP Blast Door" + }, +/obj/machinery/door/window/brigdoor/left/directional/west{ + name = "Access Desk"; + req_access = list("hop") + }, +/obj/machinery/door/window/right/directional/east{ + name = "Access Desk" + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hop) +"kwM" = ( +/obj/structure/table/reinforced/rglass, +/obj/machinery/cell_charger, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/window/spawner/directional/west, +/obj/effect/turf_decal/tile/blue/fourcorners, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) +"kwN" = ( +/obj/machinery/door/firedoor, +/obj/machinery/conveyor{ + dir = 1; + id = "Luggagebelt" + }, +/turf/open/floor/plating, +/area/station/security/checkpoint) +"kwO" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/command/gateway) +"kwR" = ( +/turf/closed/wall, +/area/station/maintenance/department/medical/morgue) +"kwV" = ( +/obj/structure/table, +/obj/item/stack/sheet/iron/five, +/obj/item/stack/cable_coil/five, +/turf/open/floor/iron, +/area/station/commons/vacant_room/commissary) +"kxe" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/security/mechbay) +"kxk" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 8 + }, +/turf/open/floor/iron/smooth_edge, +/area/station/command/secure_bunker) +"kxn" = ( +/obj/structure/cable, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/command) +"kxo" = ( +/obj/structure/cable, +/obj/effect/turf_decal/caution/stand_clear{ + dir = 1 + }, +/obj/effect/turf_decal/stripes, +/turf/open/floor/iron/smooth_edge{ + dir = 8 + }, +/area/station/cargo/miningdock) +"kxq" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/command/gateway) +"kxy" = ( +/obj/structure/railing, +/turf/closed/wall, +/area/station/security/prison/upper) +"kxz" = ( +/obj/effect/turf_decal/delivery, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/storage) +"kxC" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/purple/filled/corner, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/spawner/random/trash/mess, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/white, +/area/station/science/tele_sci) +"kxD" = ( +/turf/open/floor/iron/dark/side{ + dir = 10 + }, +/area/station/service/hydroponics) +"kxH" = ( +/obj/item/cigbutt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"kxI" = ( +/obj/machinery/smartfridge/organ, +/turf/open/floor/iron/dark, +/area/station/science/cytology) +"kxK" = ( +/obj/effect/turf_decal/stripes, +/obj/machinery/atmospherics/pipe/smart/manifold/green/visible{ + dir = 1 + }, +/obj/machinery/meter, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"kxO" = ( +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/port) +"kxR" = ( +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_starboard) +"kxZ" = ( +/obj/effect/turf_decal/stripes{ + dir = 5 + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 5 + }, +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/engine, +/area/station/command/heads_quarters/rd) +"kya" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 8 + }, +/obj/machinery/newscaster/directional/north, +/obj/structure/table/reinforced, +/obj/item/flashlight/lamp, +/turf/open/floor/iron/white/smooth_corner, +/area/station/science/explab) +"kyb" = ( +/obj/structure/cable, +/obj/machinery/door/airlock/engineering{ + name = "Cargo Power Station" + }, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/turf/open/floor/plating, +/area/station/cargo/power_station/upper) +"kye" = ( +/obj/effect/turf_decal/stripes{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/circuit, +/area/station/command/gateway) +"kyr" = ( +/obj/machinery/computer/records/medical, +/obj/structure/cable, +/obj/effect/turf_decal/tile/blue/half/contrasted, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"kys" = ( +/obj/effect/turf_decal/tile/blue/fourcorners, +/obj/machinery/light/directional/east, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/patients_rooms) +"kyu" = ( +/obj/structure/chair/sofa/bench/right{ + dir = 8; + pixel_x = 5 + }, +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/stone, +/area/station/hallway/primary/central) +"kyB" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron/white/side, +/area/station/command/heads_quarters/ce) +"kyD" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"kyG" = ( +/obj/structure/table/wood, +/obj/item/food/pie/cream, +/turf/open/floor/wood/large, +/area/station/service/theater/abandoned) +"kyI" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "roboticsprivacy"; + name = "Robotics Shutters" + }, +/obj/item/folder, +/obj/item/folder, +/obj/item/folder, +/obj/item/pen, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/window/left/directional/east, +/obj/machinery/door/window/left/directional/west{ + name = "Robotics Desk"; + req_access = list("robotics") + }, +/turf/open/floor/iron/dark, +/area/station/science/robotics) +"kyS" = ( +/obj/structure/cable, +/obj/machinery/door/airlock/medical/glass{ + name = "Cryogenics" + }, +/obj/effect/mapping_helpers/airlock/access/all/medical/general, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning, +/turf/open/floor/iron/white, +/area/station/medical/cryo) +"kyV" = ( +/obj/machinery/light/directional/north, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/transit_tube) +"kyW" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/radio/intercom/directional/west, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"kzb" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/sign/poster/contraband/random/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"kzd" = ( +/obj/effect/turf_decal/trimline/blue/filled/corner, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 9 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"kze" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron/dark/side, +/area/station/security/lockers) +"kzh" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"kzi" = ( +/obj/machinery/vending/wardrobe/chef_wardrobe, +/obj/effect/turf_decal/bot, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) +"kzk" = ( +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/grass, +/area/station/common/night_club/back_stage) +"kzn" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"kzr" = ( +/obj/machinery/light/small/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"kzt" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/railing, +/obj/machinery/status_display/evac/directional/east, +/turf/open/floor/wood/tile, +/area/station/service/bar/atrium) +"kzx" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/machinery/light/directional/north, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/iron, +/area/station/security/execution/transfer) +"kzy" = ( +/obj/machinery/light/directional/north, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron, +/area/station/service/bar/backroom) +"kzz" = ( +/obj/machinery/light/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/command/bridge) +"kzA" = ( +/obj/effect/turf_decal/siding/purple/end{ + dir = 8 + }, +/turf/open/floor/glass/reinforced, +/area/station/science/research) +"kzG" = ( +/obj/structure/rack/shelf, +/obj/effect/turf_decal/bot, +/obj/item/storage/toolbox/mechanical, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/tcommsat/computer) +"kzH" = ( +/obj/structure/window/spawner/directional/north, +/obj/structure/table/reinforced, +/obj/machinery/computer/security/telescreen/minisat, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/engineering/transit_tube) +"kzI" = ( +/turf/open/floor/iron, +/area/station/science/xenobiology) +"kzN" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/command/meeting_room/council) +"kzQ" = ( +/obj/effect/turf_decal/stripes, +/obj/machinery/portable_atmospherics/canister/nitrogen, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/pumproom) +"kzS" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/construction, +/turf/open/floor/plating, +/area/station/construction/mining/aux_base) +"kzV" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/holopad, +/turf/open/floor/iron, +/area/station/security/checkpoint/medical) +"kAc" = ( +/obj/machinery/mech_bay_recharge_port, +/obj/effect/turf_decal/delivery/red, +/obj/machinery/light/directional/north, +/obj/structure/extinguisher_cabinet/directional/north, +/obj/effect/turf_decal/trimline/red/line, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_edge{ + dir = 1 + }, +/area/station/ai_monitored/security/armory) +"kAe" = ( +/obj/machinery/door/airlock/engineering{ + name = "Security Power Station" + }, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/any/security/hos, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/turf/open/floor/plating, +/area/station/security/power_station) +"kAh" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron/dark, +/area/station/security/office) +"kAi" = ( +/obj/machinery/door/firedoor, +/obj/machinery/firealarm/directional/south, +/obj/machinery/camera/directional/south, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/starboard) +"kAl" = ( +/obj/effect/spawner/structure/window/reinforced/tinted, +/turf/open/floor/plating, +/area/station/maintenance/department/security/prison_upper) +"kAm" = ( +/obj/structure/table/reinforced, +/obj/item/storage/box/deputy{ + pixel_y = 5 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/security/office) +"kAp" = ( +/obj/structure/showcase/machinery/cloning_pod{ + desc = "An old prototype cloning pod, permanently decommissioned following the incident."; + name = "decommissioned cloner" + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plating, +/area/station/medical/abandoned) +"kAu" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) +"kAy" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/science/research) +"kAE" = ( +/obj/machinery/pdapainter/supply, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/carpet/royalblack, +/area/station/command/heads_quarters/qm) +"kAG" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/lavendergrass, +/turf/open/floor/grass, +/area/station/service/hydroponics) +"kAM" = ( +/obj/effect/spawner/structure/window/reinforced/tinted, +/turf/open/floor/plating, +/area/station/medical/morgue) +"kAN" = ( +/obj/structure/window/spawner/directional/south, +/obj/structure/chair/sofa/right/brown{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"kAP" = ( +/obj/structure/chair/comfy/brown{ + color = "#c45c57"; + desc = "Remarkably soft, with plush cozy cushions, premium memory-foam and covered in stain-resistant fabric. Made by Kat-Kea???!"; + dir = 1; + name = "Premium Cozy Chair" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet/green, +/area/station/command/heads_quarters/nt_rep) +"kAU" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/wood, +/area/station/command/heads_quarters/blueshield) +"kAV" = ( +/obj/structure/railing, +/obj/structure/table/rolling, +/obj/item/key/atv{ + pixel_y = 4 + }, +/turf/open/floor/engine, +/area/station/cargo/miningdock) +"kAY" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/light/directional/south, +/obj/structure/sign/poster/random/directional/south, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"kBa" = ( +/obj/structure/cable, +/turf/open/floor/iron/dark/textured, +/area/station/common/cryopods) +"kBb" = ( +/obj/effect/turf_decal/trimline/white/line{ + dir = 1 + }, +/obj/structure/transit_tube/curved/flipped{ + dir = 8 + }, +/turf/open/floor/iron/shuttle/arrivals/airless, +/area/space/nearstation) +"kBg" = ( +/obj/structure/chair/plastic{ + dir = 8 + }, +/obj/machinery/light/small/broken/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/abandon_wrestle) +"kBo" = ( +/obj/structure/closet/secure_closet/personal, +/obj/item/storage/briefcase/secure, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron, +/area/station/commons/vacant_room/commissary) +"kBw" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/station/service/abandoned_gambling_den) +"kBG" = ( +/obj/structure/fans/tiny/forcefield, +/obj/machinery/light/directional/east, +/obj/machinery/camera/autoname/directional/east, +/turf/open/floor/plating, +/area/station/cargo/storage) +"kBM" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/red, +/area/station/service/library/abandoned) +"kBP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/turf_decal/bot, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"kBW" = ( +/obj/structure/chair/wood{ + dir = 1 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/wood, +/area/station/service/cafeteria) +"kCe" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/maintenance/department/engineering/atmos_aux_port) +"kCf" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/north, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"kCj" = ( +/turf/closed/wall, +/area/station/maintenance/abandon_arcade) +"kCk" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"kCs" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/effect/turf_decal/stripes, +/obj/structure/rack/shelf, +/obj/item/tank/jetpack/carbondioxide{ + pixel_x = -4 + }, +/obj/item/tank/jetpack/carbondioxide, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva/upper) +"kCt" = ( +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/carpet/blue, +/area/station/command/captain_dining) +"kCu" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"kCB" = ( +/turf/open/floor/iron/white/small, +/area/station/medical/break_room) +"kCI" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/mining{ + name = "Mining Office" + }, +/obj/effect/mapping_helpers/airlock/access/all/supply/mining, +/turf/open/floor/iron/dark, +/area/station/cargo/lobby) +"kCJ" = ( +/obj/structure/railing, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/duct, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood/large, +/area/station/common/night_club) +"kCV" = ( +/obj/effect/spawner/random/entertainment/arcade{ + dir = 4 + }, +/obj/structure/window/spawner/directional/west, +/turf/open/floor/eighties, +/area/station/maintenance/abandon_arcade) +"kDd" = ( +/obj/machinery/light/directional/west, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/wood/parquet, +/area/station/command/gateway) +"kDg" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/structure/railing{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/engineering/supermatter/room) +"kDi" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/growing/tray, +/obj/machinery/light/directional/north, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) +"kDo" = ( +/obj/structure/table, +/obj/item/storage/box/coffeepack/robusta{ + pixel_x = -6; + pixel_y = 16 + }, +/obj/item/storage/box/coffeepack/robusta{ + pixel_x = -6; + pixel_y = 12 + }, +/obj/item/storage/box/coffeepack{ + pixel_x = 8; + pixel_y = 18 + }, +/obj/item/storage/box/coffeepack{ + pixel_x = 8; + pixel_y = 14 + }, +/obj/item/reagent_containers/cup/glass/mug{ + pixel_x = 9; + pixel_y = -1 + }, +/obj/item/reagent_containers/cup/glass/mug{ + pixel_x = 1; + pixel_y = -1 + }, +/obj/item/reagent_containers/cup/glass/mug{ + pixel_x = -7; + pixel_y = -1 + }, +/obj/machinery/duct, +/turf/open/floor/iron/dark, +/area/station/service/cafeteria) +"kDv" = ( +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/supply/general, +/obj/machinery/door/airlock/mining{ + name = "Cargo Bay" + }, +/turf/open/floor/iron/smooth_corner{ + dir = 1 + }, +/area/station/cargo/miningdock) +"kDx" = ( +/obj/structure/window/spawner/directional/east, +/obj/structure/window/spawner/directional/north, +/obj/structure/flora/bush/fullgrass, +/obj/structure/flora/bush, +/turf/open/floor/grass, +/area/station/hallway/primary/central/aft) +"kDA" = ( +/obj/item/flashlight/flare/candle/infinite{ + pixel_x = 14; + pixel_y = -11 + }, +/turf/open/floor/material/meat, +/area/station/maintenance/department/science/xenobiology) +"kDH" = ( +/turf/open/floor/plating/airless, +/area/station/solars/starboard/aft) +"kDM" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/airalarm/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/dorms) +"kDN" = ( +/obj/item/kirbyplants/random, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/qm) +"kDP" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/light_switch/directional/south, +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/iron, +/area/station/maintenance/solars/starboard/fore) +"kDV" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/transit_tube/curved/flipped{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/aisat/exterior) +"kDW" = ( +/obj/machinery/light_switch/directional/south, +/obj/structure/extinguisher_cabinet/directional/east, +/obj/machinery/growing/tray, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"kEa" = ( +/obj/effect/turf_decal/arrows/white, +/turf/open/floor/engine, +/area/station/engineering/atmos/hfr_room) +"kEj" = ( +/obj/structure/flora/bush/sparsegrass, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/lavendergrass, +/obj/structure/window/spawner/directional/south, +/obj/structure/window/spawner/directional/north, +/obj/structure/window/spawner/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/grass, +/area/station/commons/dorms) +"kEr" = ( +/obj/structure/table/wood, +/obj/structure/window/spawner/directional/south, +/obj/structure/window/spawner/directional/west, +/obj/item/paper_bin{ + pixel_y = 3 + }, +/obj/item/pen{ + pixel_y = 3 + }, +/turf/open/floor/iron/dark, +/area/station/service/barber) +"kEs" = ( +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/effect/landmark/start/paramedic, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/medical/storage) +"kEv" = ( +/obj/structure/table/wood, +/obj/item/lipstick/random{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/lipstick/random{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/lipstick/random, +/turf/open/floor/iron, +/area/station/maintenance/clown_chamber) +"kEw" = ( +/obj/structure/cable, +/obj/structure/statue/sandstone/venus{ + layer = 3.1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/junction{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain) +"kED" = ( +/obj/structure/curtain/bounty, +/turf/open/floor/iron/stairs/old{ + dir = 8 + }, +/area/station/service/barber) +"kEI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/junction/flip{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"kEQ" = ( +/obj/structure/chair/sofa/corp/left{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple/half{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron/white/side{ + dir = 8 + }, +/area/station/science) +"kER" = ( +/obj/structure/flora/bush/jungle/a/style_3, +/obj/structure/flora/bush/flowers_br/style_2, +/obj/structure/window/fulltile, +/turf/open/floor/grass, +/area/station/hallway/primary/upper) +"kFd" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/mining{ + name = "Mining Office" + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/effect/mapping_helpers/airlock/access/any/supply/mining, +/turf/open/floor/iron/dark/small, +/area/station/cargo/miningoffice) +"kFn" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"kFt" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) +"kFv" = ( +/obj/structure/bed/double, +/obj/item/bedsheet/cmo/double, +/obj/machinery/light_switch/directional/east, +/turf/open/floor/carpet/blue, +/area/station/command/heads_quarters/cmo) +"kFL" = ( +/obj/structure/railing{ + dir = 10 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/maintenance/solars/port/fore) +"kFQ" = ( +/obj/structure/rack, +/obj/effect/spawner/random/entertainment/coin, +/obj/effect/spawner/random/entertainment/coin, +/turf/open/floor/plating, +/area/station/maintenance/central) +"kFV" = ( +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai) +"kGe" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_y = 3 + }, +/obj/item/pen{ + pixel_y = 3 + }, +/turf/open/floor/wood, +/area/station/security/prison/rec) +"kGh" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/abandon_wrestle) +"kGi" = ( +/turf/closed/wall, +/area/station/command/gateway) +"kGm" = ( +/obj/effect/turf_decal/stripes/red/line{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"kGp" = ( +/obj/machinery/light/directional/west, +/obj/structure/table, +/obj/machinery/chem_dispenser/drinks{ + dir = 4; + pixel_y = 2 + }, +/obj/effect/turf_decal/tile/bar/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/service/bar) +"kGs" = ( +/obj/machinery/door/airlock/research{ + name = "Artifact Research Lab" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/effect/mapping_helpers/airlock/access/all/science/general, +/turf/open/floor/iron/white/side, +/area/station/science/explab) +"kGt" = ( +/obj/machinery/vending/sustenance, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"kGx" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 10 + }, +/turf/open/floor/iron/white, +/area/station/medical/cryo) +"kGC" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/cargo/storage) +"kGE" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/ai) +"kGL" = ( +/obj/structure/rack/shelf, +/obj/effect/spawner/random/techstorage/engineering_all, +/obj/machinery/light/directional/south, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) +"kGM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/holopad, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/service/chapel/office) +"kGX" = ( +/obj/effect/spawner/random/trash/graffiti, +/obj/item/reagent_containers/syringe/contraband/fentanyl, +/turf/open/floor/plating, +/area/station/medical/patients_rooms) +"kHg" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/machinery/light/directional/west, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"kHj" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/structure/closet/secure_closet/security/med, +/turf/open/floor/iron, +/area/station/security/checkpoint/medical) +"kHl" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) +"kHp" = ( +/obj/effect/turf_decal/bot_white, +/obj/machinery/portable_atmospherics/scrubber/huge, +/obj/machinery/light/directional/south, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/storage) +"kHq" = ( +/obj/effect/turf_decal/tile/red/real_red/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/common/laser_tag) +"kHt" = ( +/obj/structure/cable, +/turf/open/floor/cult, +/area/station/maintenance/cult_chapel_maint) +"kHv" = ( +/obj/machinery/smartfridge/chemistry/preloaded, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "chemisttop"; + name = "Chemistry Lobby Shutters" + }, +/turf/open/floor/iron/white, +/area/station/medical/pharmacy) +"kHw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"kHB" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/eighties/red, +/area/station/common/arcade) +"kHF" = ( +/obj/effect/spawner/random/trash/moisture_trap, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/bar) +"kHG" = ( +/obj/effect/decal/cleanable/blood/gibs/old, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"kHM" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/closet/secure_closet/brig{ + id = "Cell 5"; + name = "Cell 5 Locker" + }, +/obj/machinery/light/small/directional/west, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/security/brig) +"kHO" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/vg_decals/numbers/five, +/obj/machinery/door/window/brigdoor/security/cell/right/directional/east{ + name = "Cell 5" + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/brig) +"kHP" = ( +/obj/machinery/power/terminal, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/stripes, +/turf/open/floor/iron/dark, +/area/station/science/power_station) +"kHV" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/machinery/light/directional/west, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/commons/toilet/restrooms) +"kIi" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"kIk" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/power/energy_accumulator/tesla_coil, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/storage) +"kIp" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/obj/effect/turf_decal/trimline/green/filled/corner{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/medical/virology) +"kIz" = ( +/obj/item/food/cheese/wedge, +/turf/open/misc/sandy_dirt, +/area/station/maintenance/department/medical) +"kIB" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"kIH" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/security/prison/work) +"kII" = ( +/obj/structure/sign/directions/security{ + dir = 8; + pixel_y = 8 + }, +/obj/structure/sign/directions/engineering{ + dir = 8; + pixel_y = 2 + }, +/obj/structure/sign/directions/supply{ + dir = 8; + pixel_y = -4 + }, +/obj/structure/sign/directions/evac{ + dir = 1; + pixel_y = -10 + }, +/turf/closed/wall/r_wall, +/area/station/command/meeting_room/council) +"kIK" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/vg_decals/numbers/two, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"kIL" = ( +/obj/structure/closet/secure_closet/armory_kiboko, +/obj/effect/turf_decal/bot, +/obj/machinery/light_switch/directional/north, +/obj/effect/turf_decal/trimline/red/line, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_edge{ + dir = 1 + }, +/area/station/ai_monitored/security/armory) +"kJm" = ( +/obj/effect/decal/cleanable/cobweb, +/obj/structure/safe/floor{ + name = "obvious safe" + }, +/obj/item/gun/energy/disabler, +/obj/item/book/granter/crafting_recipe/maint_gun/smoothbore_disabler_prime, +/turf/open/floor/plating, +/area/station/maintenance/abandon_wrestle) +"kJr" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/structure/extinguisher_cabinet/directional/south, +/obj/structure/cable, +/obj/machinery/light/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/commons/dorms) +"kJs" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"kJB" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"kJQ" = ( +/obj/machinery/modular_computer/preset/command, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"kJX" = ( +/obj/structure/easel, +/obj/item/canvas/twentythree_twentythree{ + pixel_x = 3 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light_switch/directional/north, +/turf/open/floor/carpet/red, +/area/station/service/library/abandoned) +"kKb" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/camera/directional/east{ + c_tag = "Dorm Hallway - Fore Port"; + dir = 8; + name = "hallway camera" + }, +/obj/structure/cable, +/obj/machinery/light/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/dorms) +"kKk" = ( +/obj/structure/door_assembly/door_assembly_sec, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"kKm" = ( +/obj/machinery/door/airlock/external{ + name = "Arrivals Dock"; + space_dir = 4 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/hallway/secondary/entry) +"kKp" = ( +/obj/item/kirbyplants/random, +/obj/machinery/airalarm/directional/west, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/commons/toilet/restrooms) +"kKB" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/obj/effect/landmark/start/scientist, +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron/white, +/area/station/science/lab) +"kKC" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"kKD" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/effect/landmark/generic_maintenance_landmark, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/wood, +/area/station/service/hydroponics/garden/abandoned) +"kKG" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/newscaster/directional/north, +/obj/machinery/light/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/vg_decals/numbers/two, +/obj/machinery/camera/autoname/directional/north, +/turf/open/floor/iron, +/area/station/commons/dorms) +"kKI" = ( +/obj/machinery/door/airlock/hatch{ + name = "MiniSat Space Access Airlock" + }, +/obj/effect/mapping_helpers/airlock/access/any/command/general, +/obj/effect/mapping_helpers/airlock/access/any/engineering/construction, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "AIsatAirlock" + }, +/turf/open/floor/plating, +/area/station/ai_monitored/aisat/exterior) +"kKN" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/security/checkpoint/engineering) +"kKQ" = ( +/obj/machinery/power/port_gen/pacman/pre_loaded, +/obj/structure/window/spawner/directional/west, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"kKR" = ( +/obj/effect/turf_decal/stripes, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Xenobio Containment"; + name = "Xenobiology Containment Shutters" + }, +/obj/machinery/button/door{ + id = "Xenobio Containment"; + name = "Xenobiology Containment Shutters"; + pixel_x = -32; + req_access = list("research") + }, +/turf/open/floor/iron, +/area/station/science/xenobiology/hallway) +"kKZ" = ( +/obj/machinery/light/small/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"kLd" = ( +/obj/structure/table, +/obj/item/retractor, +/obj/item/scalpel, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/iron/dark, +/area/station/maintenance/abandon_exam/cat) +"kLf" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/pdapainter/engineering, +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ + dir = 8 + }, +/obj/machinery/airalarm/directional/south, +/turf/open/floor/iron/white/corner{ + dir = 4 + }, +/area/station/command/heads_quarters/ce) +"kLg" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/science/xenobiology/control) +"kLj" = ( +/turf/open/floor/iron/chapel, +/area/station/service/chapel) +"kLm" = ( +/obj/structure/rack, +/obj/item/clothing/suit/hazardvest, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"kLp" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/curtain/cloth/fancy/mechanical{ + icon_state = "bounty-open"; + icon_type = "bounty"; + id = "dormscurtain6"; + name = "curtain" + }, +/turf/open/floor/plating, +/area/station/commons/dorms/room5) +"kLq" = ( +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/hallway/primary/port) +"kLr" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"kLy" = ( +/obj/machinery/computer/order_console/cook, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) +"kLH" = ( +/obj/structure/chair/stool/directional/north, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) +"kLP" = ( +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/virology) +"kLQ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/stone, +/area/station/common/wrestling/arena) +"kLR" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium, +/area/station/maintenance/cult_chapel_maint) +"kLU" = ( +/obj/structure/table/reinforced, +/obj/machinery/ecto_sniffer{ + pixel_x = 6; + pixel_y = 4 + }, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/cell/high, +/obj/machinery/newscaster/directional/north, +/obj/machinery/light_switch/directional/west, +/obj/machinery/light/directional/north, +/turf/open/floor/mineral/plastitanium/red, +/area/station/science/robotics/lab) +"kLV" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"kMb" = ( +/obj/machinery/light_switch/directional/south, +/turf/open/floor/wood, +/area/station/medical/exam_room) +"kMc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/carpet, +/area/station/commons/dorms/vacantroom) +"kMk" = ( +/obj/structure/chair/wood{ + dir = 4; + name = "Judge's Associate" + }, +/obj/machinery/light/directional/west, +/obj/machinery/status_display/evac/directional/west, +/turf/open/floor/wood, +/area/station/security/courtroom) +"kMm" = ( +/obj/effect/spawner/random/maintenance, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/port/aft) +"kMr" = ( +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/entry) +"kMu" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) +"kMy" = ( +/obj/structure/chair/pew{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/security/courtroom) +"kMz" = ( +/obj/structure/table/wood, +/obj/item/instrument/guitar{ + pixel_x = -7 + }, +/obj/item/instrument/eguitar{ + pixel_x = 5 + }, +/obj/item/instrument/violin, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"kME" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/start/hangover, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"kMF" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/iron/dark, +/area/station/cargo/warehouse) +"kMG" = ( +/obj/structure/displaycase/trophy, +/turf/open/floor/wood, +/area/station/service/library) +"kMJ" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/contraband/narcotics, +/turf/open/floor/iron/cafeteria, +/area/station/maintenance/department/medical/central) +"kMK" = ( +/obj/effect/turf_decal/trimline/purple/filled/corner, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron/white, +/area/station/science/research) +"kMT" = ( +/obj/machinery/requests_console/directional/north{ + department = "Kitchen"; + name = "Kitchen Requests Console" + }, +/obj/effect/landmark/start/cook, +/obj/machinery/duct, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) +"kMX" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/maintenance, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"kMY" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/commons/dorms) +"kNe" = ( +/obj/machinery/door/airlock{ + name = "Janitorial Closet" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/port) +"kNf" = ( +/turf/closed/wall/rust, +/area/station/science/research/abandoned) +"kNq" = ( +/obj/effect/spawner/structure/window, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/hallway/secondary/service) +"kNy" = ( +/obj/structure/chair/sofa/bench/right{ + dir = 4; + pixel_x = -5 + }, +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/wood, +/area/station/service/barber) +"kNR" = ( +/obj/structure/table, +/obj/item/folder/red, +/obj/item/pen, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/light/directional/north, +/obj/machinery/status_display/evac/directional/north, +/turf/open/floor/iron, +/area/station/security/checkpoint/escape) +"kNV" = ( +/obj/structure/closet/crate/trashcart, +/obj/item/storage/bag/trash, +/obj/effect/turf_decal/siding/purple{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/service/janitor) +"kNX" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/trunk, +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/iron, +/area/station/engineering/atmos/office) +"kNY" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/security/lesser) +"kOd" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/stone, +/area/station/common/wrestling/arena) +"kOg" = ( +/obj/structure/table, +/obj/item/storage/medkit/regular, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/security/checkpoint/medical) +"kOo" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/reagent_dispensers/water_cooler, +/obj/machinery/button/door/directional/west{ + id = "Dorm10"; + name = "Spa Door Lock"; + normaldoorcontrol = 1; + specialfunctions = 4 + }, +/obj/machinery/light/directional/west, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/carpet/black, +/area/station/service/barber) +"kOs" = ( +/obj/structure/chair/office{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/security/prison/rec) +"kOu" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "roboticsurgery"; + name = "Robotics Surgery Privacy Shutters" + }, +/turf/open/floor/plating, +/area/station/science/robotics) +"kOx" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain/private) +"kOB" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron/smooth, +/area/station/cargo/miningdock) +"kOD" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood/large, +/area/station/common/night_club) +"kOM" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 9 + }, +/obj/machinery/telecomms/bus/preset_one, +/turf/open/floor/iron/white/telecomms, +/area/station/tcommsat/server) +"kOW" = ( +/obj/machinery/light/small/directional/south, +/obj/item/stack/sheet/cardboard, +/turf/open/floor/plating, +/area/station/maintenance/port/central) +"kPf" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"kPg" = ( +/turf/open/floor/iron/dark/small, +/area/station/cargo/storage) +"kPo" = ( +/obj/structure/cable, +/obj/item/kirbyplants/random, +/turf/open/floor/wood, +/area/station/hallway/primary/port) +"kPr" = ( +/obj/structure/table/wood, +/obj/structure/window/spawner/directional/north, +/obj/machinery/computer/libraryconsole/bookmanagement, +/turf/open/floor/wood, +/area/station/service/library) +"kPw" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/eighties, +/area/station/maintenance/abandon_arcade) +"kPx" = ( +/obj/machinery/door/airlock/atmos/glass{ + name = "Atmospherics Test Chambers" + }, +/obj/machinery/door/firedoor/heavy, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/test_chambers) +"kPy" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/closet/secure_closet/personal, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron, +/area/station/science/breakroom) +"kPK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/medical/coldroom) +"kQd" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/research) +"kQe" = ( +/obj/item/bodypart/arm/left, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating, +/area/station/medical/patients_rooms) +"kQh" = ( +/obj/machinery/air_sensor/mix_tank, +/turf/open/floor/engine/vacuum, +/area/station/engineering/atmos) +"kQl" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/effect/turf_decal/tile/red/real_red/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hos) +"kQo" = ( +/obj/machinery/door/airlock/medical{ + name = "Abandoned Storage" + }, +/obj/effect/mapping_helpers/airlock/abandoned, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/medical/general, +/turf/open/floor/iron/white/side{ + dir = 1 + }, +/area/station/medical/abandoned) +"kQp" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hall22"; + location = "hall21" + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"kQq" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/chair/sofa/bench/right{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"kQs" = ( +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/department/science/upper) +"kQt" = ( +/obj/structure/table/reinforced, +/obj/item/clipboard, +/obj/item/paper/monitorkey, +/obj/item/toy/figure/ce, +/obj/item/flashlight/lamp{ + pixel_x = 16; + pixel_y = 11 + }, +/obj/effect/turf_decal/tile/yellow/full, +/turf/open/floor/iron/large, +/area/station/command/heads_quarters/ce) +"kQu" = ( +/obj/machinery/door/airlock/engineering/glass/critical{ + heat_proof = 1; + name = "Supermatter Chamber" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/airlock/access/all/engineering/general, +/turf/open/floor/engine, +/area/station/engineering/supermatter) +"kQz" = ( +/obj/machinery/light/small/directional/east{ + pixel_y = 11 + }, +/obj/machinery/duct, +/turf/open/floor/iron/freezer, +/area/station/commons/dorms/room8) +"kQH" = ( +/obj/effect/turf_decal/bot_white, +/obj/machinery/power/tracker, +/obj/structure/cable, +/turf/open/floor/plating/airless, +/area/station/solars/starboard/fore) +"kQJ" = ( +/obj/item/kirbyplants/random, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/north, +/turf/open/floor/carpet, +/area/station/service/library/printer) +"kQL" = ( +/obj/structure/window/spawner/directional/east, +/obj/structure/window/spawner/directional/south, +/obj/structure/window/spawner/directional/north, +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/flowers_yw, +/turf/open/floor/grass, +/area/station/cargo/lobby) +"kQO" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"kQQ" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/radio/intercom/directional/east, +/obj/structure/cable, +/obj/machinery/light/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/dorms) +"kQT" = ( +/obj/structure/chair/sofa/left/brown{ + dir = 1 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/carpet, +/area/station/common/wrestling/lobby) +"kRo" = ( +/obj/item/stack/rods/ten, +/obj/effect/turf_decal/tile/neutral/half/contrasted, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"kRp" = ( +/turf/open/floor/wood, +/area/station/medical/psychology) +"kRr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"kRw" = ( +/obj/effect/turf_decal/tile/blue/half{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue/half{ + dir = 4 + }, +/obj/machinery/light/floor/has_bulb, +/turf/open/floor/iron/dark/smooth_large/airless, +/area/space/nearstation) +"kRF" = ( +/obj/structure/chair/sofa/bench{ + dir = 4; + pixel_x = -5 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/secondary/entry) +"kRM" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/item/storage/toolbox/mechanical{ + pixel_y = 7 + }, +/obj/item/storage/toolbox/mechanical, +/obj/item/flashlight, +/obj/item/flashlight, +/turf/open/floor/iron/dark, +/area/station/commons/storage/primary) +"kRU" = ( +/obj/item/kirbyplants/organic/plant22, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron/dark, +/area/station/security/office) +"kSe" = ( +/turf/closed/wall/r_wall, +/area/station/ai_monitored/aisat/exterior) +"kSf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/duct, +/obj/effect/landmark/start/hangover, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"kSg" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/clothing/mask/breath, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"kSh" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/machinery/camera/directional/east{ + c_tag = "Law Office" + }, +/turf/open/floor/wood, +/area/station/service/lawoffice) +"kSl" = ( +/obj/effect/turf_decal/siding/purple/end{ + dir = 4 + }, +/turf/open/floor/glass/reinforced, +/area/station/science/research) +"kSn" = ( +/obj/machinery/vending/cigarette, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/iron/dark, +/area/station/service/bar/atrium) +"kSr" = ( +/obj/structure/sign/warning/vacuum/external/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) +"kSt" = ( +/obj/machinery/power/shuttle_engine/heater{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"kSC" = ( +/obj/machinery/recycler{ + dir = 8 + }, +/obj/machinery/conveyor{ + dir = 4; + id = "garbage" + }, +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/disposal) +"kSS" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/port) +"kSW" = ( +/obj/structure/rack/shelf, +/turf/open/floor/wood/parquet, +/area/station/common/gaskiosk) +"kTb" = ( +/turf/closed/wall, +/area/station/commons/storage/art) +"kTc" = ( +/obj/structure/table/wood, +/obj/machinery/computer/records/medical/laptop, +/turf/open/floor/carpet, +/area/station/medical/psychology) +"kTi" = ( +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ + dir = 10 + }, +/turf/open/floor/iron, +/area/station/science/ordnance) +"kTj" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing{ + dir = 6 + }, +/turf/open/space/basic, +/area/space/nearstation) +"kTl" = ( +/obj/machinery/camera/autoname/directional/north{ + c_tag = "Engineering - Supermatter"; + name = "engineering camera" + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter) +"kTo" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"kTq" = ( +/obj/effect/turf_decal/bot_white, +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/iron/dark/small, +/area/station/maintenance/starboard/fore) +"kTw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"kTK" = ( +/obj/machinery/camera/directional/south{ + c_tag = "Security - Brig Far Port"; + dir = 1 + }, +/obj/machinery/light/directional/north, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/structure/sign/departments/medbay/alt/directional/north, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/line, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/brig) +"kTV" = ( +/turf/closed/wall, +/area/station/common/cryopods) +"kUg" = ( +/obj/machinery/deepfryer, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/white/side, +/area/station/maintenance/abandon_diner) +"kUo" = ( +/obj/structure/cable, +/obj/effect/spawner/random/structure/steam_vent, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"kUp" = ( +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/science/ordnance) +"kUx" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/hallway/primary/central) +"kUy" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/turf_decal/trimline/red, +/turf/open/floor/iron/dark/small, +/area/station/security/prison/upper) +"kUD" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/nestbox, +/turf/open/floor/grass, +/area/station/common/night_club/back_stage) +"kUJ" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/stripes{ + dir = 5 + }, +/obj/item/assembly/timer{ + pixel_x = 5; + pixel_y = 4 + }, +/obj/item/assembly/timer{ + pixel_x = -4; + pixel_y = 2 + }, +/obj/item/assembly/timer{ + pixel_x = 6; + pixel_y = -4 + }, +/obj/item/assembly/timer, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) +"kUL" = ( +/obj/structure/trash_pile, +/obj/structure/railing, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"kUO" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"kUZ" = ( +/obj/machinery/rnd/production/circuit_imprinter, +/obj/effect/turf_decal/bot, +/obj/machinery/firealarm/directional/south, +/obj/machinery/camera/directional/south, +/turf/open/floor/iron/dark, +/area/station/engineering/storage_shared) +"kVa" = ( +/obj/machinery/computer/operating{ + dir = 1 + }, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/iron, +/area/station/medical/surgery) +"kVb" = ( +/obj/structure/cable, +/obj/effect/landmark/start/hangover, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/bar) +"kVc" = ( +/obj/structure/closet/crate/freezer/blood, +/turf/open/floor/iron/white, +/area/station/medical/coldroom) +"kVJ" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4 + }, +/obj/machinery/airlock_sensor/incinerator_ordmix{ + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/layer_manifold/supply/hidden, +/turf/open/floor/engine, +/area/station/science/ordnance/burnchamber) +"kVN" = ( +/obj/machinery/light/directional/east, +/obj/effect/turf_decal/trimline/red/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + color = "#DE3A3A"; + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/prison/upper) +"kWb" = ( +/turf/closed/wall/r_wall, +/area/station/ai_monitored/turret_protected/aisat/hallway) +"kWe" = ( +/obj/structure/grille, +/obj/structure/barricade/wooden, +/turf/open/floor/plating, +/area/station/service/hydroponics/garden/abandoned) +"kWs" = ( +/obj/docking_port/stationary{ + dir = 8; + dwidth = 2; + height = 5; + name = "fore bay 1"; + roundstart_template = /datum/map_template/shuttle/labour/nova; + shuttle_id = "laborcamp_home"; + width = 9 + }, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"kWu" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/landmark/start/botanist{ + required_jobtitle = "Rancher" + }, +/turf/open/floor/wood/large, +/area/station/common/night_club) +"kWy" = ( +/obj/structure/window/spawner/directional/west, +/obj/structure/sign/painting/large/library{ + pixel_y = -36 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/service/library) +"kWA" = ( +/obj/machinery/firealarm/directional/east, +/obj/structure/extinguisher_cabinet/directional/east{ + pixel_x = 34 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/stairs, +/area/station/ai_monitored/command/storage/eva) +"kWH" = ( +/obj/item/stack/sheet/cardboard, +/turf/open/floor/plating, +/area/station/maintenance/department/security/lesser) +"kWI" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible, +/obj/machinery/atmospherics/pipe/smart/simple/violet/visible/layer2, +/turf/open/space/basic, +/area/space/nearstation) +"kWL" = ( +/obj/effect/turf_decal/siding/dark{ + dir = 5 + }, +/turf/open/floor/glass/reinforced/airless, +/area/space/nearstation) +"kWO" = ( +/obj/structure/cable, +/obj/machinery/power/solar{ + id = "aftstarboard"; + name = "Aft-Starboard Solar Array" + }, +/turf/open/floor/iron/solarpanel/airless, +/area/station/solars/starboard/aft) +"kWS" = ( +/obj/structure/closet/cardboard, +/obj/effect/spawner/random/maintenance/two, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"kXd" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood/large, +/area/station/common/night_club) +"kXe" = ( +/obj/machinery/door/airlock/security{ + name = "Armory" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/security/armory, +/turf/open/floor/iron/dark/side, +/area/station/ai_monitored/security/armory) +"kXl" = ( +/obj/structure/rack/shelf, +/obj/effect/spawner/random/techstorage/medical_all, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) +"kXm" = ( +/obj/structure/rack/shelf, +/obj/effect/spawner/random/techstorage/service_all, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) +"kXo" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/window/right/directional/north{ + name = "Ordnance Freezer Chamber Access" + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) +"kXs" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"kXv" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"kXw" = ( +/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"kXG" = ( +/obj/item/screwdriver, +/obj/item/clothing/glasses/welding, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"kXM" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/security/checkpoint/science/research) +"kXP" = ( +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/iron/white/corner{ + dir = 4 + }, +/area/station/hallway/secondary/entry) +"kXV" = ( +/obj/structure/cable, +/obj/machinery/duct, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/science/xenobiology) +"kXY" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plating, +/area/station/maintenance/department/security/lesser) +"kXZ" = ( +/obj/structure/chair/comfy{ + dir = 1 + }, +/obj/effect/landmark/start/scientist, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/turf/open/floor/carpet/purple, +/area/station/science/breakroom) +"kYe" = ( +/obj/effect/turf_decal/stripes{ + dir = 10 + }, +/obj/machinery/atmospherics/components/binary/pump/on{ + name = "Waste to Filter" + }, +/turf/open/floor/iron/smooth, +/area/station/engineering/atmos/pumproom) +"kYf" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/broken/directional/east, +/obj/structure/cable, +/turf/open/floor/carpet, +/area/station/maintenance/abandon_psych) +"kYj" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Departures Lounge" + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"kYk" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/eighties/red, +/area/station/common/arcade) +"kYo" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/table, +/obj/item/folder/red, +/obj/item/stamp/denied{ + pixel_y = 5 + }, +/obj/item/stamp, +/obj/item/reagent_containers/spray/pepper{ + pixel_x = 14 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"kYw" = ( +/obj/machinery/light_switch/directional/south, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/commons/toilet/restrooms) +"kYx" = ( +/obj/structure/window/reinforced/shuttle, +/turf/open/floor/plating/reinforced{ + initial_gas_mix = "TEMP=2.7" + }, +/area/station/science/ordnance/bomb) +"kYy" = ( +/obj/structure/table, +/obj/effect/turf_decal/stripes{ + dir = 5 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 10 + }, +/obj/item/paper_bin{ + pixel_y = 3 + }, +/obj/item/paper_bin{ + pixel_y = 3 + }, +/obj/item/pen{ + pixel_y = 3 + }, +/turf/open/floor/iron/dark, +/area/station/science/genetics) +"kYB" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/junction/flip{ + dir = 1 + }, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"kYI" = ( +/obj/machinery/atmospherics/pipe/smart/simple/violet/visible/layer2{ + dir = 6 + }, +/turf/open/space/basic, +/area/space/nearstation) +"kYN" = ( +/obj/structure/table/wood/poker, +/obj/item/toy/cards/deck, +/turf/open/floor/plating, +/area/station/service/abandoned_gambling_den) +"kYP" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/bookcase/random, +/turf/open/floor/wood, +/area/station/medical/patients_rooms) +"kYW" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"kYZ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1; + name = "Server Vent" + }, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/circuit/telecomms, +/area/station/science/server) +"kZc" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/structure/cable, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/range) +"kZg" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/port/aft) +"kZi" = ( +/obj/effect/turf_decal/siding/wideplating/dark, +/obj/machinery/door/airlock/grunge{ + name = "Nerd Room" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/service/library/lounge) +"kZp" = ( +/turf/open/floor/iron/dark/herringbone, +/area/station/security/brig) +"kZq" = ( +/obj/machinery/corral_corner{ + mapping_id = "6" + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"kZs" = ( +/turf/open/floor/iron/smooth_large, +/area/station/command/secure_bunker) +"kZx" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/turf/open/space/basic, +/area/space/nearstation) +"kZA" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command/glass{ + name = "Bridge Access" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "bridge-enterance-west" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/navigate_destination, +/obj/effect/mapping_helpers/airlock/access/all/command/general, +/obj/machinery/duct, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/command) +"kZB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/maintenance/aft/upper) +"kZK" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/vending/robotics, +/obj/machinery/light/directional/north, +/obj/item/radio/intercom/directional/west, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/iron/dark, +/area/station/science/robotics/mechbay) +"kZZ" = ( +/obj/structure/bed, +/obj/item/clothing/suit/jacket/straight_jacket, +/obj/item/clothing/glasses/blindfold, +/obj/item/clothing/mask/muzzle, +/turf/open/floor/iron/dark, +/area/station/security/courtroom) +"laa" = ( +/obj/structure/showcase/cyborg/old{ + dir = 4; + pixel_x = -9; + pixel_y = 2 + }, +/obj/structure/railing, +/obj/machinery/light/directional/west, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/aisat/exterior) +"lad" = ( +/obj/structure/table/wood, +/obj/item/crowbar/red, +/obj/item/book/manual/wiki/security_space_law{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/book/manual/wiki/detective, +/obj/item/camera/detective, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/grimy, +/area/station/security/detectives_office/private_investigators_office) +"laf" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"lap" = ( +/obj/machinery/slime_market_pad, +/turf/open/floor/iron, +/area/station/science/xenobiology) +"lar" = ( +/obj/effect/turf_decal/stripes/end{ + dir = 8 + }, +/obj/structure/cable/multilayer/multiz, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"lat" = ( +/obj/effect/spawner/random/trash/graffiti, +/turf/closed/wall/rust, +/area/station/cargo/miningdock) +"laB" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"laC" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/common/laser_tag) +"laD" = ( +/obj/structure/table, +/obj/item/book/manual/wiki/cooking_to_serve_man, +/obj/item/book/manual/wiki/cooking_to_serve_man, +/obj/item/holosign_creator/robot_seat/restaurant, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) +"laI" = ( +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/maintenance/disposal/incinerator) +"laN" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"laT" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Ward Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/medical/psychology, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"laU" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/machinery/camera/directional/west{ + c_tag = "Engineering - Supermatter Room"; + name = "engineering camera" + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"laX" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"lbi" = ( +/obj/structure/table, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 5 + }, +/obj/structure/extinguisher_cabinet/directional/east, +/obj/item/storage/toolbox/mechanical{ + pixel_y = 5; + pixel_x = 5 + }, +/obj/item/storage/toolbox/mechanical, +/turf/open/floor/iron/white, +/area/station/science/lab) +"lbm" = ( +/turf/open/openspace, +/area/station/service/barber) +"lbn" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Central Hallway" + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/primary/central/aft) +"lbp" = ( +/obj/structure/rack, +/obj/item/card/id/advanced/prisoner, +/obj/effect/turf_decal/bot, +/obj/effect/spawner/random/contraband/prison, +/obj/machinery/light/small/directional/south, +/turf/open/floor/iron, +/area/station/maintenance/abandon_holding_cell) +"lbq" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/obj/effect/turf_decal/siding/purple{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/command/heads_quarters/rd) +"lbr" = ( +/obj/effect/spawner/random/trash/mess, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"lbu" = ( +/obj/effect/spawner/random/trash/mess, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"lbz" = ( +/obj/structure/chair/pew/right{ + dir = 8 + }, +/obj/effect/mapping_helpers/airalarm/all_access, +/obj/machinery/airalarm/directional/south, +/turf/open/floor/wood, +/area/station/common/pool/sauna) +"lbA" = ( +/turf/closed/wall/rust, +/area/station/maintenance/aft/upper) +"lbB" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/cargo/lobby) +"lbC" = ( +/obj/machinery/door/poddoor/atmos_test_room_mainvent_2, +/turf/open/floor/engine/vacuum, +/area/station/engineering/atmos/test_chambers) +"lbD" = ( +/obj/structure/table, +/obj/item/reagent_containers/cup/bottle/epinephrine{ + pixel_x = -4; + pixel_y = 12 + }, +/obj/item/reagent_containers/cup/bottle/multiver{ + pixel_x = 7; + pixel_y = 12 + }, +/obj/item/reagent_containers/cup/beaker/large, +/obj/item/reagent_containers/cup/beaker{ + pixel_x = 8; + pixel_y = 2 + }, +/obj/item/reagent_containers/dropper, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"lbK" = ( +/obj/effect/decal/cleanable/glass, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"lbP" = ( +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "Psychward4"; + name = "Control Room Shutters"; + pixel_x = 6; + pixel_y = 8 + }, +/obj/machinery/button/door{ + id = "Psychward3"; + name = "Cell Door 3"; + pixel_x = 6; + pixel_y = -3 + }, +/obj/machinery/button/door{ + id = "Psychward2"; + name = "Cell Door 2"; + pixel_x = -6; + pixel_y = -3 + }, +/obj/machinery/button/door{ + id = "Psychward1"; + name = "Cell Door 1"; + pixel_x = -6; + pixel_y = 8 + }, +/turf/open/floor/iron, +/area/station/medical/psychology) +"lbR" = ( +/obj/effect/turf_decal/bot, +/obj/structure/safe{ + name = "horrible safe" + }, +/obj/item/pneumatic_cannon/pie/selfcharge, +/turf/open/floor/noslip, +/area/station/maintenance/gag_room) +"lbY" = ( +/obj/structure/flora/bush/flowers_br, +/mob/living/carbon/human/species/monkey, +/turf/open/floor/grass, +/area/station/science/genetics) +"lbZ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen/diner) +"lcd" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"lce" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/item/stack/cable_coil, +/obj/item/wirecutters, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"lcj" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_y = 3 + }, +/obj/effect/turf_decal/tile/red/anticorner/contrasted{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/security/checkpoint/escape) +"lck" = ( +/obj/machinery/newscaster/directional/north, +/obj/structure/extinguisher_cabinet/directional/east, +/obj/machinery/light/directional/north, +/obj/machinery/vending/wardrobe/bar_wardrobe, +/obj/effect/turf_decal/tile/bar/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/service/bar) +"lcm" = ( +/obj/effect/turf_decal/stripes{ + dir = 9 + }, +/turf/open/floor/plating, +/area/station/cargo/storage) +"lco" = ( +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) +"lct" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/common/wrestling/arena) +"lcu" = ( +/obj/structure/window/reinforced/plasma/spawner/directional/east, +/obj/machinery/power/shuttle_engine/heater{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"lcv" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/vehicle/ridden/wheelchair, +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/exit/departure_lounge) +"lcw" = ( +/obj/structure/girder, +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"lcA" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"lcB" = ( +/turf/open/floor/iron/stairs{ + dir = 1 + }, +/area/station/engineering/atmos/hfr_room) +"lcD" = ( +/obj/structure/lattice, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/space/basic, +/area/space/nearstation) +"lcE" = ( +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/service/library) +"lcG" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain/private) +"lcJ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hall6"; + location = "hall5" + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"lcN" = ( +/obj/structure/table/reinforced/rglass, +/obj/item/storage/box/beakers{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/reagent_containers/cup/beaker/large, +/obj/item/reagent_containers/dropper, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/medical/pharmacy) +"lcO" = ( +/obj/machinery/disposal/bin, +/obj/machinery/newscaster/directional/east, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/station/service/theater) +"lcR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/security/prison/upper) +"lcS" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"lcT" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) +"lcX" = ( +/turf/closed/wall, +/area/station/common/gaskiosk) +"ldb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/start/hangover, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"ldt" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/spawner/random/trash/box, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"ldA" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/engineering/transit_tube) +"ldC" = ( +/obj/machinery/camera/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/engineering/atmos/test_chambers) +"ldD" = ( +/obj/machinery/door/poddoor/shutters{ + id = "AbandonedMech" + }, +/obj/machinery/button/door/directional/south{ + id = "AbandonedMech"; + name = "Mech Storage Shutters" + }, +/turf/open/floor/plating, +/area/station/science/research/abandoned) +"ldF" = ( +/obj/effect/spawner/random/trash/graffiti, +/turf/closed/wall/r_wall, +/area/station/maintenance/starboard/fore) +"ldH" = ( +/obj/machinery/door/firedoor, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/iron, +/area/station/hallway/secondary/command) +"ldL" = ( +/obj/structure/window/spawner/directional/east, +/obj/structure/chair/sofa/corp/left{ + color = "#DE3A3A"; + dir = 8 + }, +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen/diner) +"ldP" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/siding/wood, +/obj/machinery/door/airlock/command{ + name = "Quartermaster's Office" + }, +/obj/effect/mapping_helpers/airlock/access/all/supply/qm, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/qm) +"lec" = ( +/turf/closed/wall/rust, +/area/station/service/hydroponics/garden/abandoned) +"led" = ( +/obj/machinery/airalarm/directional/east, +/turf/open/floor/iron, +/area/station/security/prison/shower) +"lef" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/brown/anticorner/contrasted, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/machinery/door/window/right/directional/east{ + name = "Deliveries"; + req_access = list("cargo") + }, +/turf/open/floor/iron, +/area/station/cargo/office) +"leg" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/light/directional/east, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/port) +"lej" = ( +/obj/effect/turf_decal/trimline/purple/filled/line, +/obj/machinery/status_display/ai/directional/south, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/science/research) +"lel" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Supermatter Engine Storage Room" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/engineering/engine_smes) +"leo" = ( +/obj/structure/sink/directional/east, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/service/hydroponics) +"lep" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/command/gateway) +"leq" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 8 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/circuit/telecomms{ + initial_gas_mix = "o2=22;n2=82;TEMP=293.15" + }, +/area/station/science/xenobiology) +"lez" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/test_chambers) +"leA" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/water_source/puddle, +/obj/structure/flora/bush/reed{ + pixel_y = 5 + }, +/turf/open/floor/grass, +/area/station/science/research) +"leC" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/smart/manifold/purple/visible/layer4{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) +"leE" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/medical/aslyum) +"leF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"leG" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/cargo/miningdock) +"leJ" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"leK" = ( +/obj/structure/flora/bush/fullgrass, +/obj/structure/flora/bush/sunny, +/obj/structure/window/spawner/directional/south, +/turf/open/floor/grass, +/area/station/common/cryopods) +"leS" = ( +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"leT" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/wood, +/area/station/hallway/primary/port) +"lfd" = ( +/obj/item/kirbyplants/random, +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/wood, +/area/station/command/meeting_room/council) +"lfe" = ( +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/machinery/door/airlock/maintenance, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"lfi" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/structure/railing{ + dir = 4 + }, +/obj/structure/nestbox, +/turf/open/floor/grass, +/area/station/common/night_club/back_stage) +"lfw" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/wood, +/area/station/service/library/abandoned) +"lfG" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"lfI" = ( +/obj/structure/bed/roller{ + dir = 1 + }, +/obj/item/bedsheet/medical, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 6 + }, +/turf/open/floor/iron/white, +/area/station/security/prison) +"lfK" = ( +/obj/structure/railing, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/iron/stairs/medium{ + dir = 4 + }, +/area/station/engineering/atmos/test_chambers) +"lfM" = ( +/obj/effect/turf_decal/stripes{ + dir = 6 + }, +/turf/open/floor/iron/smooth, +/area/station/engineering/atmos/hfr_room) +"lfS" = ( +/obj/structure/table/wood, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/carpet, +/area/station/maintenance/abandon_office) +"lfV" = ( +/obj/structure/chair/wood, +/obj/effect/landmark/start/assistant, +/turf/open/floor/iron/dark, +/area/station/service/library) +"lga" = ( +/obj/structure/table/reinforced, +/obj/machinery/camera/directional/east{ + c_tag = "Engineering - Secure tech storage"; + name = "engineering camera" + }, +/obj/structure/cable, +/obj/item/ai_module/reset{ + pixel_y = 8 + }, +/obj/item/ai_module/core/full/custom{ + pixel_y = -4 + }, +/obj/machinery/door/window/brigdoor/left/directional/west{ + name = "Secure Tech Cabinet" + }, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) +"lgb" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"lgc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/portable_atmospherics/scrubber, +/obj/effect/turf_decal/delivery, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"lge" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/medical/power_station) +"lgi" = ( +/obj/effect/turf_decal/bot, +/obj/structure/reagent_dispensers/fueltank, +/obj/structure/window/spawner/directional/north, +/turf/open/floor/iron/dark, +/area/station/commons/storage/primary) +"lgq" = ( +/obj/machinery/light/floor/has_bulb, +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 5 + }, +/turf/open/floor/wood/large, +/area/station/science/auxlab/firing_range) +"lgr" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/commons/dorms/room1) +"lgw" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/sorting/mail{ + dir = 8; + name = "Test Lab Junction"; + sortType = 24 + }, +/turf/open/floor/iron/white, +/area/station/science/research) +"lgx" = ( +/obj/structure/rack/shelf, +/obj/item/wrench, +/obj/effect/spawner/random/medical/injector, +/obj/item/clothing/mask/gas, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) +"lgV" = ( +/obj/machinery/shower/directional/west, +/obj/machinery/light/small/directional/north, +/obj/structure/drain, +/turf/open/floor/iron/freezer, +/area/station/medical/aslyum) +"lgZ" = ( +/obj/structure/ore_box, +/turf/open/floor/iron, +/area/station/security/execution/transfer) +"lhd" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/item/cigbutt, +/turf/open/openspace, +/area/station/maintenance/aft/upper) +"lhf" = ( +/obj/structure/table, +/obj/item/gps/mining{ + pixel_y = 8 + }, +/obj/item/storage/dice, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) +"lhg" = ( +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"lhh" = ( +/obj/structure/rack, +/obj/item/weldingtool, +/obj/item/weldingtool, +/obj/item/weldingtool, +/obj/item/clothing/head/utility/welding, +/obj/item/clothing/head/utility/welding, +/obj/item/clothing/head/utility/welding, +/obj/effect/turf_decal/bot, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/iron/dark/side, +/area/station/ai_monitored/command/storage/eva) +"lhl" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/stairs{ + dir = 8 + }, +/area/station/maintenance/solars/port/fore) +"lhr" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"lhv" = ( +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"lhC" = ( +/obj/structure/rack, +/obj/item/storage/toolbox/mechanical, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating/airless, +/area/station/maintenance/port/upper) +"lhG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/sheet/cardboard, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"lhI" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/security/upper) +"lhN" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/cargo/lobby) +"lhQ" = ( +/obj/effect/spawner/random/structure/closet_maintenance, +/obj/machinery/light/small/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"lhW" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/broken/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"lia" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/landmark/start/hangover, +/turf/open/floor/wood, +/area/station/hallway/primary/central) +"lif" = ( +/obj/structure/rack, +/obj/item/crowbar, +/obj/item/wrench, +/obj/item/radio, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/checkpoint/escape) +"lip" = ( +/obj/structure/window/spawner/directional/west, +/obj/structure/window/spawner/directional/east, +/obj/structure/flora/bush/sparsegrass, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/flowers_br, +/turf/open/floor/grass, +/area/station/service/chapel) +"lir" = ( +/turf/closed/wall/r_wall, +/area/station/science/robotics) +"lis" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/door/airlock/rd{ + name = "Research Director's Study" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/science/rd, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/command/heads_quarters/rd) +"liN" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/maintenance/central) +"liY" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics Auxiliary Port" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/turf/open/floor/iron/dark, +/area/station/maintenance/department/engineering/atmos_aux_port) +"ljb" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/medical/storage) +"ljh" = ( +/obj/structure/closet/secure_closet/brig, +/obj/machinery/camera/directional/south{ + c_tag = "Security - Brig Port"; + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + color = "#DE3A3A"; + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/line, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/brig) +"ljm" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet/directional/south, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/dorms) +"ljp" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"ljt" = ( +/obj/structure/chair/office, +/obj/effect/landmark/start/warden, +/turf/open/floor/iron, +/area/station/security/warden) +"ljx" = ( +/obj/structure/rack/shelf, +/obj/machinery/light/directional/north, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/white, +/area/station/medical/coldroom) +"ljF" = ( +/obj/effect/spawner/random/trash/mess, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"ljM" = ( +/obj/machinery/modular_computer/preset/engineering{ + dir = 1 + }, +/obj/effect/turf_decal/siding/yellow{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/ce) +"ljN" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/command/captain_dining) +"ljS" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/solars/starboard/aft) +"ljV" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/machinery/atmospherics/components/trinary/filter/critical, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"ljX" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/dark/line{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured_edge{ + dir = 8 + }, +/area/station/security/prison/safe) +"ljZ" = ( +/obj/machinery/airalarm/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) +"lkh" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"lkl" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/junction{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"lkn" = ( +/obj/structure/easel, +/obj/item/canvas/twentythree_nineteen, +/obj/item/canvas/twentythree_nineteen, +/obj/item/canvas/twentythree_nineteen, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/wood, +/area/station/security/prison/rec) +"lkp" = ( +/obj/machinery/airalarm/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/commons/storage/primary) +"lkq" = ( +/turf/closed/wall, +/area/station/maintenance/gag_room) +"lkr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/cafeteria, +/area/station/maintenance/abandon_diner) +"lkt" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/maintenance/department/security/prison_upper) +"lkw" = ( +/obj/machinery/electroplater, +/turf/open/floor/iron/smooth, +/area/station/cargo/miningdock) +"lky" = ( +/obj/structure/cable, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/service/bar) +"lkC" = ( +/obj/effect/turf_decal/stripes/white/corner{ + dir = 8 + }, +/turf/open/floor/engine/hull/reinforced, +/area/space/nearstation) +"lkF" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 6 + }, +/obj/machinery/firealarm/directional/south, +/obj/machinery/light/directional/south, +/turf/open/floor/iron/white, +/area/station/science/lab) +"lkJ" = ( +/obj/structure/reagent_dispensers/cooking_oil, +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) +"lkO" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/atmos_aux_port) +"lkP" = ( +/obj/machinery/computer/slot_machine{ + pixel_y = 2 + }, +/obj/machinery/light/directional/east, +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"lkS" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/security/prison/work) +"lkU" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/commons/storage/art) +"lkV" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/cable, +/obj/machinery/airalarm/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/carpet, +/area/station/service/library) +"lkY" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/science/genetics) +"lla" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/iron, +/area/station/science/explab) +"llc" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/storage) +"llf" = ( +/obj/item/cigbutt, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"llg" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"lli" = ( +/obj/structure/grille/broken, +/obj/structure/girder, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_port) +"lln" = ( +/obj/structure/table/wood/fancy/green, +/obj/effect/spawner/random/entertainment/money_small, +/turf/open/floor/carpet/green, +/area/station/service/abandoned_gambling_den) +"lls" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"llv" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/service/library) +"llz" = ( +/obj/structure/cable, +/obj/effect/landmark/start/hangover, +/obj/effect/turf_decal/tile/bar/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/service/bar) +"llL" = ( +/obj/structure/railing, +/turf/open/floor/iron/telecomms, +/area/station/tcommsat/server) +"llN" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/command/bridge) +"llO" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/flowers_yw, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/grass, +/area/station/hallway/secondary/entry) +"llV" = ( +/obj/structure/table, +/obj/item/reagent_containers/cup/soda_cans/cola{ + pixel_y = 2 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/eighties, +/area/station/maintenance/abandon_arcade) +"lma" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/obj/machinery/newscaster/directional/east, +/obj/machinery/light/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) +"lmd" = ( +/turf/open/floor/catwalk_floor, +/area/station/engineering/atmos/test_chambers) +"lme" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Barshutters"; + name = "Bar Shutters" + }, +/obj/structure/desk_bell{ + pixel_x = 7 + }, +/turf/open/floor/iron/dark, +/area/station/service/bar) +"lmf" = ( +/obj/machinery/door/airlock/bathroom{ + name = "Restroom" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/cafeteria, +/area/station/commons/toilet/auxiliary) +"lmi" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"lmj" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 4 + }, +/obj/item/radio/intercom/directional/east, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/science/research) +"lmm" = ( +/obj/machinery/space_heater, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"lms" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/obj/machinery/status_display/ai/directional/east, +/obj/machinery/light/directional/east, +/turf/open/floor/iron, +/area/station/cargo/lobby) +"lmz" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/green/filled/warning{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"lmE" = ( +/obj/machinery/light/directional/south, +/turf/open/floor/iron, +/area/station/commons/vacant_room/commissary) +"lmH" = ( +/obj/structure/cable, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/floor/iron, +/area/station/engineering/storage/tech) +"lmI" = ( +/turf/open/floor/iron, +/area/station/security/prison) +"lmP" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/light/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/structure/sign/poster/random/directional/west, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/dorms) +"lmQ" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/common/wrestling/beverage) +"lmV" = ( +/obj/structure/cable, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/mob/living/basic/bot/cleanbot{ + name = "Sweeps-The-Tiles" + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"lmY" = ( +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/chapel) +"lna" = ( +/obj/machinery/light/floor/has_bulb, +/obj/effect/landmark/event_spawn, +/obj/effect/landmark/blobstart, +/turf/open/floor/iron, +/area/station/common/wrestling/arena) +"lne" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/door/airlock{ + id_tag = "Dorm2"; + name = "Cabin 2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/commons/dorms/room1) +"lnh" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/iron/grimy, +/area/station/command/meeting_room/council) +"lni" = ( +/obj/effect/turf_decal/siding/purple{ + dir = 8 + }, +/obj/effect/turf_decal/siding/purple{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/glass/reinforced, +/area/station/science) +"lnn" = ( +/turf/open/floor/plating, +/area/station/security/courtroom) +"lnp" = ( +/obj/structure/table/glass, +/obj/item/bouquet/sunflower, +/turf/open/floor/wood, +/area/station/hallway/primary/port) +"lns" = ( +/obj/effect/spawner/structure/window, +/obj/structure/curtain{ + req_access = list("medical") + }, +/turf/open/floor/plating, +/area/station/medical/medbay/lobby) +"lnC" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron/dark, +/area/station/security/warden) +"lnJ" = ( +/turf/closed/wall/rust, +/area/station/service/power_station) +"lnM" = ( +/turf/open/floor/engine, +/area/station/engineering/atmos/hfr_room) +"lnQ" = ( +/obj/machinery/door/airlock/external{ + name = "Asteroid Exit" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/station/science/auxlab/firing_range) +"lnW" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/suit_storage_unit/mining, +/turf/open/floor/plating, +/area/station/cargo/miningoffice) +"lnX" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/stripes{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 6 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/supermatter/room) +"lor" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/carpet/royalblack, +/area/station/command/heads_quarters/qm) +"lov" = ( +/obj/machinery/conveyor{ + id = "cargoload" + }, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/plating, +/area/station/cargo/storage) +"lox" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/item/folder/yellow{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/folder/blue, +/turf/open/floor/wood, +/area/station/security/courtroom) +"loE" = ( +/obj/structure/rack, +/obj/item/reagent_containers/cup/glass/bottle{ + pixel_y = 3 + }, +/obj/item/reagent_containers/cup/glass/bottle{ + pixel_y = 3 + }, +/obj/item/reagent_containers/cup/coffeepot, +/turf/open/floor/iron, +/area/station/service/bar/backroom) +"loJ" = ( +/obj/structure/cable, +/turf/open/floor/iron/shuttle/arrivals/airless, +/area/space/nearstation) +"loN" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/ce{ + name = "Chief Engineer's Quarters" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/engineering/ce, +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/command/heads_quarters/ce) +"loR" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/structure/disposalpipe/junction/flip{ + dir = 2 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/primary/port) +"loS" = ( +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"loT" = ( +/obj/structure/chair/sofa/bench/right, +/obj/machinery/newscaster/directional/north, +/turf/open/floor/iron/dark/side{ + dir = 9 + }, +/area/station/hallway/secondary/exit) +"loW" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/dorms) +"loX" = ( +/obj/structure/flora/rock/pile/jungle/large, +/obj/structure/flora/bush/large, +/obj/effect/landmark/observer_start, +/obj/effect/landmark/start/hangover, +/turf/open/misc/beach/sand, +/area/station/hallway/primary/central) +"lpa" = ( +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"lpe" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/machinery/holopad, +/turf/open/floor/iron, +/area/station/security/checkpoint/escape) +"lpf" = ( +/turf/closed/wall, +/area/station/maintenance/abandon_surgery) +"lpi" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hall14"; + location = "hall13" + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"lpk" = ( +/obj/docking_port/stationary{ + dir = 4; + dwidth = 3; + height = 5; + name = "SS13: Common Mining Dock"; + roundstart_template = /datum/map_template/shuttle/mining_common/nova; + shuttle_id = "commonmining_home"; + width = 7 + }, +/turf/open/floor/iron/shuttle/arrivals/airless, +/area/space/nearstation) +"lpo" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) +"lpr" = ( +/turf/closed/wall, +/area/station/engineering/atmos/pumproom) +"lpv" = ( +/obj/effect/landmark/start/assistant, +/turf/open/floor/engine{ + name = "Holodeck Projector Floor" + }, +/area/station/holodeck/rec_center) +"lpC" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/science) +"lpD" = ( +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/abandon_holding_cell) +"lpL" = ( +/obj/machinery/light/small/directional/east, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/security/range) +"lpO" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva) +"lpQ" = ( +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/power_station) +"lpR" = ( +/obj/effect/turf_decal/bot_red, +/obj/machinery/doppler_array, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/testlab) +"lqa" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain/private) +"lqf" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/item/storage/box/disks{ + pixel_x = 6; + pixel_y = 9 + }, +/obj/item/storage/box/bodybags{ + pixel_x = -4; + pixel_y = -1 + }, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/iron/dark, +/area/station/science/genetics) +"lqk" = ( +/turf/closed/wall/r_wall, +/area/station/science/genetics) +"lqp" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/office) +"lqt" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/science/cytology) +"lqx" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/security/brig) +"lqB" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister/plasma, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/storage) +"lqC" = ( +/obj/machinery/power/port_gen/pacman/pre_loaded, +/obj/structure/window/spawner/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/central) +"lqG" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"lqH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/moisture_trap, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"lqM" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/chem_master/condimaster, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/cafeteria, +/area/station/maintenance/department/medical/central) +"lqN" = ( +/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) +"lqS" = ( +/obj/machinery/door/airlock/engineering/glass{ + name = "Supermatter Engine Room" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/general, +/obj/effect/landmark/navigate_destination, +/turf/open/floor/iron, +/area/station/engineering/supermatter/room) +"lqT" = ( +/obj/structure/table/glass, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/obj/item/reagent_containers/cup/glass/waterbottle/large{ + pixel_x = 11; + pixel_y = 7 + }, +/obj/item/storage/box/donkpockets{ + pixel_x = -3; + pixel_y = 5 + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) +"lqU" = ( +/turf/closed/wall/rust, +/area/station/service/theater/abandoned) +"lre" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"lrf" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/holopad, +/turf/open/floor/iron, +/area/station/medical/virology/isolation) +"lrh" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/access/all/engineering/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"lrj" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"lrl" = ( +/obj/machinery/light/small/broken/directional/west, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"lrs" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Holodeck" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/dark/side, +/area/station/common/arcade) +"lry" = ( +/obj/machinery/door/poddoor/preopen{ + id = "atmoslock"; + name = "Atmospherics Lockdown Blast Door" + }, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Atmospherics Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/obj/structure/cable, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_starboard) +"lrG" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing{ + dir = 4 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/glass/reinforced, +/area/station/security/prison/safe) +"lrK" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/service/bar) +"lrQ" = ( +/obj/structure/table/glass, +/obj/structure/window/spawner/directional/south, +/obj/item/folder/blue{ + pixel_y = 3 + }, +/obj/item/pen, +/turf/open/floor/iron/dark, +/area/station/engineering/transit_tube) +"lrX" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + piping_layer = 4 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) +"lsb" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/light/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/machinery/camera/autoname/directional/east, +/turf/open/floor/iron, +/area/station/commons/dorms) +"lsc" = ( +/obj/machinery/shower/directional/east, +/obj/structure/drain, +/turf/open/floor/iron/freezer, +/area/station/command/heads_quarters/blueshield) +"lsi" = ( +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron/dark, +/area/station/commons/fitness) +"lsl" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"lsn" = ( +/obj/structure/filingcabinet/security, +/obj/machinery/button/curtain{ + id = "prisonlibrarycurtain4"; + pixel_x = -6; + pixel_y = 22 + }, +/obj/machinery/button/door/directional/north{ + id = "BSdoor"; + name = "Door Lock"; + normaldoorcontrol = 1; + pixel_x = 5; + pixel_y = 25; + req_access = list("captain"); + specialfunctions = 4 + }, +/turf/open/floor/carpet/executive, +/area/station/command/heads_quarters/blueshield) +"lsu" = ( +/obj/structure/table, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 6 + }, +/obj/item/radio/intercom/directional/east, +/obj/machinery/camera/directional/east{ + c_tag = "Research Division - Circuits Lab"; + name = "science camera"; + network = list("ss13","rd") + }, +/obj/item/storage/toolbox/electrical{ + pixel_y = 5 + }, +/turf/open/floor/iron/white, +/area/station/science/lab) +"lsD" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/item/camera_film{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/camera_film, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet, +/area/station/service/chapel/office) +"lsM" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"lsO" = ( +/obj/effect/turf_decal/tile/brown, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/cargo/drone_bay) +"lsQ" = ( +/obj/effect/turf_decal/bot, +/obj/structure/table/reinforced, +/obj/item/stack/sheet/iron{ + amount = 30 + }, +/obj/item/stack/sheet/glass{ + amount = 30 + }, +/obj/item/stack/cable_coil, +/obj/item/screwdriver, +/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/cell/high, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/storage) +"lsV" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/hallway/primary/central) +"ltc" = ( +/obj/machinery/suit_storage_unit/ce, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/ce) +"ltd" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 9 + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology/control) +"ltq" = ( +/obj/structure/hedge, +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/iron/shuttle/evac/airless, +/area/space/nearstation) +"ltt" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/science/research) +"ltv" = ( +/obj/item/trash/chips, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"ltC" = ( +/obj/machinery/door/airlock/engineering{ + name = "Service Power Station" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/turf/open/floor/plating, +/area/station/service/power_station) +"ltF" = ( +/obj/structure/filingcabinet, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/engineering/lobby) +"ltK" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/structure/closet, +/obj/effect/spawner/random/medical/medkit, +/turf/open/floor/iron/dark, +/area/station/security/prison) +"ltN" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/security/lower) +"ltR" = ( +/obj/machinery/ai_slipper{ + uses = 10 + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/ai) +"ltW" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 6 + }, +/obj/machinery/light_switch/directional/south, +/obj/effect/spawner/random/trash, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/white, +/area/station/science/tele_sci) +"ltX" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/rack, +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron/dark, +/area/station/security/power_station) +"luf" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/turf/open/floor/carpet/red, +/area/station/command/heads_quarters/hos) +"lul" = ( +/obj/machinery/door/airlock{ + id_tag = "Dorm5"; + name = "Cabin 5" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/commons/dorms/room6) +"luq" = ( +/obj/structure/cable, +/obj/structure/lattice/catwalk, +/turf/open/openspace, +/area/station/maintenance/department/medical/central) +"lus" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"luA" = ( +/obj/machinery/door/airlock/external{ + space_dir = 8 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/engineering/external, +/turf/open/floor/plating, +/area/station/maintenance/department/security/prison_upper) +"luD" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/flowers_br, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/turf/open/floor/grass, +/area/station/security/prison/garden) +"luN" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/side{ + dir = 6 + }, +/area/station/hallway/primary/port) +"luR" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 5 + }, +/turf/open/space/basic, +/area/space/nearstation) +"luT" = ( +/obj/structure/chair/office{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/start/assistant, +/turf/open/floor/wood/parquet, +/area/station/common/arcade) +"luX" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/pool_maintenance) +"lvb" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) +"lvd" = ( +/turf/open/floor/iron/dark/side{ + dir = 6 + }, +/area/station/common/locker_room_shower) +"lve" = ( +/obj/structure/railing{ + dir = 6 + }, +/turf/open/openspace, +/area/station/maintenance/department/medical/central) +"lvh" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"lvx" = ( +/obj/structure/bed/double, +/obj/item/bedsheet/red/double, +/obj/machinery/light_switch/directional/east, +/turf/open/floor/carpet/red, +/area/station/commons/dorms/room6) +"lvA" = ( +/obj/structure/falsewall, +/turf/open/floor/plating, +/area/station/common/pool) +"lvF" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/station/service/chapel/funeral) +"lvJ" = ( +/turf/open/floor/iron, +/area/station/engineering/break_room) +"lvM" = ( +/obj/item/stack/ore/glass, +/obj/structure/closet/crate/secure/loot, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"lvS" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/nt_rep) +"lvT" = ( +/obj/effect/landmark/start/hangover, +/turf/open/misc/beach/sand, +/area/station/hallway/primary/aft) +"lvV" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/commons/dorms) +"lvY" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/camera/autoname/directional/north, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"lwb" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold/green/visible, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"lwf" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"lwo" = ( +/obj/effect/turf_decal/trimline/blue/line{ + dir = 8; + pixel_x = 5 + }, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 8; + pixel_x = 10 + }, +/turf/open/floor/iron, +/area/station/commons/fitness) +"lwp" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/light/directional/south, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/security/prison/work) +"lww" = ( +/obj/effect/decal/remains/human, +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/floor/plating, +/area/station/maintenance/department/science/ordnance_maint) +"lwy" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/chair/office/light{ + dir = 4 + }, +/turf/open/floor/carpet/blue, +/area/station/medical/exam_room) +"lwJ" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/south, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"lwK" = ( +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/secondary/command) +"lwQ" = ( +/obj/structure/transit_tube/curved{ + dir = 8 + }, +/turf/open/floor/iron/shuttle/arrivals/airless, +/area/space/nearstation) +"lwZ" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"lxj" = ( +/obj/item/tank/internals/emergency_oxygen/empty, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"lxt" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"lxu" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen/diner) +"lxx" = ( +/obj/docking_port/stationary{ + dir = 8; + dwidth = 12; + height = 18; + name = "Blueshift emergency evac bay"; + shuttle_id = "emergency_home"; + width = 32 + }, +/turf/open/space/basic, +/area/space) +"lxA" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/mob/living/basic/bot/medbot{ + name = "Healy Stabby" + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"lxF" = ( +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/obj/item/kirbyplants/random, +/turf/open/floor/iron/dark, +/area/station/science/robotics) +"lyc" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/door/airlock/grunge{ + name = "Morgue" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/medical/morgue, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) +"lyv" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hallup12"; + location = "hallup11" + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/secondary/command) +"lyw" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"lyz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/layer1, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"lyK" = ( +/obj/structure/lattice/catwalk, +/turf/open/openspace/airless, +/area/station/maintenance/fore/upper) +"lyO" = ( +/obj/machinery/power/port_gen/pacman/pre_loaded, +/obj/structure/window/spawner/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) +"lyP" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/medical/patients_rooms) +"lyR" = ( +/obj/machinery/mecha_part_fabricator, +/obj/machinery/status_display/evac/directional/north, +/turf/open/floor/mineral/plastitanium/red, +/area/station/science/robotics/lab) +"lyV" = ( +/obj/structure/chair/stool/directional/west, +/obj/machinery/camera/directional/east{ + c_tag = "Bar - Aft 2"; + name = "service camera" + }, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"lyW" = ( +/obj/machinery/conveyor_switch/oneway{ + dir = 8; + id = "garbage"; + name = "disposal conveyor"; + pixel_x = 12 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/disposal) +"lyY" = ( +/obj/structure/rack/shelf, +/obj/effect/turf_decal/bot, +/obj/item/clothing/suit/hooded/wintercoat/engineering, +/obj/item/clothing/suit/hooded/wintercoat/engineering, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/tcommsat/computer) +"lyZ" = ( +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/station/hallway/primary/port) +"lzd" = ( +/turf/closed/wall/r_wall, +/area/station/command/heads_quarters/ce) +"lze" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/trimline/red/corner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/filled/warning{ + dir = 5 + }, +/turf/open/floor/iron/dark, +/area/station/security/brig) +"lzn" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/machinery/camera/directional/east{ + c_tag = "Engineering - Supermatter Room"; + name = "engineering camera" + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"lzq" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/structure/cable, +/turf/open/floor/cult, +/area/station/maintenance/cult_chapel_maint) +"lzr" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/effect/turf_decal/caution/stand_clear, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + name = "External Docking Port"; + space_dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/exit/departure_lounge) +"lzu" = ( +/obj/machinery/light/directional/south, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"lzy" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ + dir = 10 + }, +/turf/closed/wall, +/area/station/maintenance/central) +"lzE" = ( +/turf/closed/wall, +/area/station/maintenance/wrestle) +"lzF" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/sign/poster/random/directional/south, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"lzN" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Security Maintenance" + }, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/turf/open/floor/plating, +/area/station/maintenance/department/security/upper) +"lzT" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"lzW" = ( +/obj/machinery/vending/boozeomat, +/turf/closed/wall, +/area/station/command/captain_dining) +"lAg" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/door/airlock/public/glass{ + name = "Maint Kicks" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Clothingstore"; + name = "Clothing Store Shutters" + }, +/obj/effect/landmark/navigate_destination, +/turf/open/floor/wood/parquet, +/area/station/common/tailoring) +"lAi" = ( +/obj/structure/window/reinforced/fulltile, +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/flowers_pp, +/turf/open/floor/grass, +/area/station/medical/medbay/lobby) +"lAs" = ( +/obj/structure/rack/shelf, +/obj/item/gun_maintenance_supplies, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"lAC" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/effect/landmark/start/hangover, +/turf/open/floor/glass, +/area/station/commons/dorms) +"lAE" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless, +/area/station/maintenance/fore/upper) +"lAF" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"lAL" = ( +/obj/machinery/computer/prisoner/management{ + dir = 4 + }, +/obj/machinery/light/directional/west, +/obj/machinery/newscaster/directional/west, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/red/real_red/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hos) +"lAM" = ( +/obj/structure/flora/bush/flowers_pp, +/mob/living/carbon/human/species/monkey, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/grass, +/area/station/science/genetics) +"lAP" = ( +/turf/open/floor/carpet, +/area/station/service/library) +"lAU" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "cmoshutter"; + name = "CMO Office Shutters" + }, +/turf/open/floor/plating, +/area/station/command/heads_quarters/cmo) +"lAY" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/camera/directional/south{ + c_tag = "Recreation - Lasertag Lockers"; + name = "hallway camera" + }, +/obj/effect/turf_decal/tile/red/real_red/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/dark/side, +/area/station/common/laser_tag) +"lAZ" = ( +/turf/closed/wall, +/area/station/service/lawoffice) +"lBc" = ( +/obj/item/trash/can/food/peaches/maint, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"lBe" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/turf/open/floor/engine/hull/reinforced, +/area/space/nearstation) +"lBg" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/machinery/computer/records/security, +/obj/effect/turf_decal/tile/red{ + color = "#DE3A3A"; + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + color = "#DE3A3A" + }, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"lBj" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/prison) +"lBn" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/dark/side, +/area/station/common/laser_tag) +"lBq" = ( +/obj/effect/spawner/random/trash/mess, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"lBw" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rdtoxins"; + name = "Toxins Lab Shutters" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/science/ordnance) +"lBy" = ( +/obj/structure/cable/multilayer/multiz, +/obj/effect/turf_decal/stripes/end{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"lBB" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/camera/directional/east{ + c_tag = "Engineering - Locker Room"; + name = "engineering camera" + }, +/obj/machinery/firealarm/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/engineering/break_room) +"lBC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/maintenance/fore/upper) +"lBD" = ( +/obj/structure/bed/double, +/obj/item/bedsheet/hos/double, +/turf/open/floor/carpet/red, +/area/station/command/heads_quarters/hos) +"lBH" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/law) +"lBJ" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/security/lockers) +"lBQ" = ( +/obj/item/shard, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"lBW" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/curtain/bounty, +/turf/open/floor/plating, +/area/station/medical/virology/isolation) +"lCe" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/flora/bush/leafy, +/obj/structure/flora/bush/stalky, +/turf/open/floor/grass, +/area/station/service/hydroponics) +"lCn" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/closet, +/obj/effect/spawner/random/maintenance/three, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"lCo" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"lCu" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/flowers_pp, +/obj/machinery/door/firedoor/border_only, +/turf/open/floor/grass, +/area/station/security/prison/garden) +"lCx" = ( +/obj/effect/spawner/random/structure/crate, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"lCF" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white/corner, +/area/station/hallway/secondary/entry) +"lCH" = ( +/obj/machinery/door/airlock/maintenance, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"lCI" = ( +/obj/machinery/door/airlock/maintenance, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"lCJ" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/machinery/vending/wardrobe/gene_wardrobe, +/obj/machinery/light/directional/east, +/turf/open/floor/iron/dark, +/area/station/science/genetics) +"lCK" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/command/heads_quarters/rd) +"lCL" = ( +/turf/open/floor/iron/large, +/area/station/ai_monitored/turret_protected/ai_upload) +"lCR" = ( +/obj/effect/turf_decal/tile/red, +/obj/machinery/newscaster/directional/east, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/office) +"lCT" = ( +/obj/machinery/light/directional/north, +/obj/structure/chair/office{ + dir = 4 + }, +/obj/machinery/requests_console/directional/north{ + department = "Ordinance"; + name = "Ordinance Requests Console" + }, +/turf/open/floor/iron, +/area/station/science/ordnance) +"lCV" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"lDb" = ( +/obj/effect/landmark/event_spawn, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/garbage, +/turf/open/floor/iron/dark, +/area/station/maintenance/department/security/prison_upper) +"lDc" = ( +/obj/structure/cable, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/security/checkpoint/supply) +"lDg" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/stairs/medium{ + dir = 4 + }, +/area/station/science/research) +"lDk" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood/parquet, +/area/station/common/gaskiosk) +"lDl" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"lDp" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 1 + }, +/obj/structure/flora/grass/jungle, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"lDq" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"lDr" = ( +/turf/open/floor/iron, +/area/station/science/ordnance) +"lDs" = ( +/obj/machinery/light/directional/east, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/components/binary/tank_compressor, +/obj/machinery/camera/directional/north{ + c_tag = "Science - Ordnance Assembly"; + dir = 4; + name = "science camera"; + network = list("ss13","rd") + }, +/turf/open/floor/engine, +/area/station/science/ordnance) +"lDB" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=2"; + location = "Bar" + }, +/obj/structure/plasticflaps/opaque, +/turf/open/floor/plating, +/area/station/hallway/secondary/service) +"lDF" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/bot, +/obj/machinery/light/directional/west, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/central/fore) +"lDG" = ( +/obj/machinery/duct, +/turf/open/floor/iron/freezer, +/area/station/commons/toilet/restrooms) +"lDK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/eighties, +/area/station/maintenance/abandon_arcade) +"lDR" = ( +/obj/structure/bed/double{ + dir = 4 + }, +/obj/item/bedsheet/red/double{ + dir = 4 + }, +/obj/machinery/light_switch/directional/west, +/turf/open/floor/carpet, +/area/station/commons/dorms/room7) +"lDX" = ( +/obj/effect/turf_decal/trimline/purple/line{ + dir = 5 + }, +/turf/open/floor/iron/white/side{ + dir = 5 + }, +/area/station/science/research) +"lDY" = ( +/obj/effect/decal/cleanable/oil, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"lEf" = ( +/obj/machinery/door_buttons/access_button{ + idDoor = "xeno_airlock_interior"; + idSelf = "xeno_airlock_control"; + name = "Access Button"; + pixel_x = 29; + pixel_y = -25; + req_access = list("xenobiology") + }, +/obj/effect/turf_decal/stripes, +/obj/effect/turf_decal/trimline/purple/filled/warning, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/science/xenobiology/hallway) +"lEj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/south, +/obj/machinery/atmospherics/components/binary/valve/digital/on/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/valve/digital/on/layer2{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"lEz" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/warning/vacuum/external/directional/north, +/obj/effect/spawner/random/trash/moisture_trap, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"lEA" = ( +/obj/structure/table, +/obj/machinery/microwave{ + pixel_x = -1; + pixel_y = 6 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"lED" = ( +/turf/open/floor/iron/dark/textured_large, +/area/station/service/barber) +"lEO" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"lET" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/camera/directional/east{ + c_tag = "Central Hallway - Starboard Central"; + name = "hallway camera" + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"lFa" = ( +/obj/structure/chair/sofa/right/brown, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/turf/open/floor/wood/parquet, +/area/station/service/theater) +"lFi" = ( +/obj/machinery/photocopier, +/turf/open/floor/iron, +/area/station/maintenance/console_room) +"lFo" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/engineering, +/obj/machinery/door/airlock/engineering{ + name = "AI Sat Power Station" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/aft/upper) +"lFq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/light/small/directional/south, +/turf/open/floor/iron, +/area/station/maintenance/aft/upper) +"lFv" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 5 + }, +/obj/machinery/telecomms/bus/preset_four, +/turf/open/floor/iron/telecomms, +/area/station/tcommsat/server) +"lFy" = ( +/obj/structure/chair/office, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/security/checkpoint/supply) +"lFz" = ( +/obj/structure/chair/sofa/bench/left{ + dir = 8; + pixel_x = 5 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/central) +"lFL" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"lFR" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/preopen{ + id = "hopblast"; + name = "HoP Blast Door" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/hop{ + id_tag = "HoPdoor"; + name = "Head of Personel's Quarters" + }, +/obj/effect/mapping_helpers/airlock/access/all/command/hop, +/turf/open/floor/wood, +/area/station/command/heads_quarters/hop) +"lFY" = ( +/obj/machinery/netpod, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/small, +/area/station/security/prison/upper) +"lFZ" = ( +/obj/structure/closet, +/obj/item/stack/sheet/iron{ + amount = 34 + }, +/obj/item/extinguisher/mini, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"lGd" = ( +/obj/structure/window/reinforced/plasma/spawner/directional/north, +/obj/machinery/power/shuttle_engine/heater{ + dir = 1 + }, +/obj/effect/turf_decal/stripes, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"lGe" = ( +/obj/structure/table, +/obj/structure/extinguisher_cabinet/directional/south, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen/diner) +"lGf" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/iron/smooth, +/area/station/security/prison/upper) +"lGl" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/sign/poster/random/directional/south, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"lGo" = ( +/obj/machinery/computer/security/telescreen/entertainment/directional/south, +/obj/machinery/light/directional/south, +/turf/open/floor/carpet/royalblue, +/area/station/command/heads_quarters/hop) +"lGp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm/directional/east, +/obj/effect/mapping_helpers/airalarm/engine_access, +/obj/machinery/atmospherics/components/binary/pump{ + name = "Gas to Chamber" + }, +/obj/effect/mapping_helpers/airalarm/link{ + chamber_id = "engine" + }, +/obj/effect/mapping_helpers/airalarm/tlv_no_checks, +/turf/open/floor/engine, +/area/station/engineering/supermatter) +"lGz" = ( +/obj/structure/kitchenspike, +/obj/effect/turf_decal/delivery, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) +"lGB" = ( +/obj/machinery/door/airlock{ + id_tag = "Dorm3"; + name = "Cabin 3" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/commons/dorms/room4) +"lGD" = ( +/obj/structure/closet/toolcloset, +/turf/open/floor/iron, +/area/station/hallway/secondary/construction) +"lGF" = ( +/obj/structure/table, +/obj/machinery/light/directional/south, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/commons/dorms/room7) +"lGJ" = ( +/obj/machinery/duct, +/turf/open/floor/carpet/red, +/area/station/commons/dorms/room6) +"lGO" = ( +/obj/machinery/camera/directional/east{ + c_tag = "Security - Shooting Range" + }, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/security/range) +"lGU" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/turf/open/floor/stone, +/area/station/service/forge) +"lGV" = ( +/obj/structure/railing{ + dir = 10 + }, +/turf/open/floor/carpet/lone, +/area/station/service/bar/atrium) +"lGW" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/circuit/green, +/area/station/ai_monitored/turret_protected/ai_upload) +"lHb" = ( +/obj/structure/chair/wood{ + dir = 8; + name = "Prosecution" + }, +/turf/open/floor/wood, +/area/station/security/courtroom) +"lHd" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ + dir = 9 + }, +/turf/open/space/basic, +/area/space/nearstation) +"lHh" = ( +/obj/machinery/door/airlock/maintenance, +/obj/effect/mapping_helpers/airlock/abandoned, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_port) +"lHi" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/structure/cable, +/obj/effect/landmark/start/security_officer, +/turf/open/floor/iron, +/area/station/security/office) +"lHt" = ( +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/segment, +/obj/machinery/composters, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/service/hydroponics) +"lHv" = ( +/turf/open/floor/iron/stairs/medium, +/area/station/hallway/primary/upper) +"lHw" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/duct, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/nt_rep) +"lHD" = ( +/obj/machinery/door/airlock/engineering/glass{ + name = "Emitter Room" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/general, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) +"lHI" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"lHT" = ( +/obj/effect/turf_decal/tile/dark_blue/anticorner/contrasted, +/obj/machinery/recharge_station, +/obj/machinery/light_switch/directional/south, +/turf/open/floor/iron/dark, +/area/station/security/mechbay) +"lHW" = ( +/obj/structure/table/wood, +/obj/machinery/fax{ + fax_name = "Detective's Office"; + name = "Detective's Fax Machine" + }, +/turf/open/floor/carpet, +/area/station/security/detectives_office) +"lIg" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/white/side{ + dir = 8 + }, +/area/station/command/heads_quarters/ce) +"lIn" = ( +/obj/machinery/computer/atmos_control/carbon_tank, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/window/spawner/directional/north, +/obj/structure/window/spawner/directional/east, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos) +"lIu" = ( +/obj/structure/table, +/obj/machinery/coffeemaker{ + pixel_y = 8 + }, +/obj/effect/turf_decal/tile/bar/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/service/bar) +"lIx" = ( +/obj/machinery/light/small/directional/north, +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/start/quartermaster, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/qm) +"lIC" = ( +/obj/structure/closet/crate, +/obj/effect/turf_decal/bot, +/obj/item/stack/license_plates/empty/fifty, +/obj/item/stack/license_plates/empty/fifty, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron/dark, +/area/station/security/prison/work) +"lIF" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/grass, +/area/station/common/night_club) +"lII" = ( +/obj/machinery/space_heater, +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"lIK" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/upper) +"lIO" = ( +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/structure/window/spawner/directional/south, +/obj/structure/hedge, +/turf/open/floor/grass, +/area/station/common/night_club) +"lIQ" = ( +/obj/structure/reagent_dispensers/fueltank/large, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"lIR" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible, +/obj/machinery/atmospherics/pipe/smart/simple/violet/visible/layer2, +/turf/open/space/basic, +/area/space/nearstation) +"lIS" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ + dir = 6 + }, +/turf/open/floor/iron, +/area/station/engineering/supermatter/room) +"lIZ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/service/theater) +"lJa" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/vending/dinnerware, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) +"lJc" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/mineral/plastitanium, +/area/station/science/robotics/lab) +"lJg" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/common/wrestling/locker) +"lJh" = ( +/obj/effect/turf_decal/bot, +/obj/effect/spawner/random/vending/colavend, +/turf/open/floor/iron/dark/side{ + dir = 10 + }, +/area/station/hallway/primary/port) +"lJk" = ( +/obj/machinery/status_display/ai/directional/east, +/obj/structure/table/wood, +/obj/item/reagent_containers/cocainebrick{ + pixel_y = -3; + pixel_x = 5 + }, +/obj/item/reagent_containers/cocaine{ + pixel_y = 12; + pixel_x = -3 + }, +/obj/item/garnish/red_straw{ + pixel_y = -7; + pixel_x = -6 + }, +/turf/open/floor/wood/parquet, +/area/station/common/night_club) +"lJl" = ( +/obj/structure/weightmachine/weightlifter, +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/prison/workout) +"lJn" = ( +/turf/open/floor/iron/smooth, +/area/station/command/secure_bunker) +"lJq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"lJs" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/commons/dorms) +"lJt" = ( +/turf/closed/wall/r_wall, +/area/station/security/range) +"lJu" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"lJw" = ( +/obj/machinery/light/directional/north, +/obj/item/toy/seashell, +/turf/open/misc/beach/sand, +/area/station/service/barber) +"lJx" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/abandon_wrestle) +"lJC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"lJE" = ( +/obj/machinery/door/airlock/external{ + space_dir = 4 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/external, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"lJJ" = ( +/obj/structure/cable, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/ai) +"lJK" = ( +/obj/effect/landmark/start/hangover, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"lKb" = ( +/obj/structure/rack/shelf, +/obj/effect/decal/cleanable/dirt, +/obj/item/storage/toolbox/mechanical, +/turf/open/floor/iron/dark, +/area/station/maintenance/thruster_room/central) +"lKd" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/station/service/chapel) +"lKk" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_y = 3 + }, +/turf/open/floor/iron, +/area/station/medical/aslyum) +"lKo" = ( +/obj/effect/turf_decal/bot_red, +/obj/effect/turf_decal/loading_area/red, +/turf/open/floor/mineral/plastitanium, +/area/station/science/robotics/lab) +"lKp" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/photocopier, +/turf/open/floor/wood, +/area/station/command/heads_quarters/nt_rep) +"lKw" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/ears/earmuffs{ + pixel_y = 7 + }, +/obj/item/gun/energy/laser/practice, +/obj/effect/turf_decal/stripes, +/turf/open/floor/iron/dark, +/area/station/security/range) +"lKx" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"lKz" = ( +/obj/structure/toilet{ + pixel_y = 10 + }, +/obj/structure/sink/directional/east, +/obj/structure/mirror/directional/west, +/turf/open/floor/iron/freezer, +/area/station/command/heads_quarters/ce) +"lKB" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/command) +"lKC" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/commons/toilet/restrooms) +"lKJ" = ( +/obj/machinery/light/small/directional/north, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/port/aft) +"lKM" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/status_display/evac/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"lKN" = ( +/obj/structure/flora/bush/jungle/a/style_3, +/obj/effect/turf_decal/weather/sand{ + dir = 4 + }, +/turf/open/floor/grass, +/area/station/medical/patients_rooms) +"lKQ" = ( +/obj/structure/easel, +/obj/item/canvas/twentythree_twentythree{ + pixel_x = 3; + pixel_y = 8 + }, +/turf/open/floor/grass, +/area/station/medical/patients_rooms) +"lKS" = ( +/obj/structure/table, +/obj/item/reagent_containers/spray/waterflower/lube, +/turf/open/floor/noslip, +/area/station/maintenance/gag_room) +"lKU" = ( +/obj/structure/window/reinforced/plasma/spawner/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold/general/visible{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/power/energy_accumulator/tesla_coil/anchored, +/turf/open/floor/engine, +/area/station/engineering/supermatter) +"lLg" = ( +/obj/machinery/door/airlock/virology{ + name = "Virology Access" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/medical/virology, +/obj/machinery/duct, +/obj/effect/turf_decal/tile/green/opposingcorners, +/turf/open/floor/iron/white, +/area/station/medical/virology) +"lLl" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating/airless, +/area/station/maintenance/port/upper) +"lLn" = ( +/turf/closed/wall/r_wall, +/area/station/science/ordnance/testlab) +"lLq" = ( +/obj/machinery/vending/wardrobe/science_wardrobe, +/obj/effect/turf_decal/bot, +/obj/machinery/light_switch/directional/east, +/turf/open/floor/iron, +/area/station/science/breakroom) +"lLr" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/security/prison/mess) +"lLs" = ( +/obj/structure/table, +/obj/item/storage/box/donkpockets, +/obj/item/storage/box/donkpockets{ + pixel_y = 4 + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 8 + }, +/obj/machinery/requests_console/directional/north{ + department = "Virology"; + name = "Virology Requests Console"; + pixel_x = -30; + pixel_y = 0 + }, +/obj/effect/mapping_helpers/requests_console/ore_update, +/obj/machinery/camera/autoname/directional/west{ + network = list("ss13","medbay") + }, +/turf/open/floor/iron/white, +/area/station/medical/virology/isolation) +"lLC" = ( +/obj/structure/table/wood, +/obj/item/folder{ + pixel_x = 3; + pixel_y = 5 + }, +/obj/item/folder, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/station/maintenance/abandon_psych) +"lLD" = ( +/obj/effect/turf_decal/loading_area, +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/obj/machinery/light/small/directional/north, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/pumproom) +"lLJ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/dorms) +"lLV" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light/directional/west, +/obj/structure/disposalpipe/trunk{ + dir = 2 + }, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/hallway/primary/starboard) +"lMa" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/engine, +/area/station/science/tele_sci) +"lMb" = ( +/turf/closed/wall/rust, +/area/station/maintenance/department/science/lower) +"lMl" = ( +/obj/effect/spawner/random/trash/bucket, +/turf/open/floor/plating, +/area/station/security/prison/mess) +"lMo" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"lMx" = ( +/obj/effect/turf_decal/stripes, +/obj/structure/table/reinforced, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/turf/open/floor/engine, +/area/station/command/secure_bunker) +"lMz" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/security/execution/transfer) +"lME" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/storage) +"lMH" = ( +/obj/effect/turf_decal/bot, +/obj/structure/reagent_dispensers/water_cooler, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/iron/dark, +/area/station/cargo/miningoffice) +"lML" = ( +/obj/machinery/door/airlock/medical{ + name = "Surgery A" + }, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/medical/surgery, +/turf/open/floor/iron/white, +/area/station/medical/surgery) +"lMO" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/light_switch/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/engine, +/area/station/command/secure_bunker) +"lMR" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"lMX" = ( +/obj/effect/turf_decal/trimline/purple/line{ + dir = 4 + }, +/turf/open/floor/iron/white/side{ + dir = 4 + }, +/area/station/science/research) +"lNb" = ( +/obj/effect/turf_decal/delivery/white{ + color = "#00ff00"; + name = "green" + }, +/obj/machinery/cryopod{ + dir = 8 + }, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/iron/dark, +/area/station/security/prison/upper) +"lNc" = ( +/obj/structure/rack, +/obj/item/coffee_cartridge, +/obj/item/coffee_cartridge, +/obj/item/coffee_cartridge, +/obj/item/coffee_cartridge/fancy, +/obj/item/coffee_cartridge/fancy, +/obj/item/coffee_cartridge/decaf, +/obj/item/coffee_cartridge/decaf, +/obj/item/coffee_cartridge/decaf, +/obj/item/coffee_cartridge/bootleg, +/obj/item/coffee_cartridge/bootleg, +/obj/item/coffee_cartridge/bootleg, +/turf/open/floor/iron, +/area/station/service/bar/backroom) +"lNg" = ( +/obj/structure/closet/crate, +/obj/structure/grille/broken, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/spawner/random/entertainment/wallet_storage, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"lNh" = ( +/obj/structure/cable, +/obj/machinery/door/airlock/engineering{ + name = "Cargo Power Station" + }, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/turf/open/floor/iron, +/area/station/cargo/power_station/upper) +"lNi" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/medical/break_room) +"lNk" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless, +/area/station/maintenance/fore/upper) +"lNl" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/cargo/office) +"lNn" = ( +/obj/structure/window/reinforced/fulltile, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/lavendergrass, +/obj/structure/flora/bush/flowers_br, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"lNq" = ( +/obj/structure/bed/pod{ + pixel_y = 1 + }, +/obj/structure/mirror/directional/east, +/turf/open/floor/carpet/black, +/area/station/service/barber) +"lNw" = ( +/obj/structure/bookcase/manuals/engineering, +/turf/open/floor/wood, +/area/station/service/library/abandoned) +"lNF" = ( +/obj/structure/table/reinforced, +/obj/item/reagent_containers/spray/cleaner{ + pixel_x = 8 + }, +/turf/open/floor/iron, +/area/station/medical/surgery/theatre) +"lNG" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/security/office) +"lNI" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/ai_monitored/command/storage/eva) +"lNO" = ( +/obj/item/toy/dodgeball, +/obj/item/toy/dodgeball, +/obj/item/toy/dodgeball, +/obj/item/toy/dodgeball, +/obj/item/toy/dodgeball, +/obj/item/toy/dodgeball, +/obj/structure/rack, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/commons/fitness) +"lNR" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/service/abandoned_gambling_den) +"lNU" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/dorms) +"lOb" = ( +/turf/closed/wall, +/area/station/maintenance/library/upper) +"lOf" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/components/unary/passive_vent{ + dir = 8 + }, +/turf/open/space/basic, +/area/space/nearstation) +"lOh" = ( +/obj/machinery/duct, +/obj/effect/landmark/start/botanist{ + required_jobtitle = "Rancher" + }, +/turf/open/floor/iron/dark, +/area/station/common/night_club) +"lOi" = ( +/obj/structure/mirror{ + pixel_y = 32 + }, +/obj/structure/toilet{ + pixel_y = 10 + }, +/obj/structure/sink/directional/east, +/turf/open/floor/iron/freezer, +/area/station/command/heads_quarters/cmo) +"lOn" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning, +/obj/structure/cable, +/obj/structure/disposalpipe/junction/yjunction, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"lOo" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/maintenance/xenobio_disposals) +"lOp" = ( +/obj/structure/table, +/obj/item/storage/cans/sixbeer, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 4 + }, +/obj/machinery/light/small/directional/west, +/obj/machinery/button/door{ + id = "BevStand"; + name = "Beverage Shutters Control"; + pixel_x = -25 + }, +/turf/open/floor/iron, +/area/station/common/wrestling/beverage) +"lOt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/sheet/cardboard{ + amount = 14 + }, +/obj/item/circuitboard/mecha/ripley/peripherals, +/turf/open/floor/iron, +/area/station/science/research/abandoned) +"lOu" = ( +/obj/machinery/door/poddoor/preopen{ + name = "Retrograde Thruster Blast Door" + }, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/effect/turf_decal/stripes, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"lOz" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"lOL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/obj/machinery/light/floor/has_bulb, +/obj/effect/landmark/start/botanist{ + required_jobtitle = "Rancher" + }, +/turf/open/floor/iron, +/area/station/common/night_club/changing_room) +"lOW" = ( +/obj/structure/chair/sofa/bench/left{ + dir = 4; + pixel_x = -5 + }, +/obj/structure/railing{ + dir = 8 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/stone, +/area/station/hallway/primary/central) +"lPf" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/box, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/cargo/office) +"lPl" = ( +/obj/effect/spawner/random/trash/moisture_trap, +/turf/open/floor/plating, +/area/station/maintenance/department/eva) +"lPq" = ( +/obj/structure/rack, +/obj/item/storage/belt/utility/full/engi, +/turf/open/floor/plating, +/area/station/maintenance/department/security) +"lPx" = ( +/obj/structure/dresser, +/turf/open/floor/carpet/executive, +/area/station/command/heads_quarters/blueshield) +"lPA" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"lPG" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/junction/flip{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/science) +"lQa" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/machinery/light/small/directional/south, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/machinery/camera/directional/south, +/turf/open/floor/iron, +/area/station/commons/storage/art) +"lQb" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/science/explab) +"lQg" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 6 + }, +/turf/open/space/basic, +/area/space/nearstation) +"lQo" = ( +/turf/open/floor/iron/dark/corner{ + dir = 8 + }, +/area/station/hallway/primary/port) +"lQt" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/science/power_station) +"lQA" = ( +/obj/structure/table/wood, +/obj/structure/window/spawner/directional/south, +/obj/item/storage/box/lipsticks{ + pixel_x = -12; + pixel_y = 3 + }, +/obj/item/storage/box/perfume{ + pixel_x = 4; + pixel_y = 5 + }, +/turf/open/floor/iron/dark, +/area/station/service/barber) +"lQB" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "To Port" + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"lQD" = ( +/obj/structure/table/wood/fancy/royalblue, +/obj/item/stack/spacecash/c500, +/obj/item/paper/fluff{ + default_raw_text = "
This message is dedicated to the many people that contributed to the blueshift class voidcraft initiative and it's continued development, we sincerely thank you for your input and service to maintain and uphold NT's finest stations and vessels.
Damian Blue - for being the lead ship architect and project manager.Viro (the axolotl not the department) - for being a key part of initial testing and bureaucratic management.Friday - emotional and motivational support, general input on various key issues, if you're still around here sometimes know that you meant a great deal to the project!Xeon Saber - engineering advise and general design input, greatly helped make the most important section of the ship slightly less hectic.Kobe Ivanov - didived ship production into 3 seperate decks making it more managable, general performance boosts.A retired felinid - various bluespace improvements regarding the flow of atmospheric effects in surrounding space.A goofball - helped test and fix up various issues to great extent, their input and help has been of great value and we cannot thank them enough for what they've done.And another thanks to everyone else who has not been directly listed, you know who you are!This has been centcom, over and out!"; + name = "A warm thank you" + }, +/obj/item/reagent_containers/cup/glass/bottle/vodka/badminka{ + pixel_x = 6; + pixel_y = 19 + }, +/obj/item/reagent_containers/cup/glass/drinkingglass/shotglass{ + pixel_x = -1; + pixel_y = 12 + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/nuke_storage) +"lQH" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock/security/glass{ + name = "Jail Cell" + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/prison/safe) +"lQN" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/cargo/power_station/upper) +"lQX" = ( +/obj/structure/sign/warning/vacuum/external/directional/north, +/obj/structure/closet/cardboard, +/obj/effect/spawner/random/exotic/languagebook, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"lRf" = ( +/obj/structure/table, +/obj/item/storage/photo_album, +/obj/item/storage/dice{ + pixel_x = 7; + pixel_y = 18 + }, +/turf/open/floor/glass, +/area/station/commons/dorms) +"lRh" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/bar) +"lRj" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/growing/tray, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 10 + }, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) +"lRk" = ( +/obj/structure/rack/wooden, +/obj/item/clothing/under/color/grey{ + pixel_x = -7; + pixel_y = 7 + }, +/obj/item/clothing/under/color/grey{ + pixel_y = 7 + }, +/obj/item/clothing/under/color/grey{ + pixel_x = 7; + pixel_y = 7 + }, +/obj/item/clothing/under/color/jumpskirt/grey{ + pixel_x = -7; + pixel_y = -7 + }, +/obj/item/clothing/under/color/jumpskirt/grey{ + pixel_y = -7 + }, +/obj/item/clothing/under/color/jumpskirt/grey{ + pixel_x = 7; + pixel_y = -7 + }, +/turf/open/floor/wood/parquet, +/area/station/common/tailoring) +"lRo" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/carpet, +/area/station/service/chapel/office) +"lRs" = ( +/obj/structure/disposalpipe/sorting/mail{ + dir = 8; + name = "HoP Junction"; + sortType = 15 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"lRu" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/central) +"lRv" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"lRz" = ( +/obj/effect/spawner/random/trash/mess, +/turf/open/floor/plating/reinforced{ + initial_gas_mix = "TEMP=2.7" + }, +/area/station/science/ordnance/bomb) +"lRB" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/stairs/old, +/area/station/common/wrestling/arena) +"lRC" = ( +/obj/machinery/corral_corner{ + mapping_id = "5" + }, +/obj/machinery/slime_pen_controller{ + mapping_id = "5" + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"lRD" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/carpet/red, +/area/station/command/heads_quarters/hos) +"lRF" = ( +/obj/structure/table/wood, +/obj/item/folder/blue, +/obj/item/pinpointer/nuke, +/obj/item/disk/nuclear, +/obj/machinery/computer/security/telescreen/entertainment/directional/north, +/obj/machinery/light/directional/north, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/captain/private) +"lRG" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/machinery/camera/autoname/directional/west, +/turf/open/floor/iron/dark, +/area/station/security/brig) +"lRK" = ( +/obj/machinery/light/small/directional/south, +/obj/effect/spawner/random/trash/mopbucket, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/security/prison/upper) +"lRL" = ( +/obj/structure/closet/crate/bin, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/wood, +/area/station/commons/dorms/vacantroom) +"lRV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/maintenance/aft/upper) +"lSb" = ( +/obj/structure/table, +/obj/item/clothing/gloves/color/blue{ + desc = "An old pair of nitrile gloves, with no sterile properties."; + name = "old nitrile gloves" + }, +/obj/item/surgery_tray/deployed, +/turf/open/floor/iron, +/area/station/maintenance/rus_surgery) +"lSd" = ( +/obj/effect/turf_decal/trimline/blue/filled/end, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/medical/surgery) +"lSf" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/firealarm/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/public/glass{ + name = "Central Hallway" + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"lSk" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/stairs{ + dir = 8 + }, +/area/station/common/wrestling/arena) +"lSs" = ( +/obj/item/kirbyplants/random, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/security/interrogation) +"lSv" = ( +/turf/closed/wall/r_wall, +/area/station/security/prison/upper) +"lSx" = ( +/obj/machinery/vending/games, +/turf/open/floor/wood, +/area/station/service/library/printer) +"lSz" = ( +/obj/machinery/door/poddoor/shutters{ + id = "teleporterhubshutters"; + name = "Teleporter Shutters" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/command/teleporter) +"lSI" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/chair/stool/directional/north, +/turf/open/floor/iron, +/area/station/commons/fitness/recreation) +"lSP" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/reagent_dispensers/water_cooler, +/turf/open/floor/wood, +/area/station/medical/patients_rooms) +"lSU" = ( +/obj/structure/table, +/obj/item/organ/internal/stomach/cybernetic, +/obj/item/organ/internal/eyes/robotic/flashlight, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"lSX" = ( +/obj/effect/turf_decal/siding/purple{ + dir = 8 + }, +/obj/effect/turf_decal/siding/purple{ + dir = 4 + }, +/turf/open/floor/glass/reinforced, +/area/station/science) +"lSY" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/growing/tray, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) +"lTb" = ( +/obj/effect/turf_decal/trimline/blue/line{ + dir = 1 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/prison/workout) +"lTc" = ( +/obj/structure/table, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/iron, +/area/station/maintenance/port/aft) +"lTd" = ( +/obj/machinery/portable_atmospherics/canister/plasma, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/machinery/camera/autoname/directional/east, +/turf/open/floor/iron/dark, +/area/station/engineering/storage) +"lTe" = ( +/obj/machinery/shower/directional/west, +/obj/structure/drain, +/turf/open/floor/iron/freezer, +/area/station/security/prison/shower) +"lTn" = ( +/obj/structure/table, +/obj/item/clothing/glasses/blindfold, +/obj/item/clothing/mask/muzzle, +/turf/open/floor/iron/dark, +/area/station/maintenance/department/security/prison_upper) +"lTo" = ( +/obj/structure/window/spawner/directional/west, +/obj/structure/flora/bush/jungle, +/turf/open/floor/grass, +/area/station/hallway/primary/central/aft) +"lTz" = ( +/obj/machinery/door/airlock/engineering{ + name = "Telecoms Cooling" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/engineering/construction, +/turf/open/floor/iron/dark, +/area/station/tcommsat/computer) +"lTC" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 6 + }, +/turf/open/space/basic, +/area/space/nearstation) +"lTE" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/plating, +/area/station/engineering/atmos) +"lTH" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister, +/turf/open/floor/iron/dark, +/area/station/engineering/supermatter/room) +"lTN" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/turf_decal/trimline/red, +/turf/open/floor/iron/dark/small, +/area/station/security/brig) +"lTO" = ( +/obj/machinery/disposal/bin, +/obj/machinery/light/directional/west, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/nt_rep) +"lTQ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/maintenance/solars/starboard/fore) +"lTZ" = ( +/obj/machinery/door/airlock/bathroom{ + name = "Restroom" + }, +/obj/machinery/duct, +/turf/open/floor/carpet/black, +/area/station/commons/dorms/room5) +"lUf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/light/small/directional/east, +/obj/structure/sign/departments/medbay/alt/directional/east, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"lUm" = ( +/obj/structure/chair/office{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hos) +"lUo" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/access/all/engineering/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/xenobio_disposals) +"lUA" = ( +/obj/effect/turf_decal/trimline/yellow/filled/corner{ + dir = 8 + }, +/obj/structure/table, +/obj/item/reagent_containers/cup/beaker/large{ + pixel_x = -3; + pixel_y = 9 + }, +/obj/item/reagent_containers/cup/beaker{ + pixel_y = 3 + }, +/turf/open/floor/iron/white, +/area/station/medical/pharmacy) +"lUD" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/eighties/red, +/area/station/common/arcade) +"lUF" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/test_chambers) +"lUG" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"lUP" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/item/paper_bin{ + pixel_x = -12; + pixel_y = 3 + }, +/obj/item/pen/fourcolor{ + pixel_x = -12; + pixel_y = 5 + }, +/obj/item/hand_labeler{ + pixel_y = 17 + }, +/obj/item/computer_disk/quartermaster{ + pixel_x = 6; + pixel_y = 5 + }, +/obj/item/computer_disk/quartermaster{ + pixel_x = 6; + pixel_y = 5 + }, +/obj/item/computer_disk/quartermaster{ + pixel_x = 6; + pixel_y = 5 + }, +/obj/item/flashlight/lamp/green{ + pixel_y = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/carpet/royalblack, +/area/station/command/heads_quarters/qm) +"lUV" = ( +/obj/structure/chair/office{ + dir = 4 + }, +/obj/effect/landmark/start/psychologist, +/turf/open/floor/iron, +/area/station/medical/psychology) +"lVa" = ( +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"lVe" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"lVm" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/closet/crate/coffin, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/chapel) +"lVn" = ( +/obj/structure/table, +/obj/item/modular_computer/pda/clown, +/turf/open/floor/noslip, +/area/station/maintenance/gag_room) +"lVA" = ( +/obj/machinery/atmospherics/components/tank/air, +/turf/open/floor/iron, +/area/station/medical/virology/isolation) +"lVC" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen" + }, +/obj/effect/spawner/random/trash/garbage, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"lVH" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 9 + }, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) +"lVP" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/turf_decal/tile/yellow/half/contrasted, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/engineering/lobby) +"lVQ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/cargo/miningdock) +"lVR" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/transit_tube/curved{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/engineering/transit_tube) +"lVS" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/structure/cable, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/wood, +/area/station/maintenance/abandon_office) +"lVU" = ( +/obj/structure/mirror{ + pixel_y = 32 + }, +/obj/structure/toilet{ + pixel_y = 16 + }, +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/iron/dark, +/area/station/security/prison/safe) +"lVY" = ( +/obj/structure/closet, +/obj/effect/turf_decal/delivery, +/obj/effect/spawner/random/maintenance/three, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"lWh" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"lWi" = ( +/obj/machinery/light/directional/west, +/obj/structure/chair/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/service/cafeteria) +"lWk" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/airalarm/directional/west, +/turf/open/floor/iron, +/area/station/engineering/break_room) +"lWr" = ( +/obj/effect/spawner/random/clothing/gloves, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"lWy" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/space/openspace, +/area/space) +"lWz" = ( +/obj/structure/trash_pile, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"lWC" = ( +/turf/closed/wall, +/area/station/security/prison/upper) +"lWD" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/qm) +"lWF" = ( +/obj/effect/turf_decal/trimline/blue/line, +/obj/structure/cable, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/prison/workout) +"lWK" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"lWL" = ( +/turf/open/floor/iron/dark, +/area/station/security/prison/safe) +"lWM" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"lWO" = ( +/obj/machinery/shower/directional/west, +/obj/structure/drain, +/obj/machinery/light/small/directional/south, +/turf/open/floor/iron/freezer, +/area/station/command/heads_quarters/nt_rep) +"lWU" = ( +/obj/machinery/door/airlock/hatch{ + name = "MiniSat Turret Chamber" + }, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/command/ai_upload, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai) +"lXd" = ( +/obj/machinery/atmospherics/components/tank/oxygen, +/obj/effect/turf_decal/stripes{ + dir = 10 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/storage) +"lXg" = ( +/obj/effect/turf_decal/trimline/blue/line, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"lXk" = ( +/obj/effect/turf_decal/bot_blue, +/obj/structure/rack, +/turf/open/floor/iron/dark/small, +/area/station/medical/break_room) +"lXm" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) +"lXo" = ( +/obj/item/beacon, +/obj/effect/turf_decal/bot, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"lXp" = ( +/obj/effect/spawner/random/trash/mess, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/chapel) +"lXr" = ( +/obj/item/kirbyplants/random, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/security/prison/upper) +"lXs" = ( +/obj/structure/trash_pile, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"lXw" = ( +/turf/closed/wall, +/area/station/command/heads_quarters/captain/private) +"lXx" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/filled/warning{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/prison/upper) +"lXy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"lXC" = ( +/obj/machinery/camera/directional/south{ + c_tag = "Bar - Counter"; + dir = 1; + name = "service camera" + }, +/obj/effect/mapping_helpers/requests_console/ore_update, +/obj/machinery/requests_console/directional/north{ + department = "Bar"; + name = "Bar Requests Console" + }, +/obj/machinery/chem_master/condimaster{ + desc = "Looks like a knock-off chem-master. Perhaps useful for separating liquids when mixing drinks precisely. Also dispenses condiments."; + name = "HoochMaster Deluxe" + }, +/obj/effect/turf_decal/tile/bar/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/service/bar) +"lXI" = ( +/turf/closed/wall, +/area/station/maintenance/department/engineering/atmos_aux_port) +"lXK" = ( +/obj/machinery/button/door/directional/south{ + id = "Storefront"; + name = "Lock Control"; + normaldoorcontrol = 1; + specialfunctions = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/common/tailoring) +"lXL" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"lXO" = ( +/obj/machinery/light/directional/east, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/central/aft) +"lXQ" = ( +/obj/structure/table/wood, +/obj/machinery/computer/records/medical/laptop, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/carpet/blue, +/area/station/command/heads_quarters/cmo) +"lYe" = ( +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/bar) +"lYg" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"lYi" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/medical/power_station) +"lYj" = ( +/obj/effect/turf_decal/siding/dark{ + dir = 8 + }, +/turf/open/floor/glass/reinforced/airless, +/area/space/nearstation) +"lYo" = ( +/obj/machinery/newscaster/directional/north, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/command/gateway) +"lYu" = ( +/obj/structure/sign/warning/vacuum/external, +/turf/closed/wall/r_wall, +/area/station/science/xenobiology) +"lYx" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/command/gateway) +"lYy" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/window/left/directional/north{ + name = "Kitchen Delivery"; + req_access = list("kitchen") + }, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) +"lYA" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/meter, +/obj/structure/sign/warning/radiation/directional/east, +/turf/open/floor/iron/dark, +/area/station/engineering/supermatter/room) +"lYD" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/carpet/green, +/area/station/command/heads_quarters/nt_rep) +"lYE" = ( +/obj/structure/chair/sofa/bench/left, +/obj/item/radio/intercom/directional/east, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/obj/effect/turf_decal/trimline/red/filled/line{ + color = "#DE3A3A"; + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/line, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/lockers) +"lYH" = ( +/obj/structure/table, +/obj/item/clipboard, +/obj/item/toy/figure/chef, +/obj/item/reagent_containers/condiment/saltshaker{ + pixel_x = -8; + pixel_y = 5 + }, +/obj/item/reagent_containers/condiment/peppermill{ + pixel_x = -8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) +"lYI" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/station/maintenance/department/security/prison_upper) +"lYJ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/flasher{ + id = "justiceflash"; + name = "mounted justice flash"; + pixel_x = 28 + }, +/turf/open/floor/iron/dark, +/area/station/security/execution/education) +"lYK" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/dorms) +"lYQ" = ( +/obj/structure/table, +/obj/item/ai_module/supplied/quarantine{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/ai_module/supplied/freeform, +/obj/item/ai_module/reset{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/obj/machinery/camera/autoname/directional/north, +/turf/open/floor/iron, +/area/station/ai_monitored/turret_protected/ai_upload) +"lYV" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/machinery/light/directional/east, +/obj/machinery/door/window/brigdoor/right/directional/south{ + name = "Command Chair"; + req_access = list("command") + }, +/turf/open/floor/iron/stairs{ + dir = 1 + }, +/area/station/command/secure_bunker) +"lYW" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "surgerya"; + name = "Surgery Privacy Shutters" + }, +/turf/open/floor/plating, +/area/station/medical/surgery) +"lYY" = ( +/obj/structure/closet/crate/hydroponics{ + storage_capacity = 70 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/contraband/cannabis, +/obj/effect/spawner/random/contraband/cannabis, +/obj/effect/spawner/random/contraband/cannabis, +/obj/effect/spawner/random/contraband/cannabis/lizardsgas, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"lZe" = ( +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/engineering/atmos/test_chambers) +"lZg" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hos) +"lZl" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/iron, +/area/station/engineering/main) +"lZm" = ( +/turf/closed/wall/r_wall, +/area/station/maintenance/rus_surgery) +"lZv" = ( +/obj/structure/table/wood, +/obj/item/clothing/mask/cigarette/cigar/havana{ + pixel_x = -3 + }, +/obj/item/clothing/mask/cigarette/cigar/cohiba{ + pixel_x = 3 + }, +/obj/item/clothing/mask/cigarette/cigar, +/obj/item/lighter, +/obj/structure/cable, +/obj/machinery/button/door{ + id = "DetShutters"; + name = "Privacy Shutters"; + pixel_y = 14 + }, +/turf/open/floor/carpet, +/area/station/security/detectives_office) +"lZw" = ( +/obj/effect/turf_decal/siding/thinplating/dark, +/turf/open/floor/grass, +/area/station/common/night_club) +"lZC" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"lZH" = ( +/obj/structure/chair/wood/wings{ + dir = 1 + }, +/obj/effect/landmark/start/assistant, +/obj/effect/landmark/start/assistant, +/turf/open/floor/carpet, +/area/station/service/library/lounge) +"lZM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/item/beacon, +/obj/effect/landmark/event_spawn, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"lZN" = ( +/obj/item/tank/jetpack/improvised, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"lZO" = ( +/obj/structure/table/optable, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating, +/area/station/maintenance/rus_surgery) +"lZU" = ( +/obj/structure/table_frame, +/obj/effect/spawner/random/trash/mess, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"lZX" = ( +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/department/science/central) +"lZY" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"lZZ" = ( +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) +"mah" = ( +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/xenobiology/hallway) +"man" = ( +/obj/structure/closet/bombcloset, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron, +/area/station/science/explab) +"map" = ( +/obj/effect/decal/cleanable/dirt, +/turf/closed/wall, +/area/station/security/power_station) +"maq" = ( +/obj/machinery/newscaster/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/ai_monitored/command/storage/eva) +"mat" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Self Care Salon" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/landmark/navigate_destination, +/turf/open/floor/iron/dark, +/area/station/service/barber) +"maz" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/engineering/lobby) +"maA" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/plating, +/area/station/engineering/atmos) +"maF" = ( +/obj/machinery/photocopier, +/obj/effect/turf_decal/stripes, +/obj/effect/turf_decal/stripes/white/line, +/obj/machinery/light_switch/directional/north, +/turf/open/floor/iron/dark, +/area/station/science/genetics) +"maG" = ( +/obj/machinery/computer/security/telescreen/minisat{ + dir = 1; + pixel_y = -29 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/command/bridge) +"maI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb, +/obj/machinery/light/small/directional/north, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/freezer, +/area/station/maintenance/abandon_kitchen_upper) +"mbg" = ( +/obj/machinery/light/directional/north, +/turf/open/floor/carpet/red, +/area/station/command/heads_quarters/hos) +"mbk" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/duct, +/turf/open/floor/carpet/blue, +/area/station/command/heads_quarters/cmo) +"mbm" = ( +/obj/effect/turf_decal/tile/red/half, +/turf/open/floor/iron/dark/side, +/area/station/security/office) +"mbo" = ( +/obj/structure/bodycontainer/crematorium{ + dir = 4; + id = "crematoriumChapel" + }, +/turf/open/floor/iron/dark, +/area/station/service/chapel) +"mbt" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"mbB" = ( +/obj/machinery/door/airlock/research{ + name = "Weapons Test Range" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/science/research, +/obj/structure/cable, +/turf/open/floor/iron/white/side{ + dir = 4 + }, +/area/station/science/auxlab/firing_range) +"mbJ" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/door/airlock/bathroom{ + name = "Restroom" + }, +/obj/machinery/duct, +/turf/open/floor/iron/freezer, +/area/station/command/heads_quarters/nt_rep) +"mbQ" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/machinery/shieldgen, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva/upper) +"mbS" = ( +/obj/structure/table, +/obj/item/knife, +/obj/item/circular_saw/field_medic, +/obj/item/screwdriver, +/turf/open/floor/iron/white, +/area/station/maintenance/abandon_surgery) +"mbV" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Xeno9"; + name = "Xenobio Penns Containment" + }, +/obj/effect/turf_decal/stripes, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Xeno9"; + name = "Xenobio Pens Containment" + }, +/turf/open/floor/iron, +/area/station/science/xenobiology) +"mbZ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/ai_monitored/command/storage/eva/upper) +"mcl" = ( +/obj/structure/table/reinforced, +/obj/item/paper_bin{ + pixel_y = 3 + }, +/obj/item/pen{ + pixel_y = 3 + }, +/turf/open/floor/iron/dark, +/area/station/cargo/office) +"mcu" = ( +/obj/machinery/computer/station_alert{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/thruster_room/central) +"mcz" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/grass, +/area/station/common/night_club/back_stage) +"mcB" = ( +/obj/structure/bed, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/item/bedsheet/purple, +/turf/open/floor/carpet, +/area/station/command/gateway) +"mcC" = ( +/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/floor/iron, +/area/station/engineering/storage) +"mcE" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/sparker{ + id = "executionburn"; + pixel_x = -25 + }, +/turf/open/floor/iron/dark, +/area/station/security/execution/education) +"mcF" = ( +/obj/structure/railing/wrestling{ + dir = 1 + }, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/common/wrestling/arena) +"mcM" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"mcR" = ( +/obj/structure/closet/lawcloset, +/obj/item/storage/briefcase{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/briefcase/secure, +/obj/item/clothing/glasses/sunglasses/big{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/clothing/glasses/sunglasses, +/obj/machinery/newscaster/directional/west, +/turf/open/floor/wood, +/area/station/service/lawoffice) +"mcS" = ( +/turf/closed/wall/r_wall, +/area/station/maintenance/department/security/upper) +"mcT" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/junction{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"mcW" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/iron/shuttle/arrivals/airless, +/area/space/nearstation) +"mdb" = ( +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/hallway/secondary/command) +"mdj" = ( +/obj/structure/table, +/obj/machinery/recharger{ + pixel_y = 4 + }, +/obj/item/gun/energy/laser/practice, +/obj/machinery/firealarm/directional/east, +/obj/structure/extinguisher_cabinet/directional/east{ + pixel_x = 34 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/range) +"mdl" = ( +/obj/structure/sink/directional/west, +/obj/machinery/camera/directional/east{ + c_tag = " Prison - Cell 6"; + network = list("ss13","prison") + }, +/obj/effect/landmark/start/prisoner, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/security/prison/safe) +"mdm" = ( +/obj/item/rack_parts, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"mdr" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/manifold/layer4{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/science/ordnance/freezerchamber) +"mdt" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/service/library) +"mdx" = ( +/obj/structure/kitchenspike, +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"mdy" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 6 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/pumproom) +"mdA" = ( +/obj/structure/chair/sofa/bench{ + dir = 8; + pixel_x = 5 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/secondary/entry) +"mdF" = ( +/obj/machinery/power/supermatter_crystal/engine, +/obj/effect/turf_decal/stripes/box, +/turf/open/floor/engine, +/area/station/engineering/supermatter) +"mdG" = ( +/obj/machinery/light/small/directional/north, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/south, +/turf/open/floor/plating, +/area/station/engineering/atmos/upper) +"mdH" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"mdI" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/main) +"mdM" = ( +/obj/machinery/button/door/directional/south{ + id = "bridgewindows"; + name = "Bridge View Blast Doors"; + pixel_x = -6; + req_access = list("command") + }, +/obj/machinery/button/door/directional/south{ + id = "bridgedoors"; + name = "Bridge Access Blast Doors"; + pixel_x = 6; + req_access = list("command") + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/command/bridge) +"mdY" = ( +/obj/structure/chair/wood{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/station/service/electronic_marketing_den) +"mdZ" = ( +/obj/structure/window/reinforced/plasma/spawner/directional/west, +/obj/effect/turf_decal/stripes, +/obj/machinery/artifact_zapper{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/science/explab) +"mef" = ( +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/engine/hull/reinforced, +/area/space/nearstation) +"meh" = ( +/obj/item/clothing/shoes/magboots{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/clothing/shoes/magboots{ + pixel_x = -4; + pixel_y = 3 + }, +/obj/item/clothing/shoes/magboots{ + pixel_x = -4 + }, +/obj/item/clothing/shoes/magboots{ + pixel_x = 3 + }, +/obj/machinery/status_display/ai/directional/west, +/obj/structure/rack, +/turf/open/floor/iron/dark, +/area/station/engineering/break_room) +"mei" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"mem" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/power/emitter, +/obj/effect/turf_decal/stripes, +/turf/open/floor/iron/dark/side, +/area/station/engineering/storage) +"met" = ( +/obj/effect/spawner/random/entertainment/arcade{ + dir = 8 + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/exit/departure_lounge) +"meu" = ( +/obj/effect/spawner/random/entertainment/arcade{ + dir = 8 + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/exit/departure_lounge) +"mex" = ( +/obj/effect/turf_decal/bot_white/right, +/turf/open/floor/iron/dark, +/area/station/command/gateway) +"meJ" = ( +/obj/effect/turf_decal/stripes{ + dir = 5 + }, +/obj/machinery/modular_computer/preset/research{ + dir = 4; + pixel_x = -4 + }, +/obj/machinery/newscaster/directional/west, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/rd) +"meM" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"meY" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"mff" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"mfh" = ( +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron, +/area/station/security/execution/transfer) +"mfi" = ( +/obj/structure/table/reinforced, +/obj/item/reagent_containers/cup/glass/coffee/no_lid{ + pixel_y = -4; + pixel_x = 7 + }, +/obj/item/reagent_containers/cup/glass/coffee/no_lid{ + pixel_y = 9; + pixel_x = -5 + }, +/turf/open/floor/iron/dark/small, +/area/station/science/auxlab/firing_range) +"mfj" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/iron/dark, +/area/station/medical/surgery/theatre) +"mfl" = ( +/obj/machinery/computer/rdservercontrol{ + dir = 4 + }, +/obj/effect/turf_decal/bot_blue, +/obj/machinery/newscaster/directional/west, +/turf/open/floor/iron/dark, +/area/station/science/server) +"mfw" = ( +/obj/machinery/flasher/portable, +/turf/open/floor/iron/dark/side{ + dir = 9 + }, +/area/station/security/lockers) +"mfE" = ( +/obj/machinery/light_switch/directional/north, +/obj/machinery/camera/autoname/directional/north, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"mfI" = ( +/obj/structure/closet/secure_closet/detective, +/turf/open/floor/wood/parquet, +/area/station/security/detectives_office) +"mfJ" = ( +/obj/structure/table/wood, +/obj/item/book/manual/wiki/security_space_law, +/obj/machinery/camera/directional/north{ + c_tag = "Courtroom - Jury Backroom" + }, +/obj/machinery/light/small/directional/north, +/obj/machinery/newscaster/directional/north, +/turf/open/floor/iron, +/area/station/security/courtroom) +"mfN" = ( +/turf/open/floor/iron, +/area/station/security/prison/upper) +"mfP" = ( +/obj/structure/window/reinforced/fulltile, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/lavendergrass, +/obj/structure/flora/bush/flowers_pp, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"mfR" = ( +/obj/machinery/door/airlock/maintenance, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/effect/mapping_helpers/airlock/unres, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_port) +"mgi" = ( +/obj/structure/chair/sofa/corp/corner{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/open/floor/carpet/lone, +/area/station/command/meeting_room/council) +"mgk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/east, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/maintenance/port/aft) +"mgp" = ( +/obj/structure/table, +/obj/item/dest_tagger{ + pixel_x = 12; + pixel_y = -2 + }, +/obj/item/paper/paperslip{ + pixel_x = 6; + pixel_y = 10 + }, +/obj/item/reagent_containers/cup/glass/coffee, +/obj/effect/turf_decal/siding/brown{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/cargo/sorting) +"mgt" = ( +/obj/machinery/button/door/directional/west{ + id = "prison release"; + name = "Labor Camp Shuttle Lockdown"; + req_access = list("brig") + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/machinery/camera/directional/east{ + c_tag = "Security - Security Labor Transfer Dock"; + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"mgu" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/prison) +"mgz" = ( +/obj/structure/cable, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"mgF" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/service/library) +"mgG" = ( +/obj/structure/table, +/obj/item/seeds/liberty, +/obj/item/seeds/poppy{ + pixel_x = 5 + }, +/obj/item/seeds/cannabis{ + pixel_x = -5 + }, +/obj/item/seeds/ambrosia, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"mgJ" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/mineral/plastitanium/red, +/area/station/science/robotics/lab) +"mgL" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/smooth, +/area/station/cargo/miningdock) +"mgM" = ( +/obj/structure/chair/stool/directional/south, +/obj/effect/landmark/start/bitrunner, +/turf/open/floor/iron/dark/small, +/area/station/cargo/storage) +"mgO" = ( +/obj/structure/chair/sofa/corp/right{ + dir = 8; + pixel_x = 7 + }, +/turf/open/floor/wood/parquet, +/area/station/common/night_club) +"mgX" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/falsewall, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/cargo/warehouse) +"mhf" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/cargo/storage) +"mhl" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"mhp" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, +/turf/closed/wall/r_wall, +/area/station/maintenance/department/engineering/atmos_aux_port) +"mhG" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/closet/crate, +/obj/effect/turf_decal/bot, +/obj/item/stack/sheet/iron/fifty, +/obj/item/stack/rods{ + amount = 25 + }, +/obj/item/storage/toolbox/emergency, +/obj/item/flashlight, +/obj/machinery/firealarm/directional/east, +/obj/machinery/light/directional/east, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/command/gateway) +"mhJ" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"mhL" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/science) +"mhM" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/central/fore) +"mhN" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/security/execution/transfer) +"mhS" = ( +/obj/machinery/computer/arcade/amputation{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood/old{ + icon_state = "floor6-old" + }, +/turf/open/floor/plating, +/area/station/medical/patients_rooms) +"mhT" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/structure/closet/emcloset, +/turf/open/floor/iron, +/area/station/science/xenobiology/hallway) +"mhV" = ( +/obj/effect/turf_decal/bot, +/obj/structure/table/reinforced, +/obj/item/airlock_painter, +/obj/item/toner/large, +/obj/item/assembly/timer{ + pixel_x = -4; + pixel_y = -13 + }, +/obj/item/assembly/timer{ + pixel_x = 7; + pixel_y = -13 + }, +/turf/open/floor/iron/dark, +/area/station/commons/storage/primary) +"mia" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron/white, +/area/station/science) +"mid" = ( +/obj/structure/chair/sofa/bench{ + dir = 4; + pixel_x = -5 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/primary/central) +"miw" = ( +/obj/structure/table, +/obj/item/weldingtool/largetank{ + pixel_x = -4; + pixel_y = 3 + }, +/obj/item/clothing/head/utility/welding, +/turf/open/floor/iron, +/area/station/security/execution/transfer) +"miB" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 9 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"miC" = ( +/obj/machinery/computer/gateway_control{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/iron/dark, +/area/station/command/gateway) +"miE" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/landmark/start/head_of_personnel, +/turf/open/floor/carpet/royalblue, +/area/station/command/heads_quarters/hop) +"miJ" = ( +/obj/structure/table, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/plating, +/area/station/maintenance/console_room) +"miO" = ( +/obj/effect/spawner/structure/window/reinforced/tinted, +/turf/open/floor/plating, +/area/station/security/detectives_office) +"miQ" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/airalarm/directional/east, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"miT" = ( +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating/airless, +/area/station/maintenance/port/fore) +"miV" = ( +/obj/item/knife/shiv, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/abandon_wrestle) +"mjj" = ( +/turf/closed/wall, +/area/station/common/night_club/changing_room) +"mjo" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/generic, +/obj/structure/flora/bush/flowers_pp, +/obj/structure/window/spawner/directional/east, +/obj/structure/window/spawner/directional/west, +/obj/structure/window/spawner/directional/south, +/turf/open/floor/grass, +/area/station/medical/medbay/lobby) +"mjp" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/closet/secure_closet/brig, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/science/research) +"mjw" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/light/directional/east, +/obj/machinery/power/shieldwallgen, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/engineering/storage) +"mjy" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/delivery, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/obj/machinery/door/airlock/public/glass{ + name = "Central Hallway" + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) +"mjA" = ( +/obj/structure/table/reinforced, +/obj/item/storage/toolbox/mechanical, +/obj/effect/turf_decal/tile/dark_blue/anticorner/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"mjB" = ( +/obj/machinery/mechpad, +/turf/open/floor/mineral/plastitanium, +/area/station/science/robotics/mechbay) +"mjE" = ( +/turf/closed/wall/r_wall, +/area/station/security/execution/transfer) +"mjG" = ( +/turf/closed/wall, +/area/station/maintenance/department/security/lower) +"mjI" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/window/spawner/directional/east, +/obj/structure/dresser, +/turf/open/floor/carpet/blue, +/area/station/commons/dorms/room3) +"mjK" = ( +/obj/effect/spawner/random/trash/mess, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"mjN" = ( +/obj/machinery/light/directional/south, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/machinery/duct, +/turf/open/floor/iron/cafeteria, +/area/station/commons/toilet/auxiliary) +"mjT" = ( +/obj/item/chair/plastic{ + pixel_y = 10 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/abandon_wrestle) +"mjZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"mkc" = ( +/obj/machinery/light/directional/west, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/carpet/black, +/area/station/service/barber) +"mkf" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/chair/stool/bar/directional/west, +/turf/open/floor/iron, +/area/station/command/captain_dining) +"mky" = ( +/obj/structure/chair, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/security/interrogation) +"mkC" = ( +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/machinery/ai_slipper{ + uses = 10 + }, +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/structure/cable, +/obj/structure/railing, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/ai) +"mkE" = ( +/obj/structure/lattice/catwalk, +/obj/effect/landmark/start/hangover, +/turf/open/openspace, +/area/station/hallway/primary/upper) +"mkM" = ( +/obj/structure/window/spawner/directional/south, +/obj/structure/flora/bush/jungle/a/style_3, +/turf/open/floor/grass, +/area/station/hallway/secondary/service) +"mkR" = ( +/obj/machinery/holopad, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/science/tele_sci) +"mkZ" = ( +/obj/machinery/power/shuttle_engine/heater{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"mlb" = ( +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/effect/turf_decal/trimline/blue/corner{ + dir = 4 + }, +/obj/machinery/status_display/ai/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"mlk" = ( +/obj/item/reagent_containers/cup/bottle/thermite, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"mln" = ( +/turf/closed/wall/r_wall, +/area/station/security/prison/rec) +"mlq" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"mlw" = ( +/obj/effect/turf_decal/loading_area/white{ + dir = 4 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "hopline"; + name = "Queue Shutters" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/command) +"mly" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/carpet, +/area/station/service/chapel) +"mlB" = ( +/obj/machinery/door/poddoor/massdriver_trash, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/station/maintenance/disposal) +"mlC" = ( +/obj/machinery/computer/atmos_alert{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/main) +"mlG" = ( +/obj/structure/trash_pile, +/turf/open/floor/engine, +/area/station/maintenance/department/science/xenobiology) +"mlH" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/maintenance, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"mlN" = ( +/obj/machinery/vending/sovietsoda, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"mlX" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/dorms) +"mma" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plating, +/area/station/maintenance/abandon_holding_cell) +"mmc" = ( +/obj/docking_port/stationary/random{ + name = "lavaland"; + shuttle_id = "pod_2_lavaland" + }, +/turf/open/floor/iron/dark/smooth_large/airless, +/area/space/nearstation) +"mme" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/junction{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"mmk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/trash/peanuts, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"mmu" = ( +/obj/effect/turf_decal/tile/dark_blue/half/contrasted{ + dir = 1 + }, +/obj/machinery/airalarm/directional/north, +/obj/structure/table, +/obj/item/stack/rods/two, +/obj/item/stack/cable_coil/five, +/obj/machinery/light/directional/north, +/turf/open/floor/iron/dark, +/area/station/security/mechbay) +"mmz" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"mmD" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/cargo/storage) +"mmH" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/commons/dorms) +"mmL" = ( +/obj/machinery/smartfridge/organ, +/turf/open/floor/iron/white, +/area/station/medical/coldroom) +"mmN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/trash/boritos, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"mmS" = ( +/obj/machinery/door/airlock{ + name = "Lasertag Arena" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/common/laser_tag) +"mmT" = ( +/obj/effect/turf_decal/stripes{ + dir = 5 + }, +/obj/machinery/plumbing/ooze_compressor, +/turf/open/floor/iron, +/area/station/science/xenobiology) +"mmV" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 1 + }, +/obj/machinery/camera/directional/north, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"mne" = ( +/obj/machinery/power/smes/engineering, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/service/power_station) +"mng" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/bot, +/obj/effect/landmark/start/hangover/closet, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/port) +"mnh" = ( +/obj/machinery/light/directional/west, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/commons/fitness) +"mnp" = ( +/obj/machinery/light/directional/east, +/turf/open/floor/iron/freezer, +/area/station/science/xenobiology) +"mnw" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Air to Mix" + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/pumproom) +"mnG" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/machinery/disposal/bin, +/obj/machinery/light/directional/south, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/tcommsat/computer) +"mnI" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"mnJ" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible, +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible/layer2{ + dir = 5 + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/loading_area, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) +"mnZ" = ( +/obj/effect/turf_decal/stripes, +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/plating, +/area/station/cargo/storage) +"moh" = ( +/obj/machinery/door/airlock/silver{ + name = "Locker Room" + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/common/wrestling/locker) +"moj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/maintenance/aft/upper) +"mot" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"mou" = ( +/obj/structure/cable, +/obj/machinery/door/airlock/maintenance{ + name = "Disposal Access" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/disposal) +"moy" = ( +/obj/structure/chair/stool/directional/west, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/turf/open/floor/eighties, +/area/station/maintenance/abandon_arcade) +"moz" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/hallway/primary/port) +"moF" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/machinery/light/directional/south, +/obj/structure/cable, +/turf/open/floor/iron/stairs{ + dir = 4 + }, +/area/station/security/execution/transfer) +"moI" = ( +/obj/effect/turf_decal/stripes{ + dir = 9 + }, +/obj/machinery/suit_storage_unit/standard_unit, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hop) +"moK" = ( +/obj/machinery/turretid{ + icon_state = "control_stun"; + name = "AI Chamber turret control"; + pixel_x = 3; + pixel_y = -23 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/obj/machinery/airalarm/directional/north{ + pixel_y = 33 + }, +/obj/machinery/door/window/brigdoor/left/directional/west{ + name = "Primary AI Core Acces Door"; + req_access = list("ai_upload") + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai) +"moM" = ( +/obj/machinery/shower/directional/east, +/obj/machinery/light/small/directional/north, +/obj/structure/drain, +/turf/open/floor/iron/freezer, +/area/station/medical/aslyum) +"moO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/science/research/abandoned) +"moY" = ( +/obj/structure/drain, +/obj/machinery/shower/directional/north, +/obj/structure/curtain/cloth, +/turf/open/floor/iron/freezer, +/area/station/command/heads_quarters/ce) +"moZ" = ( +/obj/machinery/light/small/red/dim/directional/east, +/turf/open/floor/plating, +/area/station/escapepodbay) +"mpb" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/iron/shuttle/arrivals/airless, +/area/space/nearstation) +"mpe" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/mineral/plastitanium/red, +/area/station/science/robotics/lab) +"mpg" = ( +/obj/machinery/computer/arcade/battle{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/white/textured, +/area/station/medical/aslyum) +"mpq" = ( +/obj/effect/turf_decal/stripes, +/obj/machinery/power/shieldwallgen, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva/upper) +"mpy" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/south, +/obj/structure/window/spawner/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"mpD" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Arrivals" + }, +/turf/open/floor/iron/stairs/left{ + dir = 8 + }, +/area/station/escapepodbay) +"mpJ" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/spawner/random/structure/crate, +/turf/open/floor/iron/dark/herringbone, +/area/station/cargo/storage) +"mpR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/wood, +/area/station/maintenance/abandon_art_studio) +"mpT" = ( +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/iron/stairs, +/area/station/command/gateway) +"mqa" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 4 + }, +/turf/open/misc/beach/sand, +/area/station/service/barber) +"mqf" = ( +/obj/structure/chair/sofa/bench/right{ + dir = 4; + pixel_x = -5 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"mqh" = ( +/turf/closed/wall, +/area/station/maintenance/department/eva) +"mqi" = ( +/obj/structure/flora/bush/lavendergrass, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/growing/soil, +/turf/open/floor/grass, +/area/station/service/hydroponics) +"mqj" = ( +/obj/structure/cable, +/obj/effect/landmark/start/assistant, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/locker) +"mqm" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/security/detectives_office) +"mqs" = ( +/obj/structure/window/spawner/directional/west, +/obj/structure/closet/secure_closet/personal/cabinet, +/turf/open/floor/carpet/blue, +/area/station/command/heads_quarters/captain/private) +"mqx" = ( +/obj/effect/spawner/random/trash/moisture, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) +"mqy" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/plating, +/area/station/engineering/atmos) +"mqD" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/engineering/engine_smes) +"mqG" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"mqK" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/hallway/primary/central) +"mqN" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"mqO" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"mqQ" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/maintenance/rus_gambling) +"mqR" = ( +/obj/machinery/conveyor{ + dir = 6; + id = "garbage" + }, +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/disposal) +"mqY" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/station/science/power_station) +"mrb" = ( +/obj/structure/table/reinforced, +/obj/machinery/recharger{ + pixel_x = 9 + }, +/obj/machinery/recharger, +/obj/machinery/recharger{ + pixel_x = -9 + }, +/obj/effect/turf_decal/trimline/red/end{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured, +/area/station/ai_monitored/security/armory) +"mrc" = ( +/obj/machinery/camera/directional/east{ + c_tag = "Security - Brig Port upper"; + dir = 10 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark/corner{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/brig) +"mrl" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/flowers_br, +/obj/structure/window/spawner/directional/south, +/obj/structure/sign/poster/random/directional/north, +/obj/machinery/camera/autoname/directional/north, +/turf/open/floor/grass, +/area/station/common/cryopods) +"mrn" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/light_switch/directional/south, +/turf/open/floor/wood, +/area/station/security/courtroom) +"mro" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/lesser) +"mrw" = ( +/obj/item/radio/intercom/directional/west, +/turf/open/floor/iron/dark/side{ + dir = 9 + }, +/area/station/hallway/secondary/command) +"mrA" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"mrD" = ( +/obj/effect/spawner/random/vending/colavend, +/obj/machinery/light_switch/directional/north, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen/diner) +"mrH" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/hallway/primary/port) +"mrJ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/table/wood, +/obj/effect/spawner/random/maintenance, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/status_display/evac/directional/south, +/obj/machinery/light/small/directional/south, +/turf/open/floor/iron/dark, +/area/station/maintenance/abandon_diner) +"mrV" = ( +/turf/closed/wall/rust, +/area/station/maintenance/starboard/fore) +"mrX" = ( +/obj/effect/spawner/random/trash/food_packaging, +/turf/open/floor/eighties, +/area/station/maintenance/abandon_arcade) +"mrY" = ( +/obj/machinery/light/small/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/common/laser_tag) +"mrZ" = ( +/turf/closed/wall/r_wall, +/area/station/command/bridge) +"msc" = ( +/obj/structure/flora/bush/sparsegrass, +/obj/structure/flora/bush/grassy, +/turf/open/misc/grass, +/area/station/service/barber) +"mse" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/obj/machinery/light/directional/east, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"msf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"mso" = ( +/obj/structure/cable, +/obj/effect/landmark/start/lawyer, +/turf/open/floor/wood, +/area/station/service/lawoffice) +"mst" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"msF" = ( +/obj/structure/table, +/obj/item/paper/guides/jobs/hydroponics, +/obj/item/book/manual/hydroponics_pod_people, +/obj/item/secateurs, +/obj/machinery/splicer, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) +"msH" = ( +/obj/machinery/door/airlock/external{ + space_dir = 2 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/external, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"msQ" = ( +/obj/structure/cable, +/obj/effect/turf_decal/trimline/red/filled/warning, +/obj/effect/turf_decal/trimline/red/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/side, +/area/station/security/brig) +"msS" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"msT" = ( +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/security/execution/transfer) +"msV" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/medical/glass{ + id_tag = "MedbayFoyer"; + name = "Medbay" + }, +/obj/effect/mapping_helpers/airlock/access/all/medical/general, +/obj/effect/mapping_helpers/airlock/unres, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"mtc" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/rack, +/obj/item/storage/toolbox/mechanical, +/turf/open/floor/plating, +/area/station/command/secure_bunker) +"mth" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/item/gavelblock, +/obj/item/gavelhammer, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/security/courtroom) +"mtk" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/ai_monitored/turret_protected/aisat/hallway) +"mtl" = ( +/obj/structure/tank_dispenser/oxygen, +/obj/structure/railing{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/ai_monitored/command/storage/eva) +"mtu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/safe/floor{ + name = "inconspicuous safe" + }, +/obj/item/gun/energy/laser/musket, +/obj/item/book/granter/crafting_recipe/maint_gun/laser_musket_prime, +/turf/open/floor/carpet/red{ + name = "lumpy carpet" + }, +/area/station/service/library/abandoned) +"mtw" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/machinery/computer/shuttle/mining, +/turf/open/floor/iron/dark/small, +/area/station/cargo/miningdock) +"mtF" = ( +/obj/effect/turf_decal/tile/purple/half, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"mtR" = ( +/obj/structure/trash_pile, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"mub" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/medical/virology) +"mui" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, +/turf/open/floor/plating, +/area/station/engineering/atmos) +"muk" = ( +/obj/machinery/smartfridge, +/turf/open/floor/iron, +/area/station/common/night_club/changing_room) +"mup" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/dorms) +"muu" = ( +/obj/structure/table/reinforced, +/obj/machinery/computer/security/wooden_tv{ + pixel_y = 4 + }, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/iron/smooth_edge{ + dir = 1 + }, +/area/station/command/secure_bunker) +"muK" = ( +/obj/structure/cable, +/obj/machinery/door/airlock/hatch{ + name = "Starboard EVA Shed" + }, +/obj/effect/mapping_helpers/airlock/access/all/command/general, +/turf/open/floor/plating/airless, +/area/station/maintenance/eva_shed/starboard) +"muS" = ( +/obj/effect/decal/cleanable/dirt, +/turf/closed/wall/r_wall, +/area/station/science/ordnance/storage) +"muU" = ( +/obj/structure/chair, +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"muV" = ( +/obj/effect/turf_decal/stripes{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ + dir = 10 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"muW" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/turf_decal/vg_decals/numbers/one, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/machinery/door/window/elevator/left/directional/east{ + elevator_mode = 1; + elevator_linked_id = "publicElevator" + }, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/central) +"muY" = ( +/obj/machinery/bookbinder, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/security/prison/rec) +"mve" = ( +/turf/open/floor/iron, +/area/station/science/robotics) +"mvk" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/station/maintenance/central) +"mvl" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/camera/autoname/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"mvo" = ( +/obj/structure/closet/crate/freezer/surplus_limbs, +/turf/open/floor/iron/white, +/area/station/medical/coldroom) +"mvq" = ( +/obj/structure/cable, +/obj/structure/reagent_dispensers/plumbed{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_starboard) +"mvD" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 6 + }, +/turf/open/floor/iron/dark/small, +/area/station/cargo/miningdock) +"mvF" = ( +/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ + dir = 1 + }, +/obj/structure/cable, +/obj/structure/disposalpipe/junction/flip, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/cargo/office) +"mvK" = ( +/obj/machinery/door/firedoor, +/obj/machinery/firealarm/directional/east{ + layer = 3.5 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/door/airlock/public/glass{ + name = "Central Upper Hallway" + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"mvM" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/tinted/spawner/directional/west, +/obj/structure/window/reinforced/tinted/spawner/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"mvO" = ( +/obj/structure/dresser, +/obj/structure/window/spawner/directional/west, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/newscaster/directional/south, +/turf/open/floor/carpet/blue, +/area/station/command/heads_quarters/cmo) +"mvR" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/security/checkpoint/customs) +"mvS" = ( +/obj/machinery/camera/directional/east{ + c_tag = "AI Satellite - Hall"; + name = "ai camera"; + network = list("minisat"); + start_active = 1 + }, +/obj/machinery/status_display/evac/directional/east, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/aisat/hallway) +"mvY" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/disposal/bin, +/obj/machinery/camera/directional/south{ + c_tag = "Science - Research Director's Study"; + name = "science camera"; + network = list("ss13","rd") + }, +/obj/structure/extinguisher_cabinet/directional/east, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/rd) +"mvZ" = ( +/obj/structure/cable, +/obj/structure/chair/sofa/right/brown{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/start/assistant, +/turf/open/floor/wood, +/area/station/service/cafeteria) +"mwh" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/machinery/camera/directional/south{ + c_tag = "Engineering - Starboard Engineering Hub Deck 3"; + dir = 1; + name = "engineering camera" + }, +/obj/structure/lattice/catwalk, +/turf/open/openspace, +/area/station/maintenance/department/medical/central) +"mwm" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/mob/living/simple_animal/pet/gondola/funky, +/turf/open/floor/iron, +/area/station/service/theater) +"mwn" = ( +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/medical/storage) +"mwt" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"mww" = ( +/turf/closed/wall/rust, +/area/station/maintenance/fore/upper) +"mwz" = ( +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/ai_monitored/command/storage/eva) +"mwD" = ( +/obj/structure/lattice/catwalk, +/obj/structure/marker_beacon/burgundy, +/turf/open/space/openspace, +/area/space/nearstation) +"mwE" = ( +/obj/item/kirbyplants/random, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east, +/turf/open/floor/iron/white, +/area/station/medical/break_room) +"mwI" = ( +/obj/structure/table/wood, +/obj/item/food/grown/poppy/geranium{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/food/grown/poppy/lily, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/station/service/chapel/funeral) +"mwP" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/machinery/atmospherics/components/tank/oxygen, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/storage) +"mwQ" = ( +/obj/structure/table/wood, +/obj/item/modular_computer/laptop/preset/civilian{ + pixel_y = 12 + }, +/obj/item/flashlight/lamp/green{ + pixel_y = 4 + }, +/obj/structure/cable, +/obj/machinery/button/curtain{ + id = "HoPcurtains"; + pixel_x = 9; + pixel_y = -24 + }, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/hop) +"mwX" = ( +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 6 + }, +/obj/effect/landmark/start/hangover/closet, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/central) +"mxa" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/department/engineering/engine_aft_port) +"mxg" = ( +/obj/structure/musician/piano, +/obj/machinery/camera/directional/west{ + c_tag = " Prison - Cafeteria"; + network = list("ss13","prison") + }, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/wood, +/area/station/security/prison/mess) +"mxi" = ( +/turf/closed/wall, +/area/station/security/detectives_office) +"mxp" = ( +/obj/item/cigbutt, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"mxq" = ( +/obj/machinery/space_heater, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"mxE" = ( +/obj/structure/table/reinforced, +/obj/item/paper_bin{ + pixel_x = -1; + pixel_y = 5 + }, +/obj/item/pen{ + pixel_y = 6 + }, +/obj/item/restraints/handcuffs/cable/yellow, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/engineering) +"mxM" = ( +/obj/effect/turf_decal/trimline/purple/filled/line, +/obj/structure/cable, +/obj/machinery/light/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"mya" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/science/xenobiology) +"mys" = ( +/obj/structure/rack/shelf, +/obj/item/wrench, +/obj/item/weldingtool, +/turf/open/floor/engine, +/area/station/cargo/miningdock) +"myB" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/flora/bush/jungle/b, +/turf/open/floor/grass, +/area/station/science/research) +"myC" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Security Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/turf/open/floor/plating, +/area/station/maintenance/department/security/lesser) +"myD" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/portable_atmospherics/scrubber, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"myE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/south, +/obj/machinery/atmospherics/components/binary/valve/digital/on/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/valve/digital/on/layer2{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"myF" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/junction{ + dir = 2 + }, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/science/research) +"myG" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/commons/dorms) +"myL" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/cult, +/area/station/maintenance/cult_chapel_maint) +"myM" = ( +/obj/structure/chair/sofa/left/brown{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/red, +/area/station/service/library/abandoned) +"myQ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock/public/glass{ + name = "Arcade" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/common/arcade) +"myV" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/siding/wood, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 10 + }, +/area/station/hallway/primary/port) +"mza" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/spawner/random/entertainment/toy, +/turf/open/floor/plating/reinforced{ + initial_gas_mix = "TEMP=2.7" + }, +/area/station/science/ordnance/bomb) +"mze" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/loading_area, +/obj/effect/turf_decal/tile/yellow/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron/dark/corner, +/area/station/hallway/primary/aft) +"mzg" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/unres, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/effect/mapping_helpers/airlock/access/all/engineering/external, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"mzh" = ( +/obj/effect/landmark/start/hangover, +/turf/open/floor/wood, +/area/station/service/kitchen/diner) +"mzj" = ( +/obj/machinery/door/airlock/glass{ + name = "Cryopods" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/common/cryopods) +"mzp" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/displaycase/captain, +/obj/structure/extinguisher_cabinet/directional/south, +/obj/machinery/light/directional/south, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain/private) +"mzv" = ( +/obj/machinery/duct, +/turf/open/floor/iron/freezer, +/area/station/commons/dorms/room6) +"mzw" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/effect/decal/cleanable/blood/splatter/over_window{ + icon_state = "splatter4" + }, +/turf/open/floor/plating, +/area/station/maintenance/department/security/lower) +"mzy" = ( +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ + dir = 5 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"mzC" = ( +/obj/machinery/power/shieldwallgen/anchored{ + shield_range = 14 + }, +/obj/effect/turf_decal/stripes/box, +/obj/structure/cable, +/turf/open/floor/plating/airless, +/area/station/maintenance/eva_shed/port) +"mzF" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/displaycase/trophy, +/obj/machinery/light/small/directional/south, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/wood, +/area/station/service/library/abandoned) +"mzH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/structure/sign/poster/contraband/random/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/department/science/upper) +"mzK" = ( +/obj/effect/spawner/random/trash/mess, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"mzM" = ( +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/iron/stairs{ + dir = 1 + }, +/area/station/service/theater) +"mzN" = ( +/obj/machinery/door/airlock/security/glass{ + id_tag = "meddoor"; + name = "Medical Cell" + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/trimline/blue/filled/warning, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/medical/general, +/turf/open/floor/iron/white/side, +/area/station/security/checkpoint/medical) +"mzP" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/common/laser_tag) +"mzR" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "cmoshutter"; + name = "CMO Office Shutters" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/command/heads_quarters/cmo) +"mzV" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/bodycontainer/morgue{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/security/prison) +"mAe" = ( +/obj/effect/spawner/random/trash/mess, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) +"mAf" = ( +/obj/machinery/computer/exodrone_control_console{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/dark/side, +/area/station/cargo/drone_bay) +"mAg" = ( +/obj/effect/turf_decal/stripes, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/science/xenobiology) +"mAo" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva/upper) +"mAB" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/start/hangover, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/lesser) +"mAJ" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/cafeteria, +/area/station/common/wrestling/concessions) +"mAK" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/station/service/library/abandoned) +"mAM" = ( +/obj/effect/turf_decal/stripes, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"mAN" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "cargoload" + }, +/obj/structure/plasticflaps, +/turf/open/floor/iron/dark, +/area/station/cargo/storage) +"mAP" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/commons/toilet/restrooms) +"mAZ" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, +/turf/open/floor/plating, +/area/station/engineering/atmos/test_chambers) +"mBc" = ( +/obj/item/radio/intercom/directional/north, +/obj/effect/turf_decal/stripes, +/obj/effect/turf_decal/stripes/white/line, +/obj/machinery/atmospherics/pipe/smart/manifold/dark/visible{ + dir = 1 + }, +/obj/item/wrench, +/turf/open/floor/iron/dark, +/area/station/science/xenobiology) +"mBt" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/structure/noticeboard/directional/south, +/obj/machinery/light/directional/south, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) +"mBw" = ( +/obj/effect/turf_decal/tile/dark_blue/anticorner/contrasted{ + dir = 1 + }, +/obj/machinery/mech_bay_recharge_port{ + dir = 2 + }, +/turf/open/floor/iron/dark, +/area/station/security/mechbay) +"mBC" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/science/ordnance) +"mBE" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/item/kirbyplants/random, +/obj/machinery/light/directional/south, +/turf/open/floor/wood, +/area/station/hallway/primary/port) +"mBF" = ( +/obj/effect/turf_decal/caution/stand_clear, +/obj/machinery/button/door/directional/north{ + id = "mechbay"; + name = "Mech Bay Shutters Control"; + req_access = list("robotics") + }, +/obj/machinery/door/poddoor/shutters/window{ + id = "mechbay"; + name = "Mech Bay Shutters" + }, +/turf/open/floor/iron/dark, +/area/station/science/robotics/mechbay) +"mBR" = ( +/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/catwalk_floor, +/area/station/engineering/main) +"mBT" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/machinery/computer/shuttle/mining/common{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/entry) +"mBV" = ( +/obj/structure/grille, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/eva) +"mCa" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/loading_area, +/obj/structure/cable, +/turf/open/floor/iron/dark/textured_large, +/area/station/ai_monitored/security/armory) +"mCb" = ( +/obj/structure/window/spawner/directional/west, +/obj/structure/window/spawner/directional/north, +/obj/structure/flora/rock/pile, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/turf/open/floor/grass, +/area/station/service/cafeteria) +"mCi" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/qm) +"mCj" = ( +/obj/effect/decal/cleanable/crayon, +/obj/effect/mob_spawn/corpse/human/skeleton, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"mCm" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Medbay Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/medical/chemistry, +/turf/open/floor/plating, +/area/station/maintenance/department/science/upper) +"mCr" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/station/maintenance/department/chapel) +"mCE" = ( +/obj/effect/spawner/random/trash/mess, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"mCG" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/bookcase/manuals/engineering, +/turf/open/floor/wood, +/area/station/security/prison/rec) +"mCP" = ( +/obj/machinery/status_display/ai/directional/north, +/turf/open/floor/iron/dark, +/area/station/common/gaskiosk) +"mCT" = ( +/obj/structure/chair, +/obj/effect/turf_decal/bot, +/obj/machinery/status_display/evac/directional/north, +/obj/machinery/light/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"mCV" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/duct, +/turf/open/floor/iron/grimy, +/area/station/command/heads_quarters/captain) +"mDc" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/common/wrestling/lobby) +"mDg" = ( +/obj/machinery/door/poddoor/preopen{ + id = "XenoOffice"; + name = "Xenobiology Lockdown Blast Doors" + }, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Toxins Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) +"mDi" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 10 + }, +/obj/machinery/telecomms/processor/preset_one, +/turf/open/floor/iron/white/telecomms, +/area/station/tcommsat/server) +"mDj" = ( +/obj/structure/flora/bush/sparsegrass, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/flora/bush/lavendergrass, +/turf/open/floor/grass, +/area/station/service/hydroponics) +"mDm" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/item/folder/white, +/obj/item/reagent_containers/hypospray/medipen, +/turf/open/floor/iron/dark, +/area/station/medical/medbay/lobby) +"mDn" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) +"mDo" = ( +/turf/open/floor/iron, +/area/station/commons/fitness) +"mDq" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Central Hallway" + }, +/turf/open/floor/iron/dark/corner{ + dir = 4 + }, +/area/station/hallway/primary/central) +"mDs" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/research) +"mDz" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/machinery/computer/prisoner/management{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red/half{ + dir = 1 + }, +/turf/open/floor/iron/dark/side{ + dir = 5 + }, +/area/station/security/warden) +"mDA" = ( +/turf/open/floor/iron/stairs/left, +/area/station/hallway/primary/upper) +"mDC" = ( +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/station/security/courtroom) +"mDM" = ( +/obj/machinery/pdapainter, +/obj/effect/turf_decal/delivery/white{ + color = "#52B4E9" + }, +/obj/effect/turf_decal/siding/wood, +/obj/structure/noticeboard/hop{ + pixel_y = 28 + }, +/obj/machinery/button/photobooth{ + pixel_x = 38; + pixel_y = 3 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hop) +"mDP" = ( +/turf/open/floor/iron/stairs/right{ + dir = 8 + }, +/area/station/medical/medbay/central) +"mDQ" = ( +/obj/effect/spawner/structure/window/reinforced/tinted, +/turf/open/floor/plating, +/area/station/common/night_club) +"mDZ" = ( +/obj/structure/table, +/obj/item/folder/blue, +/turf/open/floor/iron, +/area/station/security/courtroom) +"mEf" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/commons/storage/art) +"mEg" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Pure to Mix" + }, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/pumproom) +"mEi" = ( +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 1 + }, +/turf/open/floor/iron/dark/small, +/area/station/science/circuits) +"mEr" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Labor Camp Shuttle Airlock" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/security/brig, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/execution/transfer) +"mEs" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/machinery/camera/directional/east{ + c_tag = "AI Satellite - Fore Port"; + name = "ai camera"; + network = list("minisat"); + start_active = 1 + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/aisat/exterior) +"mEt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot_white, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/iron/dark/small, +/area/station/maintenance/starboard/fore) +"mEv" = ( +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"mEz" = ( +/obj/structure/flora/bush/fullgrass, +/obj/structure/flora/bush/flowers_pp, +/turf/open/misc/grass, +/area/station/service/barber) +"mEC" = ( +/obj/structure/toilet{ + pixel_y = 10 + }, +/obj/structure/sink/directional/west, +/obj/structure/mirror{ + pixel_y = 32 + }, +/obj/machinery/light/small/directional/south, +/turf/open/floor/iron/freezer, +/area/station/medical/patients_rooms) +"mEE" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/light/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/plumbing/input, +/turf/open/floor/iron/dark, +/area/station/science/cytology) +"mER" = ( +/obj/machinery/light/directional/east, +/obj/machinery/computer/department_orders/engineering{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/break_room) +"mEY" = ( +/obj/effect/spawner/random/structure/steam_vent, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) +"mFb" = ( +/obj/machinery/button/door{ + id = "kitchenside"; + name = "Kitchen Side Shutters"; + pixel_x = -7; + pixel_y = -24; + req_access = list("kitchen") + }, +/obj/machinery/button/door{ + id = "kitchencounter"; + name = "Kitchen Counter Shutters"; + pixel_x = 8; + pixel_y = -24; + req_access = list("kitchen") + }, +/obj/machinery/light/directional/south, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) +"mFg" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/bluespace_vendor/directional/north, +/turf/open/floor/iron, +/area/station/commons/dorms) +"mFh" = ( +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/security/office) +"mFi" = ( +/obj/structure/table_frame/wood, +/obj/effect/spawner/random/clothing/costume, +/obj/machinery/light/small/directional/east, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/maintenance/clown_chamber) +"mFp" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/central) +"mFs" = ( +/obj/structure/window/spawner/directional/south, +/obj/structure/window/spawner/directional/west, +/obj/structure/flora/bush/jungle/a/style_3, +/obj/structure/flora/biolumi/flower/weaklight, +/turf/open/floor/grass/fairy, +/area/station/common/night_club) +"mFw" = ( +/obj/machinery/computer/atmos_control/oxygen_tank{ + dir = 1 + }, +/obj/structure/window/spawner/directional/south, +/obj/structure/window/spawner/directional/east, +/obj/effect/turf_decal/tile/red/diagonal_centre, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"mFy" = ( +/turf/open/floor/iron, +/area/station/engineering/main) +"mFI" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_starboard) +"mFJ" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/carpet/blue, +/area/station/service/lawoffice) +"mFM" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron/cafeteria, +/area/station/commons/toilet/auxiliary) +"mFP" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/chair/sofa/bench/left{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"mFS" = ( +/obj/structure/sink/directional/south, +/obj/effect/turf_decal/stripes{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 9 + }, +/obj/machinery/camera/directional/north{ + c_tag = "Science - Xenobio Airlock"; + name = "science camera"; + network = list("ss13","rd") + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology/hallway) +"mFT" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) +"mFY" = ( +/obj/effect/turf_decal/siding/dark{ + dir = 6 + }, +/turf/open/floor/glass/reinforced/airless, +/area/space/nearstation) +"mGb" = ( +/obj/machinery/vending/coffee, +/obj/effect/turf_decal/bot, +/obj/machinery/status_display/evac/directional/north, +/turf/open/floor/iron, +/area/station/science/breakroom) +"mGl" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/smooth_edge{ + dir = 8 + }, +/area/station/command/secure_bunker) +"mGp" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/science/research) +"mGs" = ( +/obj/machinery/firealarm/directional/west, +/obj/machinery/light_switch/directional/north, +/obj/structure/reagent_dispensers/wall/peppertank/directional/west{ + pixel_x = -36 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/structure/table/reinforced, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/checkpoint/science/research) +"mGw" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"mGy" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/engineering/gravity_generator) +"mGD" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"mGG" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 8 + }, +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/lavendergrass, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"mGI" = ( +/obj/structure/table/wood, +/obj/item/toy/cards/deck/kotahi, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"mGL" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/security/prison_upper) +"mGQ" = ( +/obj/effect/turf_decal/tile/blue/fourcorners, +/obj/structure/sink/directional/west, +/obj/machinery/newscaster/directional/east, +/turf/open/floor/iron/white, +/area/station/medical/exam_room) +"mGW" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/service{ + name = "Custodial Closet" + }, +/obj/effect/landmark/navigate_destination, +/obj/effect/mapping_helpers/airlock/access/all/service/janitor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron/checker, +/area/station/service/janitor) +"mHa" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"mHe" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/security/execution/transfer) +"mHg" = ( +/obj/structure/chair/stool{ + pixel_y = 3 + }, +/obj/machinery/door/window/brigdoor/right/directional/south{ + name = "Security Customs"; + req_access = list("security") + }, +/turf/open/floor/iron/dark/side, +/area/station/security/checkpoint) +"mHn" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"mHp" = ( +/obj/effect/turf_decal/trimline/blue/filled/line, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"mHu" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"mHv" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"mHx" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/security/prison) +"mHA" = ( +/obj/structure/table/reinforced, +/obj/item/pipe_dispenser, +/obj/item/pipe_dispenser{ + pixel_y = -8 + }, +/obj/item/pipe_dispenser{ + pixel_y = 8 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/main) +"mHB" = ( +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/iron/stairs/right{ + dir = 1 + }, +/area/station/commons/dorms) +"mHD" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/spawner/random/vending/colavend, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"mHE" = ( +/turf/closed/wall, +/area/station/service/hydroponics) +"mHF" = ( +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + desc = "A door remote control switch for the exterior brig doors."; + id = "outerbrig"; + name = "Brig Exterior Door Control"; + normaldoorcontrol = 1; + pixel_x = 6; + pixel_y = 7; + req_access = list("security") + }, +/obj/machinery/button/door{ + desc = "A door remote control switch for the interior brig doors."; + id = "innerbrig"; + name = "Brig Interior Door Control"; + normaldoorcontrol = 1; + pixel_x = -6; + pixel_y = 7; + req_access = list("security") + }, +/obj/machinery/button/door{ + id = "BrigBigEntrance"; + name = "Brig Acces Shutters controll"; + pixel_y = -4 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 4 + }, +/turf/open/floor/iron/dark/smooth_edge{ + dir = 8 + }, +/area/station/security/brig) +"mHI" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/large, +/turf/open/floor/grass, +/area/station/science/research) +"mHJ" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"mIe" = ( +/obj/structure/chair/wood/wings, +/obj/effect/landmark/start/assistant, +/obj/effect/landmark/start/assistant, +/turf/open/floor/carpet, +/area/station/service/library/lounge) +"mIg" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "Luggagebelt" + }, +/obj/structure/plasticflaps/opaque, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/security/checkpoint) +"mIn" = ( +/obj/effect/turf_decal/trimline/blue/line{ + dir = 10 + }, +/obj/machinery/shower/directional/west, +/obj/structure/drain, +/obj/structure/curtain, +/obj/structure/railing, +/turf/open/floor/noslip, +/area/station/medical/treatment_center) +"mIr" = ( +/obj/effect/turf_decal/stripes{ + dir = 10 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 5 + }, +/obj/machinery/dna_infuser, +/turf/open/floor/iron/dark, +/area/station/science/genetics) +"mIv" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/light_switch/directional/south, +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/iron, +/area/station/maintenance/solars/port/fore) +"mIw" = ( +/obj/effect/spawner/random/contraband/permabrig_weapon, +/obj/effect/spawner/random/contraband/prison, +/turf/open/floor/plating, +/area/station/security/prison/mess) +"mIx" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer2{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/loading_area{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/meter, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"mIz" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/iron/shuttle/arrivals/airless, +/area/space/nearstation) +"mIQ" = ( +/obj/machinery/light/directional/west, +/turf/open/floor/engine, +/area/station/science/explab) +"mIR" = ( +/turf/open/floor/plating, +/area/station/construction/mining/aux_base) +"mIV" = ( +/obj/structure/chair/office, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/security/checkpoint/escape) +"mIY" = ( +/obj/structure/table, +/obj/item/fuel_pellet, +/turf/open/floor/iron, +/area/station/security/execution/transfer) +"mJa" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/security/prison/upper) +"mJc" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/item/paper_bin{ + pixel_y = 3 + }, +/obj/item/pen/fountain{ + pixel_y = 5 + }, +/turf/open/floor/carpet/blue, +/area/station/command/heads_quarters/cmo) +"mJh" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/closed/wall, +/area/station/security/prison/upper) +"mJi" = ( +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/storage) +"mJm" = ( +/obj/structure/cable, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red, +/turf/open/floor/iron/dark/small, +/area/station/security/brig) +"mJr" = ( +/turf/open/floor/cult, +/area/station/maintenance/cult_chapel_maint) +"mJv" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron/smooth, +/area/station/cargo/power_station/upper) +"mJx" = ( +/obj/effect/turf_decal/trimline/purple/filled/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/science) +"mJC" = ( +/obj/item/radio/intercom/chapel{ + pixel_y = 22 + }, +/obj/structure/chair/wood{ + dir = 8 + }, +/obj/machinery/light/small/directional/north, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/landmark/blobstart, +/turf/open/floor/carpet, +/area/station/service/chapel) +"mJD" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet, +/area/station/service/chapel) +"mJE" = ( +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/commons/fitness/recreation) +"mJK" = ( +/obj/structure/cable, +/turf/open/floor/iron/smooth, +/area/station/maintenance/disposal/incinerator) +"mJL" = ( +/obj/machinery/door/airlock/hatch{ + name = "MiniSat Turret Chamber" + }, +/obj/effect/mapping_helpers/airlock/access/all/command/ai_upload, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai) +"mJN" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 8 + }, +/obj/structure/flora/bush/fullgrass, +/obj/structure/flora/bush/pale, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"mJO" = ( +/obj/structure/table/reinforced, +/obj/item/food/meat/slab/human{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/food/meat/slab/human, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/abandon_diner) +"mJQ" = ( +/obj/machinery/airalarm/directional/south, +/turf/open/floor/iron, +/area/station/engineering/atmos/hfr_room) +"mJX" = ( +/obj/structure/curtain/bounty, +/obj/structure/sign/calendar/directional/west, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/service/barber) +"mKa" = ( +/obj/structure/table/wood, +/obj/item/paperplane{ + dir = 8; + pixel_x = 3; + pixel_y = 10 + }, +/obj/item/paper{ + pixel_x = -4 + }, +/obj/item/paper{ + pixel_x = -1; + pixel_y = -2 + }, +/obj/item/pen/blue, +/turf/open/floor/carpet, +/area/station/medical/patients_rooms) +"mKc" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/upper) +"mKe" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/machinery/computer/prisoner/management, +/obj/effect/turf_decal/tile/red{ + color = "#DE3A3A"; + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + color = "#DE3A3A" + }, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"mKm" = ( +/obj/machinery/telecomms/broadcaster/preset_left, +/turf/open/floor/circuit/telecomms/mainframe, +/area/station/tcommsat/server) +"mKs" = ( +/obj/structure/table/glass, +/obj/structure/window/spawner/directional/east, +/obj/item/stack/medical/gauze, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) +"mKz" = ( +/obj/machinery/door/poddoor/shutters{ + id = "custodialshutters"; + name = "Custodial Closet Shutters" + }, +/obj/machinery/button/door{ + id = "custodialshutters"; + name = "Custodial Shutters"; + pixel_x = 26; + req_access = list("janitor") + }, +/turf/open/floor/iron/dark, +/area/station/service/janitor) +"mKG" = ( +/obj/structure/chair/stool, +/turf/open/floor/iron, +/area/station/commons/fitness/recreation) +"mKJ" = ( +/obj/effect/turf_decal/stripes/full, +/obj/effect/turf_decal/stripes/white/full, +/obj/machinery/door/poddoor/shutters{ + id = "securitydock1"; + name = "Security Dock 1" + }, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"mKN" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/commons/dorms) +"mKQ" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/large{ + pixel_y = -10 + }, +/turf/open/floor/grass, +/area/station/science/research) +"mKU" = ( +/obj/structure/window/reinforced/plasma/spawner/directional/south, +/obj/machinery/power/shuttle_engine/heater{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"mKV" = ( +/obj/structure/window/reinforced/tinted/spawner/directional/north, +/obj/structure/closet/secure_closet/hydroponics, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 9 + }, +/obj/item/botanical_lexicon, +/obj/item/chicken_book, +/turf/open/floor/iron/dark/herringbone, +/area/station/common/night_club/back_stage) +"mKX" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/iron/dark, +/area/station/security/execution/education) +"mLd" = ( +/obj/structure/chair/office, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/security/checkpoint/escape) +"mLj" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hall18"; + location = "hall17" + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"mLk" = ( +/obj/structure/window/reinforced/plasma/spawner/directional/west, +/turf/open/floor/engine/vacuum, +/area/station/maintenance/department/engineering/atmos_aux_port) +"mLn" = ( +/obj/effect/decal/cleanable/dirt, +/turf/closed/wall, +/area/station/science/research/abandoned) +"mLq" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/common/locker_room_shower) +"mLr" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"mLI" = ( +/obj/machinery/door/airlock{ + name = "Unisex Showers" + }, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/commons/toilet/restrooms) +"mLP" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/item/weldingtool, +/obj/item/wirecutters, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"mLR" = ( +/turf/closed/wall/r_wall, +/area/station/maintenance/clown_chamber) +"mLS" = ( +/obj/item/stack/sheet/cardboard, +/obj/effect/landmark/generic_maintenance_landmark, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"mLX" = ( +/obj/item/food/cheese/wheel, +/turf/open/misc/sandy_dirt, +/area/station/maintenance/department/medical) +"mLZ" = ( +/obj/effect/turf_decal/tile/blue/half/contrasted, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"mMc" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/o2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/simple/violet/visible/layer2{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/box, +/turf/open/floor/plating/airless, +/area/station/engineering/atmos/upper) +"mMd" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/commons/dorms/room2) +"mMh" = ( +/obj/machinery/light/directional/west, +/obj/structure/aquarium/prefilled, +/turf/open/floor/carpet/green, +/area/station/command/heads_quarters/nt_rep) +"mMi" = ( +/obj/item/radio/intercom/directional/north, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/machinery/artifact_xray, +/turf/open/floor/engine, +/area/station/science/explab) +"mMk" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 6 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/structure/sign/xenobio_guide/directional/east, +/obj/machinery/airalarm/directional/south, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"mMu" = ( +/obj/structure/sign/painting/library{ + pixel_y = 32 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/carpet, +/area/station/service/library) +"mMw" = ( +/turf/open/floor/iron/smooth_edge, +/area/station/cargo/miningdock) +"mMz" = ( +/obj/structure/chair/pew/right{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/station/maintenance/cult_chapel_maint) +"mMA" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/machinery/status_display/evac/directional/south, +/obj/machinery/suit_storage_unit/open, +/turf/open/floor/iron/dark, +/area/station/security/lockers) +"mME" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hall4"; + location = "hall3" + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"mMG" = ( +/turf/open/floor/iron/stairs/old{ + dir = 1 + }, +/area/station/common/wrestling/arena) +"mMJ" = ( +/obj/effect/spawner/liquids_spawner{ + reagent_list = list(/datum/reagent/water=600) + }, +/obj/structure/flora/rock/pile/jungle/style_5, +/turf/open/misc/asteroid, +/area/station/hallway/primary/upper) +"mMK" = ( +/obj/machinery/shieldgen, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva/upper) +"mML" = ( +/obj/structure/chair, +/obj/effect/landmark/start/assistant, +/obj/machinery/newscaster/directional/north, +/turf/open/floor/eighties/red, +/area/station/common/arcade) +"mMM" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hall21"; + location = "hall20" + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"mMN" = ( +/obj/effect/turf_decal/arrows, +/turf/open/floor/wood/large, +/area/station/security/brig) +"mMT" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/engineering/atmos/office) +"mMU" = ( +/obj/structure/closet/crate, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"mMZ" = ( +/turf/closed/wall, +/area/station/command/heads_quarters/hop) +"mNd" = ( +/obj/structure/easel, +/obj/item/canvas/twentythree_twentythree{ + pixel_x = 3 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/broken/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/abandon_art_studio) +"mNk" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/service/library/private) +"mNy" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/chair/comfy/brown{ + color = "#A46106" + }, +/turf/open/floor/wood/parquet, +/area/station/service/theater) +"mND" = ( +/obj/structure/table, +/obj/item/food/burger, +/turf/open/floor/eighties/red, +/area/station/common/arcade) +"mNE" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"mNI" = ( +/obj/structure/girder/displaced, +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"mNM" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/cup/glass/mug/coco{ + desc = "Still hot!"; + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/reagent_containers/cup/glass/shaker{ + pixel_x = 7; + pixel_y = 10 + }, +/turf/open/floor/carpet/green, +/area/station/command/heads_quarters/nt_rep) +"mNQ" = ( +/obj/effect/turf_decal/trimline/blue/line{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/security/prison/workout) +"mNS" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) +"mOb" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/common/wrestling/lobby) +"mOg" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/newscaster/directional/west, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"mOt" = ( +/obj/effect/mapping_helpers/airalarm/tlv_no_checks, +/obj/machinery/airalarm/directional/south, +/turf/open/floor/circuit/telecomms/mainframe, +/area/station/tcommsat/server) +"mOu" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/south, +/obj/structure/window/spawner/directional/east, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"mOB" = ( +/obj/structure/closet/secure_closet/brig, +/turf/open/floor/iron/dark, +/area/station/security/courtroom) +"mOI" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/window/brigdoor/security/holding/right/directional/south{ + req_access = list("brig"); + name = "Holding Cell" + }, +/turf/open/floor/iron, +/area/station/security/checkpoint/escape) +"mOJ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/station/security/courtroom) +"mOL" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/red/corner{ + dir = 4 + }, +/obj/machinery/computer/mechpad{ + dir = 1 + }, +/obj/effect/turf_decal/bot_red, +/turf/open/floor/mineral/plastitanium, +/area/station/science/robotics/mechbay) +"mOS" = ( +/obj/machinery/atmospherics/components/binary/pump, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/science/xenobiology) +"mOX" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/hallway/primary/port) +"mPa" = ( +/obj/machinery/button/door/directional/east{ + id = "qm_warehouse"; + name = "Warehouse Door Control"; + req_access = list("cargo") + }, +/obj/machinery/door/poddoor/shutters{ + id = "qm_warehouse"; + name = "Warehouse Shutters" + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark/small, +/area/station/cargo/warehouse) +"mPf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/trash_pile, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"mPh" = ( +/obj/effect/landmark/start/paramedic, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) +"mPm" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/closet/emcloset, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/aisat/exterior) +"mPo" = ( +/obj/structure/chair/sofa/bench/left{ + dir = 8; + pixel_x = 5 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/secondary/entry) +"mPp" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Science Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/research, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"mPs" = ( +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/obj/structure/table, +/obj/machinery/computer/security/telescreen{ + dir = 8; + name = "Disposal Driver Monitor"; + network = list("Trash"); + pixel_y = 7 + }, +/turf/open/floor/plating, +/area/station/maintenance/disposal) +"mPv" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/photocopier, +/turf/open/floor/iron/dark/side, +/area/station/security/checkpoint/customs/auxiliary) +"mPz" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"mPG" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/medical/virology) +"mPH" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 5 + }, +/obj/item/radio/intercom/directional/north, +/obj/machinery/light/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) +"mPK" = ( +/obj/effect/spawner/liquids_spawner{ + reagent_list = list(/datum/reagent/water=600) + }, +/obj/item/toy/seashell, +/turf/open/misc/asteroid, +/area/station/hallway/primary/upper) +"mPL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/stairs{ + dir = 8 + }, +/area/station/maintenance/solars/starboard/fore) +"mPQ" = ( +/obj/structure/filingcabinet/security, +/turf/open/floor/iron, +/area/station/security/checkpoint) +"mPS" = ( +/obj/structure/barricade/wooden, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"mPX" = ( +/obj/structure/table, +/obj/item/binoculars, +/obj/item/megaphone, +/obj/structure/window/spawner/directional/north, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/common/wrestling/arena) +"mQa" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 1; + name = "Air to External" + }, +/turf/closed/wall/r_wall, +/area/station/engineering/atmos/pumproom) +"mQc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"mQo" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/eva) +"mQp" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/dorms) +"mQt" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"mQE" = ( +/obj/effect/turf_decal/stripes/full, +/obj/effect/turf_decal/stripes/white/full, +/obj/machinery/door/poddoor/shutters{ + id = "securitydock2"; + name = "Security Dock 2" + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"mQG" = ( +/obj/machinery/door/airlock/research{ + name = "Robotics Surgery" + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/science/robotics, +/turf/open/floor/iron/white/side{ + dir = 8 + }, +/area/station/science/robotics) +"mQH" = ( +/obj/structure/table/wood, +/obj/item/taperecorder, +/obj/item/camera, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cassette_rack/prefilled{ + pixel_y = 8 + }, +/turf/open/floor/iron/dark, +/area/station/service/library/private) +"mQI" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/station/service/library/printer) +"mQP" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"mQR" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/athletic_mixed, +/obj/item/clothing/mask/animal/frog, +/obj/item/clothing/head/helmet/skull, +/obj/item/clothing/head/costume/jester, +/obj/item/clothing/head/costume/ushanka, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/luchador/rudos, +/obj/item/clothing/mask/luchador, +/obj/machinery/light/directional/south, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/common/wrestling/locker) +"mQS" = ( +/obj/structure/table/wood/fancy/black, +/obj/structure/window/spawner/directional/north, +/obj/item/reagent_containers/cup/glass/bottle/trappist{ + pixel_x = -10; + pixel_y = -5 + }, +/obj/item/reagent_containers/cup/glass/bottle/tequila{ + pixel_y = 4 + }, +/obj/item/reagent_containers/cup/glass/bottle/vermouth{ + pixel_x = 9; + pixel_y = -2 + }, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/service/bar) +"mQU" = ( +/obj/structure/chair/sofa/bench/left{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/engineering/break_room) +"mQV" = ( +/turf/open/floor/plating/airless, +/area/space/nearstation) +"mRa" = ( +/obj/machinery/growing/tray, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/machinery/light/directional/east, +/obj/machinery/airalarm/directional/east, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics/garden) +"mRe" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/mix_input{ + dir = 8 + }, +/turf/open/floor/engine/vacuum, +/area/station/engineering/atmos) +"mRf" = ( +/obj/structure/chair/wood, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"mRh" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light/directional/west, +/obj/machinery/status_display/ai/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"mRl" = ( +/obj/structure/closet/secure_closet/security/science, +/turf/open/floor/iron, +/area/station/security/checkpoint/science/research) +"mRm" = ( +/obj/machinery/airalarm/directional/north, +/obj/effect/landmark/start/assistant, +/turf/open/floor/grass, +/area/station/common/night_club) +"mRu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/trash/syndi_cakes, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"mRw" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/grimy, +/area/station/ai_monitored/turret_protected/aisat_interior) +"mRz" = ( +/turf/closed/wall/rust, +/area/station/maintenance/console_room) +"mRD" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/command/heads_quarters/rd) +"mRN" = ( +/obj/effect/mob_spawn/corpse/human/skeleton, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"mRP" = ( +/obj/structure/rack, +/obj/item/chair/plastic{ + pixel_y = 10 + }, +/obj/item/chair/plastic{ + pixel_y = 12 + }, +/obj/item/chair/plastic{ + pixel_y = 14 + }, +/turf/open/floor/stone, +/area/station/common/wrestling/arena) +"mRS" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/commons/dorms) +"mRY" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/checkpoint/supply) +"mSc" = ( +/obj/effect/turf_decal/stripes, +/obj/effect/turf_decal/stripes/white/line, +/obj/structure/table, +/obj/item/clothing/gloves/latex, +/obj/item/clothing/mask/surgical, +/obj/item/reagent_containers/spray/cleaner, +/obj/structure/window/spawner/directional/south, +/turf/open/floor/iron/white, +/area/station/medical/morgue) +"mSe" = ( +/obj/structure/cable, +/turf/open/floor/mineral/plastitanium/red, +/area/station/maintenance/cult_chapel_maint) +"mSk" = ( +/obj/machinery/light/small/directional/west, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"mSx" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/bot, +/obj/machinery/dish_drive/bullet, +/obj/effect/turf_decal/trimline/red/line{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark, +/turf/open/floor/iron/dark/textured_edge, +/area/station/security/office) +"mSE" = ( +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 1 + }, +/obj/structure/closet/emcloset, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/starboard) +"mSG" = ( +/turf/closed/wall/rust, +/area/station/science/power_station) +"mSI" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/commons/fitness/recreation) +"mSL" = ( +/obj/structure/sign/painting/parting{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain) +"mSO" = ( +/obj/structure/table/wood, +/obj/item/clipboard, +/obj/item/toy/figure/curator, +/obj/structure/window/spawner/directional/south, +/turf/open/floor/wood, +/area/station/service/library) +"mSP" = ( +/obj/structure/table, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen/diner) +"mSZ" = ( +/obj/effect/turf_decal/bot_blue, +/obj/structure/rack, +/obj/item/bodybag{ + pixel_x = -6; + pixel_y = 1 + }, +/obj/item/bodybag{ + pixel_x = 6; + pixel_y = 1 + }, +/obj/item/bodybag{ + pixel_y = 8 + }, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/iron/dark/small, +/area/station/medical/break_room) +"mTi" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/security/checkpoint) +"mTp" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/cable, +/obj/structure/extinguisher_cabinet/directional/west, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/disposal) +"mTw" = ( +/obj/structure/bed/dogbed{ + name = "Walter's Dogbed" + }, +/mob/living/basic/pet/dog/bullterrier{ + desc = "It's Walter, he bites criminals just as well as he bites toddlers"; + name = "Walter"; + real_name = "Walter" + }, +/obj/machinery/status_display/evac/directional/south, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/blueshield) +"mTy" = ( +/obj/machinery/light/directional/west, +/obj/machinery/airalarm/directional/west, +/obj/machinery/light_switch/directional/west{ + pixel_x = -20; + pixel_y = 9 + }, +/obj/machinery/rnd/production/techfab/department/medical, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron, +/area/station/medical/storage) +"mTE" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green, +/turf/open/floor/wood, +/area/station/service/library) +"mTK" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/mob/living/basic/pet/potty, +/obj/structure/sink/directional/east, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/common/night_club/changing_room) +"mTN" = ( +/obj/structure/table, +/obj/item/grenade/spawnergrenade/syndiesoap, +/turf/open/floor/noslip, +/area/station/maintenance/gag_room) +"mTO" = ( +/obj/structure/table, +/obj/item/knife{ + pixel_x = 5 + }, +/obj/item/kitchen/fork{ + pixel_x = -5 + }, +/turf/open/floor/iron/dark, +/area/station/maintenance/department/security/prison_upper) +"mTQ" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "cargodeliver" + }, +/turf/open/floor/iron/dark, +/area/station/cargo/office) +"mTU" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/portable_atmospherics/canister, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/test_chambers) +"mTW" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Janitorial Closet" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"mTZ" = ( +/obj/structure/closet/secure_closet/freezer/kitchen, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/freezer, +/area/station/maintenance/department/medical/central) +"mUe" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/computer/department_orders/security{ + dir = 4 + }, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/iron/dark, +/area/station/security/office) +"mUi" = ( +/obj/structure/decorative/shelf, +/obj/item/vending_refill/cigarette{ + pixel_y = 10 + }, +/obj/item/vending_refill/cola{ + pixel_x = 2; + pixel_y = -4 + }, +/turf/open/floor/iron/smooth_edge{ + dir = 1 + }, +/area/station/cargo/miningdock) +"mUr" = ( +/obj/machinery/computer/records/security{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red/half{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/warden) +"mUs" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/structure/chair/comfy/brown{ + color = "#A46106"; + dir = 4 + }, +/turf/open/floor/wood, +/area/station/commons/dorms/room3) +"mUu" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/service/barber) +"mUx" = ( +/obj/structure/bed, +/obj/item/bedsheet/orange, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/security/prison/safe) +"mUy" = ( +/obj/effect/spawner/random/structure/chair_flipped, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"mUF" = ( +/obj/structure/chair/sofa/bench/right{ + dir = 4; + pixel_x = -5 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron, +/area/station/common/wrestling/locker) +"mUH" = ( +/obj/structure/cable, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/cmo) +"mUL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/junction{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"mUP" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp, +/turf/open/floor/wood, +/area/station/service/lawoffice) +"mUT" = ( +/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/cargo/office) +"mVb" = ( +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"mVd" = ( +/obj/effect/turf_decal/stripes/white/corner{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/white/corner{ + dir = 1 + }, +/turf/open/floor/engine/hull/reinforced, +/area/space/nearstation) +"mVh" = ( +/obj/structure/flora/bush/jungle/b, +/obj/structure/flora/bush/flowers_yw, +/obj/structure/window/fulltile, +/turf/open/floor/grass, +/area/station/hallway/primary/upper) +"mVi" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/machinery/airalarm/directional/west, +/obj/machinery/camera/directional/north{ + c_tag = " Prison - Workshop"; + dir = 8; + network = list("ss13","prison") + }, +/turf/open/floor/iron, +/area/station/security/prison/work) +"mVk" = ( +/turf/closed/wall, +/area/station/service/bar) +"mVo" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 9 + }, +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"mVs" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/structure/extinguisher_cabinet/directional/south, +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/wood, +/area/station/hallway/primary/central) +"mVt" = ( +/obj/machinery/camera/autoname/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"mVv" = ( +/obj/structure/barricade/wooden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"mVF" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/side, +/area/station/security/warden) +"mVI" = ( +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/item/clipboard, +/obj/item/folder/yellow, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/iron/dark, +/area/station/maintenance/aux_eva) +"mVS" = ( +/obj/structure/reagent_dispensers/water_cooler, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/storage) +"mVT" = ( +/obj/structure/table/wood/fancy/royalblack, +/obj/item/dice/d20, +/turf/open/floor/carpet, +/area/station/service/library/lounge) +"mWa" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Courtroom" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/security/court, +/turf/open/floor/carpet, +/area/station/security/courtroom) +"mWf" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/engineering/main) +"mWh" = ( +/obj/structure/filingcabinet, +/turf/open/floor/wood/parquet, +/area/station/common/arcade) +"mWj" = ( +/obj/effect/turf_decal/siding/yellow, +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high, +/obj/machinery/digital_clock/directional/west, +/obj/structure/sign/calendar/directional/north, +/obj/item/rcl/pre_loaded, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/ce) +"mWl" = ( +/obj/effect/spawner/random/trash/mess, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"mWm" = ( +/obj/item/cigbutt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"mWp" = ( +/turf/closed/wall/rust, +/area/station/maintenance/port/fore) +"mWt" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hall9"; + location = "hall8" + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/primary/port) +"mWy" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"mWL" = ( +/obj/structure/chair/sofa/corp/right, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/customs/auxiliary) +"mWQ" = ( +/turf/open/floor/catwalk_floor/iron/airless, +/area/space/nearstation) +"mWU" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable, +/obj/structure/extinguisher_cabinet/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"mWW" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/escapepodbay) +"mWY" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 8 + }, +/obj/structure/chair/office{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/break_room) +"mXd" = ( +/obj/machinery/door/airlock/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"mXe" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/medical/medbay/central) +"mXl" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/upper) +"mXq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"mXr" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/structure/cable, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/iron/dark, +/area/station/command/gateway) +"mXB" = ( +/obj/machinery/light/small/directional/west, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/xenobio_disposals) +"mXC" = ( +/obj/item/banner/science/mundane, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 5 + }, +/turf/open/floor/iron/white, +/area/station/science) +"mXD" = ( +/obj/structure/table, +/obj/effect/turf_decal/siding/wood, +/obj/item/food/muffin/berry{ + pixel_x = -7; + pixel_y = 11 + }, +/obj/item/food/muffin/berry{ + pixel_y = 11 + }, +/obj/item/food/muffin/berry{ + pixel_x = 8; + pixel_y = 11 + }, +/obj/item/food/cake/chocolate, +/turf/open/floor/iron/dark, +/area/station/command/captain_dining) +"mXK" = ( +/obj/effect/turf_decal/delivery/white, +/turf/open/floor/iron/dark/small, +/area/station/cargo/storage) +"mXM" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/herringbone, +/area/station/security/brig) +"mXO" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/security/execution/transfer) +"mYc" = ( +/obj/effect/decal/cleanable/glass, +/obj/item/shard, +/turf/open/floor/iron/smooth, +/area/station/maintenance/starboard/fore) +"mYd" = ( +/obj/effect/turf_decal/stripes/white/line, +/obj/structure/shipping_container/conarex, +/turf/open/floor/iron/dark/small, +/area/station/cargo/miningdock) +"mYf" = ( +/obj/structure/chair/plastic{ + dir = 4; + layer = 2.7 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"mYh" = ( +/obj/machinery/duct, +/turf/open/floor/iron/freezer, +/area/station/commons/dorms/room4) +"mYm" = ( +/obj/effect/turf_decal/bot_red, +/obj/machinery/rnd/production/circuit_imprinter/department/science, +/turf/open/floor/mineral/plastitanium, +/area/station/science/robotics/lab) +"mYn" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/security/prison) +"mYo" = ( +/obj/machinery/door/airlock/external{ + space_dir = 8 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/external, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"mYx" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/science/research/abandoned) +"mYy" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/science/explab) +"mYB" = ( +/obj/structure/chair/office{ + dir = 8 + }, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/qm) +"mYD" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/service/hydroponics, +/obj/machinery/door/airlock/hydroponics{ + name = "Hydroponics Backroom" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/duct, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"mYG" = ( +/obj/structure/table, +/obj/item/melee/baseball_bat, +/turf/open/floor/iron/dark, +/area/station/maintenance/department/security/prison_upper) +"mYK" = ( +/obj/machinery/door/airlock/research/glass{ + name = "Pharmacy" + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/trimline/yellow/filled/warning{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/yellow/filled/warning{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/medical/pharmacy, +/turf/open/floor/iron/white, +/area/station/medical/pharmacy) +"mYL" = ( +/obj/structure/railing, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/primary/central) +"mYV" = ( +/obj/item/stack/sheet/cardboard, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/eva) +"mZc" = ( +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"mZA" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"mZE" = ( +/obj/structure/chair/sofa/left/brown{ + dir = 1 + }, +/obj/structure/window/spawner/directional/south, +/obj/effect/landmark/start/assistant, +/obj/machinery/camera/directional/west{ + c_tag = "Bar - Aft"; + name = "service camera" + }, +/obj/machinery/light/directional/west, +/obj/machinery/status_display/evac/directional/west, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"mZI" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"mZJ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/structure/railing{ + dir = 5 + }, +/obj/structure/table/wood/fancy/green, +/obj/item/statuebust/hippocratic{ + pixel_y = 8 + }, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/nt_rep) +"mZP" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Security Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"mZZ" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/item/pipe_dispenser, +/obj/item/wrench, +/obj/item/analyzer, +/obj/machinery/atmospherics/pipe/layer_manifold, +/turf/open/floor/plating, +/area/station/security/prison/upper) +"nah" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 9 + }, +/obj/machinery/telecomms/server/presets/command, +/obj/machinery/light/directional/west, +/turf/open/floor/iron/dark/telecomms, +/area/station/tcommsat/server) +"nai" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/disposal/bin, +/obj/machinery/light_switch/directional/west, +/obj/machinery/camera/directional/east{ + c_tag = "Crew Area - Locker Room"; + dir = 8; + name = "dormitories camera" + }, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/iron, +/area/station/commons/locker) +"naj" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"nak" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/lobby) +"nal" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/security/checkpoint/engineering) +"nao" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/openspace, +/area/station/maintenance/fore/upper) +"nav" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/science/genetics) +"nax" = ( +/obj/effect/spawner/random/structure/crate, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"nay" = ( +/obj/machinery/firealarm/directional/east, +/obj/machinery/light_switch/directional/north, +/obj/structure/table/reinforced, +/obj/item/book/manual/wiki/engineering_hacking{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/book/manual/wiki/engineering_guide{ + pixel_x = -2 + }, +/obj/effect/turf_decal/tile/yellow/half/contrasted, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/engineering/lobby) +"naD" = ( +/turf/closed/wall/r_wall, +/area/station/maintenance/cult_chapel_maint) +"naF" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/generic, +/obj/structure/flora/bush/flowers_pp, +/obj/structure/window/spawner/directional/north, +/turf/open/floor/grass, +/area/station/commons/dorms) +"naJ" = ( +/obj/effect/turf_decal/stripes, +/obj/structure/rack/gunrack, +/obj/machinery/light/directional/north, +/obj/effect/spawner/armory_spawn/centcom_lasers, +/turf/open/floor/engine, +/area/station/command/secure_bunker) +"nba" = ( +/turf/closed/wall, +/area/station/science/breakroom) +"nbm" = ( +/obj/machinery/door/airlock/security{ + name = "Detective's Study" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/security/detective, +/turf/open/floor/wood, +/area/station/security/detectives_office) +"nbp" = ( +/obj/effect/decal/cleanable/blood/gibs/old, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/station/maintenance/department/security/prison_upper) +"nbq" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet, +/area/station/service/chapel/funeral) +"nbr" = ( +/obj/structure/flora/bush/fullgrass, +/obj/structure/flora/bush/sunny, +/obj/structure/window/spawner/directional/south, +/obj/structure/window/spawner/directional/north, +/obj/structure/window/spawner/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/grass, +/area/station/commons/dorms) +"nbC" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer2{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/manifold/green/visible/layer4{ + dir = 8 + }, +/obj/machinery/meter/layer4, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/loading_area{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"nbI" = ( +/obj/effect/turf_decal/stripes{ + dir = 10 + }, +/obj/structure/table/glass, +/obj/item/storage/box/monkeycubes{ + pixel_x = -5; + pixel_y = 1 + }, +/obj/item/storage/box/monkeycubes{ + pixel_x = 6; + pixel_y = 4 + }, +/turf/open/floor/iron, +/area/station/science/xenobiology) +"nbJ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 4; + name = "Dorm Junction"; + sortType = 26 + }, +/turf/open/floor/iron, +/area/station/commons/locker) +"nbK" = ( +/obj/structure/flora/bush/fullgrass, +/turf/open/floor/grass, +/area/station/maintenance/port/fore) +"nbP" = ( +/obj/effect/turf_decal/stripes{ + dir = 6 + }, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/science/xenobiology) +"nbW" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark/textured_large, +/area/station/ai_monitored/security/armory) +"nca" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"ncg" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"ncn" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/dark, +/area/station/security/brig) +"ncp" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/disposal) +"nct" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/security/power_station) +"ncB" = ( +/obj/effect/spawner/random/trash/mess, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plating, +/area/station/maintenance/wrestle) +"ncC" = ( +/obj/effect/decal/cleanable/dirt, +/turf/closed/wall/rust, +/area/station/medical/power_station) +"ncD" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"ncH" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/security/checkpoint/escape) +"ncJ" = ( +/obj/structure/closet/crate, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"ncN" = ( +/obj/structure/easel, +/obj/item/canvas/twentythree_twentythree{ + pixel_x = 3 + }, +/obj/item/canvas/twentythree_twentythree{ + pixel_x = 3 + }, +/obj/structure/sign/painting/library{ + pixel_y = 32 + }, +/turf/open/floor/iron/dark, +/area/station/service/library) +"ncV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"ndg" = ( +/obj/machinery/seed_extractor, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/window/spawner/directional/west, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics/garden) +"ndi" = ( +/obj/structure/sink/directional/south, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 9 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/machinery/camera/directional/north{ + network = list("ss13","xeno","rd") + }, +/turf/open/floor/iron/white, +/area/station/science/cytology) +"ndp" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/emcloset, +/turf/open/floor/iron/dark/side{ + dir = 9 + }, +/area/station/hallway/secondary/exit) +"nds" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/tcommsat/computer) +"ndw" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/machinery/door/window/left/directional/north{ + req_access = list("lawyer") + }, +/turf/open/floor/carpet/blue, +/area/station/service/lawoffice) +"ndB" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable, +/obj/machinery/light/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/structure/sign/poster/random/directional/east, +/turf/open/floor/iron, +/area/station/commons/dorms) +"ndC" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/pool_maintenance) +"ndG" = ( +/obj/structure/table, +/obj/item/knife/combat/survival, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"ndS" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/bot, +/obj/machinery/light/small/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) +"ndT" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/mineral/plastitanium/red, +/area/station/science/robotics/lab) +"nec" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 1 + }, +/obj/structure/disposalpipe/sorting/mail{ + dir = 8; + name = "Medbay Junction"; + sortType = 9 + }, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"nef" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood/large, +/area/station/common/night_club) +"neh" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 6 + }, +/turf/open/floor/iron/dark/herringbone, +/area/station/security/prison/safe) +"nek" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, +/obj/machinery/atmospherics/pipe/smart/simple/general/visible, +/turf/open/floor/plating, +/area/station/engineering/atmos/test_chambers) +"nel" = ( +/turf/open/floor/iron, +/area/station/security/courtroom) +"nen" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/garbage, +/turf/open/floor/plating, +/area/station/maintenance/department/security/prison_upper) +"nes" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/security/corrections_officer) +"neu" = ( +/obj/structure/table_frame, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"ney" = ( +/obj/effect/spawner/liquids_spawner, +/turf/open/floor/lowered/iron/pool/cobble/side{ + dir = 8 + }, +/area/station/common/pool) +"neF" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 1 + }, +/turf/open/floor/engine/vacuum, +/area/station/engineering/atmos/test_chambers) +"neG" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/science/ordnance/office) +"neJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"neM" = ( +/turf/open/floor/glass/reinforced, +/area/station/hallway/primary/port) +"neN" = ( +/obj/machinery/door/firedoor, +/obj/machinery/firealarm/directional/west, +/obj/machinery/door/airlock/public/glass{ + name = "Command Hallway" + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/command) +"neQ" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"neV" = ( +/obj/effect/turf_decal/stripes/red/line{ + dir = 8 + }, +/obj/machinery/light/directional/west, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"neY" = ( +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/medical/storage) +"nff" = ( +/obj/effect/turf_decal/stripes{ + dir = 9 + }, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"nfg" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ + dir = 4 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"nfj" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/nitrous_output, +/turf/open/floor/engine/n2o, +/area/station/engineering/atmos) +"nfn" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/maintenance/disposal) +"nfr" = ( +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron, +/area/station/commons/fitness) +"nfw" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/power/shieldwallgen/xenobiologyaccess, +/turf/open/floor/iron, +/area/station/science/xenobiology/control) +"nfx" = ( +/obj/machinery/door/airlock/hatch, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/station/maintenance/disposal) +"nfz" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/service/kitchen/diner) +"nfB" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/machinery/duct, +/turf/open/floor/carpet/purple, +/area/station/science/breakroom) +"nfC" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green{ + pixel_x = -6; + pixel_y = 11 + }, +/obj/item/paper_bin{ + pixel_y = -4 + }, +/obj/item/pen{ + pixel_y = -2 + }, +/turf/open/floor/carpet, +/area/station/security/detectives_office) +"nfE" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/item/pizzabox/meat{ + pixel_y = 9 + }, +/turf/open/floor/wood/parquet, +/area/station/common/arcade) +"nfF" = ( +/obj/effect/decal/cleanable/cobweb, +/obj/structure/trash_pile, +/obj/structure/sign/poster/contraband/random/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"nfL" = ( +/turf/closed/wall, +/area/station/common/wrestling/beverage) +"nfS" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Gamer Lair" + }, +/obj/effect/turf_decal/siding/wood, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/maintenance/gamer_lair) +"nge" = ( +/turf/open/floor/wood, +/area/station/service/kitchen/diner) +"ngk" = ( +/obj/structure/table, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"ngl" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/medical/surgery) +"ngm" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/dorms) +"ngp" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"ngr" = ( +/obj/structure/window/spawner/directional/east, +/obj/structure/window/spawner/directional/west, +/obj/structure/window/spawner/directional/north, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/flowers_br, +/turf/open/floor/grass, +/area/station/service/hydroponics) +"ngA" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat_interior) +"ngB" = ( +/obj/machinery/door/airlock/external{ + name = "Atmospherics Internal Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/engineering/atmos) +"ngG" = ( +/obj/machinery/door/airlock/grunge{ + name = "Chapel Hall" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/landmark/navigate_destination, +/turf/open/floor/iron, +/area/station/service/chapel) +"ngI" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering/glass{ + name = "Supermatter Engine Control Room" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/engineering/general, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/main) +"ngJ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/security/courtroom) +"ngK" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"ngQ" = ( +/obj/structure/table, +/obj/machinery/button/curtain{ + id = "prisonlibrarycurtain"; + pixel_x = -24 + }, +/obj/machinery/light/directional/west, +/obj/machinery/computer/libraryconsole/bookmanagement, +/turf/open/floor/wood, +/area/station/security/prison/rec) +"ngR" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/carpet, +/area/station/maintenance/abandon_office) +"ngX" = ( +/obj/structure/chair/sofa/right/brown{ + dir = 1 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/carpet, +/area/station/medical/aslyum) +"ngY" = ( +/obj/structure/flora/bush/fullgrass, +/obj/structure/flora/bush/flowers_yw, +/turf/open/floor/grass, +/area/station/command/heads_quarters/captain) +"ngZ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/duct, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/captain) +"nha" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/security/brig) +"nhb" = ( +/obj/effect/turf_decal/trimline/blue/filled/end{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/security/prison) +"nhj" = ( +/obj/structure/guncase, +/obj/effect/turf_decal/delivery, +/obj/item/storage/box/lethalshot, +/obj/item/gun/ballistic/shotgun/doublebarrel, +/turf/open/floor/iron/smooth_corner{ + dir = 8 + }, +/area/station/command/secure_bunker) +"nhk" = ( +/obj/structure/railing/wooden_fencing{ + dir = 8 + }, +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/common/pool) +"nhG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"nhO" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/secure_closet/personal/patient, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/medical/medbay/central) +"nhP" = ( +/obj/structure/bodycontainer/morgue{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/service/chapel) +"nhQ" = ( +/turf/closed/wall, +/area/station/engineering/storage/tcomms) +"nhR" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"nhW" = ( +/obj/effect/spawner/random/trash/mess, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"nhZ" = ( +/obj/effect/turf_decal/stripes, +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/science/ordnance/storage) +"nih" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"nii" = ( +/obj/machinery/igniter/incinerator_atmos, +/turf/open/floor/engine/vacuum, +/area/station/maintenance/disposal/incinerator) +"nin" = ( +/obj/structure/lattice, +/obj/item/stack/ore/glass, +/turf/open/space/basic, +/area/space/nearstation) +"niu" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 10 + }, +/obj/structure/flora/bush/fullgrass, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/flowers_br, +/obj/structure/statue/sandstone/venus{ + anchored = 1; + dir = 1; + pixel_x = 3; + pixel_y = 7; + layer = 3.4 + }, +/turf/open/floor/grass, +/area/station/hallway/primary/aft) +"niB" = ( +/obj/structure/mirror/directional/west, +/obj/effect/landmark/start/mime, +/obj/structure/sink/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/kitchen, +/area/station/service/theater) +"niD" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron, +/area/station/engineering/lobby) +"niE" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"niI" = ( +/obj/structure/window/spawner/directional/west, +/obj/effect/landmark/start/assistant, +/obj/structure/chair/sofa/corp/left{ + color = "#DE3A3A"; + dir = 4 + }, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen/diner) +"niJ" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/hallway/secondary/entry) +"niN" = ( +/obj/effect/decal/cleanable/greenglow, +/turf/open/floor/plating/rust, +/area/station/maintenance/department/science/xenobiology) +"niO" = ( +/obj/machinery/camera/directional/west{ + c_tag = "Primary Tool Storage"; + name = "engineering camera" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/iron, +/area/station/commons/storage/primary) +"niU" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/door/airlock/public/glass{ + name = "Study Room" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/station/service/library/printer) +"njc" = ( +/obj/structure/table/wood/fancy/blue, +/obj/item/flashlight/lamp/green{ + pixel_y = 4 + }, +/turf/open/floor/carpet/blue, +/area/station/command/heads_quarters/captain/private) +"njf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"njk" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/preopen{ + id = "hopblast"; + name = "HoP Blast Door" + }, +/obj/structure/cable, +/obj/machinery/door/airlock/hop{ + id_tag = "HoPdoor"; + name = "Head of Personel's Quarters" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/navigate_destination, +/obj/effect/mapping_helpers/airlock/access/all/command/hop, +/turf/open/floor/wood, +/area/station/command/heads_quarters/hop) +"njq" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/turf/open/floor/carpet, +/area/station/service/cafeteria) +"njQ" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) +"njV" = ( +/obj/structure/trash_pile, +/obj/machinery/light/small/broken/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"nkd" = ( +/obj/effect/turf_decal/trimline/purple/line{ + dir = 1 + }, +/turf/open/floor/iron/white/side{ + dir = 1 + }, +/area/station/science/research) +"nkh" = ( +/obj/structure/flora/tree/palm, +/obj/structure/flora/bush/lavendergrass, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"nki" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_y = 3 + }, +/obj/item/pen{ + pixel_y = 3 + }, +/obj/machinery/airalarm/directional/west, +/obj/structure/noticeboard/directional/south, +/turf/open/floor/iron/dark, +/area/station/science/robotics) +"nkl" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/aisat/exterior) +"nkn" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/curtain/bounty/start_closed, +/turf/open/floor/plating, +/area/station/security/prison/upper) +"nko" = ( +/turf/closed/wall/r_wall, +/area/station/maintenance/abandon_arcade) +"nku" = ( +/obj/structure/chair/office, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/security/checkpoint/science/research) +"nkI" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"nkN" = ( +/obj/machinery/door/airlock/research{ + name = "Research Division Access" + }, +/obj/machinery/door/firedoor/heavy, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/effect/mapping_helpers/airlock/access/all/science/research, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/science/ordnance) +"nkO" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/tcommsat/computer) +"nkV" = ( +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/item/crowbar, +/obj/item/wirecutters, +/obj/item/stack/cable_coil, +/turf/open/floor/iron/dark, +/area/station/engineering/main) +"nkY" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/light_switch/directional/north, +/obj/effect/landmark/secequipment, +/obj/effect/turf_decal/trimline/red/line, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_edge{ + dir = 1 + }, +/area/station/security/office) +"nlb" = ( +/obj/item/bodypart/leg/left/monkey, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/cult, +/area/station/maintenance/department/science/xenobiology) +"nlg" = ( +/obj/effect/turf_decal/trimline/red/filled/warning{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/brig) +"nli" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/carpet/green, +/area/station/service/abandoned_gambling_den) +"nly" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/carpet/blue, +/area/station/command/heads_quarters/captain/private) +"nlI" = ( +/obj/machinery/holopad, +/turf/open/floor/wood, +/area/station/hallway/secondary/service) +"nlJ" = ( +/obj/effect/turf_decal/trimline/purple/filled/corner{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/science/research) +"nlN" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Central Hallway" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"nlO" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"nlR" = ( +/obj/structure/closet/secure_closet/brig, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/checkpoint/escape) +"nlZ" = ( +/obj/effect/spawner/random/structure/crate, +/turf/open/floor/plating, +/area/station/maintenance/port/central) +"nmh" = ( +/obj/machinery/biogenerator, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/service/hydroponics) +"nmi" = ( +/obj/machinery/computer/crew, +/obj/machinery/newscaster/directional/west, +/obj/effect/turf_decal/tile/blue/half/contrasted, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"nmk" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall/r_wall, +/area/station/hallway/secondary/command) +"nmm" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/circuit, +/area/station/command/gateway) +"nmu" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/siding/wood, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/iron/dark, +/area/station/command/captain_dining) +"nmv" = ( +/obj/structure/cable, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/dorms) +"nmK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"nmM" = ( +/obj/machinery/button/door/atmos_test_room_mainvent_2{ + pixel_y = -25 + }, +/obj/item/kirbyplants/random, +/obj/machinery/camera/directional/south, +/turf/open/floor/iron, +/area/station/engineering/atmos/test_chambers) +"nmO" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 8 + }, +/obj/machinery/newscaster/directional/west, +/obj/machinery/light/directional/west, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/science/xenobiology/control) +"nmQ" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/carpet/blue, +/area/station/command/heads_quarters/captain/private) +"nmT" = ( +/obj/structure/window/spawner/directional/north, +/obj/machinery/light/directional/east, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) +"nnc" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/security/prison/upper) +"nng" = ( +/obj/structure/sign/directions/security{ + dir = 8; + pixel_y = 8 + }, +/obj/structure/sign/directions/engineering{ + dir = 8; + pixel_y = 2 + }, +/obj/structure/sign/directions/supply{ + dir = 8; + pixel_y = -4 + }, +/obj/structure/sign/directions/evac{ + dir = 1; + pixel_y = -10 + }, +/turf/closed/wall, +/area/station/medical/morgue) +"nnj" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/science/research) +"nnx" = ( +/obj/structure/toilet{ + pixel_y = 10 + }, +/obj/machinery/button/door/directional/south{ + id = "Toilet3"; + name = "Lock Control"; + normaldoorcontrol = 1; + specialfunctions = 4 + }, +/obj/machinery/light/small/directional/west, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/commons/toilet/restrooms) +"nnB" = ( +/obj/structure/chair/sofa/bench{ + dir = 4; + pixel_x = -5 + }, +/obj/machinery/light/directional/west, +/obj/effect/landmark/start/assistant, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/common/locker_room_shower) +"nnC" = ( +/turf/open/floor/iron/stairs{ + dir = 4 + }, +/area/station/security/prison/safe) +"nnE" = ( +/obj/structure/table, +/obj/item/paper_bin, +/obj/item/pen, +/obj/structure/noticeboard/directional/east, +/obj/machinery/camera/autoname/directional/east, +/turf/open/floor/iron/dark, +/area/station/tcommsat/computer) +"nnG" = ( +/obj/structure/table, +/obj/item/paper/pamphlet/centcom/visitor_info{ + pixel_x = -4; + pixel_y = 9 + }, +/obj/item/paper/pamphlet/radstorm{ + pixel_y = 3 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"nnJ" = ( +/obj/structure/chair/comfy{ + dir = 1 + }, +/obj/item/clothing/head/fedora, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/maintenance/gamer_lair) +"nnK" = ( +/obj/effect/turf_decal/trimline/red/filled/line, +/obj/effect/turf_decal/trimline/red/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/side, +/area/station/security/brig) +"nnS" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/command) +"noc" = ( +/obj/item/toy/plush/mr_frog, +/obj/effect/spawner/liquids_spawner, +/turf/open/floor/lowered/iron/pool/cobble/corner{ + dir = 1 + }, +/area/station/common/pool) +"nog" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/simple/violet/visible/layer2{ + dir = 4 + }, +/obj/structure/lattice/catwalk, +/turf/open/space/basic, +/area/space/nearstation) +"noi" = ( +/obj/structure/table_frame, +/obj/item/stack/sheet/cardboard, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"noo" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/duct, +/obj/structure/hedge, +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/railing{ + dir = 10 + }, +/turf/open/floor/iron/dark, +/area/station/security/prison/safe) +"noz" = ( +/obj/structure/table/wood/poker, +/obj/item/toy/cards/deck, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"noB" = ( +/obj/structure/girder, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"noU" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron/dark, +/area/station/service/library/private) +"npf" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Service Hallway Maintenance Hatch" + }, +/obj/effect/mapping_helpers/airlock/access/all/service/general, +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/navigate_destination, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/bar) +"npj" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/engineering/atmos/office) +"npl" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 4 + }, +/obj/machinery/light/directional/east, +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/iron/white, +/area/station/science/research) +"npm" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"npr" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"npu" = ( +/turf/closed/wall/r_wall, +/area/station/common/wrestling/arena) +"npv" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) +"npC" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 1 + }, +/turf/open/floor/engine/vacuum, +/area/station/engineering/atmos/test_chambers) +"npD" = ( +/obj/structure/chair/pew/left{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/common/pool/sauna) +"npE" = ( +/obj/machinery/modular_computer/preset/civilian, +/obj/effect/turf_decal/delivery, +/obj/machinery/light/directional/north, +/obj/machinery/light_switch/directional/north, +/turf/open/floor/iron, +/area/station/medical/psychology) +"npF" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron, +/area/station/ai_monitored/command/storage/eva/upper) +"npJ" = ( +/obj/item/storage/box/fakesyndiesuit, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"npL" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 9 + }, +/obj/structure/flora/bush/large, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"npP" = ( +/obj/machinery/power/port_gen/pacman/pre_loaded, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"npQ" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/spawner/random/trash/mopbucket, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/bar) +"npR" = ( +/obj/structure/frame/machine, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/hallway/secondary/construction) +"npY" = ( +/obj/structure/chair/sofa/corp/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/turf/open/floor/carpet/lone, +/area/station/command/meeting_room/council) +"nqb" = ( +/obj/structure/closet/secure_closet/quartermaster, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/qm) +"nql" = ( +/obj/machinery/power/shuttle_engine/heater, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/science/research/abandoned) +"nqv" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "Luggagebelt" + }, +/turf/open/floor/plating, +/area/station/security/checkpoint) +"nqz" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/wood, +/area/station/maintenance/abandon_office) +"nqC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/broken/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/smooth, +/area/station/cargo/power_station/upper) +"nqG" = ( +/turf/closed/wall/r_wall, +/area/station/science/ordnance/burnchamber) +"nqH" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/commons/dorms/room4) +"nqJ" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/item/stack/spacecash/c10, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood/parquet, +/area/station/common/arcade) +"nqK" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/security/brig) +"nqM" = ( +/obj/structure/chair/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/service/cafeteria) +"nqO" = ( +/obj/effect/decal/cleanable/dirt, +/turf/closed/wall, +/area/station/maintenance/port/fore) +"nqT" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/engineering/atmos/office) +"nqY" = ( +/obj/effect/turf_decal/stripes, +/obj/machinery/status_display/evac/directional/south, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"nrd" = ( +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/carpet/red, +/area/station/command/heads_quarters/hos) +"nrh" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"nrv" = ( +/obj/structure/bookcase/random/reference, +/obj/machinery/digital_clock/directional/north, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/cmo) +"nrx" = ( +/turf/closed/wall/r_wall, +/area/station/science/robotics/mechbay) +"nrB" = ( +/obj/machinery/air_sensor/air_tank, +/turf/open/floor/engine/air, +/area/station/engineering/atmos) +"nrH" = ( +/obj/machinery/atmospherics/pipe/smart/simple/supply/hidden, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/atmos_aux_port) +"nrS" = ( +/obj/machinery/telecomms/server/presets/engineering, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 10 + }, +/obj/machinery/light/directional/west, +/turf/open/floor/iron/telecomms, +/area/station/tcommsat/server) +"nrT" = ( +/obj/structure/lattice/catwalk, +/turf/open/space/basic, +/area/space/nearstation) +"nrV" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/station/medical/power_station) +"nsb" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/newscaster/directional/west, +/obj/machinery/camera/directional/west{ + c_tag = "Upper Central Hallway - Upper Starboard Central"; + name = "hallway camera" + }, +/obj/machinery/light/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"nsg" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen/diner) +"nsi" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/disposal) +"nss" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"nsv" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/stairs/left, +/area/station/cargo/storage) +"nsy" = ( +/obj/structure/ladder, +/obj/effect/turf_decal/stripes/white/box, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/engineering/transit_tube) +"nsz" = ( +/obj/machinery/power/port_gen/pacman/pre_loaded, +/turf/open/floor/plating, +/area/station/service/power_station) +"nsA" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/station/maintenance/abandon_office) +"nsB" = ( +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"nsH" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/light/small/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"nsI" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/north, +/obj/structure/window/spawner/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"nsJ" = ( +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/machinery/door/airlock/highsecurity{ + name = "AI Chamber" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "AI Chamber Entrance Shutters"; + name = "AI Chamber Entrance Shutters" + }, +/obj/machinery/flasher/directional/west{ + id = "AI" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/command/ai_upload, +/turf/open/floor/engine, +/area/station/ai_monitored/turret_protected/ai) +"nsN" = ( +/obj/effect/turf_decal/arrows/white{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/engineering/atmos/hfr_room) +"nsV" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start/hangover, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"nsW" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/port) +"ntd" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"ntn" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/secondary/construction) +"nty" = ( +/obj/effect/turf_decal/stripes/box, +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/station/command/secure_bunker) +"ntA" = ( +/obj/machinery/light_switch/directional/south, +/obj/effect/turf_decal/trimline/green/filled/line, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"ntH" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/effect/turf_decal/bot, +/obj/machinery/ammo_workbench, +/obj/effect/turf_decal/trimline/red/line, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_edge{ + dir = 1 + }, +/area/station/ai_monitored/security/armory) +"ntJ" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/lone, +/area/station/service/chapel) +"ntM" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/wrestle) +"nud" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/tcommsat/computer) +"nuj" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/brig) +"num" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating/airless, +/area/station/security/prison/mess) +"nuo" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/common/wrestling/lobby) +"nup" = ( +/obj/machinery/door/firedoor, +/obj/machinery/conveyor{ + dir = 1; + id = "cargodeliver" + }, +/obj/structure/plasticflaps/opaque, +/turf/open/floor/iron/dark, +/area/station/cargo/office) +"nur" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/openspace, +/area/station/maintenance/port/upper) +"nuu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"nux" = ( +/obj/effect/turf_decal/siding/thinplating_new, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/entry) +"nuy" = ( +/turf/open/floor/iron, +/area/station/engineering/atmos/hfr_room) +"nuD" = ( +/obj/machinery/dna_scannernew, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/machinery/light/directional/west, +/turf/open/floor/iron/dark, +/area/station/science/genetics) +"nuL" = ( +/obj/structure/girder, +/turf/open/floor/plating, +/area/station/hallway/secondary/construction) +"nuR" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/turf/open/floor/plating, +/area/station/maintenance/aux_eva) +"nuT" = ( +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/iron/stairs/old, +/area/station/service/barber) +"nuU" = ( +/turf/open/space/basic, +/area/space/nearstation) +"nuZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/structure/crate, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"nva" = ( +/obj/effect/turf_decal/siding/thinplating/dark/corner, +/obj/item/radio/intercom/directional/south, +/obj/structure/cable, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/ai) +"nvb" = ( +/obj/structure/curtain/cloth, +/obj/structure/drain, +/obj/machinery/shower/directional/south, +/turf/open/floor/iron/freezer, +/area/station/commons/dorms/room4) +"nvg" = ( +/obj/item/stack/sheet/animalhide/human, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) +"nvh" = ( +/obj/machinery/status_display/ai/directional/north, +/obj/effect/spawner/random/maintenance, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plating, +/area/station/science/tele_sci) +"nvm" = ( +/obj/structure/table/wood/fancy/royalblack, +/obj/item/storage/dice, +/obj/item/toy/plush/narplush{ + pixel_x = -17; + pixel_y = 8 + }, +/turf/open/floor/carpet, +/area/station/service/library/lounge) +"nvp" = ( +/obj/structure/window/spawner/directional/east, +/obj/effect/landmark/start/assistant, +/obj/structure/chair/sofa/corp/right{ + color = "#DE3A3A"; + dir = 8 + }, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen/diner) +"nvr" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/command/heads_quarters/ce) +"nvt" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) +"nvv" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/central) +"nvA" = ( +/obj/effect/spawner/random/trash/garbage, +/turf/open/floor/iron/smooth, +/area/station/cargo/miningdock) +"nvE" = ( +/obj/effect/landmark/event_spawn, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/duct, +/turf/open/floor/carpet, +/area/station/service/chapel) +"nvJ" = ( +/turf/open/floor/engine/hull/reinforced, +/area/space/nearstation) +"nvK" = ( +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) +"nvM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/engineering/atmos/office) +"nvP" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/science/tele_sci) +"nvW" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/item/radio/intercom/directional/south, +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/iron/dark/side, +/area/station/hallway/secondary/exit) +"nwc" = ( +/obj/effect/decal/cleanable/garbage, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"nwg" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/landmark/generic_maintenance_landmark, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/abandon_art_studio) +"nwi" = ( +/obj/machinery/photocopier, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/trimline/purple/filled/line, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology/control) +"nwj" = ( +/turf/open/floor/iron/dark/small, +/area/station/security/brig) +"nwm" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/growing/tray, +/obj/effect/turf_decal/trimline/green/filled/line, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) +"nwo" = ( +/obj/effect/turf_decal/weather/sand, +/obj/structure/flora/bush/fullgrass, +/obj/structure/flora/bush/flowers_yw, +/obj/structure/hedge, +/turf/open/floor/grass, +/area/station/command/heads_quarters/captain) +"nws" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/turf_decal/bot, +/obj/machinery/camera/directional/east{ + c_tag = "Science - Ordnance Internal Airlock"; + dir = 10; + name = "science camera"; + network = list("ss13","rd") + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/testlab) +"nwt" = ( +/turf/closed/wall/r_wall, +/area/station/service/barber) +"nwD" = ( +/obj/structure/cable, +/obj/machinery/light/small/directional/north, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"nwH" = ( +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"nwN" = ( +/obj/structure/cable, +/obj/effect/turf_decal/tile/purple/half/contrasted, +/turf/open/floor/iron/dark, +/area/station/security/corrections_officer) +"nwS" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/carpet, +/area/station/service/lawoffice) +"nwW" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/station/maintenance/abandon_exam/cat) +"nwY" = ( +/obj/machinery/light/directional/east, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/iron/stairs/right, +/area/station/hallway/primary/upper) +"nxc" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/station/maintenance/port/central) +"nxf" = ( +/obj/structure/railing, +/obj/item/cigbutt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"nxi" = ( +/obj/machinery/door/airlock/engineering/glass/critical{ + heat_proof = 1; + name = "Supermatter Chamber" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/airlock/access/all/engineering/general, +/turf/open/floor/engine, +/area/station/engineering/supermatter) +"nxm" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/hallway/primary/port) +"nxs" = ( +/obj/machinery/light/directional/east, +/turf/open/floor/iron/dark, +/area/station/commons/fitness) +"nxw" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/commons/fitness) +"nxF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/maintenance/abandon_diner) +"nxH" = ( +/obj/structure/punching_bag, +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark/side, +/area/station/commons/fitness) +"nxQ" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/flora/bush/jungle/a/style_3, +/mob/living/carbon/human/species/monkey, +/turf/open/floor/grass, +/area/station/medical/virology/isolation) +"nxU" = ( +/obj/structure/showcase/cyborg/old{ + dir = 4; + pixel_x = -9; + pixel_y = 2 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai) +"nxW" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted, +/turf/open/floor/iron, +/area/station/cargo/sorting) +"nyf" = ( +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark/corner{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/range) +"nyg" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"nyh" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Central Hallway" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"nyj" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/newscaster/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) +"nyk" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/carpet, +/area/station/service/theater/abandoned) +"nyl" = ( +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/turf/open/floor/iron, +/area/station/engineering/atmos/test_chambers) +"nyo" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/cigbutt, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"nyq" = ( +/turf/open/floor/iron/dark, +/area/station/common/laser_tag) +"nyw" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/door/airlock/maintenance{ + name = "Abandoned Office" + }, +/obj/effect/mapping_helpers/airlock/abandoned, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/wood, +/area/station/maintenance/abandon_office) +"nyB" = ( +/obj/structure/table/reinforced/rglass, +/obj/item/tattoo_kit{ + pixel_y = 4 + }, +/turf/open/floor/iron/white, +/area/station/service/barber) +"nyD" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/iron, +/area/station/construction/mining/aux_base) +"nyM" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/hedge, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/central) +"nyP" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/engineering/lobby) +"nyS" = ( +/obj/item/storage/belt/medical, +/obj/item/storage/belt/medical, +/obj/item/clothing/neck/stethoscope, +/obj/item/clothing/neck/stethoscope, +/obj/item/clothing/glasses/hud/health, +/obj/item/clothing/glasses/hud/health, +/obj/item/clothing/glasses/hud/health, +/obj/item/clothing/glasses/hud/health, +/obj/item/clothing/glasses/hud/health, +/obj/item/clothing/glasses/hud/health, +/obj/item/clothing/glasses/hud/health, +/obj/item/reagent_containers/spray/cleaner{ + pixel_x = -3; + pixel_y = 2 + }, +/obj/structure/table/reinforced, +/obj/structure/window/spawner/directional/west, +/obj/structure/window/spawner/directional/north, +/turf/open/floor/iron, +/area/station/medical/storage) +"nyU" = ( +/obj/structure/window/reinforced/plasma/spawner/directional/east, +/obj/machinery/atmospherics/pipe/smart/simple/general/visible{ + dir = 5 + }, +/obj/structure/cable, +/obj/machinery/power/energy_accumulator/tesla_coil/anchored, +/turf/open/floor/engine, +/area/station/engineering/supermatter) +"nyW" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Jury Room Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/security/court, +/turf/open/floor/plating, +/area/station/maintenance/port/central) +"nzc" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted, +/turf/open/floor/iron, +/area/station/cargo/lobby) +"nzd" = ( +/obj/machinery/washing_machine, +/obj/effect/turf_decal/tile/blue/opposingcorners{ + dir = 8 + }, +/turf/open/floor/iron/cafeteria, +/area/station/commons/locker) +"nzh" = ( +/obj/structure/window/spawner/directional/east, +/obj/structure/window/spawner/directional/north, +/obj/structure/flora/rock/pile/jungle, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/turf/open/floor/grass, +/area/station/service/cafeteria) +"nzm" = ( +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/medical/coldroom) +"nzn" = ( +/obj/machinery/recharger{ + pixel_y = 4 + }, +/obj/structure/table/reinforced, +/obj/machinery/status_display/evac/directional/south, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/item/restraints/handcuffs/cable/pink, +/turf/open/floor/iron/dark/side, +/area/station/security/checkpoint/science/research) +"nzo" = ( +/obj/structure/frame/computer, +/turf/open/floor/plating, +/area/station/maintenance/abandon_surgery) +"nzp" = ( +/turf/open/floor/iron, +/area/station/cargo/drone_bay) +"nzv" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/commons/dorms) +"nzA" = ( +/obj/structure/table/reinforced, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/item/storage/box/disks_nanite, +/obj/item/storage/box/disks_nanite, +/obj/item/storage/box/disks_nanite, +/obj/item/nanite_scanner, +/obj/item/nanite_scanner, +/obj/item/nanite_scanner, +/obj/item/nanite_remote, +/obj/item/nanite_remote, +/obj/item/nanite_remote, +/obj/item/nanite_injector, +/obj/item/nanite_injector, +/obj/item/nanite_injector, +/obj/structure/railing/wood, +/turf/open/floor/wood/large, +/area/station/science/circuits) +"nzB" = ( +/turf/open/floor/iron/dark, +/area/station/service/chapel) +"nzH" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/medical/surgery/theatre) +"nzL" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/item/paper_bin{ + pixel_y = 3 + }, +/turf/open/floor/iron/dark/corner{ + dir = 4 + }, +/area/station/maintenance/xenobio_disposals) +"nzR" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/item/storage/box/emps{ + pixel_y = 11 + }, +/obj/item/gun/energy/ionrifle, +/obj/effect/turf_decal/trimline/red/line{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured_edge{ + dir = 4 + }, +/area/station/ai_monitored/security/armory) +"nzX" = ( +/obj/structure/curtain/bounty, +/obj/structure/cable, +/obj/effect/spawner/structure/window, +/turf/open/floor/iron/dark, +/area/station/common/night_club) +"nzZ" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ + dir = 10 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/central) +"nAl" = ( +/obj/machinery/airalarm/directional/south, +/obj/machinery/light/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark/side, +/area/station/hallway/secondary/exit) +"nAr" = ( +/obj/machinery/door/airlock/external{ + name = "Atmospherics External Airlock"; + space_dir = 2 + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_starboard) +"nAs" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/machinery/conveyor{ + dir = 5; + id = "Luggagebelt" + }, +/turf/open/floor/plating, +/area/station/security/checkpoint/customs) +"nAD" = ( +/obj/machinery/light/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/ai_monitored/command/storage/eva) +"nAE" = ( +/obj/effect/turf_decal/trimline/green/filled/line, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"nAF" = ( +/obj/effect/spawner/random/trash/mess, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"nAH" = ( +/obj/structure/table/wood, +/obj/item/paper_bin{ + pixel_y = 3 + }, +/obj/item/pen{ + pixel_y = 3 + }, +/obj/structure/cable, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/hop) +"nAV" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"nAW" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/stairs{ + dir = 1 + }, +/area/station/command/gateway) +"nBd" = ( +/obj/structure/marker_beacon/teal, +/turf/open/floor/iron/dark/smooth_large/airless, +/area/space/nearstation) +"nBf" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 1 + }, +/obj/structure/flora/bush/sparsegrass, +/obj/structure/flora/bush/lavendergrass, +/turf/open/floor/grass, +/area/station/command/heads_quarters/captain) +"nBh" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/security/prison/upper) +"nBi" = ( +/obj/structure/rack/shelf, +/obj/effect/turf_decal/bot, +/obj/item/tank/internals/oxygen, +/obj/item/extinguisher, +/turf/open/floor/iron, +/area/station/commons/vacant_room/commissary) +"nBm" = ( +/obj/structure/sign/warning/vacuum/external/directional/east, +/obj/machinery/light/small/directional/east, +/obj/effect/turf_decal/delivery, +/obj/structure/closet/radiation, +/turf/open/floor/plating, +/area/station/engineering/atmos) +"nBp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/drone_dispenser, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron, +/area/station/science/research/abandoned) +"nBu" = ( +/obj/structure/cable, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/engineering/atmos/test_chambers) +"nBz" = ( +/obj/structure/chair/sofa/left/brown, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/carpet, +/area/station/maintenance/abandon_psych) +"nBC" = ( +/obj/effect/turf_decal/tile/blue, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"nBJ" = ( +/obj/structure/window/spawner/directional/north, +/obj/structure/flora/bush/sparsegrass, +/obj/machinery/light/small/directional/west, +/turf/open/floor/grass, +/area/station/service/chapel) +"nBN" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/duct, +/turf/open/floor/wood/parquet, +/area/station/science/breakroom) +"nBO" = ( +/obj/structure/chair/sofa/left/brown{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/station/service/cafeteria) +"nBR" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/effect/turf_decal/bot, +/obj/structure/disposaloutlet{ + dir = 4; + name = "Cargo Deliveries" + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/service) +"nBU" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/pill/cyanide{ + list_reagents = list(/datum/reagent/drug/bath_salts=15); + name = "The red pill"; + pixel_x = -3; + pixel_y = 11 + }, +/obj/item/flashlight/lamp/green{ + pixel_y = 5 + }, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/carpet, +/area/station/medical/patients_rooms) +"nBY" = ( +/obj/structure/flora/bush/reed{ + pixel_y = 8 + }, +/turf/open/water/overlay, +/area/station/hallway/primary/central) +"nCh" = ( +/obj/structure/window/spawner/directional/east, +/obj/structure/window/spawner/directional/west, +/obj/structure/flora/bush/large, +/turf/open/floor/grass, +/area/station/hallway/primary/port) +"nCj" = ( +/obj/structure/table, +/obj/item/stack/package_wrap, +/obj/item/hand_tele{ + pixel_x = -6; + pixel_y = 6 + }, +/obj/item/hand_labeler, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/command/teleporter) +"nCn" = ( +/obj/structure/musician/piano, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"nCq" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 9 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/command/heads_quarters/rd) +"nCt" = ( +/turf/open/floor/iron/dark, +/area/station/security/prison) +"nCy" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/effect/landmark/start/research_director, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/rd) +"nCA" = ( +/obj/effect/turf_decal/bot/right, +/turf/open/floor/engine, +/area/station/engineering/atmos/hfr_room) +"nCB" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/medical/surgery) +"nCD" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/item/stack/arcadeticket, +/obj/item/stack/arcadeticket{ + pixel_x = 3; + pixel_y = 7 + }, +/turf/open/floor/wood/parquet, +/area/station/common/arcade) +"nCF" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/structure/closet/secure_closet/freezer/fridge/open, +/obj/effect/mob_spawn/corpse/human/clown, +/turf/open/floor/plating/reinforced{ + initial_gas_mix = "TEMP=2.7" + }, +/area/station/science/ordnance/bomb) +"nCJ" = ( +/obj/structure/closet/secure_closet/brig/genpop, +/obj/effect/turf_decal/bot, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/iron/dark, +/area/station/security/prison) +"nCO" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/security/prison) +"nCP" = ( +/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{ + dir = 9 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/engineering/main) +"nCS" = ( +/obj/effect/landmark/generic_maintenance_landmark, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"nCW" = ( +/obj/machinery/door/airlock/engineering{ + name = "Power Access Hatch" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/engineering/engine_equipment, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"nCX" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"nCZ" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/cargo/storage) +"nDa" = ( +/obj/structure/barricade/wooden/crude, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"nDt" = ( +/obj/structure/window/reinforced/tinted/spawner/directional/south, +/obj/machinery/camera/directional/east{ + c_tag = "Leisure Hallway - Store"; + name = "hallway camera" + }, +/obj/effect/turf_decal/bot, +/obj/structure/table/reinforced, +/turf/open/floor/iron/dark, +/area/station/common/tailoring) +"nDz" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/obj/machinery/duct, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/captain) +"nDE" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"nDO" = ( +/obj/effect/turf_decal/caution/stand_clear/blue{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/blue/line{ + dir = 8 + }, +/obj/machinery/door/poddoor/shutters/window{ + id = "SecMech"; + name = "Security Mechbay Shutters" + }, +/turf/open/floor/iron/dark, +/area/station/security/mechbay) +"nDV" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/table/reinforced, +/obj/item/crowbar, +/obj/item/restraints/handcuffs, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/iron/dark/side, +/area/station/security/checkpoint) +"nEc" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/sunny, +/obj/structure/flora/bush/flowers_pp, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "cmoshutter3"; + name = "CMO Quarters Shutters" + }, +/turf/open/floor/grass, +/area/station/command/heads_quarters/cmo) +"nEh" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/structure/cable, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/medical/power_station) +"nEk" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/item/reagent_containers/cup/bucket, +/obj/item/reagent_containers/cup/bucket, +/obj/effect/turf_decal/bot/left, +/turf/open/floor/iron/checker, +/area/station/service/janitor) +"nEn" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 6 + }, +/obj/effect/turf_decal/stripes{ + dir = 9 + }, +/obj/machinery/meter, +/turf/open/floor/engine, +/area/station/science/ordnance) +"nEr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"nEx" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/stairs, +/area/station/security/corrections_officer) +"nEA" = ( +/obj/structure/frame/computer{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/item/circuitboard/computer/med_data, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/grimy, +/area/station/security/detectives_office/private_investigators_office) +"nEN" = ( +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/recharge_station, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"nEW" = ( +/obj/machinery/light_switch/directional/north, +/obj/structure/closet/crate/freezer/blood, +/turf/open/floor/iron/white, +/area/station/medical/coldroom) +"nFc" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating{ + dir = 4 + }, +/obj/structure/flora/bush/jungle/a/style_3, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"nFg" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/firedoor, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"nFk" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"nFl" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/structure/disposaloutlet, +/turf/open/floor/iron/dark/corner, +/area/station/hallway/primary/aft) +"nFn" = ( +/obj/structure/sign/directions/security{ + dir = 1; + pixel_y = 8 + }, +/obj/structure/sign/directions/engineering{ + dir = 1; + pixel_y = 2 + }, +/obj/structure/sign/directions/supply{ + dir = 1; + pixel_y = -4 + }, +/obj/structure/sign/directions/evac{ + dir = 8; + pixel_y = -10 + }, +/turf/closed/wall, +/area/station/hallway/primary/upper) +"nFo" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/science/auxlab/firing_range) +"nFs" = ( +/obj/machinery/shower/directional/south, +/obj/structure/drain, +/obj/machinery/light/small/directional/south, +/turf/open/floor/iron/freezer, +/area/station/command/heads_quarters/hop) +"nFv" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "packageSort2" + }, +/turf/open/floor/iron/dark, +/area/station/cargo/sorting) +"nFC" = ( +/obj/machinery/light/directional/east, +/turf/open/floor/iron/smooth_corner{ + dir = 1 + }, +/area/station/command/secure_bunker) +"nFF" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/engine, +/area/station/command/secure_bunker) +"nFJ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"nFK" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Lavaland Shuttle Dock" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/secondary/entry) +"nFN" = ( +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/flowers_yw, +/obj/structure/window/spawner/directional/south, +/obj/structure/window/spawner/directional/east, +/obj/structure/window/spawner/directional/west, +/turf/open/floor/grass, +/area/station/security/checkpoint/escape) +"nFR" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"nFX" = ( +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"nGa" = ( +/obj/machinery/light/no_nightlight/directional/east, +/turf/open/floor/iron/smooth_edge{ + dir = 4 + }, +/area/station/engineering/atmos/hfr_room) +"nGc" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/co2{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/medical/cryo) +"nGg" = ( +/obj/effect/turf_decal/trimline/red/filled/line{ + color = "#DE3A3A"; + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hos) +"nGh" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/displaycase/trophy, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/south, +/turf/open/floor/wood, +/area/station/service/library/abandoned) +"nGi" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen/diner) +"nGk" = ( +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_atmos{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/maintenance/disposal/incinerator) +"nGm" = ( +/turf/open/floor/iron/dark/corner{ + dir = 8 + }, +/area/station/hallway/secondary/exit) +"nGn" = ( +/obj/structure/bookcase/random/nonfiction, +/obj/machinery/light/directional/north, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain/private) +"nGo" = ( +/obj/machinery/mass_driver/ordnance, +/obj/effect/turf_decal/stripes/box, +/turf/open/floor/catwalk_floor, +/area/station/science/ordnance/testlab) +"nGs" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/seeds/ambrosia/deus, +/turf/open/misc/asteroid/airless, +/area/space/nearstation) +"nGu" = ( +/turf/closed/wall/r_wall, +/area/station/maintenance/gamer_lair) +"nGv" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/rack, +/obj/item/tank/internals/emergency_oxygen, +/obj/item/tank/internals/emergency_oxygen, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/obj/item/oxygen_candle, +/obj/item/oxygen_candle, +/obj/effect/turf_decal/bot_blue, +/obj/item/storage/pod{ + pixel_y = -25 + }, +/obj/machinery/light/small/red/dim/directional/south, +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/disposal) +"nGH" = ( +/obj/structure/disposalpipe/sorting/mail{ + name = "Robotics Junction" + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"nGJ" = ( +/obj/structure/grille, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"nGK" = ( +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"nGO" = ( +/obj/structure/table/wood, +/obj/structure/window/spawner/directional/north, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/item/clipboard, +/obj/item/toy/figure/lawyer, +/turf/open/floor/carpet/blue, +/area/station/service/lawoffice) +"nGQ" = ( +/obj/structure/cable, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) +"nGS" = ( +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/brig) +"nGY" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen/diner) +"nGZ" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing{ + dir = 5 + }, +/obj/structure/trash_pile, +/turf/open/space/basic, +/area/space/nearstation) +"nHb" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable, +/obj/machinery/duct, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/cafeteria, +/area/station/common/wrestling/concessions) +"nHc" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/commons/dorms) +"nHh" = ( +/obj/structure/bookcase/random/fiction, +/turf/open/floor/wood, +/area/station/service/library) +"nHw" = ( +/turf/closed/wall, +/area/station/medical/break_room) +"nHB" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/holopad/secure, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hos) +"nHC" = ( +/turf/closed/wall, +/area/station/medical/power_station) +"nHR" = ( +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/service/hydroponics/garden) +"nIe" = ( +/obj/structure/bed, +/obj/effect/turf_decal/siding/wood, +/obj/item/bedsheet/purple, +/turf/open/floor/carpet, +/area/station/command/gateway) +"nIh" = ( +/obj/machinery/atmospherics/pipe/smart/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/maintenance/department/engineering/atmos_aux_port) +"nIn" = ( +/obj/machinery/door/airlock/service{ + name = "Bar" + }, +/obj/effect/mapping_helpers/airlock/access/all/service/bar, +/obj/machinery/door/firedoor, +/obj/machinery/firealarm/directional/east, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/service/bar) +"nIu" = ( +/obj/item/kirbyplants/random, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/obj/machinery/firealarm/directional/west, +/obj/machinery/light/directional/north, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron/grimy, +/area/station/command/heads_quarters/captain) +"nIx" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/medical/glass{ + name = "Primary Treatment Centre" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/mapping_helpers/airlock/access/all/medical/general, +/obj/machinery/duct, +/obj/effect/turf_decal/tile/blue/fourcorners, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) +"nIB" = ( +/obj/structure/closet/wardrobe/yellow, +/obj/effect/turf_decal/bot, +/obj/structure/extinguisher_cabinet/directional/south, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 1 + }, +/obj/effect/landmark/start/hangover/closet, +/turf/open/floor/iron/dark, +/area/station/commons/locker) +"nIF" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/station/maintenance/department/security/prison_upper) +"nIH" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/effect/landmark/generic_maintenance_landmark, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"nIL" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/status_display/ai/directional/west, +/obj/machinery/camera/directional/west{ + c_tag = "Upper Central Hallway - Upper Starboard Lower Aft"; + name = "hallway camera" + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"nIM" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/wardrobe/mixed, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/landmark/start/hangover/closet, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/commons/locker) +"nIO" = ( +/obj/machinery/atmospherics/pipe/smart/simple/violet/visible/layer2{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) +"nIV" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood, +/obj/item/radio/intercom, +/obj/item/clipboard, +/obj/item/toy/figure/psychologist, +/turf/open/floor/carpet, +/area/station/medical/psychology) +"nIX" = ( +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/service/bar) +"nIZ" = ( +/obj/structure/table, +/obj/machinery/door/poddoor/shutters{ + id = "Infokiosk"; + name = "Information Kiosk Shutters" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/dark, +/area/station/commons/vacant_room/commissary) +"nJc" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/extinguisher_cabinet/directional/south, +/turf/open/floor/iron/dark/side, +/area/station/hallway/primary/port) +"nJd" = ( +/obj/structure/table, +/obj/machinery/computer/records/security/laptop{ + dir = 4 + }, +/obj/machinery/camera/directional/north{ + c_tag = "Security - Departures Port" + }, +/obj/machinery/light/directional/west, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/checkpoint/escape) +"nJe" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Security Shuttlebay" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/turf/open/floor/iron, +/area/station/security/execution/transfer) +"nJh" = ( +/obj/structure/chair/sofa/corp{ + dir = 1 + }, +/obj/machinery/camera/directional/north{ + c_tag = "Science - Lounge"; + name = "science camera"; + network = list("ss13","rd"); + dir = 3 + }, +/obj/machinery/light/directional/south, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/iron/white, +/area/station/science/research) +"nJi" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) +"nJk" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 10 + }, +/obj/structure/table/wood, +/obj/item/food/bun{ + pixel_x = -4 + }, +/obj/item/food/bun{ + pixel_x = 6 + }, +/obj/item/food/bun{ + pixel_y = 6 + }, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"nJv" = ( +/obj/machinery/computer/slot_machine, +/obj/machinery/light/directional/south, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/station/maintenance/rus_gambling) +"nJx" = ( +/obj/structure/table/reinforced, +/obj/item/inspector, +/obj/item/inspector{ + pixel_x = 4; + pixel_y = 4 + }, +/turf/open/floor/iron/dark, +/area/station/security/office) +"nJy" = ( +/obj/structure/window/spawner/directional/west, +/obj/structure/window/spawner/directional/north, +/obj/structure/table/reinforced, +/obj/item/radio/intercom, +/turf/open/floor/iron/dark, +/area/station/engineering/transit_tube) +"nJA" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Security Desk" + }, +/obj/structure/cable, +/obj/effect/turf_decal/delivery/blue, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/turf/open/floor/iron/dark, +/area/station/security/brig) +"nJT" = ( +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/night_club) +"nJY" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/iron/dark/side{ + dir = 9 + }, +/area/station/security/prison) +"nKc" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/supermatter/room) +"nKd" = ( +/turf/closed/wall/r_wall, +/area/station/service/barber/spa) +"nKm" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 10 + }, +/area/station/security/office) +"nKo" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/hallway/secondary/exit/departure_lounge) +"nKr" = ( +/obj/structure/musician/piano, +/turf/open/floor/wood, +/area/station/service/theater) +"nKs" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/sunny, +/obj/structure/flora/bush/flowers_pp, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/curtain/cloth/fancy/mechanical{ + icon_state = "bounty-open"; + icon_type = "bounty"; + id = "prisonlibrarycurtain3"; + name = "curtain" + }, +/turf/open/floor/grass, +/area/station/command/heads_quarters/nt_rep) +"nKx" = ( +/obj/machinery/camera/directional/south{ + c_tag = "Construction Area" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/hallway/secondary/construction) +"nKB" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"nKD" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/office) +"nKI" = ( +/obj/effect/turf_decal/tile/bar/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/service/bar) +"nKJ" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/machinery/computer/atmos_control, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"nKK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/cargo/warehouse) +"nKV" = ( +/obj/structure/chair/sofa/corp/right{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/carpet/lone, +/area/station/command/meeting_room/council) +"nKZ" = ( +/obj/machinery/holopad, +/turf/open/floor/iron/grimy, +/area/station/command/meeting_room/council) +"nLa" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=4"; + location = "Security" + }, +/obj/structure/plasticflaps/opaque, +/obj/effect/turf_decal/delivery, +/turf/open/floor/iron/dark, +/area/station/security/brig) +"nLh" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 1; + name = "Unfiltered to Mix" + }, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/pumproom) +"nLl" = ( +/obj/structure/girder/displaced, +/obj/structure/grille/broken, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"nLn" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/entertainment/cigarette_pack{ + pixel_x = -3 + }, +/obj/effect/spawner/random/entertainment/cigarette_pack{ + pixel_x = 6 + }, +/obj/effect/spawner/random/entertainment/lighter, +/turf/open/floor/iron/grimy, +/area/station/security/detectives_office/private_investigators_office) +"nLu" = ( +/obj/effect/turf_decal/trimline/blue/line{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/prison/workout) +"nLy" = ( +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/department/science/central) +"nLC" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/closet/secure_closet/security/sec, +/turf/open/floor/carpet/red, +/area/station/security/lockers) +"nLF" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/science/robotics) +"nLG" = ( +/obj/structure/chair/office{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hos) +"nLR" = ( +/turf/closed/wall, +/area/station/hallway/primary/central/aft) +"nLV" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"nMa" = ( +/obj/structure/girder, +/obj/structure/grille/broken, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"nMc" = ( +/obj/machinery/light_switch/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/duct, +/turf/open/floor/iron/dark, +/area/station/service/chapel) +"nMo" = ( +/obj/machinery/duct, +/obj/effect/turf_decal/tile/blue/opposingcorners{ + dir = 8 + }, +/turf/open/floor/iron/cafeteria, +/area/station/commons/locker) +"nMD" = ( +/obj/structure/table/wood, +/obj/item/taperecorder, +/obj/item/tape, +/turf/open/floor/wood, +/area/station/security/courtroom) +"nME" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/landmark/start/captain, +/obj/structure/chair/comfy/brown{ + color = "#A46106"; + dir = 8; + pixel_y = -3 + }, +/turf/open/floor/carpet/blue, +/area/station/command/heads_quarters/captain) +"nMN" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/curtain/bounty, +/turf/open/floor/plating, +/area/station/common/arcade) +"nMS" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/mask/gas/sechailer{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/clothing/mask/gas/sechailer{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/assembly/flash/handheld{ + pixel_x = 6; + pixel_y = 13 + }, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/iron/dark, +/area/station/security/office) +"nMV" = ( +/obj/structure/closet, +/obj/effect/spawner/random/medical/medkit, +/turf/open/floor/iron/dark, +/area/station/security/prison) +"nMW" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"nNk" = ( +/obj/structure/lattice, +/obj/structure/grille, +/turf/open/space/openspace, +/area/space/nearstation) +"nNl" = ( +/obj/machinery/door/airlock/engineering{ + name = "Medical Power Station" + }, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/any/medical/cmo, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/turf/open/floor/iron/dark, +/area/station/medical/power_station) +"nNn" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/contraband/narcotics, +/obj/effect/spawner/random/sakhno, +/obj/structure/safe{ + name = "stinking safe" + }, +/obj/effect/spawner/random/sakhno/ammo, +/turf/open/floor/iron/cafeteria, +/area/station/maintenance/department/medical/central) +"nNt" = ( +/obj/structure/table/wood/fancy, +/obj/item/food/breadslice/moldy, +/obj/machinery/light/small/broken/directional/north, +/turf/open/floor/plating, +/area/station/service/theater/abandoned) +"nNB" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"nND" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/wood, +/area/station/hallway/primary/central) +"nNI" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/iron/dark, +/area/station/common/night_club/back_stage) +"nNJ" = ( +/obj/machinery/power/shuttle_engine/heater{ + dir = 4 + }, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"nNN" = ( +/obj/machinery/camera/autoname/directional/west, +/turf/open/floor/plating, +/area/station/construction/mining/aux_base) +"nNP" = ( +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"nNW" = ( +/obj/structure/table_frame, +/obj/effect/spawner/random/trash/mess, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"nNY" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/structure/cable, +/obj/effect/landmark/start/security_officer, +/turf/open/floor/iron/dark/corner{ + dir = 1 + }, +/area/station/security/office) +"nNZ" = ( +/obj/structure/table/wood, +/obj/item/folder, +/obj/item/pen, +/obj/machinery/airalarm/directional/east, +/obj/machinery/camera/directional/east{ + c_tag = "Science - Break Room"; + name = "science camera"; + network = list("ss13","rd") + }, +/turf/open/floor/carpet/purple, +/area/station/science/breakroom) +"nOf" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/kitchen{ + dir = 1 + }, +/area/station/security/prison/upper) +"nOi" = ( +/turf/closed/wall/r_wall, +/area/station/security/office) +"nOp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/moisture_trap, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"nOq" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering/glass{ + name = "Engineering Locker Room" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/general, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/break_room) +"nOt" = ( +/turf/closed/wall, +/area/station/science/ordnance) +"nOv" = ( +/obj/effect/turf_decal/siding/thinplating_new, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/entry) +"nOw" = ( +/obj/item/clothing/accessory/medal/silver/bureaucracy, +/obj/item/clothing/accessory/medal/gold/ordom, +/turf/open/floor/carpet/green, +/area/station/command/heads_quarters/nt_rep) +"nOE" = ( +/obj/structure/barricade/security, +/obj/effect/turf_decal/stripes, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/engine, +/area/station/command/secure_bunker) +"nOF" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/iron/dark, +/area/station/maintenance/solars/port/fore) +"nOL" = ( +/obj/structure/window/spawner/directional/south, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) +"nOO" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/station/medical/psychology) +"nOQ" = ( +/obj/item/stack/cable_coil, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"nPa" = ( +/obj/structure/table, +/obj/machinery/chem_dispenser/drinks{ + dir = 8 + }, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron/dark, +/area/station/security/prison/mess) +"nPi" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/thinplating_new/dark, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_edge, +/area/station/security/prison/safe) +"nPk" = ( +/obj/structure/reflector, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) +"nPo" = ( +/obj/item/chair/plastic, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/disposal) +"nPq" = ( +/obj/machinery/telecomms/server/presets/common, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 9 + }, +/turf/open/floor/iron/telecomms, +/area/station/tcommsat/server) +"nPr" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/effect/turf_decal/delivery, +/obj/structure/plasticflaps, +/turf/open/floor/iron/dark, +/area/station/engineering/lobby) +"nPw" = ( +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/iron/white/side{ + dir = 9 + }, +/area/station/science/xenobiology) +"nPy" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"nPz" = ( +/obj/structure/table, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 9 + }, +/turf/open/floor/iron/dark/herringbone, +/area/station/security/prison/safe) +"nPE" = ( +/obj/structure/bed/dogbed/renault, +/mob/living/basic/pet/fox/renault, +/turf/open/floor/carpet/blue, +/area/station/command/heads_quarters/captain/private) +"nPM" = ( +/obj/machinery/door/airlock/highsecurity{ + name = "Bunker Airlock" + }, +/obj/machinery/door/firedoor/heavy, +/obj/effect/mapping_helpers/airlock/access/all/command/general, +/turf/open/floor/engine, +/area/station/command/secure_bunker) +"nPT" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt, +/obj/item/electronics/airalarm, +/obj/item/electronics/apc, +/obj/item/electronics/firelock, +/obj/item/electronics/airlock, +/obj/effect/spawner/random/techstorage/arcade_boards, +/turf/open/floor/wood, +/area/station/service/electronic_marketing_den) +"nPY" = ( +/obj/structure/cable, +/obj/machinery/light/small/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/station/science/power_station) +"nQe" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/turf_decal/trimline/red/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/filled/warning{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/prison/upper) +"nQf" = ( +/obj/machinery/airalarm/directional/west, +/obj/item/radio/intercom/directional/south, +/obj/structure/table, +/obj/item/burner/fuel{ + pixel_x = -6; + pixel_y = 6 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"nQh" = ( +/obj/machinery/processor, +/obj/structure/table, +/turf/open/floor/iron/dark, +/area/station/service/kitchen) +"nQm" = ( +/obj/structure/extinguisher_cabinet/directional/south, +/obj/machinery/light/directional/south, +/obj/effect/turf_decal/tile/yellow/half/contrasted, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"nQo" = ( +/obj/machinery/camera/autoname/directional/east, +/turf/open/floor/iron/smooth_edge{ + dir = 4 + }, +/area/station/engineering/atmos/hfr_room) +"nQt" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/bridge_pipe/cyan/visible{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/turf/open/space/basic, +/area/space/nearstation) +"nQw" = ( +/obj/structure/chair/sofa/bench/right{ + dir = 4; + pixel_x = -5 + }, +/obj/effect/turf_decal/siding/wood, +/obj/effect/landmark/start/assistant, +/obj/machinery/light/directional/south, +/turf/open/floor/wood, +/area/station/hallway/primary/central) +"nQA" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet, +/area/station/service/chapel/funeral) +"nQB" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/components/trinary/filter/flipped, +/turf/open/floor/engine, +/area/station/science/ordnance) +"nQF" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/rack, +/obj/effect/turf_decal/delivery, +/obj/item/clothing/head/helmet/sec{ + pixel_x = -6; + pixel_y = 6 + }, +/obj/item/clothing/head/helmet/sec{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/clothing/head/helmet/sec{ + pixel_x = -6; + pixel_y = 2 + }, +/obj/item/clothing/head/helmet/sec{ + pixel_x = 6; + pixel_y = 2 + }, +/obj/item/clothing/head/helmet/sec{ + pixel_x = -6; + pixel_y = -2 + }, +/obj/item/clothing/head/helmet/sec{ + pixel_x = 6; + pixel_y = -2 + }, +/obj/structure/sign/poster/official/carwo_magazine/directional/north, +/obj/effect/turf_decal/trimline/red/line, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_edge{ + dir = 1 + }, +/area/station/ai_monitored/security/armory) +"nQG" = ( +/obj/machinery/light/small/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"nQI" = ( +/obj/structure/chair/office, +/obj/effect/landmark/start/scientist, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 1 + }, +/turf/open/floor/iron/dark/small, +/area/station/science/circuits) +"nQJ" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 10 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/pumproom) +"nQK" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + name = "justice injector" + }, +/turf/open/floor/iron/dark, +/area/station/security/execution/education) +"nQX" = ( +/obj/structure/railing, +/obj/structure/table, +/turf/open/floor/iron/dark/side, +/area/station/hallway/primary/upper) +"nRc" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/airalarm/directional/north, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/machinery/duct, +/turf/open/floor/iron/dark, +/area/station/security/prison/workout) +"nRh" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/door/airlock/wood, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/nt_rep) +"nRk" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/station/service/lawoffice) +"nRo" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/holopad, +/obj/effect/landmark/event_spawn, +/turf/open/floor/carpet, +/area/station/service/cafeteria) +"nRp" = ( +/obj/structure/window/spawner/directional/east, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 6 + }, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"nRq" = ( +/obj/structure/girder, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"nRx" = ( +/obj/effect/turf_decal/bot_white, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/engineering/gravity_generator) +"nRC" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) +"nRD" = ( +/obj/structure/sink/directional/east, +/obj/effect/turf_decal/box, +/obj/structure/mirror/directional/west, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/station/maintenance/abandon_exam/cat) +"nRG" = ( +/obj/structure/rack, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/head/utility/hardhat, +/obj/item/clothing/head/utility/hardhat, +/obj/machinery/light/directional/west, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/iron/dark, +/area/station/command/gateway) +"nRJ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) +"nRW" = ( +/obj/effect/turf_decal/trimline/red/filled{ + color = "#DE3A3A" + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hos) +"nRZ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/common/wrestling/beverage) +"nSb" = ( +/obj/structure/lattice/catwalk, +/obj/item/trash/raisins, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/openspace, +/area/station/maintenance/department/medical/central) +"nSh" = ( +/obj/structure/bed/maint, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/spawner/random/contraband/prison, +/obj/effect/decal/cleanable/cobweb, +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron, +/area/station/maintenance/abandon_holding_cell) +"nSj" = ( +/obj/effect/spawner/random/vending/snackvend, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/hallway/primary/port) +"nSk" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/carpet, +/area/station/service/chapel) +"nSm" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/science/upper) +"nSs" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Perma Office" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/security/brig, +/turf/open/floor/iron/dark, +/area/station/security/corrections_officer) +"nSu" = ( +/obj/structure/trash_pile, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"nSD" = ( +/obj/structure/chair/plastic, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"nSG" = ( +/obj/structure/cable, +/obj/effect/landmark/start/hangover, +/turf/open/floor/plating, +/area/station/maintenance/department/science/upper) +"nSL" = ( +/obj/structure/chair/sofa/left/brown{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/station/medical/aslyum) +"nSP" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/iron/dark, +/area/station/maintenance/department/engineering/atmos_aux_port) +"nSQ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 1 + }, +/obj/machinery/firealarm/directional/west{ + pixel_x = -27; + pixel_y = 24 + }, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/hallway/secondary/command) +"nSS" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/effect/turf_decal/bot, +/obj/structure/disposaloutlet{ + dir = 4; + name = "Cargo Deliveries" + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) +"nSU" = ( +/turf/closed/wall/r_wall, +/area/station/common/night_club/back_stage) +"nSW" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/chair/sofa/bench/left{ + dir = 4 + }, +/obj/effect/landmark/start/assistant, +/obj/effect/turf_decal/tile/blue/opposingcorners, +/turf/open/floor/iron/cafeteria{ + dir = 1 + }, +/area/station/hallway/secondary/entry) +"nTd" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Science Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/research, +/turf/open/floor/engine, +/area/station/maintenance/department/science/xenobiology) +"nTe" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/science/research) +"nTf" = ( +/obj/item/kirbyplants/random, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/abandon_exam/cat) +"nTj" = ( +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/commons/fitness/recreation) +"nTp" = ( +/obj/structure/table, +/obj/effect/spawner/random/decoration/ornament, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/wood, +/area/station/security/prison/upper) +"nTw" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/hos{ + name = "Head Of Security's Quarters" + }, +/obj/effect/mapping_helpers/airlock/access/all/security/hos, +/obj/machinery/duct, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hos) +"nTz" = ( +/obj/effect/turf_decal/tile/blue/fourcorners, +/turf/open/floor/iron/white, +/area/station/medical/storage) +"nTB" = ( +/obj/structure/chair/office{ + dir = 8 + }, +/turf/open/floor/iron/white/smooth_large, +/area/station/command/heads_quarters/ce) +"nTC" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/flora/bush/lavendergrass, +/turf/open/floor/grass, +/area/station/common/night_club) +"nTK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron/kitchen{ + dir = 1 + }, +/area/station/security/prison/upper) +"nTM" = ( +/obj/effect/turf_decal/bot, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/station/maintenance/port/central) +"nTN" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/central) +"nTO" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/commons/locker) +"nTR" = ( +/obj/structure/easel, +/obj/item/canvas/twentythree_twentythree, +/obj/item/canvas/twentythree_twentythree, +/obj/item/canvas/twentythree_twentythree, +/obj/machinery/light_switch{ + pixel_x = 27 + }, +/turf/open/floor/iron, +/area/station/commons/storage/art) +"nTU" = ( +/obj/machinery/door/airlock/research{ + name = "Robotics Surgery" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/robotics, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/science/robotics) +"nTW" = ( +/obj/structure/rack, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"nTX" = ( +/obj/machinery/duct, +/turf/open/floor/carpet/red, +/area/station/command/heads_quarters/hos) +"nUa" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"nUl" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -10; + pixel_y = 3 + }, +/obj/item/clipboard{ + pixel_x = 5; + pixel_y = 4 + }, +/obj/item/clipboard{ + pixel_x = 5; + pixel_y = 1 + }, +/obj/item/pen{ + pixel_y = 3 + }, +/obj/item/pen{ + pixel_y = 3 + }, +/obj/machinery/light/directional/north, +/obj/item/radio/intercom/directional/north, +/obj/machinery/camera/autoname/directional/north, +/turf/open/floor/iron, +/area/station/command/captain_dining) +"nUn" = ( +/turf/closed/wall, +/area/station/engineering/gravity_generator) +"nUr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"nUx" = ( +/obj/structure/rack/shelf, +/obj/item/crowbar, +/obj/item/gps/engineering{ + gpstag = "CE0" + }, +/obj/item/storage/toolbox/mechanical, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/command/heads_quarters/ce) +"nUD" = ( +/obj/structure/chair{ + pixel_y = -2 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark/side, +/area/station/security/warden) +"nUG" = ( +/obj/structure/flora/bush/grassy, +/turf/open/floor/grass, +/area/station/service/chapel) +"nUH" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron/dark, +/area/station/security/prison/upper) +"nUJ" = ( +/obj/effect/turf_decal/stripes, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/command/secure_bunker) +"nUM" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/brig) +"nUQ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/spawner/random/trash/mess, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"nUY" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/plating, +/area/station/engineering/atmos) +"nVa" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/maintenance/abandon_exam/cat) +"nVd" = ( +/obj/machinery/door/airlock{ + name = "Commentator Studio" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/common/wrestling/arena) +"nVf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/sign/poster/contraband/random/directional/east, +/obj/machinery/door/airlock/maintenance, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"nVj" = ( +/obj/machinery/modular_computer/preset/civilian{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/iron/dark, +/area/station/command/gateway) +"nVl" = ( +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"nVm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"nVr" = ( +/obj/item/stack/sheet/cardboard, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"nVt" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hallup9"; + location = "hallup8" + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"nVu" = ( +/obj/machinery/camera/directional/west, +/obj/effect/turf_decal/siding/thinplating_new/dark/corner{ + dir = 4 + }, +/turf/open/floor/iron/stairs{ + dir = 2 + }, +/area/station/engineering/supermatter/room) +"nVy" = ( +/obj/machinery/light_switch/directional/east, +/obj/machinery/duct, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/effect/landmark/start/botanist{ + required_jobtitle = "Rancher" + }, +/turf/open/floor/wood/large, +/area/station/common/night_club) +"nVz" = ( +/turf/closed/wall/r_wall, +/area/station/science/research) +"nVB" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/stairs/medium{ + dir = 4 + }, +/area/station/security/prison/upper) +"nVD" = ( +/turf/open/floor/iron, +/area/station/ai_monitored/command/storage/eva) +"nVQ" = ( +/obj/effect/turf_decal/caution/stand_clear, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/command/gateway) +"nVU" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/medical/patients_rooms) +"nWa" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/holopad, +/turf/open/floor/wood, +/area/station/service/lawoffice) +"nWb" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/table/wood, +/obj/item/clipboard, +/obj/item/toy/figure/chaplain, +/obj/machinery/camera/directional/west{ + c_tag = "Chapel Office"; + name = "chapel camera" + }, +/obj/machinery/light/directional/west, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/carpet, +/area/station/service/chapel/office) +"nWe" = ( +/obj/effect/turf_decal/bot, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/command/gateway) +"nWi" = ( +/obj/machinery/airalarm/directional/north, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/gravity_generator) +"nWm" = ( +/obj/structure/cable, +/obj/item/radio/intercom/directional/south, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) +"nWo" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, +/obj/machinery/meter, +/turf/open/floor/iron, +/area/station/engineering/atmos/pumproom) +"nWx" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/commons/dorms) +"nWA" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Central Hallway" + }, +/turf/open/floor/iron/dark/corner{ + dir = 1 + }, +/area/station/hallway/primary/central) +"nWC" = ( +/obj/machinery/defibrillator_mount/directional/south, +/obj/machinery/light/directional/south, +/obj/structure/table/optable, +/turf/open/floor/iron, +/area/station/medical/surgery) +"nWD" = ( +/obj/effect/turf_decal/trimline/purple/filled/line, +/turf/open/floor/iron/white, +/area/station/science) +"nWI" = ( +/obj/structure/table/reinforced, +/obj/item/storage/briefcase/secure{ + pixel_y = 8 + }, +/obj/item/flashlight/seclite, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/security/office) +"nWK" = ( +/mob/living/basic/garden_gnome, +/obj/structure/flora/bush/ferny/style_2, +/turf/open/floor/grass, +/area/station/maintenance/port/fore) +"nWO" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"nWR" = ( +/obj/effect/turf_decal/siding/blue, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron/dark/textured_edge, +/area/station/security/prison/garden) +"nWZ" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/vending/wardrobe/sec_wardrobe, +/obj/effect/turf_decal/siding/thinplating_new/dark, +/obj/effect/turf_decal/trimline/red/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_edge, +/area/station/security/lockers) +"nXd" = ( +/obj/structure/cable, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"nXx" = ( +/obj/machinery/vending/wardrobe/engi_wardrobe, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/dark, +/area/station/engineering/storage_shared) +"nXz" = ( +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/aux_eva) +"nXD" = ( +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/secondary/command) +"nXK" = ( +/obj/machinery/chem_mass_spec, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/medical/chemistry) +"nXL" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/effect/turf_decal/stripes, +/obj/machinery/door/poddoor{ + id = "Secure Storage"; + name = "Secure Storage" + }, +/turf/open/floor/plating, +/area/station/engineering/storage) +"nXM" = ( +/obj/structure/dresser, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/station/security/detectives_office/private_investigators_office) +"nXN" = ( +/obj/effect/turf_decal/vg_decals/atmos/oxygen{ + dir = 1 + }, +/turf/open/floor/engine/o2, +/area/station/engineering/atmos) +"nXP" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/rus_gambling) +"nXQ" = ( +/obj/machinery/computer/warrant{ + dir = 8 + }, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/effect/turf_decal/delivery, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/central/fore) +"nXV" = ( +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/science/central) +"nYb" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/flora/bush/jungle, +/turf/open/floor/grass, +/area/station/hallway/primary/central/fore) +"nYm" = ( +/obj/structure/bookcase/random, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/hop) +"nYs" = ( +/obj/item/extinguisher, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"nYF" = ( +/obj/machinery/chem_dispenser, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 5 + }, +/turf/open/floor/iron/white, +/area/station/medical/pharmacy) +"nYM" = ( +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) +"nYP" = ( +/obj/structure/table/wood/fancy/black, +/obj/item/reagent_containers/cup/glass/bottle/champagne{ + pixel_x = 4; + pixel_y = 7 + }, +/obj/item/reagent_containers/cup/glass/bottle/goldschlager{ + pixel_x = -5; + pixel_y = 3 + }, +/obj/effect/turf_decal/tile/bar/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/service/bar) +"nYQ" = ( +/obj/machinery/door/airlock/maintenance, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"nYR" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Library" + }, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/landmark/navigate_destination, +/turf/open/floor/wood, +/area/station/service/library) +"nYU" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"nYW" = ( +/turf/open/floor/iron, +/area/station/maintenance/rus_surgery) +"nYX" = ( +/obj/structure/table, +/obj/machinery/microwave, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) +"nYY" = ( +/turf/closed/wall/r_wall, +/area/station/science/tele_sci) +"nZb" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/science/robotics) +"nZe" = ( +/obj/effect/landmark/event_spawn, +/obj/effect/turf_decal/tile/yellow/half/contrasted, +/turf/open/floor/iron, +/area/station/commons/storage/primary) +"nZg" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/status_display/evac/directional/north, +/obj/machinery/recharge_station, +/turf/open/floor/iron/dark, +/area/station/engineering/main) +"nZh" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/floor/iron, +/area/station/engineering/storage) +"nZi" = ( +/obj/structure/reagent_dispensers/plumbed/storage, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"nZk" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 1 + }, +/obj/structure/flora/bush/fullgrass, +/turf/open/floor/grass, +/area/station/command/heads_quarters/captain) +"nZp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/department/security/upper) +"nZq" = ( +/obj/machinery/vending/cola/pwr_game, +/turf/open/floor/eighties/red, +/area/station/common/arcade) +"nZt" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet/blue, +/area/station/command/heads_quarters/captain/private) +"nZu" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"nZz" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless, +/area/station/maintenance/port/upper) +"nZC" = ( +/turf/open/floor/iron/smooth, +/area/station/maintenance/starboard/fore) +"nZE" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood/parquet, +/area/station/service/theater) +"nZF" = ( +/obj/effect/landmark/event_spawn, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/science/auxlab/firing_range) +"nZH" = ( +/obj/structure/table, +/obj/item/stack/package_wrap{ + pixel_x = -7; + pixel_y = 9 + }, +/obj/item/stack/package_wrap{ + pixel_x = 2; + pixel_y = -3 + }, +/obj/item/stack/package_wrap{ + pixel_x = -2; + pixel_y = 4 + }, +/obj/effect/turf_decal/siding/brown{ + dir = 5 + }, +/turf/open/floor/iron/dark, +/area/station/cargo/sorting) +"nZM" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/security/checkpoint/escape) +"nZP" = ( +/obj/machinery/door/airlock/hatch{ + name = "Paramedic EVA Storage" + }, +/obj/effect/mapping_helpers/airlock/access/all/medical/general, +/turf/open/floor/iron/white/small, +/area/station/medical/break_room) +"nZT" = ( +/obj/machinery/power/smes{ + capacity = 1.8e+008; + charge = 2e+005 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/test_chambers) +"oag" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/corner{ + dir = 4 + }, +/area/station/hallway/secondary/exit) +"oak" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/commons/dorms/room7) +"oaq" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/security/brig) +"oar" = ( +/turf/open/floor/iron/dark, +/area/station/security/detectives_office) +"oav" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/rack, +/obj/item/clothing/suit/caution, +/obj/item/clothing/suit/caution, +/obj/item/clothing/suit/caution, +/obj/item/clothing/suit/caution, +/obj/item/mop, +/obj/item/mop, +/obj/item/pushbroom, +/obj/item/pushbroom, +/obj/item/reagent_containers/cup/bucket, +/obj/item/reagent_containers/cup/bucket, +/obj/item/storage/bag/trash, +/turf/open/floor/iron, +/area/station/security/prison/upper) +"oax" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/science/genetics) +"oaG" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchencounter"; + name = "Kitchen Counter Shutters" + }, +/obj/machinery/door/firedoor, +/obj/item/reagent_containers/condiment/saltshaker{ + pixel_x = -8; + pixel_y = 5 + }, +/obj/item/reagent_containers/condiment/peppermill{ + pixel_x = -8 + }, +/turf/open/floor/iron/dark, +/area/station/service/kitchen) +"oaI" = ( +/obj/machinery/power/smes, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/maintenance/solars/starboard/fore) +"obc" = ( +/obj/structure/flora/bush/sparsegrass, +/obj/structure/flora/bush/flowers_yw, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/grass, +/area/station/service/chapel) +"obf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot_white, +/obj/machinery/power/port_gen/pacman/pre_loaded, +/turf/open/floor/iron/dark/small, +/area/station/maintenance/starboard/fore) +"obj" = ( +/obj/structure/cable, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/cmo) +"obm" = ( +/obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/science/ordnance) +"obn" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering/glass{ + name = "Engineering Front Desk" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/general, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/engineering/lobby) +"obq" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/carpet/royalblack, +/area/station/service/chapel/office) +"obs" = ( +/obj/item/reagent_containers/cup/bottle/nutrient/ez, +/turf/open/floor/grass, +/area/station/security/prison/garden) +"obz" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet, +/area/station/service/chapel/funeral) +"obB" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/science/ordnance) +"obI" = ( +/obj/machinery/growing/tray, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"obJ" = ( +/obj/structure/chair, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"obM" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/wood/parquet, +/area/station/common/gaskiosk) +"obQ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/station/service/chapel/office) +"obS" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/security/courtroom) +"obU" = ( +/obj/structure/table/wood, +/obj/machinery/computer/security/wooden_tv, +/obj/machinery/newscaster/directional/north, +/turf/open/floor/carpet, +/area/station/security/detectives_office) +"occ" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/iron, +/area/station/security/execution/transfer) +"oci" = ( +/obj/effect/turf_decal/trimline/red/filled/corner{ + color = "#DE3A3A"; + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 5 + }, +/turf/open/floor/iron/dark/corner{ + dir = 8 + }, +/area/station/security/brig) +"ocl" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"ocu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"ocx" = ( +/obj/structure/table/wood, +/obj/item/storage/briefcase{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/briefcase/secure, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/security/courtroom) +"ocy" = ( +/obj/machinery/light_switch/directional/south, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/service/library/lounge) +"ocz" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/commons/dorms/room5) +"ocA" = ( +/turf/closed/wall/r_wall, +/area/station/maintenance/disposal) +"ocG" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/science/ordnance) +"ocN" = ( +/obj/structure/trash_pile, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"ocS" = ( +/obj/effect/turf_decal/tile/dark_blue/half/contrasted{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/cargo/sorting) +"ocY" = ( +/obj/machinery/computer/warrant{ + dir = 4 + }, +/obj/structure/noticeboard/directional/west, +/obj/machinery/light/directional/west, +/turf/open/floor/wood, +/area/station/service/lawoffice) +"odb" = ( +/obj/effect/turf_decal/trimline/blue/line, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/commons/fitness) +"odg" = ( +/obj/machinery/newscaster/directional/west, +/obj/structure/cable, +/turf/open/floor/iron/stairs/old, +/area/station/security/execution/transfer) +"odj" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/landmark/start/station_engineer, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/engineering/break_room) +"odl" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue/half/contrasted, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"odm" = ( +/obj/structure/table/optable, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/iron/freezer, +/area/station/maintenance/abandon_kitchen_upper) +"odo" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet, +/area/station/maintenance/rus_gambling) +"odu" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/mineral/plastitanium/red, +/area/station/science/robotics/lab) +"odv" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/eva) +"odz" = ( +/obj/structure/disposaloutlet{ + dir = 4 + }, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/plasticflaps, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/cargo/sorting) +"odI" = ( +/obj/structure/cable, +/obj/structure/table/wood/poker, +/obj/effect/spawner/random/entertainment/gambling, +/turf/open/floor/wood, +/area/station/service/abandoned_gambling_den) +"odJ" = ( +/obj/machinery/atmospherics/miner/n2o, +/turf/open/floor/engine/n2o, +/area/station/engineering/atmos) +"odL" = ( +/obj/structure/cable, +/turf/open/floor/iron/dark/side{ + dir = 5 + }, +/area/station/security/corrections_officer) +"odO" = ( +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/iron/stairs/left, +/area/station/hallway/primary/central) +"odP" = ( +/obj/item/kirbyplants/organic/plant22, +/obj/machinery/camera/directional/west{ + c_tag = "Security - Head of Security's Office" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/extinguisher_cabinet/directional/west, +/obj/effect/turf_decal/tile/red/real_red/anticorner/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hos) +"odQ" = ( +/obj/structure/girder, +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/station/maintenance/department/security/lesser) +"odS" = ( +/obj/machinery/camera/autoname/directional/west, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/secondary/command) +"oea" = ( +/obj/structure/closet/boxinggloves, +/turf/open/floor/stone, +/area/station/common/wrestling/arena) +"oek" = ( +/obj/structure/door_assembly/door_assembly_hatch, +/obj/structure/barricade/wooden, +/obj/structure/cable, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"oem" = ( +/obj/structure/table, +/obj/item/clothing/gloves/latex, +/obj/item/hemostat, +/turf/open/floor/iron/dark, +/area/station/maintenance/abandon_exam/cat) +"oeq" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/item/clothing/shoes/magboots{ + pixel_y = 4 + }, +/obj/item/clothing/shoes/magboots, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva/upper) +"oer" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/structure/sign/poster/contraband/random/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"oeA" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/engineering/lobby) +"oeB" = ( +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/item/tank/internals/oxygen, +/obj/item/radio, +/obj/item/clothing/mask/breath, +/turf/open/floor/iron/dark, +/area/station/maintenance/aux_eva) +"oeI" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"oeK" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/camera/directional/west{ + c_tag = "Engineering - Secure Storage Upper"; + name = "engineering camera" + }, +/obj/effect/turf_decal/stripes, +/obj/machinery/power/energy_accumulator/grounding_rod, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/engineering/storage) +"oeL" = ( +/obj/machinery/firealarm/directional/east, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/engineering) +"oeM" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible/layer2{ + dir = 5 + }, +/obj/effect/turf_decal/stripes{ + dir = 10 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"oeN" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/security/detectives_office) +"oeQ" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/hedge, +/turf/open/floor/iron/dark/herringbone, +/area/station/common/night_club) +"oeS" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"oeZ" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Security Checkpoint Maintenance" + }, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/turf/open/floor/plating, +/area/station/security/checkpoint/escape) +"ofb" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/secure_closet/personal, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) +"ofd" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hall1"; + location = "hall22" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"ofm" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/radio/intercom/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"ofn" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/newscaster/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"ofs" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/firealarm/directional/east, +/obj/machinery/door/airlock/public/glass{ + name = "Central Hallway" + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"ofy" = ( +/obj/structure/railing{ + dir = 6 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/maintenance/solars/starboard/fore) +"ofB" = ( +/turf/closed/wall/r_wall, +/area/station/science/ordnance) +"ofE" = ( +/turf/closed/wall/r_wall, +/area/station/tcommsat/computer) +"ofH" = ( +/obj/structure/grille, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"ofL" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 1 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/aft) +"ofM" = ( +/obj/machinery/power/port_gen/pacman/pre_loaded, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/bar) +"ofN" = ( +/obj/machinery/newscaster/directional/west, +/obj/structure/table/reinforced, +/obj/machinery/recharger, +/obj/item/restraints/handcuffs/cable/orange, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/supply) +"ofS" = ( +/obj/structure/closet/secure_closet/hydroponics, +/obj/item/botanical_lexicon, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) +"ofT" = ( +/obj/structure/table/glass, +/obj/item/seeds/wheat{ + pixel_x = 6 + }, +/obj/item/seeds/pumpkin{ + pixel_x = -6 + }, +/obj/item/seeds/potato, +/obj/item/food/grown/wheat, +/obj/item/food/grown/watermelon, +/obj/item/food/grown/grapes, +/obj/item/food/grown/tomato, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/service/hydroponics) +"ogd" = ( +/obj/structure/cable, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/sign/nanotrasen{ + pixel_x = -32 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"ogg" = ( +/obj/machinery/griddle, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/turf/open/floor/iron/white/side, +/area/station/maintenance/abandon_diner) +"ogh" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/service/power_station) +"ogj" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/department/eva) +"ogq" = ( +/obj/effect/turf_decal/tile/purple/half/contrasted{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk/multiz{ + dir = 2 + }, +/turf/open/floor/iron, +/area/station/cargo/sorting) +"ogu" = ( +/obj/machinery/button/door{ + id = "surgery"; + name = "Shared Surgery Shutter Control"; + pixel_x = -4; + pixel_y = 26 + }, +/obj/structure/closet/secure_closet/medical2, +/obj/machinery/button/door/directional/south{ + id = "surgerya"; + name = "Privacy Shutters Control"; + pixel_x = 7; + pixel_y = 26 + }, +/obj/effect/turf_decal/trimline/blue/filled/end{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/machinery/camera/autoname/directional/north{ + network = list("ss13","medbay") + }, +/turf/open/floor/iron/white, +/area/station/medical/surgery) +"ogv" = ( +/obj/item/cigbutt, +/obj/structure/cable, +/obj/effect/landmark/start/hangover, +/turf/open/floor/plating, +/area/station/maintenance/department/science/upper) +"ogw" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/commons/dorms/room8) +"ogx" = ( +/obj/machinery/camera/directional/east{ + c_tag = "AI Chamber - Starboard"; + network = list("aicore") + }, +/obj/structure/showcase/cyborg/old{ + dir = 8; + pixel_x = 9; + pixel_y = 2 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai) +"ogD" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/maintenance/solars/starboard/fore) +"ogN" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) +"ogR" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron, +/area/station/commons/dorms) +"ogS" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plating, +/area/station/maintenance/department/security/lower) +"ogV" = ( +/obj/effect/turf_decal/siding/purple/end{ + dir = 4 + }, +/obj/structure/railing, +/turf/open/floor/glass/reinforced, +/area/station/science) +"ogW" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Departures Lounge" + }, +/obj/effect/turf_decal/tile/red{ + color = "#DE3A3A"; + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white/corner{ + dir = 1 + }, +/area/station/hallway/secondary/exit/departure_lounge) +"ogX" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"ogZ" = ( +/obj/effect/turf_decal/bot, +/obj/structure/cable, +/obj/machinery/modular_computer/preset/cargochat/cargo{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/supply) +"ohb" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark/corner, +/obj/effect/turf_decal/trimline/red/line{ + dir = 9 + }, +/turf/open/floor/iron/dark/textured_corner, +/area/station/security/lockers) +"ohd" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/medical/psychology) +"ohg" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/hedge/opaque, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/camera/directional/east{ + c_tag = "Central Hallway - Terrace"; + name = "hallway camera" + }, +/turf/open/floor/iron/dark/side, +/area/station/hallway/primary/central) +"ohj" = ( +/obj/effect/turf_decal/stripes/white/line, +/turf/open/floor/iron/shuttle/evac/airless, +/area/space/nearstation) +"ohk" = ( +/obj/structure/bookcase/random/nonfiction, +/turf/open/floor/wood, +/area/station/medical/aslyum) +"ohl" = ( +/obj/structure/table/wood/fancy/cyan, +/obj/item/storage/photo_album{ + pixel_y = 2 + }, +/obj/machinery/airalarm/directional/south, +/turf/open/floor/wood, +/area/station/command/heads_quarters/blueshield) +"ohm" = ( +/obj/effect/turf_decal/delivery/red, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/station/science/robotics/lab) +"ohs" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/hedge/opaque, +/obj/machinery/light/directional/north, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/central) +"ohv" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/command/bridge) +"ohy" = ( +/obj/structure/table/wood/fancy/blue, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/item/storage/photo_album/captain, +/obj/item/camera, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/obj/machinery/light_switch/directional/south{ + pixel_y = -37 + }, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain/private) +"ohB" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Science Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/research, +/turf/open/floor/plating, +/area/station/maintenance/department/science/ordnance_maint) +"ohC" = ( +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/stone, +/area/station/hallway/primary/central) +"ohE" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/door/airlock/highsecurity{ + name = "Blueshield's Equipment Room" + }, +/obj/effect/mapping_helpers/airlock/access/all/command/captain, +/turf/open/floor/wood, +/area/station/command/heads_quarters/blueshield) +"ohH" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/table, +/turf/open/floor/wood, +/area/station/service/kitchen/diner) +"ohK" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Examshutters"; + name = "Exam Room Shutters" + }, +/turf/open/floor/plating, +/area/station/medical/exam_room) +"ohL" = ( +/obj/machinery/computer/teleporter, +/obj/effect/turf_decal/stripes/blue/line{ + dir = 5 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured_large, +/area/station/ai_monitored/turret_protected/aisat_interior) +"ohT" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/side, +/area/station/security/prison/workout) +"oib" = ( +/obj/machinery/airalarm/directional/north, +/obj/machinery/light/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/commons/fitness) +"oic" = ( +/obj/machinery/door/airlock/external{ + space_dir = 4 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/airlock/access/all/engineering/external, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"oif" = ( +/obj/structure/table/optable, +/obj/effect/decal/cleanable/blood/old, +/obj/item/organ/internal/brain, +/turf/open/floor/iron/white, +/area/station/maintenance/abandon_surgery) +"oih" = ( +/obj/machinery/light/directional/north, +/turf/open/floor/iron, +/area/station/security/execution/transfer) +"oil" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"oip" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple/half{ + dir = 4 + }, +/turf/open/floor/iron/white/side{ + dir = 4 + }, +/area/station/science) +"oiq" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"ois" = ( +/obj/docking_port/stationary/escape_pod, +/turf/open/space/basic, +/area/space) +"oiz" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/command/heads_quarters/hop) +"oiD" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Auxiliary Docking Port" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/dark/textured_large, +/area/station/hallway/secondary/exit) +"oiE" = ( +/obj/machinery/door/airlock/external{ + name = "ERT Response Centre" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "ERT dock" + }, +/obj/effect/mapping_helpers/airlock/access/all/admin/general, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"oiF" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/machinery/light/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"oiL" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/obj/machinery/camera/directional/east{ + c_tag = "Medbay - Cryogenics"; + name = "medbay camera"; + network = list("ss13","medbay") + }, +/obj/machinery/light/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/stairs, +/area/station/medical/cryo) +"oiQ" = ( +/obj/structure/chair/sofa/bench{ + dir = 4; + pixel_x = -5 + }, +/obj/structure/railing{ + dir = 8 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/stone, +/area/station/hallway/primary/central) +"oiU" = ( +/obj/item/kirbyplants/organic/plant21, +/turf/open/floor/iron/dark/side{ + dir = 10 + }, +/area/station/security/prison) +"oiX" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/maintenance/solars/port/fore) +"ojg" = ( +/obj/machinery/airlock_sensor/incinerator_atmos{ + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/bridge_pipe/scrubbers/visible, +/obj/machinery/atmospherics/pipe/bridge_pipe/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/maintenance/disposal/incinerator) +"ojm" = ( +/obj/structure/closet/crate/engineering{ + name = "Prototype Botanical Plant Nutrient Dispenser" + }, +/obj/item/circuitboard/machine/chem_dispenser/mutagensaltpeter, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"ojn" = ( +/obj/structure/table, +/obj/machinery/door/poddoor/shutters{ + id = "visitation"; + name = "Visitation Shutters" + }, +/obj/machinery/door/window/left/directional/west, +/turf/open/floor/iron/dark, +/area/station/security/prison/visit) +"ojp" = ( +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/service/power_station) +"ojs" = ( +/obj/structure/table/wood, +/obj/item/modular_computer/laptop/preset/civilian, +/turf/open/floor/carpet/blue, +/area/station/service/lawoffice) +"ojG" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/iron/dark/corner{ + dir = 1 + }, +/area/station/commons/fitness/recreation) +"ojJ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/engineering/storage/tech) +"ojM" = ( +/obj/structure/trash_pile, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) +"ojR" = ( +/obj/structure/marker_beacon/burgundy, +/obj/structure/lattice/catwalk, +/turf/open/space/openspace, +/area/space/nearstation) +"ojS" = ( +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/security/prison/mess) +"ojU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/mess, +/turf/open/floor/wood, +/area/station/maintenance/abandon_art_studio) +"ojW" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Prison Sanitarium" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/security/brig, +/turf/open/floor/iron/white/side, +/area/station/security/prison) +"oke" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron/dark/corner{ + dir = 4 + }, +/area/station/hallway/primary/port) +"oki" = ( +/obj/machinery/atmospherics/components/binary/pump, +/turf/open/floor/iron, +/area/station/engineering/atmos/test_chambers) +"okl" = ( +/obj/item/kirbyplants/organic/plant21, +/turf/open/floor/iron, +/area/station/service/chapel) +"okq" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/yellow/filled/corner{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"okr" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/security/checkpoint/customs/auxiliary) +"okt" = ( +/obj/machinery/atmospherics/pipe/smart/simple/general/visible{ + dir = 10 + }, +/obj/machinery/door/window/right/directional/east{ + name = "Gas Ports" + }, +/turf/open/floor/iron/dark, +/area/station/security/execution/education) +"oky" = ( +/obj/machinery/atmospherics/pipe/smart/simple/violet/visible, +/turf/open/floor/iron, +/area/station/engineering/atmos/pumproom) +"okz" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/status_display/evac/directional/east, +/obj/structure/cable, +/obj/machinery/light/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/dorms) +"okA" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/computer/records/medical/laptop{ + dir = 8; + pixel_y = 4 + }, +/turf/open/floor/carpet/blue, +/area/station/medical/exam_room) +"okG" = ( +/obj/machinery/duct, +/turf/open/floor/iron/checker, +/area/station/service/janitor) +"okH" = ( +/obj/machinery/button/door/directional/north{ + id = "chem_lockdown"; + name = "chemistry lockdown control"; + req_access = list("chemistry") + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/obj/machinery/camera/directional/north{ + c_tag = "Chemistry - Fore"; + name = "medbay camera"; + network = list("ss13","medbay") + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"okI" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"okJ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"okO" = ( +/obj/structure/chair/sofa/left/brown{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/obj/machinery/light/directional/west, +/turf/open/floor/wood/parquet, +/area/station/service/theater) +"okY" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 10 + }, +/turf/open/floor/iron/shuttle/evac/airless, +/area/space/nearstation) +"okZ" = ( +/obj/structure/girder, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"ola" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/item/radio/intercom/directional/south, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/iron/dark/side, +/area/station/hallway/primary/port) +"olb" = ( +/turf/closed/wall, +/area/station/maintenance/eva_shed/port) +"olg" = ( +/obj/structure/disposalpipe/junction{ + dir = 2 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/engineering/lobby) +"oli" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/item/reagent_containers/cup/glass/drinkingglass{ + pixel_x = -1; + pixel_y = 4 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Barshutters"; + name = "Bar Shutters" + }, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron/dark, +/area/station/service/bar) +"olj" = ( +/obj/item/reagent_containers/cup/glass/bottle/hooch, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_port) +"olk" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/chair/stool/bar/directional/south, +/obj/effect/turf_decal/tile/bar/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/service/kitchen/diner) +"olm" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating/airless, +/area/station/maintenance/eva_shed/starboard) +"olo" = ( +/obj/effect/turf_decal/stripes, +/obj/structure/table, +/obj/machinery/digital_clock/directional/north, +/obj/machinery/fax{ + fax_name = "Service Hallway"; + name = "Service Fax Machine"; + pixel_y = 3 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/service) +"olu" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/science/ordnance/storage) +"oly" = ( +/turf/open/floor/iron/stairs/medium{ + dir = 4 + }, +/area/station/hallway/primary/upper) +"olF" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/turf/open/floor/mineral/plastitanium/red, +/area/station/science/robotics/lab) +"olH" = ( +/obj/structure/chair/pew/left{ + dir = 8 + }, +/obj/effect/landmark/start/assistant, +/obj/machinery/camera/directional/east{ + c_tag = "Chapel - Starboard"; + name = "chapel camera" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/station/service/chapel) +"olO" = ( +/obj/machinery/status_display/ai, +/turf/closed/wall, +/area/station/hallway/secondary/entry) +"olT" = ( +/obj/structure/bed/double, +/obj/item/bedsheet/brown/double, +/obj/machinery/light_switch/directional/east, +/turf/open/floor/carpet/royalblack, +/area/station/commons/dorms/room8) +"olW" = ( +/turf/open/floor/iron/dark/corner{ + dir = 4 + }, +/area/station/hallway/primary/port) +"oma" = ( +/obj/structure/girder/displaced, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"omg" = ( +/obj/structure/table, +/obj/item/training_toolbox{ + pixel_y = 8 + }, +/obj/item/training_toolbox, +/turf/open/floor/iron, +/area/station/commons/fitness) +"omi" = ( +/obj/effect/turf_decal/trimline/purple/line{ + dir = 9 + }, +/turf/open/floor/iron/white/side{ + dir = 9 + }, +/area/station/science/research) +"omm" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/light_switch/directional/east, +/turf/open/floor/iron, +/area/station/maintenance/rus_surgery) +"omn" = ( +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/breakroom) +"omq" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/primary/upper) +"omr" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"omt" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"omu" = ( +/obj/structure/table, +/obj/item/modular_computer/laptop, +/turf/open/floor/iron, +/area/station/maintenance/thruster_room/central) +"omD" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/station/service/lawoffice) +"omF" = ( +/obj/structure/table/reinforced/rglass, +/obj/item/stack/medical/mesh, +/obj/item/clothing/neck/stethoscope, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) +"omJ" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/vg_decals/numbers/four, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 4 + }, +/obj/machinery/door/window/brigdoor/security/cell/right/directional/east{ + name = "Cell 4" + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/brig) +"omM" = ( +/obj/item/stack/sheet/cardboard, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/eva) +"omQ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"omT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter) +"omU" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/computer/monitor, +/turf/open/floor/iron/smooth, +/area/station/cargo/power_station/upper) +"omW" = ( +/obj/effect/turf_decal/trimline/purple/filled/line, +/obj/structure/cable, +/obj/machinery/status_display/ai/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"omY" = ( +/obj/machinery/smartfridge/food, +/obj/machinery/digital_clock/directional/north, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron/dark, +/area/station/security/prison/mess) +"onc" = ( +/obj/effect/turf_decal/trimline/blue/line{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"onf" = ( +/obj/effect/turf_decal/vg_decals/numbers/one, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"onq" = ( +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/test_chambers) +"onv" = ( +/obj/structure/rack/shelf, +/obj/effect/turf_decal/delivery/red, +/obj/item/clothing/suit/armor/riot, +/obj/item/clothing/head/helmet/toggleable/riot{ + pixel_y = 6 + }, +/obj/structure/sign/poster/official/carwo_grenade/directional/south, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/blueshield) +"onB" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/security/office) +"onF" = ( +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/pumproom) +"onG" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron/checker, +/area/station/service/janitor) +"onL" = ( +/obj/structure/table, +/obj/item/storage/box/lights/mixed, +/obj/item/pipe_dispenser, +/obj/structure/cable, +/obj/machinery/firealarm/directional/east, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/construction/mining/aux_base) +"onO" = ( +/obj/structure/chair/wood{ + dir = 8; + name = "Defense" + }, +/turf/open/floor/wood, +/area/station/security/courtroom) +"onP" = ( +/turf/closed/wall, +/area/station/engineering/lobby) +"onU" = ( +/obj/effect/turf_decal/stripes, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/machinery/door/poddoor{ + id = "Waste"; + name = "Waste Bay Blast Door" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/xenobio_disposals) +"onV" = ( +/obj/structure/cable, +/obj/machinery/door/airlock{ + id_tag = "Storefront"; + name = "Store Counter" + }, +/turf/open/floor/iron/dark, +/area/station/common/tailoring) +"ooa" = ( +/obj/structure/cable, +/turf/open/floor/carpet, +/area/station/service/theater) +"ooc" = ( +/obj/structure/closet/secure_closet/bar, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/service) +"oof" = ( +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"ooh" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/item/trash/can, +/turf/open/floor/iron/smooth, +/area/station/security/prison/upper) +"ooi" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/mineral/plastitanium/red, +/area/station/maintenance/cult_chapel_maint) +"ook" = ( +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/iron, +/area/station/construction/mining/aux_base) +"oom" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/landmark/blobstart, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"ooo" = ( +/turf/closed/wall/r_wall, +/area/station/service/theater/abandoned) +"oou" = ( +/obj/structure/chair/sofa/bench/left{ + dir = 1 + }, +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/iron/dark/side, +/area/station/security/prison/shower) +"oox" = ( +/obj/machinery/door/airlock/external{ + name = "Solar Maintenance"; + space_dir = 2 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/structure/cable, +/obj/structure/sign/warning/electric_shock/directional/west, +/obj/effect/mapping_helpers/airlock/access/all/engineering/general, +/turf/open/floor/plating, +/area/station/maintenance/solars/starboard/fore) +"ooB" = ( +/obj/machinery/door/airlock/corporate{ + name = "Representative's Quarters" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/command/captain, +/obj/machinery/duct, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/nt_rep) +"ooF" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering/glass{ + name = "SMES Banks" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/general, +/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/engineering/engine_smes) +"ooG" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 1; + name = "Air to Distro" + }, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/pumproom) +"ooN" = ( +/obj/structure/window/spawner/directional/east, +/obj/structure/flora/bush/grassy, +/obj/structure/sign/nanotrasen{ + pixel_y = -32 + }, +/turf/open/floor/grass, +/area/station/hallway/primary/central/aft) +"ooP" = ( +/obj/structure/table/reinforced, +/obj/item/screwdriver, +/obj/item/radio{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/radio, +/turf/open/floor/iron/dark, +/area/station/engineering/break_room) +"ooX" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 5 + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology/hallway) +"ooY" = ( +/obj/machinery/teleport/hub, +/obj/effect/turf_decal/stripes/blue/line{ + dir = 9 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron/dark/textured_large, +/area/station/ai_monitored/turret_protected/aisat_interior) +"opb" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"opt" = ( +/obj/effect/turf_decal/bot, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"opv" = ( +/obj/structure/fence{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/structure/curtain/bounty/start_closed, +/turf/open/floor/iron/dark/herringbone, +/area/station/cargo/miningdock) +"opJ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/common/locker_room_shower) +"opK" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/item/kirbyplants/random, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/medical/patients_rooms) +"opP" = ( +/obj/structure/grille, +/turf/open/floor/iron/shuttle/arrivals/airless, +/area/space/nearstation) +"opY" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 10 + }, +/area/station/commons/fitness) +"oqb" = ( +/turf/open/floor/iron/white/side{ + dir = 5 + }, +/area/station/science/xenobiology) +"oqc" = ( +/obj/machinery/button/door/directional/north{ + id = "Examshutters"; + name = "Exam Room Privacy Shutters"; + pixel_x = -6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/button/door/directional/north{ + id = "ExamRoom"; + name = "Door Lock"; + normaldoorcontrol = 1; + pixel_x = 5; + specialfunctions = 4 + }, +/turf/open/floor/wood, +/area/station/medical/exam_room) +"oqe" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/newscaster/directional/south, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"oqi" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/security/checkpoint/medical) +"oql" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/security/execution/transfer) +"oqn" = ( +/obj/machinery/door/poddoor/shutters{ + id = "aux_base_shutters"; + name = "Auxillary Base Shutters" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/iron, +/area/station/construction/mining/aux_base) +"oqr" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"oqu" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/security/prison/visit) +"oqw" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/brig) +"oqz" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/dark/corner, +/area/station/hallway/primary/aft) +"oqA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/junction/flip{ + dir = 2 + }, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"oqD" = ( +/obj/structure/flora/bush/reed, +/turf/open/water/overlay, +/area/station/hallway/primary/central) +"oqM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/science/ordnance/testlab) +"oqO" = ( +/obj/effect/spawner/liquids_spawner{ + reagent_list = list(/datum/reagent/water=600) + }, +/obj/structure/flora/ocean/seaweed, +/mob/living/basic/carp/passive, +/turf/open/misc/asteroid, +/area/station/hallway/primary/upper) +"oqT" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Perma Office" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/security/brig, +/turf/open/floor/iron/dark, +/area/station/security/corrections_officer) +"oqU" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/tcommsat/computer) +"oqZ" = ( +/turf/closed/wall/rust, +/area/station/maintenance/abandon_kitchen_upper) +"ord" = ( +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) +"orl" = ( +/obj/structure/closet/crate/trashcart, +/obj/effect/turf_decal/bot, +/obj/item/storage/bag/trash, +/obj/effect/spawner/random/contraband/prison, +/turf/open/floor/iron, +/area/station/security/prison/upper) +"orn" = ( +/obj/effect/turf_decal/vg_decals/numbers/three, +/turf/open/floor/iron/shuttle/arrivals/airless, +/area/space/nearstation) +"orp" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/effect/mapping_helpers/airlock/access/all/command/general, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"ort" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hallup2"; + location = "hallup1" + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"orx" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/smooth_corner{ + dir = 4 + }, +/area/station/cargo/miningdock) +"orB" = ( +/obj/effect/turf_decal/tile/blue/half/contrasted, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"orJ" = ( +/obj/structure/chair/office{ + dir = 8 + }, +/obj/effect/landmark/start/scientist, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/science/explab) +"orP" = ( +/obj/structure/chair/sofa/bench/left{ + dir = 1 + }, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/machinery/light_switch/directional/west, +/turf/open/floor/iron/dark/side, +/area/station/security/prison/shower) +"orV" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/desk_bell{ + pixel_x = 7 + }, +/obj/item/reagent_containers/cup/rag, +/obj/item/reagent_containers/cup/glass/coffee{ + pixel_x = -3; + pixel_y = 9 + }, +/turf/open/floor/iron/dark, +/area/station/service/cafeteria) +"orY" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "Luggagebelt" + }, +/obj/machinery/light/small/red/dim/directional/east, +/turf/open/floor/plating, +/area/station/security/checkpoint/customs) +"orZ" = ( +/obj/effect/turf_decal/trimline/green/filled/warning{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/medical/virology/isolation) +"osb" = ( +/obj/machinery/door/poddoor/preopen{ + id = "prison release"; + name = "Prisoner Processing Blast Door" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/execution/transfer) +"osc" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/flowers_br, +/turf/open/floor/grass, +/area/station/hallway/secondary/command) +"ose" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/carpet/green, +/area/station/medical/virology/isolation) +"osg" = ( +/turf/closed/wall/mineral/silver{ + name = "White padded wall" + }, +/area/station/maintenance/department/medical) +"ost" = ( +/obj/item/stack/sheet/cardboard, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/night_club) +"osu" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"osx" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/grimy, +/area/station/ai_monitored/turret_protected/aisat_interior) +"osz" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/command/gateway) +"osC" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/camera/directional/west{ + c_tag = "Medbay - Pharmacy Entrance"; + name = "medbay camera"; + network = list("ss13","medbay") + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"osE" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ + dir = 9 + }, +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"osN" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/security/checkpoint/science/research) +"osQ" = ( +/obj/machinery/duct, +/turf/open/floor/iron/stairs{ + dir = 1 + }, +/area/station/common/night_club) +"osS" = ( +/obj/structure/closet/secure_closet/miner, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/dark, +/area/station/cargo/miningoffice) +"osY" = ( +/obj/structure/chair/sofa/left/brown, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/landmark/start/hangover, +/turf/open/floor/wood, +/area/station/commons/dorms/room8) +"osZ" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"otd" = ( +/obj/effect/turf_decal/stripes/end{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/science/auxlab/firing_range) +"otk" = ( +/obj/machinery/photocopier, +/obj/machinery/light/directional/north, +/obj/machinery/status_display/ai/directional/north, +/obj/effect/turf_decal/stripes/blue/line{ + dir = 9 + }, +/turf/open/floor/iron/dark, +/area/station/security/office) +"otl" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"ott" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/hallway/secondary/exit) +"otv" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/mineral/plastitanium, +/area/station/maintenance/cult_chapel_maint) +"otQ" = ( +/obj/structure/chair/pew/left{ + dir = 4 + }, +/obj/machinery/light/directional/west, +/obj/effect/turf_decal/tile/bar/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/security/prison/mess) +"otS" = ( +/obj/structure/closet, +/obj/effect/spawner/random/maintenance, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"oua" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating{ + dir = 8 + }, +/obj/effect/turf_decal/weather/sand{ + dir = 6 + }, +/obj/structure/flora/bush/sparsegrass{ + pixel_x = 8 + }, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"oub" = ( +/obj/structure/reagent_forge, +/obj/machinery/door/firedoor, +/obj/item/stack/sheet/mineral/coal/five, +/obj/machinery/door/window/left/directional/east, +/turf/open/floor/iron/dark, +/area/station/service/forge) +"oug" = ( +/obj/structure/chair/pew{ + dir = 8 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/wood, +/area/station/security/courtroom) +"ouh" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/structure/cable, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/station/medical/power_station) +"oun" = ( +/obj/machinery/door/firedoor, +/obj/machinery/light/directional/north, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/starboard) +"oup" = ( +/obj/structure/table, +/obj/item/grown/bananapeel, +/turf/open/floor/noslip, +/area/station/maintenance/gag_room) +"oux" = ( +/obj/machinery/light/no_nightlight/directional/west, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/smooth_edge{ + dir = 8 + }, +/area/station/engineering/atmos/hfr_room) +"ouH" = ( +/turf/open/floor/iron/checker, +/area/station/hallway/secondary/service) +"ouK" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/prison) +"ouM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/commons/dorms/room3) +"ouO" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/smooth_edge{ + dir = 4 + }, +/area/station/cargo/miningdock) +"ouR" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/white/side, +/area/station/command/heads_quarters/ce) +"ovg" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/station/maintenance/port/central) +"ovj" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"ovs" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/vending/wardrobe/law_wardrobe, +/turf/open/floor/wood, +/area/station/service/lawoffice) +"ovx" = ( +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"ovC" = ( +/obj/machinery/growing/soil, +/turf/open/floor/grass, +/area/station/service/hydroponics/garden/abandoned) +"ovD" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/station/maintenance/pool_maintenance) +"ovE" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/machinery/computer/crew{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red/half{ + dir = 1 + }, +/turf/open/floor/iron/dark/side{ + dir = 9 + }, +/area/station/security/warden) +"ovF" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/secondary/command) +"ovI" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/department/chapel) +"ovO" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/machinery/duct, +/turf/open/floor/carpet/purple, +/area/station/command/heads_quarters/rd) +"ovR" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/red/filled/warning{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/line, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/lockers) +"ovS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"ovW" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/security/detectives_office) +"ovY" = ( +/obj/machinery/light/floor/has_bulb, +/obj/effect/turf_decal/trimline/yellow, +/turf/open/floor/iron, +/area/station/engineering/atmos/test_chambers) +"owe" = ( +/obj/effect/turf_decal/bot, +/obj/structure/table, +/obj/item/holosign_creator/atmos{ + pixel_y = 7 + }, +/obj/item/analyzer, +/turf/open/floor/iron, +/area/station/science/ordnance) +"owf" = ( +/turf/closed/wall, +/area/station/engineering/break_room) +"owp" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ + dir = 6 + }, +/turf/open/space/basic, +/area/space/nearstation) +"owq" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/iron/stairs/left{ + dir = 4 + }, +/area/station/cargo/storage) +"owu" = ( +/obj/machinery/computer/crew{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 6 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) +"oww" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/machinery/conveyor{ + dir = 8; + id = "mining" + }, +/turf/open/floor/plating, +/area/station/cargo/miningdock) +"owA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/effect/spawner/random/engineering/tool, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"owF" = ( +/obj/structure/sink/directional/west, +/obj/structure/cable, +/obj/machinery/camera/directional/west{ + c_tag = "Hydroponics Lower"; + dir = 4; + name = "service camera" + }, +/obj/machinery/status_display/evac/directional/east, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"owK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/closed/wall/r_wall, +/area/station/ai_monitored/turret_protected/aisat_interior) +"owM" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 8 + }, +/obj/item/phone{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clipboard{ + pixel_x = 13; + pixel_y = 3 + }, +/obj/item/cigbutt/cigarbutt{ + pixel_x = 5; + pixel_y = -1 + }, +/obj/item/toy/figure/borg{ + pixel_x = 13; + pixel_y = 2 + }, +/turf/open/floor/iron/grimy, +/area/station/ai_monitored/turret_protected/aisat_interior) +"owN" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/landmark/navigate_destination, +/obj/effect/mapping_helpers/airlock/access/all/service/hydroponics, +/obj/machinery/door/airlock/hydroponics/glass{ + name = "Hydroponics" + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) +"owP" = ( +/obj/machinery/button/door/directional/west{ + id = "chemisttop"; + name = "Pharmacy Top Shutter Control"; + pixel_x = 24; + pixel_y = 6; + req_access = list("pharmacy") + }, +/obj/machinery/button/door/directional/west{ + id = "chemistbot"; + name = "Pharmacy Bottom Shutter Control"; + pixel_x = 24; + pixel_y = -6; + req_access = list("pharmacy") + }, +/obj/structure/sink/directional/west, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 4 + }, +/obj/machinery/light_switch/directional/east{ + pixel_x = 34 + }, +/turf/open/floor/iron/white, +/area/station/medical/pharmacy) +"owS" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"owZ" = ( +/obj/structure/window/spawner/directional/west, +/obj/structure/window/spawner/directional/north, +/obj/structure/flora/bush/sparsegrass, +/obj/structure/flora/bush/flowers_pp, +/turf/open/floor/grass, +/area/station/hallway/primary/central/aft) +"oxs" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id = "ceblast"; + name = "Chief's Lockdown Shutters" + }, +/turf/open/floor/plating, +/area/station/command/heads_quarters/ce) +"oxz" = ( +/obj/effect/turf_decal/trimline/blue/filled/end{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron/white, +/area/station/medical/surgery) +"oxB" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/central) +"oxF" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"oxI" = ( +/obj/structure/ladder, +/turf/open/floor/plating, +/area/station/maintenance/department/chapel) +"oxK" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/machinery/corral_corner{ + mapping_id = "4" + }, +/obj/machinery/slime_pen_controller{ + mapping_id = "4"; + dir = 2 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"oxL" = ( +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/maintenance/port/aft) +"oxU" = ( +/obj/effect/spawner/structure/window/reinforced/tinted, +/turf/open/floor/plating, +/area/station/service/chapel/office) +"oxW" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/ai_monitored/command/storage/eva/upper) +"oxX" = ( +/obj/machinery/atmospherics/pipe/smart/simple/violet/visible, +/turf/closed/wall, +/area/station/engineering/atmos/pumproom) +"oyb" = ( +/obj/structure/table/reinforced, +/obj/machinery/computer/security/telescreen/ordnance{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/testlab) +"oyh" = ( +/obj/structure/window/spawner/directional/south, +/obj/effect/turf_decal/siding/wood, +/obj/structure/closet/secure_closet/barber, +/obj/effect/turf_decal/tile/purple/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/service/barber) +"oym" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) +"oyo" = ( +/obj/structure/table/wood, +/obj/item/storage/fancy/donut_box, +/obj/machinery/camera/directional/south{ + c_tag = "Library Lower 2"; + name = "library camera" + }, +/obj/machinery/light/directional/south, +/obj/machinery/newscaster/directional/south, +/turf/open/floor/wood, +/area/station/service/library) +"oyw" = ( +/obj/machinery/power/smes/engineering, +/obj/machinery/status_display/ai/directional/west, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/engineering/engine_smes) +"oyy" = ( +/obj/structure/cable, +/obj/effect/turf_decal/trimline/red, +/turf/open/floor/iron/dark/small, +/area/station/security/prison/upper) +"oyz" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/medical/patients_rooms) +"oyB" = ( +/obj/structure/table, +/obj/structure/cable, +/obj/machinery/microwave{ + pixel_y = 8 + }, +/turf/open/floor/iron/dark, +/area/station/security/prison/mess) +"oyC" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/iron/smooth, +/area/station/cargo/miningdock) +"oyE" = ( +/obj/structure/window/spawner/directional/north, +/obj/machinery/vending/autodrobe/all_access, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/station/common/tailoring) +"oyI" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"oyK" = ( +/obj/machinery/photocopier, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/service/library/printer) +"oyN" = ( +/obj/structure/closet/secure_closet/brig, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/checkpoint/escape) +"ozb" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/carpet/blue, +/area/station/command/heads_quarters/captain) +"ozh" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/captain/private) +"ozm" = ( +/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/engineering/engine_smes) +"ozt" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/junction{ + dir = 2 + }, +/turf/open/floor/iron/white, +/area/station/science/research) +"ozu" = ( +/obj/structure/chair/pew/left{ + dir = 4 + }, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/iron, +/area/station/security/prison/mess) +"ozz" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/dark/textured_large, +/area/station/security/lockers) +"ozE" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/pool_maintenance) +"ozJ" = ( +/obj/effect/turf_decal/stripes, +/obj/structure/tank_dispenser, +/turf/open/floor/engine, +/area/station/command/secure_bunker) +"ozK" = ( +/obj/machinery/button/door/directional/north{ + id = "gatewayshutters"; + name = "Gateway Shutters"; + req_access = list("command") + }, +/obj/item/kirbyplants/random, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/command) +"ozL" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/tcommsat/computer) +"ozQ" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/table, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron/dark, +/area/station/security/courtroom) +"oAa" = ( +/obj/effect/turf_decal/bot_white/right, +/obj/machinery/ore_silo, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/nuke_storage) +"oAc" = ( +/obj/machinery/light/small/broken/directional/west, +/turf/open/floor/iron/stairs, +/area/station/maintenance/cult_chapel_maint) +"oAd" = ( +/obj/structure/extinguisher_cabinet/directional/north, +/obj/machinery/light/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/duct, +/turf/open/floor/iron/stairs/old{ + dir = 8 + }, +/area/station/command/heads_quarters/nt_rep) +"oAu" = ( +/obj/structure/chair/sofa/middle/brown, +/obj/structure/window/spawner/directional/north, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"oAv" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"oAC" = ( +/obj/machinery/camera/directional/south{ + c_tag = "Recreation - Wrestling Ring Lower"; + name = "recreation camera" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/stone, +/area/station/common/wrestling/arena) +"oAL" = ( +/obj/structure/trash_pile, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/eighties, +/area/station/maintenance/abandon_arcade) +"oAM" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/glass/reinforced, +/area/station/security/prison/safe) +"oAT" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/machinery/newscaster/directional/north, +/obj/structure/rack, +/obj/item/plate/large, +/obj/item/plate/large, +/obj/item/plate/large, +/obj/item/plate/oven_tray, +/obj/item/plate/oven_tray, +/obj/item/plate/oven_tray, +/obj/item/plate, +/obj/item/plate, +/obj/item/plate, +/obj/item/plate/small, +/obj/item/plate/small, +/obj/item/plate/small, +/obj/item/storage/box/drinkingglasses{ + pixel_y = 6 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/secondary/service) +"oAY" = ( +/obj/structure/cable, +/obj/effect/landmark/start/hangover, +/turf/open/floor/wood, +/area/station/common/wrestling/lobby) +"oAZ" = ( +/obj/structure/closet/secure_closet/freezer/meat/all_access, +/obj/item/food/meat/slab/chicken, +/obj/item/food/meat/slab/chicken, +/obj/item/food/meat/slab/chicken, +/obj/item/food/meat/slab/chicken, +/obj/item/food/meat/slab/monkey, +/obj/item/food/meat/slab/monkey, +/obj/item/food/meat/slab/monkey, +/obj/item/food/meat/slab/monkey, +/obj/item/food/meat/rawbacon, +/obj/item/food/meat/rawbacon, +/obj/item/food/meat/rawbacon, +/obj/item/food/meat/rawbacon, +/obj/structure/extinguisher_cabinet{ + pixel_x = 24 + }, +/obj/item/food/meat/slab/human/mutant/fly, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/security/prison/mess) +"oBa" = ( +/obj/item/reagent_containers/syringe, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_port) +"oBd" = ( +/obj/machinery/door/airlock/grunge{ + name = "Funeral Hall" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/iron, +/area/station/service/chapel/funeral) +"oBe" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/lockers) +"oBj" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "chem_lockdown"; + name = "Chemistry Shutters" + }, +/turf/open/floor/plating, +/area/station/medical/pharmacy) +"oBl" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/effect/spawner/random/trash/mess, +/turf/open/floor/plating/reinforced{ + initial_gas_mix = "TEMP=2.7" + }, +/area/station/science/ordnance/bomb) +"oBm" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless, +/area/station/maintenance/port/upper) +"oBp" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/ai_monitored/turret_protected/ai_upload) +"oBt" = ( +/obj/structure/window/reinforced/fulltile, +/obj/structure/flora/bush/fullgrass, +/obj/structure/flora/bush/flowers_yw, +/obj/structure/flora/rock/pile, +/turf/open/floor/grass, +/area/station/command/heads_quarters/hos) +"oBu" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"oBv" = ( +/obj/structure/filingcabinet, +/obj/structure/sign/painting/library_private{ + pixel_x = -32 + }, +/obj/structure/sign/calendar/directional/south, +/turf/open/floor/iron/dark, +/area/station/service/library/private) +"oBw" = ( +/obj/effect/turf_decal/bot, +/obj/structure/rack/shelf, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/iron/dark, +/area/station/cargo/warehouse) +"oBx" = ( +/obj/structure/chair/sofa/bench/right{ + dir = 4; + pixel_x = -5 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/iron/dark/side{ + dir = 10 + }, +/area/station/common/locker_room_shower) +"oBA" = ( +/obj/structure/table, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/department/security) +"oBE" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/dorms) +"oBI" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"oBJ" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 5 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"oBL" = ( +/obj/machinery/door/window/right/directional/north, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"oBO" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "Luggagebelt" + }, +/obj/structure/plasticflaps, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/security/checkpoint) +"oBP" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/carpet/blue, +/area/station/medical/break_room) +"oBS" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/obj/structure/sign/departments/psychology/directional/west, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"oBV" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"oBW" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"oCa" = ( +/obj/item/chair, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"oCb" = ( +/obj/machinery/telecomms/receiver/preset_left, +/obj/machinery/camera/autoname/directional/west, +/turf/open/floor/circuit/telecomms/mainframe, +/area/station/tcommsat/server) +"oCd" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/carpet, +/area/station/service/library/printer) +"oCh" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/yellow/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/main) +"oCn" = ( +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/obj/machinery/camera/directional/west{ + c_tag = "Primary Restroom"; + name = "restroom camera" + }, +/turf/open/floor/iron/white, +/area/station/commons/toilet/restrooms) +"oCp" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/window/spawner/directional/north, +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/item/bedsheet/ian/double, +/obj/item/bedsheet/ian, +/turf/open/floor/carpet/royalblue, +/area/station/command/heads_quarters/hop) +"oCs" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/security/interrogation) +"oCw" = ( +/mob/living/basic/mouse/brown, +/turf/open/floor/grass, +/area/station/maintenance/department/medical) +"oCx" = ( +/turf/closed/wall/r_wall, +/area/station/maintenance/gag_room) +"oCG" = ( +/obj/effect/turf_decal/trimline/purple/filled/line, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron/white, +/area/station/science) +"oCM" = ( +/obj/structure/sign/warning/no_smoking, +/turf/closed/wall/r_wall, +/area/station/engineering/atmos/test_chambers) +"oCU" = ( +/obj/structure/table/glass, +/obj/item/reagent_containers/cup/glass/coffee_cup, +/turf/open/floor/wood, +/area/station/hallway/primary/port) +"oCY" = ( +/obj/effect/spawner/random/trash/mess, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/sign/poster/contraband/random/directional/south, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"oDe" = ( +/obj/machinery/atmospherics/components/unary/passive_vent{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/test_chambers) +"oDh" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/closet/crate/bin, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"oDl" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/carpet, +/area/station/service/cafeteria) +"oDt" = ( +/obj/item/kirbyplants/random, +/obj/machinery/light/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/service/theater) +"oDw" = ( +/obj/structure/sign/directions/evac{ + dir = 8; + pixel_y = -10 + }, +/obj/structure/sign/directions/supply{ + dir = 4; + pixel_y = -4 + }, +/obj/structure/sign/directions/engineering{ + dir = 4; + pixel_y = 2 + }, +/obj/structure/sign/directions/security{ + dir = 4; + pixel_y = 8 + }, +/turf/closed/wall, +/area/station/service/forge) +"oDz" = ( +/turf/closed/wall/r_wall, +/area/station/security/checkpoint/escape) +"oDA" = ( +/obj/machinery/mech_bay_recharge_port, +/turf/open/floor/plating, +/area/station/science/research/abandoned) +"oDC" = ( +/obj/structure/table/reinforced, +/obj/item/book/manual/wiki/security_space_law, +/obj/item/clothing/glasses/sunglasses{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/structure/cable, +/obj/effect/turf_decal/tile/purple/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/security/corrections_officer) +"oDH" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 2 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/security/checkpoint/escape) +"oDK" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/machinery/camera/directional/south, +/turf/open/floor/stone, +/area/station/service/forge) +"oDV" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/carbon_input{ + dir = 1 + }, +/turf/open/floor/engine/co2, +/area/station/engineering/atmos) +"oEb" = ( +/obj/structure/disposalpipe/junction/flip{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"oEl" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/command/captain_dining) +"oEt" = ( +/obj/effect/decal/remains/human, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"oEv" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/bar) +"oEw" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"oEx" = ( +/obj/structure/table, +/obj/effect/turf_decal/stripes, +/obj/effect/turf_decal/stripes/white/line, +/obj/item/clipboard, +/obj/item/toy/figure/geneticist, +/turf/open/floor/iron/dark, +/area/station/science/genetics) +"oEB" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/science/xenobiology) +"oEG" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, +/turf/open/floor/plating, +/area/station/engineering/engine_smes) +"oET" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"oEU" = ( +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/station/security/prison/mess) +"oFg" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/science/ordnance) +"oFl" = ( +/obj/effect/spawner/random/structure/closet_maintenance, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"oFo" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/pharmacy) +"oFB" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Service Hallway Maintenance Hatch" + }, +/obj/effect/mapping_helpers/airlock/access/all/service/general, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/bar) +"oFH" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/airlock/atmos/glass{ + name = "Atmospherics Testing Room" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/obj/structure/cable, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/maintenance/disposal/incinerator) +"oFJ" = ( +/obj/structure/sign/painting/library{ + pixel_y = 32 + }, +/turf/open/floor/carpet, +/area/station/service/library) +"oFP" = ( +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/security/office) +"oFX" = ( +/obj/structure/table/wood, +/obj/item/food/muffin/berry{ + pixel_y = 3 + }, +/turf/open/floor/wood, +/area/station/service/cafeteria) +"oGe" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/office{ + dir = 4 + }, +/turf/open/floor/iron/smooth, +/area/station/maintenance/starboard/fore) +"oGh" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/science/cytology) +"oGm" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"oGo" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/security/checkpoint/escape) +"oGp" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/vg_decals/numbers/one, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"oGA" = ( +/turf/closed/wall/r_wall, +/area/station/maintenance/solars/port/fore) +"oGF" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/item/melee/baton/security/loaded, +/obj/item/melee/baton/security/loaded, +/obj/item/melee/baton/security/loaded, +/obj/structure/cable, +/obj/effect/spawner/random/armory/riot_shield, +/obj/item/gun/energy/e_gun/dragnet, +/obj/item/gun/energy/e_gun/dragnet, +/obj/effect/turf_decal/trimline/red/line{ + dir = 9 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark, +/turf/open/floor/iron/dark/textured_corner, +/area/station/ai_monitored/security/armory) +"oGG" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/service/library) +"oGH" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/external, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"oGK" = ( +/obj/effect/spawner/random/maintenance, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/eva) +"oGL" = ( +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, +/turf/closed/wall/r_wall, +/area/station/maintenance/disposal/incinerator) +"oGO" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) +"oHa" = ( +/turf/open/floor/iron/stairs/right{ + dir = 1 + }, +/area/station/hallway/secondary/exit) +"oHd" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/spawner/random/contraband/cannabis/lizardsgas, +/turf/open/floor/wood, +/area/station/service/hydroponics/garden/abandoned) +"oHf" = ( +/obj/structure/filingcabinet/chestdrawer/wheeled, +/obj/effect/turf_decal/stripes, +/obj/effect/turf_decal/stripes/white/line, +/obj/item/radio/intercom/directional/north, +/obj/machinery/camera/directional/north{ + c_tag = "Genetics Lab North"; + name = "science camera"; + network = list("ss13","rd") + }, +/turf/open/floor/iron/dark, +/area/station/science/genetics) +"oHh" = ( +/obj/effect/landmark/start/hangover, +/turf/open/floor/glass, +/area/station/hallway/primary/upper) +"oHq" = ( +/obj/structure/curtain/cloth, +/obj/structure/drain, +/obj/machinery/shower/directional/south, +/turf/open/floor/iron/freezer, +/area/station/commons/dorms/room7) +"oHs" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/structure/chair/sofa/bench{ + dir = 4; + pixel_x = -5 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/common/wrestling/arena) +"oHt" = ( +/obj/effect/turf_decal/weather/sand, +/obj/structure/flora/bush/sparsegrass, +/obj/structure/flora/bush/lavendergrass, +/turf/open/misc/grass, +/area/station/service/barber) +"oHu" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/smooth, +/area/station/cargo/storage) +"oHz" = ( +/obj/effect/turf_decal/stripes{ + dir = 6 + }, +/obj/structure/table/glass, +/obj/machinery/reagentgrinder{ + pixel_y = 5 + }, +/turf/open/floor/iron, +/area/station/science/xenobiology) +"oHA" = ( +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"oHB" = ( +/obj/machinery/door/firedoor, +/obj/structure/table/reinforced, +/obj/item/folder/red, +/obj/item/pen, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/window/brigdoor/right/directional/north{ + name = "Security Desk"; + req_access = list("security") + }, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/escape) +"oHD" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/service/barber) +"oHG" = ( +/obj/effect/turf_decal/caution/stand_clear, +/obj/effect/turf_decal/bot, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"oHI" = ( +/obj/effect/spawner/random/structure/closet_maintenance, +/turf/open/floor/plating, +/area/station/maintenance/department/science/ordnance_maint) +"oHL" = ( +/obj/item/reagent_containers/cup/glass/bottle/vodka/badminka, +/obj/structure/chair/stool/directional/east, +/turf/open/floor/wood, +/area/station/maintenance/rus_gambling) +"oHP" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/cargo/miningdock) +"oHS" = ( +/obj/machinery/power/smes/engineering, +/obj/machinery/status_display/evac/directional/west, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/engineering/engine_smes) +"oHU" = ( +/obj/structure/table/wood, +/obj/item/stack/sheet/mineral/sandstone/thirty, +/obj/item/chisel, +/obj/machinery/light_switch/directional/south, +/turf/open/floor/iron/dark, +/area/station/service/library) +"oIe" = ( +/obj/machinery/washing_machine, +/obj/machinery/status_display/ai/directional/north, +/obj/machinery/light/directional/north, +/turf/open/floor/iron/cafeteria, +/area/station/commons/locker) +"oIk" = ( +/obj/machinery/door/airlock/engineering{ + name = "Port Bow Solar Access" + }, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/general, +/turf/open/floor/iron/dark, +/area/station/maintenance/solars/port/fore) +"oIp" = ( +/obj/machinery/door/airlock/grunge{ + name = "Forbidden Chapel" + }, +/obj/structure/barricade/wooden, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/turf/open/floor/iron/dark, +/area/station/maintenance/cult_chapel_maint) +"oIq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet, +/obj/item/fuel_pellet/advanced, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/light/small/broken/directional/east, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"oIr" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"oIt" = ( +/obj/item/transfer_valve{ + pixel_x = -5 + }, +/obj/item/transfer_valve{ + pixel_x = -5 + }, +/obj/item/transfer_valve, +/obj/item/transfer_valve, +/obj/item/transfer_valve{ + pixel_x = 5 + }, +/obj/item/transfer_valve{ + pixel_x = 5 + }, +/obj/structure/table/reinforced, +/obj/effect/turf_decal/delivery, +/obj/machinery/light/directional/east, +/obj/item/wrench{ + pixel_y = 21 + }, +/obj/item/screwdriver{ + pixel_y = 16 + }, +/obj/machinery/light/directional/west, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) +"oIw" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/stairs{ + dir = 8 + }, +/area/station/maintenance/port/upper) +"oIz" = ( +/turf/open/floor/iron/stairs, +/area/station/security/brig) +"oIJ" = ( +/obj/structure/chair/stool/directional/east, +/turf/open/floor/iron, +/area/station/commons/fitness/recreation) +"oIL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"oIO" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/aisat/exterior) +"oIT" = ( +/obj/structure/cable, +/obj/machinery/airalarm/directional/east, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"oIW" = ( +/obj/effect/turf_decal/bot_white, +/obj/item/banner/command/mundane, +/obj/machinery/light/small/directional/north, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 1 + }, +/obj/machinery/camera/autoname/directional/north, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/captain) +"oJc" = ( +/obj/machinery/door/airlock/external{ + space_dir = 8 + }, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "balcony1" + }, +/obj/effect/mapping_helpers/airlock/access/all/command/general, +/turf/open/floor/plating, +/area/station/command/secure_bunker) +"oJg" = ( +/turf/closed/wall, +/area/station/engineering/storage_shared) +"oJm" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/command) +"oJr" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "Luggagebelt" + }, +/obj/structure/plasticflaps/opaque, +/turf/open/floor/plating, +/area/station/security/checkpoint/customs) +"oJz" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/wood/parquet, +/area/station/common/night_club) +"oJB" = ( +/obj/effect/turf_decal/stripes{ + dir = 5 + }, +/obj/structure/table/glass, +/obj/item/disk/vacuum_upgrade/biomass, +/obj/item/disk/vacuum_upgrade/biomass, +/obj/item/disk/vacuum_upgrade/biomass, +/obj/item/vacuum_pack, +/obj/item/vacuum_pack, +/obj/item/vacuum_pack, +/turf/open/floor/iron, +/area/station/science/xenobiology) +"oJC" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 9 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"oJH" = ( +/obj/effect/spawner/random/trash/mess, +/turf/open/floor/iron, +/area/station/maintenance/port/aft) +"oJJ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/door/airlock/medical{ + name = "Ward Controll Room" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/medical/psychology, +/turf/open/floor/iron, +/area/station/medical/psychology) +"oKf" = ( +/obj/structure/railing{ + dir = 5 + }, +/turf/open/floor/iron/smooth_corner{ + dir = 8 + }, +/area/station/cargo/miningdock) +"oKi" = ( +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ + dir = 8 + }, +/obj/structure/closet/emcloset, +/turf/open/floor/iron/dark/corner{ + dir = 4 + }, +/area/station/maintenance/department/engineering/engine_aft_starboard) +"oKj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/department/security/lower) +"oKk" = ( +/obj/effect/spawner/random/trash/moisture, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"oKp" = ( +/obj/machinery/portable_atmospherics/canister/nitrogen, +/turf/open/floor/plating, +/area/station/maintenance/department/security/lower) +"oKr" = ( +/obj/structure/rack/wooden, +/obj/item/clothing/under/color/white{ + pixel_x = -7; + pixel_y = 7 + }, +/obj/item/clothing/under/color/white{ + pixel_y = 7 + }, +/obj/item/clothing/under/color/white{ + pixel_x = 7; + pixel_y = 7 + }, +/obj/item/clothing/under/color/jumpskirt/white{ + pixel_x = -7; + pixel_y = -7 + }, +/obj/item/clothing/under/color/jumpskirt/white{ + pixel_y = -7 + }, +/obj/item/clothing/under/color/jumpskirt/white{ + pixel_x = 7; + pixel_y = -7 + }, +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/wood/parquet, +/area/station/common/tailoring) +"oKA" = ( +/obj/machinery/door/airlock/research{ + name = "Secure Holding Cell" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/window/preopen{ + id = "Xeno11"; + name = "Containment Breach Shutters" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white/side{ + dir = 4 + }, +/area/station/science/xenobiology) +"oKC" = ( +/obj/machinery/light_switch/directional/west{ + pixel_x = -24 + }, +/obj/machinery/light/directional/west, +/obj/machinery/camera/directional/west{ + c_tag = "Medbay - Treatment Center"; + name = "medbay camera"; + network = list("ss13","medbay") + }, +/obj/effect/turf_decal/delivery/white{ + color = "#52B4E9" + }, +/turf/open/floor/iron/dark, +/area/station/medical/treatment_center) +"oKD" = ( +/obj/structure/cable, +/obj/machinery/firealarm/directional/north{ + pixel_x = 22; + pixel_y = 21 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/button/door/directional/north{ + id = "HoPdoor"; + name = "HoP Door Lock"; + normaldoorcontrol = 1; + pixel_x = -25; + pixel_y = 25; + req_access = list("hop"); + specialfunctions = 4 + }, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/command/heads_quarters/hop) +"oKE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/freezer, +/area/station/maintenance/abandon_kitchen_upper) +"oKF" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/sign/poster/random/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"oKJ" = ( +/obj/machinery/duct, +/turf/open/floor/iron/smooth_corner{ + dir = 8 + }, +/area/station/maintenance/disposal/incinerator) +"oKN" = ( +/obj/structure/reagent_dispensers/watertank/high, +/obj/item/radio/intercom/directional/east, +/obj/item/reagent_containers/cup/watering_can, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/service/hydroponics) +"oKY" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/airalarm/directional/west, +/obj/machinery/door/window/left/directional/north, +/turf/open/floor/wood/parquet, +/area/station/common/arcade) +"oLa" = ( +/obj/effect/turf_decal/vg_decals/numbers/two, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"oLd" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/cable, +/obj/structure/railing, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/captain) +"oLe" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/vending/cigarette, +/turf/open/floor/iron/dark/side, +/area/station/hallway/secondary/exit) +"oLg" = ( +/obj/machinery/door/airlock/external{ + name = "Solar Maintenance" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/unres, +/obj/structure/sign/warning/electric_shock/directional/east, +/obj/effect/mapping_helpers/airlock/access/all/engineering/general, +/turf/open/floor/plating, +/area/station/maintenance/solars/port/fore) +"oLh" = ( +/obj/effect/decal/cleanable/blood/gibs/body, +/turf/open/floor/material/meat, +/area/station/maintenance/department/science/xenobiology) +"oLj" = ( +/obj/effect/turf_decal/bot, +/obj/structure/cable, +/turf/open/floor/iron/large, +/area/station/cargo/lobby) +"oLn" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/command/meeting_room/council) +"oLq" = ( +/obj/effect/turf_decal/stripes{ + dir = 5 + }, +/turf/open/floor/iron/smooth, +/area/station/engineering/atmos/hfr_room) +"oLt" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/corner{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"oLu" = ( +/obj/machinery/conveyor_switch/oneway{ + id = "robo2"; + pixel_y = 21 + }, +/obj/structure/fireaxecabinet/mechremoval/directional/north, +/turf/open/floor/mineral/plastitanium, +/area/station/science/robotics/lab) +"oLA" = ( +/obj/structure/table/reinforced, +/obj/item/electronics/firelock, +/obj/item/electronics/airalarm, +/obj/item/electronics/apc, +/obj/item/electronics/airlock, +/obj/item/wrench, +/obj/effect/turf_decal/stripes{ + dir = 9 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/storage) +"oLE" = ( +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/red{ + color = "#DE3A3A"; + dir = 8 + }, +/obj/machinery/bluespace_vendor/directional/south, +/turf/open/floor/iron/white/corner, +/area/station/hallway/secondary/exit/departure_lounge) +"oLI" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"oLQ" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/siding/wood, +/obj/item/clothing/gloves/color/plasmaman, +/obj/item/clothing/gloves/color/plasmaman{ + pixel_y = 3 + }, +/obj/item/clothing/gloves/color/plasmaman{ + pixel_y = 6 + }, +/obj/item/clothing/gloves/color/plasmaman, +/obj/item/clothing/gloves/color/plasmaman{ + pixel_y = 3 + }, +/obj/item/clothing/gloves/color/plasmaman{ + pixel_y = 6 + }, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/iron/dark, +/area/station/common/gaskiosk) +"oLW" = ( +/obj/structure/stairs/north, +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/service/barber) +"oMd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/door/airlock/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"oMe" = ( +/obj/effect/turf_decal/siding/thinplating/dark, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/aisat/hallway) +"oMg" = ( +/obj/effect/spawner/random/trash/mess, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"oMk" = ( +/obj/structure/table/wood, +/obj/item/folder{ + pixel_y = 2 + }, +/obj/item/folder, +/turf/open/floor/carpet, +/area/station/service/library/printer) +"oMr" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister/nitrogen, +/turf/open/floor/iron/dark, +/area/station/engineering/supermatter/room) +"oMw" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/trunk{ + dir = 2 + }, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen/diner) +"oMC" = ( +/obj/structure/bed, +/obj/item/bedsheet/mime, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/kitchen, +/area/station/service/theater) +"oMF" = ( +/obj/machinery/light/small/directional/east, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"oMG" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Equipment Room" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/lockers) +"oML" = ( +/obj/structure/railing{ + dir = 6 + }, +/turf/open/floor/iron/dark, +/area/station/cargo/miningoffice) +"oMQ" = ( +/mob/living/basic/garden_gnome, +/turf/open/floor/grass, +/area/station/maintenance/port/fore) +"oMU" = ( +/obj/effect/turf_decal/trimline/red/filled/line{ + color = "#DE3A3A"; + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hos) +"oMZ" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"oNc" = ( +/obj/machinery/light/floor/has_bulb, +/turf/open/floor/iron/shuttle/arrivals/airless, +/area/space/nearstation) +"oNh" = ( +/obj/effect/turf_decal/delivery/white, +/turf/open/floor/iron/dark/smooth_large/airless, +/area/space/nearstation) +"oNk" = ( +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/flowers_pp, +/obj/structure/window/spawner/directional/east, +/obj/structure/window/spawner/directional/west, +/turf/open/floor/grass, +/area/station/medical/medbay/lobby) +"oNl" = ( +/obj/effect/decal/cleanable/oil, +/obj/effect/decal/cleanable/food/egg_smudge, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"oNt" = ( +/obj/structure/table/wood, +/obj/effect/spawner/random/entertainment/drugs{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/effect/spawner/random/entertainment/drugs, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"oNv" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"oNC" = ( +/obj/structure/table/wood/poker, +/obj/effect/spawner/random/entertainment/gambling, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/service/abandoned_gambling_den) +"oNH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/structure/cable, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/service/power_station) +"oNI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/layer1, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"oNL" = ( +/obj/machinery/vending/boozeomat, +/turf/closed/wall, +/area/station/command/heads_quarters/captain) +"oNT" = ( +/obj/effect/spawner/random/trash/mess, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/dorms) +"oNX" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/falsewall, +/turf/open/floor/plating, +/area/station/service/hydroponics) +"oOg" = ( +/obj/structure/girder, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"oOq" = ( +/obj/effect/turf_decal/stripes/white/box, +/obj/machinery/light/directional/south, +/obj/machinery/porta_turret/ai{ + dir = 4; + installation = /obj/item/gun/energy/e_gun + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai) +"oOr" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Service Hallway Maintenance Hatch" + }, +/obj/effect/mapping_helpers/airlock/access/all/service/general, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"oOt" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/corner{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"oOG" = ( +/obj/structure/closet/secure_closet/contraband/heads, +/obj/effect/turf_decal/bot, +/obj/item/storage/box/ids, +/obj/item/storage/briefcase/secure, +/obj/machinery/airalarm/directional/south, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron/dark/side, +/area/station/security/checkpoint/customs/auxiliary) +"oOH" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/duct, +/turf/open/floor/carpet/royalblack, +/area/station/commons/dorms/room8) +"oOJ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/structure/chair/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/service/chapel/funeral) +"oON" = ( +/obj/machinery/power/shuttle_engine/heater{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"oOP" = ( +/obj/structure/table/reinforced, +/obj/item/storage/box/flashbangs{ + pixel_x = 6; + pixel_y = 5 + }, +/obj/item/storage/box/teargas{ + pixel_x = -5; + pixel_y = 3 + }, +/obj/effect/turf_decal/trimline/red/corner{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 5 + }, +/turf/open/floor/iron/dark/textured_corner{ + dir = 8 + }, +/area/station/ai_monitored/security/armory) +"oOQ" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/effect/turf_decal/delivery, +/turf/open/floor/iron, +/area/station/maintenance/port/aft) +"oOX" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"oOY" = ( +/turf/open/misc/beach/sand, +/area/station/service/barber) +"oOZ" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/commons/storage/primary) +"oPc" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/photocopier, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/obj/machinery/newscaster/directional/east, +/turf/open/floor/iron/dark, +/area/station/security/warden) +"oPe" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/table, +/obj/item/book/manual/wiki/security_space_law, +/turf/open/floor/iron, +/area/station/security/courtroom) +"oPn" = ( +/obj/machinery/power/shuttle_engine/heater{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"oPo" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/camera/autoname/directional/west, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/primary/central) +"oPy" = ( +/turf/closed/wall/rust, +/area/station/maintenance/abandon_arcade) +"oPA" = ( +/obj/effect/turf_decal/stripes, +/turf/open/floor/plating, +/area/station/cargo/miningdock) +"oPB" = ( +/obj/effect/turf_decal/siding/wood/end{ + dir = 1 + }, +/obj/machinery/grill, +/turf/open/floor/wood, +/area/station/hallway/primary/central) +"oPG" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/door/firedoor, +/obj/structure/sign/poster/random/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"oPH" = ( +/obj/machinery/shower/directional/south, +/obj/effect/turf_decal/bot, +/obj/structure/drain, +/turf/open/floor/iron, +/area/station/medical/virology) +"oPK" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/smooth_edge{ + dir = 4 + }, +/area/station/security/brig) +"oPM" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Barshutters"; + name = "Bar Shutters" + }, +/obj/machinery/door/firedoor, +/obj/item/lighter{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/lighter, +/turf/open/floor/iron/dark, +/area/station/service/bar) +"oPW" = ( +/obj/structure/cable, +/turf/open/floor/iron/stairs/right{ + dir = 4 + }, +/area/station/service/chapel) +"oPZ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/purple/half, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"oQc" = ( +/obj/structure/table/reinforced/rglass, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/computer/security/telescreen/entertainment/directional/west, +/obj/item/lipstick{ + pixel_x = -11; + pixel_y = 11 + }, +/obj/item/lipstick/black{ + pixel_x = -11; + pixel_y = 6 + }, +/obj/item/lipstick/jade{ + pixel_x = -11; + pixel_y = 1 + }, +/obj/item/lipstick/purple{ + pixel_x = -11; + pixel_y = -4 + }, +/obj/item/lipstick/quantum{ + pixel_x = -11; + pixel_y = -9 + }, +/obj/item/hairbrush{ + pixel_x = 2; + pixel_y = 3 + }, +/turf/open/floor/iron/dark, +/area/station/service/barber) +"oQq" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp/bananalamp{ + pixel_y = 16 + }, +/obj/item/toy/crayon/spraycan/lubecan{ + charges = 5; + pixel_x = 7; + pixel_y = 9 + }, +/obj/item/storage/crayons, +/turf/open/floor/iron, +/area/station/service/theater) +"oQw" = ( +/obj/machinery/light/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/hallway/secondary/service) +"oQD" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/secure_closet/security/cargo, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/checkpoint/supply) +"oQG" = ( +/obj/structure/table, +/obj/item/knife{ + pixel_x = 6 + }, +/obj/machinery/camera/directional/east{ + c_tag = "Bridge - Command Kitchen"; + name = "command camera" + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/reagent_containers/pill/maintenance, +/turf/open/floor/iron/cafeteria, +/area/station/maintenance/department/medical/central) +"oQH" = ( +/obj/structure/table/wood/fancy/green, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/item/paper_bin, +/obj/machinery/light/directional/north, +/turf/open/floor/wood, +/area/station/security/courtroom) +"oQI" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/engineering/break_room) +"oQO" = ( +/obj/effect/turf_decal/stripes/white/line, +/obj/structure/railing, +/turf/closed/wall, +/area/station/cargo/miningdock) +"oQQ" = ( +/obj/machinery/dish_drive/bullet, +/obj/effect/turf_decal/delivery, +/obj/machinery/status_display/ai/directional/north, +/turf/open/floor/iron, +/area/station/science/auxlab/firing_range) +"oQT" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/escapepodbay) +"oQY" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/break_room) +"oQZ" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/secure_closet/personal, +/turf/open/floor/iron, +/area/station/commons/dorms) +"oRd" = ( +/obj/machinery/camera/directional/west{ + c_tag = "Recreation - Lower"; + name = "recreation camera" + }, +/obj/machinery/light/directional/west, +/obj/machinery/status_display/evac/directional/west, +/obj/structure/chair/stool/directional/north, +/obj/effect/landmark/start/assistant, +/turf/open/floor/iron, +/area/station/commons/fitness/recreation) +"oRn" = ( +/obj/structure/hedge/opaque, +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/curtain/bounty, +/turf/open/floor/wood, +/area/station/service/barber) +"oRu" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "balcony1" + }, +/obj/effect/mapping_helpers/airlock/access/all/command/general, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"oRw" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/medical/psychology) +"oRy" = ( +/obj/machinery/computer/monitor, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/security/power_station) +"oRP" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/cargo/lobby) +"oRT" = ( +/turf/open/floor/iron/dark/textured_large, +/area/station/hallway/secondary/exit) +"oSc" = ( +/obj/structure/cable, +/obj/structure/chair/stool/directional/north, +/turf/open/floor/iron, +/area/station/engineering/break_room) +"oSe" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark/herringbone, +/area/station/security/brig) +"oSf" = ( +/obj/structure/sink/directional/south, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/tiled/white{ + name = "Padded tile" + }, +/area/station/medical/aslyum) +"oSo" = ( +/obj/structure/closet/crate/hydroponics, +/obj/item/seeds/aloe, +/obj/item/seeds/apple, +/obj/item/seeds/cabbage, +/obj/item/seeds/whitebeet, +/obj/item/seeds/redbeet, +/obj/item/seeds/sugarcane, +/obj/item/seeds/sunflower, +/obj/item/seeds/tea, +/obj/item/seeds/tea/astra, +/obj/item/seeds/tobacco, +/obj/item/seeds/tomato/blood, +/obj/item/seeds/cocoapod/vanillapod, +/obj/item/seeds/cocoapod, +/obj/item/seeds/coffee/robusta, +/obj/item/seeds/coffee, +/obj/item/seeds/corn, +/obj/item/seeds/cotton, +/obj/item/seeds/cotton/durathread, +/obj/item/seeds/potato/sweet, +/obj/item/grown/cotton, +/obj/item/food/grown/poppy, +/obj/item/food/grown/poppy/geranium, +/obj/item/food/grown/poppy/lily, +/obj/item/food/grown/harebell, +/obj/item/food/grown/garlic, +/obj/item/food/grown/onion, +/obj/item/food/grown/peas, +/obj/item/grown/log, +/obj/item/food/grown/mushroom/chanterelle, +/obj/item/food/grown/wheat, +/obj/machinery/camera/directional/south{ + c_tag = " Prison - Gardain"; + network = list("ss13","prison") + }, +/obj/machinery/light/directional/south, +/turf/open/floor/grass, +/area/station/security/prison/garden) +"oSr" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/security/office) +"oSw" = ( +/obj/item/trash/pistachios, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"oSz" = ( +/obj/machinery/atmospherics/miner/oxygen, +/turf/open/floor/engine/o2, +/area/station/engineering/atmos) +"oSI" = ( +/obj/structure/bookcase/random/adult, +/turf/open/floor/wood, +/area/station/service/library) +"oSO" = ( +/obj/machinery/power/shuttle_engine/heater{ + dir = 8 + }, +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/station/maintenance/port/upper) +"oSQ" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Holodeck Door" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "rec-area" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/iron, +/area/station/commons/fitness/recreation) +"oST" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 9 + }, +/obj/structure/railing, +/turf/closed/wall, +/area/station/cargo/miningdock) +"oSX" = ( +/turf/open/floor/iron/dark, +/area/station/security/corrections_officer) +"oTa" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/cardboard, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"oTc" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/stairs, +/area/station/science/xenobiology) +"oTg" = ( +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/hallway/secondary/exit) +"oTk" = ( +/obj/machinery/power/port_gen/pacman/pre_loaded, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"oTl" = ( +/turf/open/floor/iron/smooth_large, +/area/station/cargo/storage) +"oTn" = ( +/turf/open/floor/carpet/green, +/area/station/command/heads_quarters/nt_rep) +"oTo" = ( +/obj/structure/table, +/obj/item/hfr_box/corner, +/obj/item/hfr_box/corner, +/obj/item/hfr_box/corner, +/obj/item/hfr_box/corner, +/obj/item/hfr_box/core, +/turf/open/floor/iron/dark/smooth_large, +/area/station/engineering/atmos/hfr_room) +"oTr" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/wood, +/area/station/medical/patients_rooms) +"oTC" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/closet/secure_closet/atmospherics, +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/office) +"oTH" = ( +/obj/structure/cable, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/station/service/library/printer) +"oTJ" = ( +/obj/machinery/holopad, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/red/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/filled/line, +/turf/open/floor/iron/dark, +/area/station/security/brig) +"oTW" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/ai_monitored/aisat/exterior) +"oUd" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark/side, +/area/station/hallway/primary/central) +"oUg" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/light/floor/has_bulb, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"oUh" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/dish_drive/bullet, +/obj/machinery/newscaster/directional/west, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/range) +"oUj" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing, +/turf/open/openspace, +/area/station/maintenance/aft/upper) +"oUn" = ( +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/science/circuits) +"oUr" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/bar) +"oUs" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/sunny, +/obj/structure/flora/bush/flowers_pp, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/turf/open/floor/grass, +/area/station/security/prison/garden) +"oUt" = ( +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/structure/cable, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/service/power_station) +"oUy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/emcloset{ + name = "plasmaperson emergency closet" + }, +/obj/item/clothing/under/plasmaman, +/obj/item/clothing/under/plasmaman, +/obj/item/clothing/head/helmet/space/plasmaman, +/obj/item/clothing/head/helmet/space/plasmaman, +/obj/item/tank/internals/plasmaman/belt/full, +/obj/item/tank/internals/plasmaman/belt/full, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/department/eva) +"oUA" = ( +/obj/structure/cable, +/turf/open/floor/eighties/red, +/area/station/common/arcade) +"oUB" = ( +/obj/machinery/camera/directional/north{ + c_tag = "Security - Office Fore" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/security/office) +"oUF" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/locker) +"oUI" = ( +/obj/machinery/computer/records/security{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"oUJ" = ( +/obj/effect/landmark/start/ai/secondary, +/obj/item/radio/intercom/directional/north{ + freerange = 1; + listening = 0; + name = "Custom Channel"; + pixel_x = -8 + }, +/obj/item/radio/intercom/directional/west{ + freerange = 1; + listening = 0; + name = "Common Channel" + }, +/obj/item/radio/intercom/directional/south{ + freerange = 1; + frequency = 1447; + listening = 0; + name = "Private Channel"; + pixel_x = -8 + }, +/turf/open/floor/circuit/green, +/area/station/ai_monitored/turret_protected/ai) +"oUM" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/structure/closet/secure_closet/freezer/fridge/open, +/turf/open/floor/wood, +/area/station/commons/dorms/room5) +"oUN" = ( +/obj/structure/chair/stool/bar/directional/north, +/turf/open/floor/iron/cafeteria, +/area/station/maintenance/abandon_diner) +"oUO" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/iron, +/area/station/common/locker_room_shower) +"oUS" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Warden's Office" + }, +/obj/effect/turf_decal/delivery/blue, +/obj/structure/cable, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/security/armory, +/turf/open/floor/iron/dark, +/area/station/security/warden) +"oVd" = ( +/obj/structure/chair/sofa/bench{ + dir = 8; + pixel_x = 5 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/command) +"oVf" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/commons/dorms) +"oVo" = ( +/obj/structure/bodycontainer, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/iron/dark/small, +/area/station/medical/morgue) +"oVJ" = ( +/obj/machinery/suit_storage_unit/cmo, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/cmo) +"oVN" = ( +/obj/structure/sign/poster/contraband/random/directional/south, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"oVP" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 4 + }, +/obj/machinery/requests_console/directional/east{ + department = "Research Lab"; + name = "Research Requests Console" + }, +/obj/effect/mapping_helpers/requests_console/announcement, +/obj/effect/mapping_helpers/requests_console/ore_update, +/obj/effect/mapping_helpers/requests_console/information, +/obj/effect/mapping_helpers/requests_console/assistance, +/obj/machinery/camera/directional/east{ + c_tag = "Science - Research and Development"; + name = "science camera"; + network = list("ss13","rd") + }, +/turf/open/floor/iron/white, +/area/station/science/lab) +"oVV" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/iron/white/side{ + dir = 4 + }, +/area/station/medical/medbay/lobby) +"oVW" = ( +/obj/machinery/computer/bank_machine{ + dir = 4 + }, +/obj/effect/turf_decal/delivery/white, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/nuke_storage) +"oVX" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) +"oWa" = ( +/turf/closed/wall/r_wall, +/area/station/security/prison/workout) +"oWc" = ( +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/hallway/primary/port) +"oWi" = ( +/obj/structure/table/glass, +/obj/item/modular_computer/laptop/preset/civilian, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/science/xenobiology/control) +"oWj" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/stripes/corner, +/obj/effect/turf_decal/stripes{ + dir = 9 + }, +/obj/machinery/teleport/hub, +/obj/machinery/light/directional/west, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/iron/dark, +/area/station/command/gateway) +"oWx" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"oWB" = ( +/obj/effect/turf_decal/tile/red, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"oWD" = ( +/obj/structure/chair/office, +/obj/effect/turf_decal/vg_decals/numbers/four, +/obj/effect/turf_decal/trimline/red/filled/warning{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"oWE" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/chair/office, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/carpet, +/area/station/maintenance/abandon_office) +"oWJ" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 9 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"oWP" = ( +/obj/structure/kitchenspike, +/obj/effect/turf_decal/delivery, +/obj/machinery/camera/directional/north{ + c_tag = "Kitchen Cold Room"; + name = "service camera" + }, +/obj/machinery/light/small/directional/north, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) +"oWY" = ( +/obj/machinery/camera/directional/west{ + c_tag = "Leisure Area - Lasertag Blue Lower"; + name = "hallway camera" + }, +/turf/open/floor/iron/dark, +/area/station/common/laser_tag) +"oXa" = ( +/obj/structure/rack/gunrack, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"oXh" = ( +/obj/item/stack/sheet/cardboard, +/obj/item/storage/box/lights, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"oXm" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Barshutters"; + name = "Bar Shutters" + }, +/obj/structure/desk_bell, +/turf/open/floor/iron/dark, +/area/station/service/bar) +"oXz" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"oXE" = ( +/obj/effect/spawner/structure/window, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/curtain/cloth/fancy/mechanical{ + id = "Psychologistcurtains" + }, +/turf/open/floor/plating, +/area/station/medical/psychology) +"oXF" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/light/directional/west, +/obj/structure/table/glass, +/turf/open/floor/wood, +/area/station/hallway/primary/port) +"oXG" = ( +/obj/structure/bed/maint, +/obj/effect/spawner/random/trash/mess, +/obj/machinery/light/small/broken/directional/west, +/turf/open/floor/iron, +/area/station/maintenance/abandon_holding_cell) +"oXN" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/machinery/vending/modularpc, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/purple/half, +/turf/open/floor/iron/white/side, +/area/station/science) +"oXP" = ( +/obj/structure/table/reinforced, +/obj/item/clipboard, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/item/paper_bin/carbon, +/obj/item/pen/fountain, +/turf/open/floor/iron/dark, +/area/station/security/office) +"oXV" = ( +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 8 + }, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) +"oXX" = ( +/obj/machinery/light/directional/east, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/port) +"oYb" = ( +/obj/machinery/airalarm/directional/east, +/turf/open/floor/iron, +/area/station/hallway/secondary/construction) +"oYg" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/junction{ + dir = 2 + }, +/obj/machinery/duct, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/primary/port) +"oYi" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) +"oYq" = ( +/obj/machinery/button/door{ + desc = "A remote control-switch for secure storage."; + id = "Secure Storage"; + name = "Engineering Secure Storage"; + pixel_x = -24; + pixel_y = 5; + req_access = list("engine_equip") + }, +/obj/structure/tank_dispenser, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/engineering/storage) +"oYB" = ( +/obj/item/kirbyplants/random, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/station/command/heads_quarters/rd) +"oYL" = ( +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/science/auxlab/firing_range) +"oYP" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/effect/turf_decal/bot, +/obj/machinery/computer/turbine_computer{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/maintenance/disposal/incinerator) +"oYT" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing{ + dir = 4 + }, +/obj/machinery/light/directional/north, +/obj/structure/chair/sofa/bench/right{ + dir = 8 + }, +/turf/open/floor/glass/reinforced, +/area/station/security/prison/safe) +"oYU" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/item/clothing/suit/jacket{ + desc = "All the class of a trenchcoat without the security fibers."; + icon_state = "detective"; + name = "trenchcoat" + }, +/obj/item/clothing/head/fedora{ + icon_state = "detective" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/wood, +/area/station/security/detectives_office/private_investigators_office) +"oYZ" = ( +/turf/closed/wall/rust, +/area/station/maintenance/abandon_art_studio) +"oZa" = ( +/obj/structure/table/wood/fancy/green, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/item/radio/intercom, +/turf/open/floor/wood, +/area/station/security/courtroom) +"oZd" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/service/theater/abandoned) +"oZi" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating{ + dir = 4 + }, +/obj/structure/flora/tree/palm, +/obj/structure/flora/bush/sparsegrass{ + pixel_x = -6 + }, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"oZp" = ( +/obj/machinery/portable_atmospherics/pump, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_port) +"oZr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"oZs" = ( +/obj/structure/table/glass, +/obj/structure/microscope, +/obj/effect/turf_decal/tile/purple/half{ + dir = 1 + }, +/obj/item/knife{ + pixel_x = 16 + }, +/turf/open/floor/iron/white/side{ + dir = 1 + }, +/area/station/science/cytology) +"oZu" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/landmark/blobstart, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/closet/cardboard, +/obj/item/toy/plush/lizard_plushie/green{ + name = "Tends-the-Wounds" + }, +/turf/open/floor/plating, +/area/station/medical/abandoned) +"oZv" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/broken/directional/west, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"oZx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/secondary/construction) +"oZC" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"oZD" = ( +/obj/structure/chair/sofa/bench/left{ + dir = 4; + pixel_x = -5 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/service/barber) +"oZH" = ( +/obj/effect/spawner/liquids_spawner, +/turf/open/floor/lowered/iron/pool/cobble/corner, +/area/station/common/pool) +"oZK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/engineering/supermatter/room) +"oZQ" = ( +/turf/open/floor/wood, +/area/station/hallway/primary/port) +"oZS" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/security/checkpoint/customs/auxiliary) +"oZY" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/library/upper) +"pai" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Prison Wing" + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/delivery/blue, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/security/brig, +/turf/open/floor/iron/dark, +/area/station/security/prison) +"paj" = ( +/obj/effect/turf_decal/stripes/red/line{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ + dir = 6 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"pao" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating{ + dir = 8 + }, +/obj/structure/flora/bush/sparsegrass{ + pixel_x = 8 + }, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"paq" = ( +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/station/command/meeting_room/council) +"pat" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/dorms) +"pax" = ( +/obj/structure/chair/sofa/bench, +/obj/machinery/newscaster/directional/north, +/obj/machinery/light/directional/north, +/obj/effect/landmark/start/assistant, +/obj/effect/turf_decal/siding/thinplating_new, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/upper) +"pay" = ( +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"paz" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/science/ordnance) +"paH" = ( +/turf/open/floor/iron/solarpanel/airless, +/area/station/solars/starboard/aft) +"paJ" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/obj/machinery/door/window/brigdoor/left/directional/north{ + name = "Research Director Observation"; + req_access = list("rd") + }, +/turf/open/floor/engine, +/area/station/command/heads_quarters/rd) +"paL" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating{ + dir = 4 + }, +/turf/open/misc/beach/sand, +/area/station/hallway/primary/central) +"paW" = ( +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/contraband/random/directional/east, +/turf/open/floor/carpet, +/area/station/service/electronic_marketing_den) +"paZ" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating/airless, +/area/station/maintenance/eva_shed/port) +"pbb" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/construction/mining/aux_base) +"pbe" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/obj/effect/turf_decal/delivery/white, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/structure/window/spawner/directional/east, +/turf/open/floor/iron/dark/small, +/area/station/medical/morgue) +"pbi" = ( +/obj/item/stack/sheet/cardboard, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"pbm" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8; + name = "Mix to Filter" + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/pumproom) +"pbn" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/junction/flip{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"pbt" = ( +/obj/effect/spawner/random/trash/garbage, +/turf/open/floor/plating, +/area/station/maintenance/central) +"pbw" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen/diner) +"pbB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/item/storage/box/lights/mixed, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"pbC" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/security/brig) +"pbG" = ( +/obj/structure/trash_pile, +/turf/open/floor/plating, +/area/station/maintenance/disposal) +"pbJ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/item/surgery_tray/deployed, +/turf/open/floor/iron, +/area/station/medical/surgery/theatre) +"pbS" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/flora/bush/jungle/b, +/turf/open/floor/grass, +/area/station/common/night_club) +"pbU" = ( +/obj/machinery/light/small/directional/east, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/machinery/pipedispenser, +/turf/open/floor/iron, +/area/station/maintenance/department/engineering/atmos_aux_port) +"pcf" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/red{ + color = "#DE3A3A"; + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + color = "#DE3A3A"; + dir = 4 + }, +/obj/machinery/recharger{ + pixel_y = 3 + }, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"pcl" = ( +/obj/machinery/computer/atmos_control/air_tank{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue/opposingcorners{ + dir = 8 + }, +/turf/open/floor/iron/cafeteria, +/area/station/engineering/atmos) +"pcs" = ( +/obj/machinery/mecha_part_fabricator/maint{ + name = "forgotten exosuit fabricator" + }, +/turf/open/floor/iron, +/area/station/science/research/abandoned) +"pcv" = ( +/obj/machinery/porta_turret/ai{ + dir = 8 + }, +/obj/machinery/airalarm/directional/east, +/turf/open/floor/iron, +/area/station/ai_monitored/turret_protected/ai_upload) +"pcy" = ( +/obj/structure/trash_pile, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"pcI" = ( +/obj/machinery/rnd/server, +/obj/machinery/atmospherics/pipe/smart/simple/general/visible{ + dir = 10 + }, +/obj/machinery/camera/directional/east{ + c_tag = "Science - Server Room"; + name = "science camera"; + network = list("ss13","rd") + }, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/circuit/telecomms, +/area/station/science/server) +"pcM" = ( +/obj/machinery/light/small/directional/west, +/obj/machinery/duct, +/turf/open/floor/iron/freezer, +/area/station/commons/dorms/room7) +"pcQ" = ( +/obj/effect/spawner/random/structure/crate, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"pda" = ( +/obj/structure/chair/office{ + dir = 8 + }, +/obj/structure/cable, +/obj/effect/turf_decal/tile/purple/fourcorners, +/turf/open/floor/iron/dark, +/area/station/security/corrections_officer) +"pdp" = ( +/obj/structure/closet/secure_closet/medical1, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 5 + }, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) +"pdt" = ( +/obj/structure/rack, +/obj/item/storage/bag/ore, +/obj/item/storage/bag/ore, +/obj/item/storage/bag/ore, +/obj/item/pickaxe, +/obj/item/pickaxe, +/obj/item/pickaxe, +/turf/open/floor/iron/dark/small, +/area/station/science/auxlab/firing_range) +"pdD" = ( +/obj/machinery/light/small/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/computer/monitor{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/medical/power_station) +"pdH" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/layer_manifold/brown/visible, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) +"pdJ" = ( +/obj/structure/chair/plastic{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple/half{ + dir = 1 + }, +/obj/effect/landmark/start/scientist, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/iron/white/side{ + dir = 1 + }, +/area/station/science/research) +"pdL" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"pdU" = ( +/turf/closed/wall, +/area/station/hallway/secondary/service) +"pdZ" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"pee" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/flowers_br, +/obj/structure/window/spawner/directional/east, +/obj/structure/window/spawner/directional/west, +/obj/machinery/computer/security/telescreen/entertainment/directional/north, +/turf/open/floor/grass, +/area/station/medical/medbay/lobby) +"peh" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Lasertag Prep Room" + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/common/laser_tag) +"pep" = ( +/obj/structure/cable, +/obj/machinery/airalarm/directional/east, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen/diner) +"per" = ( +/turf/open/floor/iron/stairs/left{ + dir = 1 + }, +/area/station/hallway/primary/port) +"pev" = ( +/obj/structure/table, +/obj/item/storage/crayons, +/turf/open/floor/iron, +/area/station/commons/fitness/recreation) +"peD" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/command/captain_dining) +"peF" = ( +/obj/machinery/computer/records/security{ + dir = 4 + }, +/obj/machinery/light_switch/directional/west, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint) +"peH" = ( +/obj/structure/cable, +/obj/machinery/status_display/ai/directional/south, +/obj/machinery/light/directional/south, +/obj/machinery/door/window/left/directional/west{ + req_access = list("eva") + }, +/turf/open/floor/iron/stairs{ + dir = 4 + }, +/area/station/ai_monitored/command/storage/eva/upper) +"peJ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/door/airlock{ + name = "Quarters" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/command/gateway, +/turf/open/floor/wood/parquet, +/area/station/command/gateway) +"peT" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/chair/stool/bar/directional{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/security/prison/mess) +"peU" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"peV" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light/directional/west, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"pfl" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/security/interrogation) +"pfq" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/plating, +/area/station/engineering/atmos) +"pfs" = ( +/obj/structure/table/reinforced, +/obj/item/aicard, +/obj/item/circuitboard/aicore, +/obj/effect/turf_decal/siding/purple{ + dir = 1 + }, +/obj/machinery/computer/security/telescreen/rd{ + dir = 1; + pixel_y = -27 + }, +/obj/machinery/camera/directional/south{ + c_tag = "Science - Research Director's Office"; + name = "science camera"; + network = list("ss13","rd") + }, +/obj/machinery/light/directional/south, +/obj/item/taperecorder, +/turf/open/floor/iron, +/area/station/command/heads_quarters/rd) +"pfx" = ( +/obj/effect/turf_decal/trimline/purple/filled/line, +/obj/structure/extinguisher_cabinet/directional/south, +/obj/machinery/camera/directional/south{ + c_tag = "Science - Telescience"; + name = "science camera"; + network = list("ss13","rd") + }, +/obj/effect/spawner/random/trash/hobo_squat, +/obj/item/toy/plush/plasmamanplushie, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/science/tele_sci) +"pfD" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/simple/violet/visible/layer2{ + dir = 10 + }, +/turf/open/space/basic, +/area/space/nearstation) +"pfI" = ( +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/maintenance/aux_eva) +"pfK" = ( +/obj/structure/trash_pile, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/dorms) +"pfO" = ( +/obj/structure/rack, +/obj/item/vending_refill/security, +/obj/item/storage/box/handcuffs, +/obj/item/storage/box/flashbangs{ + pixel_x = -2; + pixel_y = -2 + }, +/obj/effect/turf_decal/bot, +/obj/item/storage/box/firingpins{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/box/firingpins, +/turf/open/floor/iron/dark, +/area/station/security/lockers) +"pfY" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/knife/plastic, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"pfZ" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/wood, +/area/station/security/courtroom) +"pgb" = ( +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"pgi" = ( +/obj/structure/table/wood, +/obj/item/book/manual/wiki/security_space_law, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/security/courtroom) +"pgs" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/obj/item/storage/box/petridish{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/box/petridish, +/obj/item/construction/plumbing/research, +/turf/open/floor/iron/white/side{ + dir = 1 + }, +/area/station/science/xenobiology) +"pgz" = ( +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/service/bar, +/obj/machinery/door/airlock/service{ + name = "Bar Storage" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/hallway/secondary/service) +"pgJ" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/obj/effect/turf_decal/tile/purple/opposingcorners, +/turf/open/floor/iron, +/area/station/service/barber) +"pgK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/security/courtroom) +"pgN" = ( +/obj/structure/table/glass, +/obj/item/stack/package_wrap, +/obj/item/hand_labeler, +/obj/effect/turf_decal/tile/purple/half{ + dir = 1 + }, +/turf/open/floor/iron/white/side{ + dir = 1 + }, +/area/station/science/research) +"pgV" = ( +/obj/effect/turf_decal/siding/yellow{ + dir = 6 + }, +/obj/structure/noticeboard/ce{ + pixel_y = 32 + }, +/obj/structure/table, +/obj/machinery/fax{ + fax_name = "Chief Engineer's Office"; + name = "Chief Engineer's Fax Machine" + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/ce) +"pgY" = ( +/obj/effect/spawner/liquids_spawner{ + reagent_list = list(/datum/reagent/water=600) + }, +/obj/machinery/light/directional/north, +/turf/open/misc/asteroid, +/area/station/hallway/primary/upper) +"phg" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/bot, +/obj/machinery/light/small/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/solars/starboard/aft) +"phu" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"phz" = ( +/turf/open/floor/iron/stairs/old{ + dir = 4 + }, +/area/station/cargo/power_station/upper) +"phD" = ( +/obj/structure/cable, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/security/execution/transfer) +"phG" = ( +/obj/machinery/light/directional/north, +/obj/machinery/newscaster/directional/north, +/obj/effect/turf_decal/trimline/red/filled/line{ + color = "#DE3A3A"; + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/line, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/brig) +"phI" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"phO" = ( +/obj/structure/railing, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/station/common/wrestling/arena) +"phP" = ( +/obj/structure/weightmachine/weightlifter, +/obj/machinery/light/directional/west, +/turf/open/floor/iron/dark, +/area/station/commons/fitness) +"phS" = ( +/obj/effect/turf_decal/weather/sand, +/obj/structure/flora/bush/fullgrass, +/obj/structure/flora/bush/lavendergrass, +/obj/structure/hedge, +/turf/open/floor/grass, +/area/station/command/heads_quarters/captain) +"phX" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/wardrobe/miner, +/obj/item/storage/backpack/satchel/explorer, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) +"phY" = ( +/obj/effect/turf_decal/trimline/blue/line, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/security/prison/workout) +"phZ" = ( +/obj/structure/filingcabinet, +/obj/effect/turf_decal/bot, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/engineering) +"pic" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/door/airlock/public/glass{ + name = "Central Hallway" + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"pid" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/public/glass{ + name = "Central Upper Hallway" + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"pih" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/table, +/obj/item/burner/fuel{ + pixel_y = 4 + }, +/obj/item/reagent_containers/dropper{ + pixel_y = -9 + }, +/turf/open/floor/iron/white, +/area/station/medical/pharmacy) +"pik" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/science/research) +"pio" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command/glass{ + name = "Bridge" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "bridge-east" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/command/general, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"piq" = ( +/obj/structure/chair/plastic{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/common/wrestling/arena) +"pir" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Shaving Station" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/security/brig, +/turf/open/floor/iron, +/area/station/security/prison) +"pit" = ( +/obj/structure/flora/bush/jungle/c, +/obj/structure/flora/bush/flowers_pp/style_2, +/obj/structure/window/fulltile, +/turf/open/floor/grass, +/area/station/hallway/primary/upper) +"piw" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron/white, +/area/station/medical/surgery) +"piy" = ( +/obj/machinery/light/small/directional/north, +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/structure/cable, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/station/medical/power_station) +"piD" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"piE" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/camera/directional/north{ + c_tag = "Security - Medbay Waiting Room" + }, +/obj/machinery/light/small/directional/north, +/turf/open/floor/iron/white, +/area/station/security/medical) +"piH" = ( +/obj/machinery/light/directional/east, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"piL" = ( +/turf/closed/wall, +/area/station/hallway/secondary/exit) +"piO" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/iron/dark/herringbone, +/area/station/security/brig) +"piQ" = ( +/obj/structure/chair/office, +/turf/open/floor/iron/dark, +/area/station/maintenance/department/security/prison_upper) +"piR" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/science/lab) +"piZ" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, +/obj/structure/cable, +/obj/machinery/door/airlock/research{ + name = "Bomb Assembly" + }, +/turf/open/floor/iron, +/area/station/science/ordnance) +"pja" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/junction/yjunction{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/command) +"pjf" = ( +/obj/machinery/door/airlock{ + name = "Abandoned Arcade" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/abandon_arcade) +"pjh" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/button/door{ + id = "Waste"; + name = "Waste Release"; + req_access = list("research") + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/maintenance/xenobio_disposals) +"pjl" = ( +/obj/structure/chair/pew/right{ + dir = 4 + }, +/obj/machinery/newscaster/directional/west, +/turf/open/floor/iron, +/area/station/security/prison/mess) +"pjq" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/north, +/turf/open/floor/plating/airless, +/area/station/maintenance/eva_shed/port) +"pjt" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/commons/dorms/room1) +"pjw" = ( +/turf/closed/wall, +/area/station/maintenance/port/central) +"pjy" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/pumproom) +"pjz" = ( +/obj/effect/turf_decal/bot, +/obj/structure/table/reinforced, +/obj/item/assembly/igniter, +/obj/item/assembly/igniter{ + pixel_x = 4; + pixel_y = 3 + }, +/obj/item/assembly/igniter{ + pixel_x = 7 + }, +/obj/item/assembly/signaler{ + pixel_x = -7; + pixel_y = -1 + }, +/obj/item/assembly/signaler{ + pixel_x = -1; + pixel_y = -1 + }, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/iron/dark, +/area/station/commons/storage/primary) +"pjA" = ( +/obj/machinery/telecomms/receiver/preset_right, +/obj/machinery/camera/autoname/directional/east, +/turf/open/floor/circuit/telecomms/mainframe, +/area/station/tcommsat/server) +"pjB" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Virology Storage Closet" + }, +/obj/machinery/atmospherics/pipe/layer_manifold/supply/hidden{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/medical/virology, +/turf/open/floor/iron/white/side{ + dir = 4 + }, +/area/station/medical/virology/isolation) +"pjC" = ( +/obj/item/weldingtool, +/turf/open/floor/plating, +/area/station/hallway/primary/port) +"pjH" = ( +/obj/machinery/holopad, +/turf/open/floor/iron/white, +/area/station/medical/pharmacy) +"pjI" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/disposal/bin, +/obj/structure/window/reinforced/spawner/directional/north{ + pixel_y = 1 + }, +/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ + dir = 4 + }, +/obj/machinery/light/directional/east, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) +"pjJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) +"pjL" = ( +/obj/effect/turf_decal/loading_area{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"pjV" = ( +/turf/closed/wall, +/area/station/common/night_club/back_stage) +"pjW" = ( +/obj/structure/sign/poster/random/directional/east, +/obj/effect/landmark/start/hangover, +/turf/open/floor/carpet, +/area/station/service/bar/atrium) +"pkb" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 10 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/storage) +"pke" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/east, +/obj/structure/window/spawner/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"pkh" = ( +/obj/structure/trash_pile, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"pki" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"pkq" = ( +/obj/structure/table/optable{ + name = "Autopsy table" + }, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron/white, +/area/station/medical/morgue) +"pkA" = ( +/obj/docking_port/stationary/public_mining_dock{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/construction/mining/aux_base) +"pkB" = ( +/obj/structure/bookcase/random/nonfiction, +/obj/machinery/light_switch/directional/east, +/obj/structure/sign/calendar/directional/south, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/cmo) +"pkC" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/ai) +"pkD" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/storage) +"pkM" = ( +/obj/structure/railing/wrestling{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/common/wrestling/arena) +"pkX" = ( +/obj/structure/lattice/catwalk, +/obj/item/toy/plush/space_lizard_plushie{ + name = "Cools-The-Crystal" + }, +/obj/item/clothing/head/utility/hardhat{ + pixel_x = 1; + pixel_y = 12 + }, +/turf/open/space/basic, +/area/space/nearstation) +"plz" = ( +/obj/structure/table, +/obj/effect/spawner/random/maintenance, +/obj/machinery/light/small/broken/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"plF" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"plH" = ( +/obj/effect/turf_decal/siding/wood/corner, +/turf/open/floor/wood, +/area/station/hallway/primary/central) +"plI" = ( +/obj/effect/spawner/random/trash/hobo_squat, +/turf/open/floor/grass, +/area/station/maintenance/port/fore) +"plJ" = ( +/turf/open/floor/iron/white/textured_large/airless, +/area/space/nearstation) +"plN" = ( +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/common/wrestling/lobby) +"plQ" = ( +/obj/machinery/firealarm/directional/north{ + pixel_x = -22 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/dark/side{ + dir = 9 + }, +/area/station/security/prison) +"plR" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/structure/chair/sofa/bench/right{ + dir = 4; + pixel_x = -5 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/common/wrestling/arena) +"plS" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/science/robotics) +"plW" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/iron/dark/small, +/area/station/cargo/storage) +"pme" = ( +/turf/closed/wall/r_wall, +/area/station/medical/abandoned) +"pmg" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/item/flashlight/lamp{ + pixel_y = 3 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/grimy, +/area/station/security/detectives_office/private_investigators_office) +"pmh" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 10 + }, +/obj/structure/closet/secure_closet/hydroponics, +/obj/item/botanical_lexicon, +/obj/item/chicken_book, +/turf/open/floor/iron/dark/herringbone, +/area/station/common/night_club/back_stage) +"pmr" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/service/hydroponics, +/obj/machinery/door/airlock/hydroponics{ + name = "Hydroponics Backroom" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/obj/effect/turf_decal/tile/green, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"pmD" = ( +/obj/structure/chair/wood{ + dir = 8 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/carpet, +/area/station/service/library/printer) +"pmF" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/effect/landmark/start/hangover, +/turf/open/floor/carpet, +/area/station/service/cafeteria) +"pmG" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/components/unary/passive_vent{ + dir = 1 + }, +/turf/open/space/basic, +/area/space/nearstation) +"pmH" = ( +/obj/structure/grille/broken, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"pmP" = ( +/turf/open/floor/iron, +/area/station/commons/fitness/recreation) +"pmS" = ( +/turf/closed/wall/r_wall, +/area/station/engineering/atmos/pumproom) +"pmV" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 5 + }, +/obj/machinery/status_display/evac/directional/north, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/science/xenobiology/control) +"pnd" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command/glass{ + name = "Bridge" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "bridge-east" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/command/general, +/turf/open/floor/iron/dark/side, +/area/station/command/bridge) +"pnj" = ( +/obj/machinery/growing/tray, +/obj/structure/flora/bush/sparsegrass, +/turf/open/floor/grass, +/area/station/security/prison/garden) +"pnk" = ( +/obj/structure/hedge, +/obj/effect/turf_decal/tile/purple/half{ + dir = 1 + }, +/obj/machinery/light/directional/east, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/iron/white/side{ + dir = 1 + }, +/area/station/science/research) +"pnv" = ( +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/item/storage/box/lights/mixed, +/obj/item/construction/rld, +/obj/machinery/camera/directional/east{ + c_tag = "Engineering - Secure Tool Storage"; + dir = 5; + name = "engineering camera" + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/engineering/transit_tube) +"pnz" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/ai) +"pnA" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/carpet/blue, +/area/station/medical/break_room) +"pnB" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/table, +/obj/item/clothing/gloves/cargo_gauntlet{ + pixel_y = -3 + }, +/obj/item/clothing/gloves/cargo_gauntlet, +/obj/item/clothing/gloves/cargo_gauntlet{ + pixel_y = 3 + }, +/turf/open/floor/iron/dark, +/area/station/cargo/sorting) +"pnE" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/falsewall, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"pnK" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/science/ordnance/testlab) +"pnL" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) +"pnM" = ( +/obj/effect/turf_decal/stripes{ + dir = 5 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 10 + }, +/obj/structure/rack, +/obj/structure/railing, +/obj/item/storage/bag/mail, +/turf/open/floor/iron/dark, +/area/station/cargo/lobby) +"pnN" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/cargo/office) +"pnQ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/carpet/blue, +/area/station/command/heads_quarters/captain) +"pnS" = ( +/obj/machinery/autolathe, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/dark, +/area/station/cargo/office) +"pnV" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"pnW" = ( +/obj/structure/curtain/bounty, +/obj/machinery/duct, +/obj/effect/spawner/structure/window, +/turf/open/floor/iron/dark, +/area/station/common/night_club) +"pnX" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"pob" = ( +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/chapel) +"pog" = ( +/turf/closed/wall, +/area/station/science/xenobiology/control) +"poi" = ( +/obj/structure/sign/directions/vault{ + dir = 8; + pixel_y = 6 + }, +/obj/structure/sign/directions/upload{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/station/command/heads_quarters/nt_rep) +"pon" = ( +/obj/effect/turf_decal/siding/purple/end{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/glass/reinforced, +/area/station/science) +"pov" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"poD" = ( +/obj/structure/chair/plastic{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/red/corner{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 10 + }, +/area/station/security/brig) +"poK" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/bot, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"poM" = ( +/obj/effect/decal/cleanable/dirt, +/turf/closed/wall, +/area/station/security/prison/upper) +"poY" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/freezer, +/area/station/command/heads_quarters/captain/private) +"ppj" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/chair/stool/bar/directional{ + dir = 4 + }, +/obj/effect/turf_decal/tile/bar/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/security/prison/mess) +"ppn" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/storage) +"ppo" = ( +/obj/machinery/light/small/directional/south, +/turf/open/openspace, +/area/station/maintenance/port/upper) +"pps" = ( +/obj/item/kirbyplants/random, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/cable, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/execution/transfer) +"ppC" = ( +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/transit_tube) +"ppP" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/ai_monitored/command/storage/eva) +"pqc" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/green/visible, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/engineering/atmos/pumproom) +"pqj" = ( +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/iron/smooth_edge{ + dir = 1 + }, +/area/station/maintenance/disposal/incinerator) +"pqk" = ( +/obj/effect/turf_decal/siding/dark{ + dir = 1 + }, +/turf/open/floor/glass/reinforced/airless, +/area/space/nearstation) +"pqn" = ( +/turf/closed/wall, +/area/station/maintenance/rus_gambling) +"pqp" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/purple/half, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"pqq" = ( +/obj/effect/landmark/start/hangover, +/turf/open/floor/plating, +/area/station/maintenance/central) +"pqz" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"pqB" = ( +/obj/effect/turf_decal/trimline/purple/filled/line, +/obj/machinery/status_display/evac/directional/south, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/science/research) +"pqC" = ( +/obj/effect/turf_decal/tile/blue, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"pqF" = ( +/obj/structure/bodycontainer/morgue, +/turf/open/floor/iron/dark, +/area/station/service/chapel) +"pqO" = ( +/obj/effect/spawner/structure/window, +/obj/structure/curtain/cloth/fancy, +/turf/open/floor/plating, +/area/station/command/captain_dining) +"pqP" = ( +/mob/living/basic/lizard/wags_his_tail, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/checker, +/area/station/service/janitor) +"pqU" = ( +/obj/structure/barricade/wooden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable/layer1, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"pqX" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/obj/machinery/light/directional/west, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"pqZ" = ( +/obj/machinery/space_heater, +/obj/effect/turf_decal/delivery, +/obj/machinery/light/small/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"pra" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/bar) +"pre" = ( +/obj/machinery/light_switch/directional/west, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/machinery/camera/autoname/directional/west, +/turf/open/floor/iron/dark/corner{ + dir = 1 + }, +/area/station/security/interrogation) +"prk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/computer/atmos_alert{ + dir = 8 + }, +/turf/open/floor/iron/smooth, +/area/station/maintenance/starboard/fore) +"prp" = ( +/obj/structure/flora/bush/fullgrass, +/obj/structure/flora/ocean/longseaweed, +/turf/open/water/overlay, +/area/station/hallway/primary/central) +"prq" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable, +/obj/structure/sign/warning/vacuum/external/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/solars/starboard/aft) +"pru" = ( +/obj/docking_port/stationary/random{ + name = "lavaland"; + shuttle_id = "pod_3_lavaland" + }, +/turf/open/space/basic, +/area/space/nearstation) +"prv" = ( +/obj/effect/spawner/random/structure/closet_maintenance, +/turf/open/floor/plating, +/area/station/security/courtroom) +"prL" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"prQ" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/storage) +"prU" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/commons/toilet/restrooms) +"prV" = ( +/obj/structure/window/spawner/directional/east, +/obj/structure/chair/sofa/corp/right{ + color = "#DE3A3A"; + dir = 8 + }, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen/diner) +"prZ" = ( +/obj/effect/spawner/random/structure/table_or_rack, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 8 + }, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/white, +/area/station/science/tele_sci) +"psd" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/holopad, +/turf/open/floor/iron/white, +/area/station/science/explab) +"psf" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/bathroom{ + name = "Primary Restroom" + }, +/obj/effect/landmark/navigate_destination, +/turf/open/floor/iron/white, +/area/station/commons/toilet/restrooms) +"psk" = ( +/obj/structure/bed/dogbed, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/qm) +"psl" = ( +/turf/closed/wall/rust, +/area/station/maintenance/department/medical) +"psu" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"psw" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/storage) +"psB" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/openspace, +/area/station/maintenance/aft/upper) +"psD" = ( +/obj/machinery/light/directional/north, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai) +"psE" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/plasma_input{ + dir = 1 + }, +/turf/open/floor/engine/plasma, +/area/station/engineering/atmos) +"psI" = ( +/obj/effect/turf_decal/stripes, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"psQ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"pta" = ( +/obj/structure/window/spawner/directional/south, +/obj/structure/table, +/obj/machinery/microwave{ + desc = "Cooks and boils stuff, somehow."; + pixel_x = -3; + pixel_y = 5 + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 8 + }, +/obj/machinery/newscaster/directional/west, +/obj/machinery/light/directional/west, +/turf/open/floor/iron/white, +/area/station/medical/virology/isolation) +"ptc" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hos) +"ptf" = ( +/turf/open/floor/iron/stairs/medium{ + dir = 1 + }, +/area/station/hallway/primary/central/fore) +"pti" = ( +/obj/machinery/gateway/centerstation, +/obj/effect/turf_decal/delivery, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/command/gateway) +"ptl" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/item/reagent_containers/cup/bucket, +/obj/effect/turf_decal/bot, +/obj/machinery/newscaster/directional/north, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/hallway/primary/port) +"ptq" = ( +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/machinery/bluespace_vendor/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"ptr" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron/dark, +/area/station/security/courtroom) +"ptt" = ( +/obj/structure/flora/bush/sparsegrass/style_random, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"ptu" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/cargo/lobby) +"ptx" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/security/upper) +"pty" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/security/office) +"ptL" = ( +/obj/structure/table/wood, +/obj/item/clothing/suit/toggle/suspenders, +/obj/effect/spawner/random/clothing/costume, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/clown_chamber) +"ptO" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/duct, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood/large, +/area/station/common/night_club) +"ptU" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos) +"ptW" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/south, +/obj/structure/window/spawner/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/central) +"ptX" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"puc" = ( +/obj/structure/window/spawner/directional/west, +/obj/structure/flora/bush/fullgrass, +/obj/structure/sign/nanotrasen{ + pixel_y = -32 + }, +/turf/open/floor/grass, +/area/station/hallway/primary/central/aft) +"pue" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"puj" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/engineering/main) +"pus" = ( +/obj/effect/decal/cleanable/oil, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"puy" = ( +/obj/item/radio/intercom/directional/east, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/hallway/secondary/exit) +"puL" = ( +/obj/effect/landmark/event_spawn, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/break_room) +"puT" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/engineering/atmos/test_chambers) +"puV" = ( +/obj/machinery/computer/operating, +/turf/open/floor/iron/white, +/area/station/medical/morgue) +"puX" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/engineering/atmos/test_chambers) +"puZ" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/machinery/computer/security/mining, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"pvb" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/airalarm/directional/south, +/obj/effect/turf_decal/tile/purple/opposingcorners{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/service/barber) +"pvc" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/chair/comfy/black{ + dir = 8 + }, +/obj/effect/landmark/start/head_of_security, +/obj/structure/window/spawner/directional/east, +/obj/machinery/light_switch/directional/south, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/hos) +"pvi" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/lattice, +/turf/open/space/openspace, +/area/space/nearstation) +"pvj" = ( +/obj/machinery/camera/directional/south{ + c_tag = "Security - Holding Cell" + }, +/obj/machinery/light/small/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/security/brig) +"pvk" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"pvl" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 5 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"pvr" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark/small, +/area/station/security/brig) +"pvv" = ( +/obj/machinery/vending/autodrobe, +/turf/open/floor/wood, +/area/station/common/wrestling/lobby) +"pvB" = ( +/obj/machinery/computer/crew{ + dir = 8 + }, +/obj/machinery/light/directional/east, +/obj/machinery/newscaster/directional/east, +/obj/effect/turf_decal/tile/red/real_red/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hos) +"pvF" = ( +/obj/effect/spawner/random/structure/crate, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"pvK" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"pvL" = ( +/obj/effect/turf_decal/stripes{ + dir = 9 + }, +/obj/machinery/shieldgen, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva/upper) +"pvU" = ( +/obj/machinery/airalarm/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/table/reinforced, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/testlab) +"pvV" = ( +/obj/effect/turf_decal/box, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/storage) +"pvW" = ( +/obj/structure/table, +/obj/item/folder/yellow{ + pixel_x = 3; + pixel_y = 1 + }, +/obj/item/folder/yellow{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/folder/yellow{ + pixel_x = 3; + pixel_y = 5 + }, +/obj/effect/turf_decal/siding/brown{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/cargo/sorting) +"pvX" = ( +/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ + dir = 8 + }, +/obj/structure/chair/stool/directional/east, +/obj/effect/landmark/start/shaft_miner, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) +"pwb" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/table, +/obj/item/paper_bin{ + pixel_y = 3 + }, +/obj/item/pen{ + pixel_y = 4 + }, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/dark/side, +/area/station/security/checkpoint/escape) +"pwj" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery/white, +/obj/effect/turf_decal/stripes{ + dir = 9 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 6 + }, +/obj/machinery/status_display/ai/directional/east, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/science/genetics) +"pwk" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating{ + dir = 4 + }, +/obj/effect/turf_decal/weather/sand{ + dir = 1 + }, +/obj/structure/flora/bush/sparsegrass{ + pixel_x = -6 + }, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"pwo" = ( +/obj/machinery/light/directional/east, +/turf/open/floor/iron/dark, +/area/station/science/xenobiology) +"pwr" = ( +/obj/machinery/computer/shuttle/labor{ + dir = 4 + }, +/obj/machinery/status_display/evac/directional/west, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/red/real_red/anticorner/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hos) +"pwt" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/medical/surgery) +"pww" = ( +/obj/structure/table/rolling, +/obj/item/hairbrush/comb, +/obj/item/razor{ + pixel_x = -7; + pixel_y = 3 + }, +/obj/item/scissors{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/razor{ + pixel_x = 9; + pixel_y = 2 + }, +/turf/open/floor/wood/tile, +/area/station/service/barber) +"pwA" = ( +/obj/item/clothing/head/utility/welding, +/obj/machinery/light_switch/directional/north, +/turf/open/floor/plating, +/area/station/science/research/abandoned) +"pwD" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/iron/dark/small, +/area/station/security/corrections_officer) +"pwF" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/structure/rack, +/obj/structure/sign/poster/random/directional/west, +/obj/machinery/airalarm/directional/south, +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/iron/dark, +/area/station/cargo/lobby) +"pwH" = ( +/obj/item/kirbyplants/organic/plant22, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/security/office) +"pwR" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/central) +"pwW" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/dark/line{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured_edge{ + dir = 4 + }, +/area/station/security/prison/safe) +"pwX" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/catwalk_floor, +/area/station/engineering/main) +"pxa" = ( +/obj/structure/chair/office{ + dir = 4 + }, +/obj/effect/landmark/start/chemist, +/obj/effect/turf_decal/trimline/yellow/filled/warning{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/pharmacy) +"pxb" = ( +/turf/open/floor/iron/dark/smooth_large/airless, +/area/space/nearstation) +"pxd" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/door/airlock/cmo{ + id_tag = "CMOdoor"; + name = "Chief Medical Officer's Office" + }, +/obj/effect/mapping_helpers/airlock/access/all/medical/cmo, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/cmo) +"pxe" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/junction{ + dir = 2 + }, +/turf/open/floor/iron/dark/small, +/area/station/security/brig) +"pxh" = ( +/obj/machinery/door/airlock/highsecurity{ + name = "Secure Tech Storage" + }, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/engineering/tech_storage, +/turf/open/floor/iron, +/area/station/engineering/storage/tech) +"pxi" = ( +/obj/structure/chair/plastic{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"pxn" = ( +/obj/structure/table, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/effect/spawner/random/aimodule/neutral, +/obj/machinery/door/window/right/directional/east{ + name = "Core Modules"; + req_access = list("ai_upload") + }, +/turf/open/floor/iron, +/area/station/ai_monitored/turret_protected/ai_upload) +"pxt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/maintenance, +/obj/effect/spawner/random/trash/mess, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"pxu" = ( +/obj/effect/spawner/random/trash/moisture_trap, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"pxv" = ( +/obj/machinery/power/transmission_laser{ + dir = 8 + }, +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/railing{ + dir = 4 + }, +/obj/structure/hedge, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 5 + }, +/obj/machinery/light/floor/has_bulb, +/turf/open/floor/wood/large, +/area/station/engineering/supermatter/room) +"pxz" = ( +/obj/structure/window/reinforced/plasma/spawner/directional/west, +/obj/machinery/power/shuttle_engine/heater, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"pxB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"pxK" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/science/research) +"pxL" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red, +/turf/open/floor/iron/dark/small, +/area/station/security/brig) +"pxT" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/engineering/break_room) +"pxU" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"pxX" = ( +/obj/effect/spawner/random/structure/steam_vent, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/central) +"pya" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/primary/central) +"pyb" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"pyh" = ( +/obj/machinery/light/directional/east, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/service/library) +"pyj" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"pyp" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/garbage, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"pyq" = ( +/obj/structure/table, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/item/ai_module/supplied/protect_station, +/obj/item/ai_module/reset/purge{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/machinery/door/window/brigdoor/left/directional/west{ + id = list("ai_upload"); + name = "High-Risk Modules" + }, +/turf/open/floor/iron, +/area/station/ai_monitored/turret_protected/ai_upload) +"pyr" = ( +/obj/structure/trash_pile, +/obj/machinery/light/small/broken/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"pyw" = ( +/obj/structure/grille/broken, +/obj/structure/trash_pile, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"pyy" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/west, +/obj/structure/window/spawner/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"pyG" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/portable_atmospherics/scrubber, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"pyI" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron/white/side{ + dir = 4 + }, +/area/station/medical/medbay/lobby) +"pyO" = ( +/turf/closed/wall, +/area/station/science/research/abandoned) +"pzi" = ( +/obj/item/clothing/head/utility/welding, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/security/lower) +"pzk" = ( +/turf/open/floor/iron/smooth_corner, +/area/station/engineering/atmos/hfr_room) +"pzl" = ( +/obj/structure/disposalpipe/sorting/mail{ + dir = 8; + name = "Security Junction"; + sortType = 7 + }, +/turf/open/floor/iron/dark/small, +/area/station/security/brig) +"pzm" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/engineering/storage_shared) +"pzo" = ( +/obj/machinery/light/directional/east, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"pzr" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/chair/pew/right{ + dir = 1; + name = "Jury" + }, +/turf/open/floor/wood, +/area/station/security/courtroom) +"pzw" = ( +/obj/structure/cable, +/obj/effect/landmark/event_spawn, +/mob/living/simple_animal/bot/secbot/beepsky/armsky, +/obj/machinery/holopad/secure, +/turf/open/floor/iron/dark/textured_large, +/area/station/ai_monitored/security/armory) +"pzy" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/security/courtroom) +"pzC" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/smart/simple/general/visible{ + dir = 10 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/science/server) +"pzF" = ( +/obj/structure/table/wood, +/obj/item/newspaper{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/newspaper, +/obj/machinery/light/directional/south, +/obj/machinery/light_switch/directional/south, +/obj/item/storage/crayons{ + pixel_y = 15 + }, +/turf/open/floor/carpet, +/area/station/service/library/printer) +"pzJ" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"pzK" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) +"pzN" = ( +/obj/structure/sink/kitchen/directional/south, +/obj/machinery/camera/autoname/directional/north, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) +"pzS" = ( +/turf/closed/wall/r_wall, +/area/station/command/heads_quarters/rd) +"pzU" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/smooth, +/area/station/cargo/power_station/upper) +"pAm" = ( +/obj/structure/curtain/bounty, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/station/common/tailoring) +"pAo" = ( +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/flowers_br, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/grass, +/area/station/hallway/secondary/entry) +"pAu" = ( +/obj/structure/girder, +/turf/open/floor/plating, +/area/station/maintenance/abandon_kitchen_upper) +"pAv" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/break_room) +"pAz" = ( +/obj/effect/turf_decal/trimline/red/filled/line{ + color = "#DE3A3A" + }, +/obj/structure/table/reinforced, +/obj/item/taperecorder, +/obj/item/flashlight/seclite, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hos) +"pAA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"pAB" = ( +/obj/machinery/recharge_station, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/command/gateway) +"pAF" = ( +/obj/item/radio/intercom/directional/south, +/obj/effect/turf_decal/trimline/red/filled/line, +/obj/effect/turf_decal/trimline/red/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/side, +/area/station/security/brig) +"pAH" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 10 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/iron/white, +/area/station/science) +"pAO" = ( +/obj/structure/chair/office{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/security/checkpoint/customs) +"pAS" = ( +/obj/structure/water_source/puddle, +/obj/structure/flora/bush/reed{ + pixel_y = 8 + }, +/turf/open/misc/grass, +/area/station/service/barber) +"pAU" = ( +/obj/machinery/holopad/secure, +/turf/open/floor/carpet/blue, +/area/station/command/heads_quarters/captain/private) +"pAY" = ( +/obj/structure/bookcase/random, +/turf/open/floor/wood, +/area/station/service/library) +"pBa" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/door/airlock/public/glass{ + name = "Arcade" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/landmark/navigate_destination, +/turf/open/floor/wood, +/area/station/common/arcade) +"pBb" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/security/execution/transfer) +"pBo" = ( +/turf/closed/wall, +/area/station/commons/fitness) +"pBp" = ( +/obj/machinery/light/small/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/central) +"pBr" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"pBD" = ( +/obj/structure/table, +/obj/item/clothing/gloves/botanic_leather, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/spawner/random/entertainment/lighter, +/obj/effect/spawner/random/entertainment/cigarette, +/turf/open/floor/iron/dark, +/area/station/maintenance/starboard/fore) +"pBK" = ( +/obj/structure/table/wood/poker, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"pBT" = ( +/obj/structure/fireplace, +/turf/open/floor/iron/dark, +/area/station/command/meeting_room/council) +"pBV" = ( +/obj/machinery/camera/directional/north{ + c_tag = "AI Chamber - Core"; + network = list("aicore") + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/requests_console/directional/north{ + department = "AI"; + name = "AI Requests Console" + }, +/obj/effect/mapping_helpers/requests_console/information, +/obj/effect/mapping_helpers/requests_console/assistance, +/obj/machinery/door/window/brigdoor/left/directional/east{ + name = "Primary AI Core Acces Door"; + req_access = list("ai_upload") + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai) +"pCj" = ( +/obj/machinery/button/door/directional/west{ + id = "Dorm5"; + name = "Dormitory Door Lock"; + normaldoorcontrol = 1; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/structure/chair/comfy/brown{ + color = "#A46106"; + dir = 1 + }, +/turf/open/floor/wood, +/area/station/commons/dorms/room6) +"pCp" = ( +/turf/closed/wall/r_wall, +/area/station/engineering/storage_shared) +"pCt" = ( +/obj/structure/closet/crate/bin, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/machinery/button/curtain{ + id = "dormscurtain2"; + pixel_y = 25 + }, +/turf/open/floor/wood, +/area/station/commons/dorms/room2) +"pCv" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/door/airlock{ + name = "Public Pool" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/common/pool) +"pCw" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/structure/chair/comfy, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"pCC" = ( +/mob/living/basic/slime, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"pCO" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"pCQ" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/tank_dispenser, +/turf/open/floor/iron/dark, +/area/station/engineering/main) +"pCR" = ( +/turf/closed/wall, +/area/station/common/arcade) +"pCS" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/door/window/left/directional/east, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain) +"pDq" = ( +/turf/open/floor/engine/vacuum, +/area/station/maintenance/disposal/incinerator) +"pDr" = ( +/obj/item/kirbyplants/random, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/medical/aslyum) +"pDz" = ( +/obj/structure/window/reinforced/plasma/spawner/directional/south, +/obj/machinery/power/shuttle_engine/heater{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_port) +"pDC" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/light/directional/east, +/obj/machinery/porta_turret/ai{ + dir = 4; + installation = /obj/item/gun/energy/e_gun + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat/hallway) +"pDD" = ( +/obj/machinery/door/firedoor, +/obj/structure/table/reinforced, +/obj/item/folder/white, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Psychward4"; + name = "Control Room Shutters" + }, +/obj/structure/cable, +/obj/machinery/door/window/left/directional/west{ + req_access = list("psychology") + }, +/turf/open/floor/iron/dark, +/area/station/medical/psychology) +"pDK" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 10 + }, +/area/station/hallway/secondary/exit) +"pDW" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/curtain/bounty/start_closed, +/turf/open/floor/iron/dark/herringbone, +/area/station/security/prison/upper) +"pEc" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"pEe" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/flora/bush/jungle/a/style_3, +/turf/open/floor/grass, +/area/station/hallway/primary/central/fore) +"pEi" = ( +/obj/structure/cable, +/obj/machinery/camera/directional/north{ + c_tag = "AI Satellite - Staircase"; + name = "ai camera"; + network = list("minisat"); + start_active = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron, +/area/station/engineering/transit_tube) +"pEk" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"pEo" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/cargo/lobby) +"pEp" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/chair/office/light, +/turf/open/floor/iron/dark, +/area/station/tcommsat/computer) +"pEq" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/door/airlock{ + name = "Jury Break Room" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/security/court, +/turf/open/floor/wood, +/area/station/security/courtroom) +"pEA" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/common/night_club/back_stage) +"pEL" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/flowers_yw, +/turf/open/floor/grass, +/area/station/science/research) +"pEN" = ( +/obj/effect/turf_decal/tile/brown, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/cargo/office) +"pET" = ( +/obj/effect/turf_decal/box, +/turf/open/floor/iron/textured, +/area/station/engineering/atmos/test_chambers) +"pFg" = ( +/turf/closed/wall/r_wall, +/area/station/hallway/secondary/exit) +"pFh" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/obj/effect/turf_decal/tile/bar/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/security/prison/mess) +"pFi" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/medical{ + name = "Break Room" + }, +/obj/effect/mapping_helpers/airlock/access/all/medical/general, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/break_room) +"pFq" = ( +/turf/closed/wall, +/area/station/maintenance/abandon_kitchen_upper) +"pFt" = ( +/obj/machinery/disposal/bin, +/obj/machinery/camera/directional/east{ + c_tag = "Bridge - Command Bar"; + name = "command camera" + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/command/captain_dining) +"pFw" = ( +/obj/structure/girder, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"pFA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/trash/can/food/beans, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"pFD" = ( +/obj/structure/fans/tiny/forcefield{ + dir = 8 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/plating, +/area/station/cargo/storage) +"pFI" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/machinery/light/floor/has_bulb, +/turf/open/floor/iron/dark/textured_large, +/area/station/hallway/secondary/exit) +"pFJ" = ( +/obj/machinery/vending/sustenance, +/obj/effect/turf_decal/bot, +/obj/machinery/light/small/broken/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"pFL" = ( +/obj/structure/table/reinforced, +/obj/machinery/recharger{ + pixel_y = 4 + }, +/obj/machinery/light_switch/directional/north, +/obj/machinery/light/directional/north, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/medical) +"pFN" = ( +/turf/open/floor/iron, +/area/station/tcommsat/computer) +"pFO" = ( +/obj/effect/turf_decal/stripes, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"pFS" = ( +/obj/item/radio/intercom/directional/north, +/obj/structure/table/wood, +/obj/structure/displaycase/forsale/kitchen, +/obj/machinery/light/directional/north, +/turf/open/floor/iron/dark, +/area/station/service/barber) +"pFT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/effect/mapping_helpers/burnt_floor, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"pFZ" = ( +/obj/effect/spawner/random/trash/mess, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"pGe" = ( +/obj/effect/spawner/random/trash/mess, +/turf/open/floor/plating, +/area/station/security/courtroom) +"pGi" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchencounter"; + name = "Kitchen Counter Shutters" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/dark, +/area/station/service/kitchen) +"pGm" = ( +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/science/ordnance/storage) +"pGo" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/flowers_pp, +/obj/structure/window/spawner/directional/north, +/turf/open/floor/grass, +/area/station/commons/dorms) +"pGp" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/porta_turret/ai, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat_interior) +"pGr" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/cargo/warehouse) +"pGt" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/command) +"pGM" = ( +/obj/machinery/camera/directional/west{ + c_tag = "Recreation - Wrestling Ring Upper"; + name = "recreation camera" + }, +/obj/machinery/light/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/stone, +/area/station/common/wrestling/arena) +"pGO" = ( +/obj/machinery/vending/drugs, +/turf/open/floor/iron, +/area/station/medical/storage) +"pGQ" = ( +/obj/structure/table, +/obj/item/toy/katana, +/obj/item/toy/foamblade, +/turf/open/floor/iron, +/area/station/commons/fitness/recreation) +"pGT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/grille_or_waste, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"pGX" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/light/directional/west, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"pHf" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/iron, +/area/station/security/checkpoint/medical) +"pHk" = ( +/obj/structure/window/reinforced/spawner/directional/north{ + pixel_y = 1 + }, +/obj/structure/rack, +/obj/item/clothing/shoes/magboots{ + pixel_x = -4; + pixel_y = 3 + }, +/obj/item/clothing/shoes/magboots, +/obj/item/clothing/shoes/magboots{ + pixel_x = 4; + pixel_y = -3 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/machinery/door/window/left/directional/east{ + name = "Magboot Storage"; + req_access = list("eva") + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva) +"pHs" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/science/lab) +"pHz" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/ai) +"pHB" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"pHD" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/station/security/detectives_office) +"pHE" = ( +/obj/machinery/light/small/broken/directional/west, +/turf/open/floor/plating, +/area/station/service/abandoned_gambling_den) +"pHH" = ( +/obj/structure/table/reinforced, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/cell/high, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/office) +"pHL" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Atmospherics Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/central) +"pHQ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/station/command/meeting_room/council) +"pHS" = ( +/obj/machinery/vending/security, +/obj/effect/turf_decal/bot, +/obj/machinery/status_display/evac/directional/south, +/obj/effect/turf_decal/siding/thinplating_new/dark, +/obj/effect/turf_decal/trimline/red/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_edge, +/area/station/security/lockers) +"pHT" = ( +/obj/structure/rack/shelf, +/obj/item/stack/sheet/mineral/plasma/thirty, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/dark, +/area/station/engineering/gravity_generator) +"pHU" = ( +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/effect/spawner/random/maintenance/three, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"pHX" = ( +/obj/effect/turf_decal/bot_red, +/obj/structure/frame/machine, +/turf/open/floor/mineral/plastitanium, +/area/station/science/robotics/lab) +"pHY" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/structure/sign/departments/restroom/directional/south, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/dorms) +"pIj" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/obj/effect/landmark/start/hangover, +/turf/open/floor/wood, +/area/station/service/cafeteria) +"pIn" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/engineering/gravity_generator) +"pIo" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "AI Core shutters"; + name = "AI Core Shutters" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/ai_monitored/turret_protected/ai) +"pIp" = ( +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"pIr" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"pIs" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"pIA" = ( +/obj/machinery/computer/slot_machine, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/eighties, +/area/station/maintenance/abandon_arcade) +"pIJ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/common/wrestling/locker) +"pIQ" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted, +/turf/open/floor/iron/white/side{ + dir = 1 + }, +/area/station/command/heads_quarters/ce) +"pJb" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/red, +/turf/open/floor/iron/dark/small, +/area/station/security/brig) +"pJc" = ( +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood/large, +/area/station/science/auxlab/firing_range) +"pJf" = ( +/obj/structure/table, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/effect/spawner/random/aimodule/harmless, +/obj/machinery/door/window/right/directional/east{ + name = "Core Modules"; + req_access = list("ai_upload") + }, +/turf/open/floor/iron, +/area/station/ai_monitored/turret_protected/ai_upload) +"pJq" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/command/bridge) +"pJy" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/service/chapel/office) +"pJB" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/closet/secure_closet/brig{ + id = "Cell 4"; + name = "Cell 4 Locker" + }, +/obj/machinery/light/small/directional/west, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/security/brig) +"pJI" = ( +/obj/effect/spawner/random/trash/moisture, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/simple/supply/hidden/layer4{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/dorms) +"pJO" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/science/research) +"pJR" = ( +/obj/item/kirbyplants/random, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/commons/fitness/recreation) +"pJT" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/north{ + pixel_y = 1 + }, +/obj/item/grenade/chem_grenade/smart_metal_foam{ + pixel_x = -4; + pixel_y = 6 + }, +/obj/item/grenade/chem_grenade/smart_metal_foam{ + pixel_x = 4; + pixel_y = 2 + }, +/obj/item/grenade/chem_grenade/smart_metal_foam{ + pixel_x = 8 + }, +/obj/item/grenade/chem_grenade/smart_metal_foam{ + pixel_y = 4 + }, +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva) +"pJU" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plating, +/area/station/maintenance/department/eva) +"pKb" = ( +/obj/machinery/light/directional/south, +/obj/structure/table/wood, +/obj/item/radio/intercom/directional/south, +/obj/item/radio/radio_mic{ + pixel_y = 7 + }, +/turf/open/floor/iron/dark, +/area/station/service/library/private) +"pKc" = ( +/obj/effect/turf_decal/bot, +/obj/structure/table, +/obj/machinery/reagentgrinder{ + pixel_y = 8 + }, +/turf/open/floor/iron/dark, +/area/station/security/prison/mess) +"pKd" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/siding/purple{ + dir = 9 + }, +/obj/machinery/light_switch/directional/south, +/obj/machinery/fax{ + fax_name = "Research Director's Office"; + name = "Research Director's Fax Machine"; + pixel_y = 3 + }, +/turf/open/floor/iron, +/area/station/command/heads_quarters/rd) +"pKg" = ( +/obj/item/cigbutt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"pKh" = ( +/turf/closed/wall, +/area/station/service/cafeteria) +"pKi" = ( +/obj/effect/turf_decal/weather/sand, +/obj/structure/flora/bush/jungle, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"pKj" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 6 + }, +/obj/machinery/telecomms/processor/preset_four, +/turf/open/floor/iron/telecomms, +/area/station/tcommsat/server) +"pKp" = ( +/obj/machinery/ai_slipper{ + uses = 10 + }, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat_interior) +"pKq" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"pKx" = ( +/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/engineering/main) +"pKz" = ( +/turf/closed/wall, +/area/station/hallway/primary/upper) +"pKB" = ( +/obj/structure/chair/sofa/corp/right{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/captain) +"pKE" = ( +/obj/structure/cable, +/turf/open/floor/mineral/plastitanium/red, +/area/station/science/robotics/lab) +"pKF" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron/white, +/area/station/science/research) +"pKG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/power/energy_accumulator/grounding_rod/anchored, +/turf/open/floor/engine, +/area/station/engineering/supermatter) +"pKM" = ( +/obj/machinery/atmospherics/pipe/smart/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/medical/virology/isolation) +"pKS" = ( +/obj/machinery/light/directional/east, +/obj/structure/lattice, +/turf/open/openspace, +/area/station/hallway/primary/upper) +"pKU" = ( +/obj/structure/table/glass, +/obj/item/clipboard, +/obj/item/toy/figure/paramedic, +/obj/machinery/light/directional/west, +/turf/open/floor/iron/white, +/area/station/medical/break_room) +"pKW" = ( +/obj/effect/turf_decal/bot, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/command/gateway) +"pKX" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock/security{ + name = "Shuttle Bay" + }, +/obj/structure/cable, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 1 + }, +/turf/open/floor/iron/dark/side, +/area/station/security/execution/transfer) +"pKZ" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"pLa" = ( +/obj/structure/window/spawner/directional/south, +/obj/structure/flora/bush/grassy/style_2, +/obj/machinery/door/firedoor/border_only, +/turf/open/floor/grass, +/area/station/medical/patients_rooms) +"pLc" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/closet, +/turf/open/floor/plating, +/area/station/maintenance/department/security) +"pLd" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/security/interrogation) +"pLe" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/door/airlock/corporate{ + id_tag = "Repdoor"; + name = "Representative's Office" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/effect/mapping_helpers/airlock/access/all/command/captain, +/obj/machinery/duct, +/obj/effect/landmark/navigate_destination, +/turf/open/floor/wood, +/area/station/command/heads_quarters/nt_rep) +"pLg" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/department/science/ordnance_maint) +"pLk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/item/chair/wood, +/turf/open/floor/wood, +/area/station/service/electronic_marketing_den) +"pLl" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"pLo" = ( +/obj/effect/spawner/random/trash/graffiti, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_port) +"pLB" = ( +/turf/closed/wall/r_wall, +/area/station/medical/storage) +"pLD" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"pLF" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat_interior) +"pLJ" = ( +/obj/effect/turf_decal/trimline/red/filled/warning, +/obj/effect/turf_decal/trimline/red/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/side, +/area/station/security/brig) +"pLM" = ( +/obj/structure/railing, +/turf/open/floor/iron/stairs/old{ + dir = 4; + initial_gas_mix = "n2=100;TEMP=80" + }, +/area/station/tcommsat/server) +"pLR" = ( +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) +"pLU" = ( +/obj/structure/chair/sofa/bench/left, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/smooth, +/area/station/maintenance/starboard/fore) +"pLW" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 + }, +/turf/open/indestructible{ + base_icon_state = "reinf_glass"; + icon = 'icons/turf/floors/reinf_glass.dmi'; + icon_state = "reinf_glass-0"; + name = "Ultra Reinforced Glass Floor" + }, +/area/station/ai_monitored/turret_protected/aisat_interior) +"pLX" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/simple/violet/visible/layer2{ + dir = 5 + }, +/turf/open/space/basic, +/area/space/nearstation) +"pLY" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/newscaster/directional/east, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) +"pMa" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/chair/sofa/corner/brown{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet, +/area/station/maintenance/abandon_psych) +"pMb" = ( +/obj/effect/landmark/event_spawn, +/obj/effect/turf_decal/tile/bar/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/security/prison/mess) +"pMh" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/oil/slippery, +/turf/open/floor/iron/smooth, +/area/station/cargo/power_station/upper) +"pMi" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ + dir = 6 + }, +/obj/structure/window/spawner/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) +"pMj" = ( +/obj/effect/turf_decal/stripes{ + dir = 6 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 9 + }, +/turf/open/floor/iron/dark, +/area/station/science/robotics/lab) +"pMk" = ( +/obj/structure/fluff/metalpole/end/right{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) +"pMo" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/mapping_helpers/dead_body_placer, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) +"pMq" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/eighties, +/area/station/maintenance/abandon_arcade) +"pMw" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/conveyor{ + id = "cargoload" + }, +/turf/open/floor/plating, +/area/station/cargo/storage) +"pMI" = ( +/obj/machinery/door/airlock/public/glass{ + name = "N-O2 Stop Shop" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/common/gaskiosk) +"pML" = ( +/obj/structure/transit_tube/horizontal{ + dir = 1 + }, +/turf/open/floor/iron/shuttle/arrivals/airless, +/area/space/nearstation) +"pMQ" = ( +/obj/effect/turf_decal/bot, +/obj/structure/rack/shelf, +/obj/machinery/camera/autoname/directional/north, +/turf/open/floor/iron/dark, +/area/station/cargo/warehouse) +"pMR" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/curtain/bounty, +/turf/open/floor/plating, +/area/station/common/wrestling/arena) +"pMW" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/junction/flip{ + dir = 1 + }, +/obj/machinery/holopad/secure, +/obj/machinery/duct, +/turf/open/floor/carpet/green, +/area/station/command/heads_quarters/nt_rep) +"pMZ" = ( +/obj/item/cigbutt, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/dorms) +"pNa" = ( +/obj/effect/turf_decal/stripes{ + dir = 5 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"pNb" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/cafeteria, +/area/station/command/heads_quarters/nt_rep) +"pNh" = ( +/obj/structure/table/wood/fancy/royalblack, +/obj/item/toy/figure/secofficer{ + pixel_x = -9; + pixel_y = 15 + }, +/turf/open/floor/carpet, +/area/station/service/library/lounge) +"pNi" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark, +/turf/open/floor/plating, +/area/station/security/range) +"pNl" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/flowers_br, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/grass, +/area/station/hallway/secondary/exit) +"pNw" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, +/obj/machinery/atmospherics/pipe/smart/simple/violet/visible/layer2{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/bridge_pipe/violet/visible{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) +"pNA" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"pND" = ( +/obj/structure/cable, +/obj/effect/landmark/start/hangover, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"pNX" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/item/trash/chips, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"pOd" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/commons/dorms) +"pOh" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"pOl" = ( +/obj/structure/rack/gunrack, +/obj/effect/turf_decal/delivery, +/obj/structure/cable, +/obj/effect/spawner/armory_spawn/smg, +/obj/effect/turf_decal/trimline/red/line{ + dir = 5 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark, +/turf/open/floor/iron/dark/textured_corner{ + dir = 8 + }, +/area/station/ai_monitored/security/armory) +"pOr" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"pOz" = ( +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/obj/effect/landmark/start/quartermaster, +/turf/open/floor/carpet/royalblack, +/area/station/command/heads_quarters/qm) +"pOA" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/flora/bush/fullgrass, +/obj/structure/flora/bush/lavendergrass, +/obj/structure/flora/bush/sunny, +/turf/open/floor/grass, +/area/station/science/research) +"pOB" = ( +/obj/item/trash/can, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/science/upper) +"pOJ" = ( +/turf/open/floor/iron, +/area/station/hallway/secondary/construction) +"pOK" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/glass/reinforced, +/area/station/security/prison/safe) +"pOM" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ + dir = 4 + }, +/turf/open/floor/iron/stairs/old{ + dir = 8 + }, +/area/station/engineering/supermatter/room) +"pOQ" = ( +/obj/machinery/power/shuttle_engine/heater, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"pOU" = ( +/obj/machinery/computer/scan_consolenew{ + dir = 4 + }, +/obj/effect/turf_decal/stripes{ + dir = 6 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 9 + }, +/turf/open/floor/iron/dark, +/area/station/science/genetics) +"pOV" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/duct, +/turf/open/floor/carpet/black, +/area/station/commons/dorms/room5) +"pPb" = ( +/obj/structure/rack, +/turf/open/floor/plating, +/area/station/maintenance/department/security/lower) +"pPc" = ( +/obj/structure/table, +/obj/item/folder/blue, +/obj/item/multitool, +/turf/open/floor/iron/dark, +/area/station/tcommsat/computer) +"pPl" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"pPs" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/science/explab) +"pPx" = ( +/obj/effect/landmark/start/assistant, +/obj/structure/chair/stool/bar/directional/north, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/service/bar/atrium) +"pPD" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood/parquet, +/area/station/command/gateway) +"pPF" = ( +/obj/item/radio/intercom/directional/north, +/obj/structure/cable, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/camera/autoname/directional/north, +/turf/open/floor/iron, +/area/station/security/execution/transfer) +"pPJ" = ( +/obj/effect/decal/cleanable/blood, +/obj/effect/decal/cleanable/blood/innards, +/turf/open/floor/plating, +/area/station/maintenance/department/science/ordnance_maint) +"pPM" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plating, +/area/station/security/courtroom) +"pPO" = ( +/obj/machinery/door/airlock/security{ + name = "Court Cell" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/turf/open/floor/iron/dark, +/area/station/security/courtroom) +"pPR" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/library/lower) +"pQr" = ( +/obj/structure/cable, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/prison) +"pQs" = ( +/obj/structure/table/wood, +/obj/item/storage/briefcase/secure{ + pixel_y = 5 + }, +/obj/item/storage/lockbox/loyalty, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/item/toner/large{ + pixel_y = -4 + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/hop) +"pQu" = ( +/obj/structure/table/reinforced, +/obj/item/surgery_tray/deployed, +/turf/open/floor/iron, +/area/station/medical/surgery) +"pQy" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/door/airlock{ + name = "Overgrown Garden" + }, +/obj/structure/barricade/wooden/crude, +/turf/open/floor/wood, +/area/station/service/hydroponics/garden/abandoned) +"pQA" = ( +/obj/effect/spawner/liquids_spawner, +/turf/open/floor/lowered/iron/pool/cobble, +/area/station/common/pool) +"pQC" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/dark/textured_large, +/area/station/security/office) +"pQF" = ( +/obj/structure/sign/directions/command{ + dir = 1; + pixel_y = 3 + }, +/obj/structure/sign/directions/science{ + pixel_y = -3 + }, +/turf/closed/wall, +/area/station/hallway/primary/upper) +"pQK" = ( +/obj/structure/trash_pile, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/night_club) +"pQQ" = ( +/obj/machinery/camera/directional/south{ + c_tag = " Prison - Showers"; + network = list("ss13","prison") + }, +/obj/item/bikehorn/rubberducky, +/turf/open/floor/iron/freezer, +/area/station/security/prison/shower) +"pQT" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/station/maintenance/department/engineering/atmos_aux_port) +"pQV" = ( +/obj/structure/curtain/cloth, +/obj/structure/drain, +/obj/machinery/shower/directional/south, +/turf/open/floor/iron/freezer, +/area/station/commons/dorms/vacantroom) +"pQZ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/security/prison/mess) +"pRa" = ( +/turf/closed/wall, +/area/station/command/heads_quarters/blueshield) +"pRf" = ( +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/structure/disposaloutlet, +/turf/open/floor/plating, +/area/station/maintenance/disposal) +"pRh" = ( +/obj/structure/marker_beacon/burgundy, +/turf/open/floor/engine/hull/reinforced, +/area/space/nearstation) +"pRk" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/maintenance/aux_eva) +"pRs" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/security/prison/rec) +"pRx" = ( +/obj/effect/turf_decal/trimline/red/filled/corner{ + color = "#DE3A3A"; + dir = 1 + }, +/obj/structure/railing, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hos) +"pRF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/effect/spawner/random/structure/steam_vent, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"pRI" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/red/corner{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 10 + }, +/area/station/security/prison/upper) +"pRM" = ( +/obj/effect/turf_decal/stripes, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/science/lab) +"pRN" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/iron/dark, +/area/station/engineering/transit_tube) +"pRV" = ( +/obj/machinery/chem_heater/withbuffer, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes{ + dir = 10 + }, +/turf/open/floor/iron, +/area/station/medical/chemistry) +"pSa" = ( +/obj/item/kirbyplants/organic/plant10, +/obj/structure/sign/nanotrasen{ + pixel_x = -32 + }, +/obj/structure/railing, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"pSd" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/medical/psychology) +"pSh" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/structure/chair/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/service/chapel/funeral) +"pSi" = ( +/obj/structure/table/reinforced, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"pSk" = ( +/obj/effect/turf_decal/bot, +/obj/item/beacon, +/turf/open/floor/engine, +/area/station/science/explab) +"pSp" = ( +/turf/open/floor/iron/stairs/old{ + dir = 1 + }, +/area/station/engineering/transit_tube) +"pSs" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) +"pSu" = ( +/obj/machinery/door/airlock/maintenance, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"pSC" = ( +/obj/structure/chair/sofa/bench/right{ + dir = 8; + pixel_x = 5 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/checkpoint/escape) +"pSF" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/structure/cable, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/corner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/corner{ + dir = 1 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/prison) +"pSH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/port_gen/pacman/pre_loaded, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/station/maintenance/department/eva) +"pSI" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"pSM" = ( +/obj/machinery/power/shuttle_engine/heater{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"pSR" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron, +/area/station/engineering/atmos/office) +"pSS" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"pSY" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/holopad/secure, +/turf/open/floor/iron, +/area/station/security/warden) +"pTj" = ( +/obj/structure/table, +/obj/machinery/chem_dispenser/drinks/beer{ + dir = 8 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/iron, +/area/station/command/captain_dining) +"pTn" = ( +/turf/open/floor/glass, +/area/station/hallway/primary/upper) +"pTu" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, +/obj/structure/sign/warning/radiation/directional/east, +/obj/structure/sign/warning/radiation/directional/west, +/turf/open/floor/plating, +/area/station/engineering/supermatter) +"pTx" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/closet/secure_closet/atmospherics, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/office) +"pTE" = ( +/obj/structure/table/reinforced, +/obj/effect/spawner/random/maintenance, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/abandon_diner) +"pTG" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"pTH" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/door/airlock/public/glass{ + name = "Formal Dining Room" + }, +/obj/structure/curtain/cloth/fancy, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/station/command/captain_dining) +"pTR" = ( +/obj/structure/bookcase/random/reference, +/turf/open/floor/wood, +/area/station/security/prison/rec) +"pTW" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/sign/poster/random/directional/south, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"pTX" = ( +/obj/structure/chair{ + pixel_y = -2 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/side, +/area/station/security/warden) +"pUc" = ( +/obj/machinery/light/directional/west, +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"pUd" = ( +/obj/structure/table, +/obj/item/weldingtool{ + pixel_y = 4 + }, +/obj/item/clothing/glasses/welding, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"pUg" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/machinery/computer/communications{ + dir = 4 + }, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/turf/open/floor/iron/smooth_edge{ + dir = 8 + }, +/area/station/command/secure_bunker) +"pUq" = ( +/turf/open/floor/iron/dark/side, +/area/station/security/prison) +"pUr" = ( +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/effect/decal/cleanable/dirt, +/obj/item/pillow/clown, +/turf/open/floor/iron/dark, +/area/station/maintenance/starboard/fore) +"pUu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/maintenance/abandon_diner) +"pUz" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/structure/chair/comfy, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"pUB" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/radio/intercom/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"pUD" = ( +/obj/machinery/photocopier, +/obj/structure/sign/calendar/directional/north, +/turf/open/floor/carpet, +/area/station/service/chapel/office) +"pUP" = ( +/obj/item/kirbyplants/random, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/science/explab) +"pUQ" = ( +/turf/closed/wall/mineral/silver{ + name = "White padded wall" + }, +/area/station/medical/aslyum) +"pUS" = ( +/obj/machinery/door/airlock/hatch{ + name = "Port EVA Shed" + }, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/command/general, +/turf/open/floor/plating/airless, +/area/station/maintenance/eva_shed/port) +"pUV" = ( +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/stool/directional/east, +/turf/open/floor/eighties, +/area/station/maintenance/abandon_arcade) +"pUW" = ( +/obj/effect/spawner/random/trash/moisture_trap, +/turf/open/floor/plating, +/area/station/maintenance/central) +"pUX" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet, +/area/station/service/chapel/funeral) +"pVg" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating{ + dir = 4 + }, +/obj/effect/turf_decal/weather/sand, +/obj/structure/flora/bush/sparsegrass{ + pixel_x = -6 + }, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"pVn" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/openspace, +/area/station/maintenance/aft/upper) +"pVw" = ( +/turf/closed/wall, +/area/station/medical/surgery) +"pVz" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"pVA" = ( +/obj/structure/closet/toolcloset, +/obj/machinery/light_switch/directional/north, +/turf/open/floor/iron, +/area/station/construction/mining/aux_base) +"pVG" = ( +/obj/machinery/door/airlock/engineering{ + name = "Power Access Hatch" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/simple/supply/hidden/layer4{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/engineering/engine_equipment, +/obj/effect/mapping_helpers/airlock/unres, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"pVI" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron/dark/side{ + dir = 10 + }, +/area/station/security/prison) +"pVL" = ( +/obj/machinery/modular_computer/preset/id{ + dir = 1 + }, +/obj/machinery/button/door{ + desc = "A remote control-switch for Entry Shutters"; + id = "ArrivalsEntry"; + name = "Arrivals Entry Shutter"; + pixel_x = -6; + pixel_y = -23; + req_access = list("engine_equip") + }, +/obj/machinery/button/door{ + desc = "A remote control-switch for Entry Shutters"; + id = "ArrivalsEntry2"; + name = "Secure Entry Shutter"; + pixel_x = 5; + pixel_y = -23; + req_access = list("engine_equip") + }, +/obj/machinery/button/door{ + desc = "A remote control-switch for Entry Shutters"; + id = "ArrivalsEntry3"; + name = "End Line Reroute Shutter"; + pixel_x = 5; + pixel_y = -34; + req_access = list("engine_equip") + }, +/obj/machinery/button/door{ + desc = "A remote control-switch for Entry Shutters"; + id = "ArrivalsEntry4"; + name = "Line Acces Shutter"; + pixel_x = -6; + pixel_y = -34; + req_access = list("engine_equip") + }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 9 + }, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/customs) +"pVQ" = ( +/obj/effect/turf_decal/stripes, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/command/teleporter) +"pVW" = ( +/obj/structure/chair/office/light, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/engineering/transit_tube) +"pWa" = ( +/obj/structure/cable, +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/library/upper) +"pWi" = ( +/obj/structure/table/wood/fancy/black, +/obj/structure/window/spawner/directional/south, +/obj/item/reagent_containers/cup/glass/bottle/lizardwine{ + pixel_x = 9; + pixel_y = 8 + }, +/obj/item/reagent_containers/cup/glass/bottle/cognac{ + pixel_x = -5; + pixel_y = 7 + }, +/obj/item/reagent_containers/cup/glass/bottle/sake{ + pixel_x = 2; + pixel_y = 6 + }, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/service/bar) +"pWk" = ( +/obj/effect/turf_decal/delivery/red, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/window/preopen{ + id = "prisonlockdown3"; + name = "Lockdown" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron/dark, +/area/station/security/prison/upper) +"pWl" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/pool_maintenance) +"pWn" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"pWo" = ( +/obj/structure/chair/sofa/bench/left{ + dir = 4; + pixel_x = -5 + }, +/obj/machinery/camera/autoname/directional/west, +/turf/open/floor/iron, +/area/station/hallway/secondary/entry) +"pWp" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/machinery/corral_corner{ + mapping_id = "2" + }, +/obj/machinery/slime_pen_controller{ + mapping_id = "2"; + dir = 2 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"pWs" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible, +/turf/open/space/basic, +/area/space/nearstation) +"pWt" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/line, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/prison/upper) +"pWv" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/iron, +/area/station/commons/dorms) +"pWy" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/science/power_station) +"pWA" = ( +/obj/structure/table, +/obj/item/wirecutters, +/obj/item/stock_parts/cell{ + pixel_x = -5 + }, +/turf/open/floor/iron/dark, +/area/station/maintenance/department/security/prison_upper) +"pWB" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing{ + dir = 4 + }, +/turf/open/openspace, +/area/station/maintenance/port/upper) +"pWF" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/abandoned, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"pWG" = ( +/turf/open/floor/iron/stairs{ + dir = 1 + }, +/area/station/security/prison/upper) +"pWK" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/ai_monitored/command/storage/eva) +"pWL" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/nitrogen_output{ + dir = 1 + }, +/turf/open/floor/engine/n2, +/area/station/engineering/atmos) +"pWT" = ( +/obj/machinery/camera/directional/north{ + c_tag = " Prison - Middle"; + dir = 2; + network = list("ss13","prison") + }, +/turf/open/floor/iron/stairs/left{ + dir = 4 + }, +/area/station/security/prison/upper) +"pWU" = ( +/obj/machinery/status_display/supply, +/turf/closed/wall, +/area/station/cargo/storage) +"pWV" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/stairs/medium{ + dir = 8 + }, +/area/station/security/prison/upper) +"pWY" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/door/airlock/bathroom{ + name = "Primary Restroom" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/commons/toilet/restrooms) +"pXc" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/turf/open/floor/iron, +/area/station/engineering/supermatter/room) +"pXe" = ( +/obj/structure/flora/bush/flowers_br, +/obj/machinery/growing/tray, +/obj/machinery/light/directional/east, +/obj/machinery/light_switch/directional/east, +/turf/open/floor/grass, +/area/station/security/prison/garden) +"pXg" = ( +/obj/effect/spawner/random/structure/crate, +/turf/open/floor/iron/dark/small, +/area/station/cargo/miningdock) +"pXh" = ( +/obj/structure/flora/bush/sparsegrass, +/turf/open/floor/grass, +/area/station/service/chapel) +"pXm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/reagent_containers/cup/bowl/soup/hotchili, +/turf/open/misc/asteroid/airless, +/area/space/nearstation) +"pXp" = ( +/obj/structure/bed/maint, +/obj/item/bedsheet/grey{ + dir = 1 + }, +/obj/structure/sink/kitchen/directional/south{ + desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; + name = "old sink" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/station/security/prison/upper) +"pXu" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) +"pXv" = ( +/obj/machinery/door/airlock/bathroom{ + name = "Restroom" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/duct, +/turf/open/floor/iron/freezer, +/area/station/command/heads_quarters/ce) +"pXy" = ( +/obj/structure/table/glass, +/obj/item/stack/cable_coil, +/obj/item/assembly/igniter, +/obj/item/assembly/timer{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/structure/window/spawner/directional/south, +/obj/effect/turf_decal/tile/purple/half{ + dir = 4 + }, +/turf/open/floor/iron/white/side{ + dir = 4 + }, +/area/station/science) +"pXE" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"pXK" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/turf/open/floor/carpet/red, +/area/station/command/heads_quarters/hos) +"pXM" = ( +/obj/structure/chair/stool/directional/west, +/turf/open/floor/wood, +/area/station/security/prison/mess) +"pXN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/maintenance_hatch, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/iron/freezer, +/area/station/maintenance/abandon_kitchen_upper) +"pXO" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 4 + }, +/turf/open/floor/engine/vacuum, +/area/station/maintenance/department/engineering/atmos_aux_port) +"pXP" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/flora/bush/sparsegrass{ + pixel_x = -6 + }, +/turf/open/floor/grass, +/area/station/common/night_club) +"pYa" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/purple/half, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/white/side, +/area/station/science) +"pYb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/trash_pile, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"pYc" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/cargo/sorting) +"pYe" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/flowers_br, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"pYj" = ( +/obj/structure/window/spawner/directional/east, +/obj/structure/window/spawner/directional/north, +/turf/open/floor/wood, +/area/station/service/theater) +"pYk" = ( +/obj/structure/sign/poster/random/directional/west, +/turf/open/floor/iron, +/area/station/hallway/secondary/construction) +"pYm" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rdgene2"; + name = "Genetics Lab Shutters" + }, +/turf/open/floor/plating, +/area/station/science/genetics) +"pYo" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/airlock/highsecurity{ + name = "Bunker Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/firedoor/heavy, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/command/general, +/turf/open/floor/iron/smooth_large, +/area/station/command/secure_bunker) +"pYr" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/cargo/office) +"pYt" = ( +/obj/structure/cable, +/obj/item/screwdriver, +/obj/machinery/light/directional/south, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"pYF" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/power/port_gen/pacman/pre_loaded, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"pYH" = ( +/obj/machinery/light/small/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_port) +"pYM" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"pYQ" = ( +/obj/machinery/light/directional/east, +/turf/open/floor/stone, +/area/station/common/wrestling/arena) +"pYX" = ( +/turf/closed/wall, +/area/station/maintenance/eva_shed/starboard) +"pZb" = ( +/obj/effect/spawner/random/trash/moisture_trap, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plating, +/area/station/maintenance/central) +"pZd" = ( +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/science/explab) +"pZl" = ( +/obj/structure/closet/crate/medical, +/turf/open/floor/iron/white, +/area/station/medical/coldroom) +"pZm" = ( +/obj/machinery/computer/security/telescreen/entertainment/directional/west, +/obj/machinery/camera/directional/west{ + c_tag = "Bridge - Captain's Lounge"; + name = "command camera" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain) +"pZn" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/central) +"pZt" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/maintenance/port/aft) +"pZy" = ( +/obj/item/kirbyplants/organic/plant22, +/obj/machinery/camera/directional/east{ + c_tag = "Security - Head of Security's Office" + }, +/obj/machinery/airalarm/directional/east, +/obj/effect/turf_decal/tile/red/real_red/anticorner/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hos) +"pZA" = ( +/turf/open/floor/carpet, +/area/station/service/library/printer) +"pZD" = ( +/turf/closed/wall, +/area/station/maintenance/department/security/prison_upper) +"pZJ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/fitness) +"pZW" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/status_display/ai/directional/west, +/obj/machinery/camera/directional/west{ + c_tag = "Upper Central Hallway - Upper Starboard Bow"; + name = "hallway camera" + }, +/obj/machinery/light/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"qaa" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/power/port_gen/pacman/pre_loaded, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"qak" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/security/brig) +"qao" = ( +/turf/open/floor/iron/white, +/area/station/medical/surgery/theatre) +"qax" = ( +/turf/open/floor/engine, +/area/station/engineering/supermatter) +"qaA" = ( +/obj/structure/cable, +/turf/open/floor/wood/tile, +/area/station/service/barber) +"qaB" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 9 + }, +/obj/machinery/status_display/evac/directional/north, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/iron/white, +/area/station/science/tele_sci) +"qaC" = ( +/obj/structure/sign/departments/cargo, +/turf/closed/wall, +/area/station/cargo/miningdock) +"qaH" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/circuit/green, +/area/station/science/xenobiology) +"qaJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/stool/directional/east, +/turf/open/floor/eighties, +/area/station/maintenance/abandon_arcade) +"qaQ" = ( +/obj/effect/turf_decal/trimline/blue/line{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"qaR" = ( +/obj/effect/decal/cleanable/ash/large, +/obj/structure/safe/floor{ + name = "frozen safe" + }, +/obj/item/hilbertshotel, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"qaV" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"qaZ" = ( +/obj/machinery/computer/station_alert{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/main) +"qbb" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/growing/tray, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) +"qbd" = ( +/obj/structure/table, +/obj/item/storage/box/drinkingglasses{ + pixel_x = 4; + pixel_y = 5 + }, +/obj/item/storage/box/drinkingglasses, +/obj/item/storage/fancy/egg_box, +/obj/item/radio/intercom/directional/east, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/iron/dark, +/area/station/security/prison/mess) +"qbj" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/hallway/primary/port) +"qbq" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/security/courtroom) +"qbt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/service/electronic_marketing_den) +"qby" = ( +/obj/item/radio/intercom/directional/east, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/security/execution/transfer) +"qbD" = ( +/obj/structure/cable, +/obj/machinery/airalarm/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/service/library/lounge) +"qbG" = ( +/obj/item/cigbutt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"qbW" = ( +/obj/structure/bookcase/random/nonfiction, +/turf/open/floor/wood, +/area/station/service/library) +"qcb" = ( +/mob/living/basic/mouse/white, +/turf/open/floor/grass, +/area/station/maintenance/department/medical) +"qcc" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/tile/red{ + color = "#DE3A3A"; + dir = 8 + }, +/obj/machinery/airalarm/directional/south, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/machinery/camera/autoname/directional/east, +/turf/open/floor/iron/white/corner, +/area/station/hallway/secondary/exit/departure_lounge) +"qce" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/brown/visible, +/obj/machinery/meter, +/obj/effect/landmark/start/atmospheric_technician, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"qci" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/sunny, +/obj/structure/flora/bush/flowers_pp, +/obj/structure/window/spawner/directional/east, +/obj/structure/window/spawner/directional/north, +/turf/open/floor/grass, +/area/station/science/research) +"qcm" = ( +/obj/effect/landmark/start/bartender, +/obj/structure/cable, +/obj/effect/turf_decal/tile/bar/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/service/bar) +"qcs" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/hallway/secondary/entry) +"qcx" = ( +/obj/structure/rack/shelf, +/obj/item/stack/sheet/iron{ + amount = 30 + }, +/obj/item/stack/sheet/glass/fifty, +/obj/effect/landmark/event_spawn, +/turf/open/floor/iron/dark, +/area/station/maintenance/aux_eva) +"qcz" = ( +/obj/effect/turf_decal/tile/red, +/obj/machinery/airalarm/directional/east, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"qcB" = ( +/obj/effect/turf_decal/siding/wood/corner, +/obj/structure/table/wood, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/carpet, +/area/station/service/chapel/office) +"qcC" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/cargo/lobby) +"qcE" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain/private) +"qcJ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/commons/dorms) +"qcP" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/obj/item/beacon, +/turf/open/floor/iron/white, +/area/station/science) +"qcQ" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/science/research) +"qcU" = ( +/obj/structure/cable, +/obj/effect/spawner/random/structure/steam_vent, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"qcV" = ( +/obj/structure/table/wood/fancy/royalblack, +/obj/item/reagent_containers/cup/glass/bottle/fernet{ + pixel_x = -8; + pixel_y = 14 + }, +/obj/item/reagent_containers/cup/glass/bottle/lizardwine{ + pixel_x = 7; + pixel_y = 6 + }, +/obj/item/reagent_containers/cup/glass/bottle/champagne{ + pixel_y = 11 + }, +/obj/machinery/digital_clock/directional/north, +/turf/open/floor/carpet/royalblack, +/area/station/command/heads_quarters/qm) +"qcX" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/light/directional/south, +/obj/effect/turf_decal/bot, +/obj/machinery/status_display/evac/directional/south, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"qde" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/holopad, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/science/ordnance) +"qdj" = ( +/obj/machinery/atmospherics/pipe/smart/simple/violet/visible, +/obj/item/kirbyplants/random, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"qdk" = ( +/obj/structure/chair/office, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/station/security/detectives_office/private_investigators_office) +"qdm" = ( +/obj/machinery/button/flasher{ + id = "transferflash"; + pixel_y = -36 + }, +/obj/machinery/button/door{ + id = "permaouter"; + name = "Outer Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 6; + pixel_y = -25; + req_access = list("brig"); + specialfunctions = 4 + }, +/obj/machinery/button/door{ + id = "permainner"; + name = "Inner Bolt Control"; + normaldoorcontrol = 1; + pixel_x = -6; + pixel_y = -25; + req_access = list("brig"); + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron/dark/side{ + dir = 6 + }, +/area/station/security/prison) +"qdq" = ( +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"qdr" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"qdC" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/shower/directional/south, +/obj/effect/turf_decal/stripes/end, +/obj/effect/turf_decal/siding/thinplating/dark/end, +/obj/structure/drain, +/obj/structure/sign/poster/official/safety_internals/directional/north, +/obj/machinery/camera/directional/south{ + c_tag = "Engineering - Engine Foyer"; + dir = 1; + name = "engineering camera" + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/test_chambers) +"qdF" = ( +/obj/machinery/door/airlock/maintenance, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/bar) +"qdO" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/yellow/visible, +/turf/closed/wall/r_wall, +/area/station/engineering/atmos) +"qdQ" = ( +/obj/machinery/light/floor/has_bulb, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"qdV" = ( +/obj/machinery/atmospherics/pipe/smart/simple/general/visible{ + dir = 6 + }, +/turf/closed/wall/r_wall, +/area/station/engineering/supermatter) +"qdZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/mecha_wreckage/ripley, +/turf/open/floor/plating, +/area/station/science/research/abandoned) +"qec" = ( +/obj/machinery/mech_bay_recharge_port, +/obj/effect/turf_decal/delivery/red, +/obj/structure/cable, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/mineral/plastitanium, +/area/station/science/robotics/mechbay) +"qei" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/primary/port) +"qem" = ( +/turf/closed/wall/rust, +/area/station/medical/power_station) +"qet" = ( +/obj/effect/spawner/structure/window/reinforced/tinted, +/turf/open/floor/plating, +/area/station/maintenance/central) +"qev" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"qeM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/oil/streak, +/turf/open/floor/iron/smooth, +/area/station/cargo/power_station/upper) +"qeS" = ( +/obj/structure/bed/pod, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain/private) +"qeT" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/security/execution/education) +"qeU" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/vending/tool, +/turf/open/floor/iron/dark, +/area/station/commons/storage/primary) +"qeW" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister, +/obj/machinery/duct, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/test_chambers) +"qfc" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/small, +/area/station/cargo/storage) +"qfd" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/brown/visible, +/obj/machinery/meter, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"qfl" = ( +/obj/structure/table, +/obj/machinery/newscaster/directional/east, +/obj/item/raw_anomaly_core/random{ + pixel_x = 4; + pixel_y = 7 + }, +/obj/item/raw_anomaly_core/random{ + pixel_x = -5; + pixel_y = 7 + }, +/obj/item/raw_anomaly_core/random, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/testlab) +"qfm" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/medical_kiosk, +/turf/open/floor/iron/white, +/area/station/medical/exam_room) +"qfp" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/stairs, +/area/station/common/wrestling/arena) +"qfw" = ( +/obj/machinery/corral_corner{ + mapping_id = "4" + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"qfz" = ( +/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"qfJ" = ( +/obj/machinery/power/shuttle_engine/heater{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"qfK" = ( +/obj/machinery/duct, +/obj/effect/turf_decal/siding/thinplating/dark/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 6 + }, +/turf/open/floor/iron/dark/textured_corner{ + dir = 1 + }, +/area/station/common/night_club) +"qfL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/burnt_floor, +/obj/item/clothing/head/helmet/space/eva, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"qfU" = ( +/obj/effect/spawner/random/structure/crate_abandoned, +/turf/open/floor/plating, +/area/station/science/research) +"qfV" = ( +/obj/item/toy/plush/snakeplushie{ + name = "Quetzie" + }, +/obj/item/kirbyplants/random, +/obj/structure/noticeboard/directional/north, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/dark, +/area/station/service/library/private) +"qfW" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/closet, +/obj/effect/spawner/random/maintenance/two, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"qfY" = ( +/obj/effect/landmark/start/medical_doctor, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 10 + }, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) +"qgb" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/red/corner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + color = "#DE3A3A"; + dir = 5 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 5 + }, +/turf/open/floor/iron/dark/side{ + dir = 5 + }, +/area/station/security/prison/upper) +"qgf" = ( +/obj/item/stack/sheet/cardboard, +/turf/open/floor/plating, +/area/station/maintenance/pool_maintenance) +"qgg" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/item/cigbutt, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"qgm" = ( +/obj/machinery/door/airlock/medical/glass{ + id_tag = "MedbayFoyer"; + name = "Medbay" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 4 + }, +/obj/machinery/firealarm/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/medical/general, +/obj/effect/turf_decal/tile/blue/fourcorners, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"qgn" = ( +/obj/structure/window/reinforced/fulltile, +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/lavendergrass, +/turf/open/floor/grass, +/area/station/hallway/primary/central/aft) +"qgy" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"qgC" = ( +/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/engineering/engine_smes) +"qgE" = ( +/obj/structure/hoop{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/security/prison/workout) +"qgJ" = ( +/obj/machinery/button/door/directional/south{ + name = "Security Mech Garage Door Controls"; + id = "SecMech"; + req_access = list("security") + }, +/obj/effect/turf_decal/stripes/blue/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/red/corner{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 10 + }, +/area/station/security/brig) +"qgM" = ( +/mob/living/basic/sheep, +/obj/structure/flora/bush/sparsegrass{ + pixel_x = -6 + }, +/turf/open/floor/grass, +/area/station/common/night_club) +"qgQ" = ( +/obj/effect/turf_decal/bot, +/obj/item/radio/intercom/directional/south, +/obj/machinery/camera/directional/south{ + c_tag = "Science - Test Chamber"; + name = "science camera"; + network = list("ss13","rd") + }, +/obj/structure/closet/radiation, +/turf/open/floor/iron, +/area/station/science/explab) +"qgS" = ( +/obj/machinery/power/shieldwallgen/xenobiologyaccess, +/obj/effect/turf_decal/stripes{ + dir = 5 + }, +/obj/machinery/light/directional/west, +/turf/open/floor/plating, +/area/station/science/xenobiology) +"qgV" = ( +/obj/item/cigbutt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"qgZ" = ( +/obj/structure/cable, +/obj/machinery/light/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/prison/upper) +"qhe" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/supply/visible, +/turf/closed/wall/r_wall, +/area/station/engineering/atmos/pumproom) +"qhg" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/dorms) +"qhk" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"qhl" = ( +/obj/structure/table/glass, +/obj/structure/window/spawner/directional/west, +/obj/item/stack/medical/gauze/twelve, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) +"qhn" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"qho" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/openspace, +/area/station/maintenance/aft/upper) +"qhq" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/red/filled/warning{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/red/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark/corner{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 6 + }, +/area/station/security/brig) +"qht" = ( +/obj/structure/railing, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/iron/stairs{ + dir = 4 + }, +/area/station/cargo/storage) +"qhu" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/iron/stairs/medium{ + dir = 1 + }, +/area/station/engineering/atmos/test_chambers) +"qhz" = ( +/turf/open/floor/iron/stairs/left, +/area/station/maintenance/port/upper) +"qhB" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/open/floor/carpet, +/area/station/security/detectives_office) +"qhC" = ( +/obj/machinery/power/port_gen/pacman/pre_loaded, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"qhK" = ( +/obj/item/forging/billow, +/obj/machinery/airalarm/directional/north, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/stone, +/area/station/service/forge) +"qhN" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/monitored/air_output{ + dir = 8 + }, +/turf/open/floor/engine/air, +/area/station/engineering/atmos) +"qhR" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible/layer4{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/engineering/atmos) +"qhS" = ( +/turf/open/floor/plating, +/area/station/maintenance/law) +"qhV" = ( +/turf/closed/wall, +/area/station/command/heads_quarters/ce) +"qhW" = ( +/obj/structure/closet/secure_closet/personal, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/dark, +/area/station/commons/dorms) +"qic" = ( +/obj/structure/table/wood/fancy, +/obj/item/food/egg/rotten, +/obj/item/food/pizzaslice/moldy, +/turf/open/floor/carpet, +/area/station/service/theater/abandoned) +"qii" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"qiq" = ( +/obj/machinery/atmospherics/components/binary/pump/on, +/turf/closed/wall/r_wall, +/area/station/maintenance/disposal/incinerator) +"qir" = ( +/obj/structure/grille, +/obj/effect/decal/cleanable/dirt, +/obj/structure/window/spawner/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"qit" = ( +/obj/machinery/status_display/evac/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/engine, +/area/station/command/secure_bunker) +"qiv" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/door/airlock{ + name = "Private Detective Office" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/security/detectives_office/private_investigators_office) +"qiC" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/science/research) +"qiR" = ( +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 8 + }, +/turf/open/floor/engine/hull, +/area/space/nearstation) +"qiS" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"qjb" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/flowers_yw, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/turf/open/floor/grass, +/area/station/security/prison/garden) +"qjg" = ( +/obj/machinery/vending/autodrobe, +/turf/open/floor/wood, +/area/station/service/theater) +"qjr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/port_gen/pacman/pre_loaded, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"qjs" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/dorms) +"qju" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"qjv" = ( +/turf/open/floor/iron/cafeteria, +/area/station/maintenance/abandon_diner) +"qjx" = ( +/turf/open/misc/beach/sand, +/area/station/hallway/primary/central) +"qjE" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/window/right/directional/east{ + name = "Mech Bay"; + req_access = list("robotics") + }, +/turf/open/floor/mineral/plastitanium/red, +/area/station/science/robotics/lab) +"qjF" = ( +/obj/structure/table/reinforced, +/obj/item/storage/box/bodybags{ + pixel_x = -7; + pixel_y = 2 + }, +/obj/machinery/door/firedoor, +/obj/item/paper_bin{ + pixel_x = 8; + pixel_y = 3 + }, +/obj/item/pen{ + pixel_x = 8; + pixel_y = 3 + }, +/turf/open/floor/iron/dark, +/area/station/medical/medbay/lobby) +"qjJ" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"qjL" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/grimy, +/area/station/security/detectives_office/private_investigators_office) +"qjQ" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/obj/structure/table/wood, +/obj/item/flashlight/lamp, +/turf/open/floor/carpet, +/area/station/service/chapel/office) +"qjT" = ( +/obj/effect/landmark/blobstart, +/turf/open/floor/iron/white, +/area/station/command/gateway) +"qka" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron, +/area/station/security/checkpoint/customs) +"qkl" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/airalarm/directional/south, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/commons/dorms) +"qkm" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/newscaster/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"qkp" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"qkq" = ( +/obj/structure/table, +/obj/machinery/microwave{ + desc = "Cooks and boils stuff, somehow."; + pixel_x = -3; + pixel_y = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/abandon_diner) +"qku" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"qkw" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/security/prison/upper) +"qkx" = ( +/obj/machinery/power/shuttle_engine/heater{ + dir = 8 + }, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"qkz" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/service/chapel/office) +"qkB" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchencounter"; + name = "Kitchen Counter Shutters" + }, +/obj/machinery/door/firedoor, +/obj/structure/displaycase/forsale/kitchen{ + pixel_y = 8 + }, +/turf/open/floor/iron/dark, +/area/station/service/kitchen) +"qkG" = ( +/obj/machinery/firealarm/directional/south, +/obj/effect/turf_decal/trimline/green/filled/line, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"qkH" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/machinery/camera/autoname/directional/north, +/obj/machinery/nanite_programmer, +/turf/open/floor/iron/dark/small, +/area/station/science/circuits) +"qkI" = ( +/obj/machinery/door/airlock/research{ + name = "Cytology Lab" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"qkR" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plating, +/area/station/maintenance/pool_maintenance) +"qkW" = ( +/obj/effect/turf_decal/stripes/end{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating/dark/end{ + dir = 4 + }, +/obj/structure/drain, +/obj/machinery/shower/directional/east, +/obj/machinery/camera/directional/south, +/turf/open/floor/iron/checker, +/area/station/engineering/atmos) +"qlm" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Security Maintenance" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/turf/open/floor/iron/dark, +/area/station/maintenance/department/security/greater) +"qlt" = ( +/obj/effect/turf_decal/bot, +/obj/structure/rack/shelf, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/cargo/warehouse) +"qlu" = ( +/obj/structure/grille/broken, +/obj/structure/barricade/wooden, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"qlC" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/security/execution/transfer) +"qlH" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/cargo/miningdock) +"qlI" = ( +/obj/structure/trash_pile, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"qlM" = ( +/obj/effect/turf_decal/stripes{ + dir = 6 + }, +/obj/machinery/power/shieldwallgen, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva/upper) +"qlU" = ( +/turf/open/floor/circuit, +/area/station/tcommsat/computer) +"qlY" = ( +/turf/closed/wall, +/area/station/service/library/private) +"qlZ" = ( +/obj/effect/turf_decal/trimline/purple/filled/corner{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/science/research) +"qma" = ( +/turf/open/floor/carpet, +/area/station/medical/patients_rooms) +"qmi" = ( +/obj/structure/table, +/obj/item/flashlight/lamp, +/turf/open/floor/iron, +/area/station/maintenance/console_room) +"qml" = ( +/turf/open/floor/carpet, +/area/station/service/chapel/office) +"qmm" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/junction, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"qmn" = ( +/obj/machinery/air_sensor/ordnance_burn_chamber, +/turf/open/floor/engine, +/area/station/science/ordnance/burnchamber) +"qmr" = ( +/obj/structure/chair/pew{ + dir = 4 + }, +/obj/effect/landmark/start/hangover, +/turf/open/floor/wood, +/area/station/common/pool/sauna) +"qmx" = ( +/turf/open/floor/plating/airless, +/area/station/maintenance/port/upper) +"qmz" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"qmB" = ( +/obj/machinery/door/airlock/service{ + name = "Bar" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/service/bar, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/service/bar/backroom) +"qmI" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/red/filled/warning, +/obj/effect/turf_decal/trimline/red/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/side, +/area/station/security/brig) +"qmP" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/central) +"qmT" = ( +/obj/item/kirbyplants/random, +/obj/machinery/light/directional/west, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/engineering/atmos/test_chambers) +"qmW" = ( +/obj/structure/trash_pile, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"qnb" = ( +/obj/structure/disposalpipe/junction/flip{ + dir = 4 + }, +/obj/structure/window/spawner/directional/north, +/obj/structure/window/spawner/directional/east, +/obj/structure/window/spawner/directional/west, +/obj/structure/flora/grass/jungle/b/style_2, +/obj/structure/flora/bush/flowers_pp/style_3, +/turf/open/floor/grass, +/area/station/hallway/primary/port) +"qnd" = ( +/obj/structure/nestbox, +/turf/open/floor/grass, +/area/station/common/night_club) +"qnf" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/door/airlock/maintenance{ + name = "Abandoned Office" + }, +/obj/structure/barricade/wooden/crude, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/wood, +/area/station/maintenance/abandon_office) +"qni" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 10 + }, +/obj/effect/landmark/start/hangover/closet, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/central) +"qnj" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/machinery/power/shieldwallgen, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva/upper) +"qnr" = ( +/obj/structure/extinguisher_cabinet/directional/south, +/obj/effect/turf_decal/trimline/red/filled/line{ + color = "#DE3A3A" + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/side, +/area/station/security/brig) +"qnt" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/security/execution/transfer) +"qnw" = ( +/obj/machinery/door/poddoor/shutters{ + id = "qm_warehouse"; + name = "Warehouse Shutters" + }, +/turf/open/floor/iron/dark/small, +/area/station/cargo/warehouse) +"qny" = ( +/obj/structure/chair/sofa/bench/left{ + dir = 4; + pixel_x = -5 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/checkpoint/escape) +"qnz" = ( +/obj/structure/table/reinforced, +/obj/item/radio/intercom, +/turf/open/floor/iron/dark, +/area/station/science/xenobiology/control) +"qnH" = ( +/obj/structure/chair/sofa/bench/left{ + dir = 4; + pixel_x = -5 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/primary/central/aft) +"qnI" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/stairs/medium{ + dir = 4 + }, +/area/station/hallway/secondary/command) +"qnM" = ( +/mob/living/simple_animal/bot/secbot/pingsky, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat_interior) +"qnR" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"qnW" = ( +/obj/effect/spawner/random/trash/cigbutt, +/turf/open/floor/plating/airless, +/area/station/maintenance/fore/upper) +"qoe" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/medical/aslyum) +"qoj" = ( +/obj/structure/closet/lasertag/blue, +/obj/machinery/light/small/directional/north, +/obj/effect/turf_decal/tile/red/half/contrasted, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/common/laser_tag) +"qon" = ( +/obj/structure/table/wood/fancy, +/obj/structure/railing{ + dir = 5 + }, +/turf/open/floor/carpet/lone, +/area/station/service/chapel) +"qoo" = ( +/obj/structure/window/reinforced/tinted/spawner/directional/north, +/obj/structure/closet/secure_closet/hydroponics, +/obj/item/botanical_lexicon, +/obj/item/chicken_book, +/turf/open/floor/iron/dark/herringbone, +/area/station/common/night_club/back_stage) +"qow" = ( +/obj/machinery/gibber, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old{ + icon_state = "floor4-old" + }, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"qoz" = ( +/mob/living/simple_animal/pet/cat/space{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"qoE" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/circuit, +/area/station/command/gateway) +"qoJ" = ( +/obj/structure/rack, +/obj/item/clothing/gloves/color/fyellow/old, +/obj/item/clothing/under/color/grey, +/obj/item/clothing/shoes/sneakers/black, +/obj/item/clothing/mask/gas, +/turf/open/floor/plating, +/area/station/security/prison/upper) +"qoL" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/railing, +/obj/machinery/door/firedoor/border_only, +/turf/open/floor/iron, +/area/station/commons/dorms) +"qoV" = ( +/obj/machinery/photocopier, +/obj/machinery/light/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/medical/psychology) +"qoW" = ( +/obj/structure/window/spawner/directional/north, +/obj/machinery/vending/clothing{ + extended_inventory = 1 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/station/common/tailoring) +"qoX" = ( +/turf/closed/wall, +/area/station/maintenance/department/security) +"qoY" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/virology/isolation) +"qpa" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/abandon_art_studio) +"qpb" = ( +/obj/structure/window/spawner/directional/north, +/obj/effect/turf_decal/delivery, +/obj/structure/closet/crate/freezer{ + name = "organ storage" + }, +/obj/item/organ/external/tail/cat, +/obj/item/organ/internal/ears/cat, +/obj/item/organ/internal/heart, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/station/maintenance/abandon_exam/cat) +"qpd" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/corrections_officer) +"qpl" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/night_club) +"qpm" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/iron/dark, +/area/station/security/office) +"qpr" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/effect/turf_decal/stripes, +/obj/structure/rack/shelf, +/obj/item/tank/jetpack/carbondioxide{ + pixel_x = -4 + }, +/obj/item/tank/jetpack/carbondioxide, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva/upper) +"qpu" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"qpy" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/iron/stairs/right{ + dir = 4 + }, +/area/station/cargo/storage) +"qpC" = ( +/obj/effect/decal/cleanable/blood/gibs/body, +/turf/open/floor/plating, +/area/station/maintenance/department/science/ordnance_maint) +"qpK" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plating, +/area/station/maintenance/port/central) +"qpL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"qpN" = ( +/turf/closed/wall/r_wall, +/area/station/medical/surgery) +"qpP" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/pill/lsd{ + pixel_x = -3; + pixel_y = 12 + }, +/obj/item/reagent_containers/pill/lsd{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/reagent_containers/pill/lsd, +/obj/item/reagent_containers/pill/happy{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/reagent_containers/pill/happy{ + pixel_x = 6; + pixel_y = -6 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"qpU" = ( +/obj/structure/closet/secure_closet/brig/genpop, +/obj/effect/turf_decal/bot, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/machinery/light/directional/north, +/obj/machinery/camera/directional/north, +/turf/open/floor/iron/dark, +/area/station/security/prison) +"qpZ" = ( +/obj/machinery/door/airlock/security{ + name = "Armory" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/security/armory, +/turf/open/floor/iron/dark/side, +/area/station/ai_monitored/security/armory) +"qqa" = ( +/obj/structure/table, +/obj/structure/closet/mini_fridge{ + pixel_y = 6 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/station/commons/dorms/vacantroom) +"qqb" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/door/airlock/public/glass{ + name = "Central Hallway" + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"qqo" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/maintenance/solars/port/fore) +"qqs" = ( +/turf/open/floor/glass, +/area/station/medical/medbay/lobby) +"qqu" = ( +/obj/structure/window/spawner/directional/south, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/table/glass, +/obj/item/reagent_containers/cup/watering_can, +/obj/item/reagent_containers/cup/watering_can, +/obj/item/plant_analyzer, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics/garden) +"qqK" = ( +/obj/structure/training_machine, +/turf/open/floor/engine, +/area/station/science/auxlab/firing_range) +"qqM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/engineering/storage/tech) +"qqT" = ( +/obj/structure/table, +/obj/effect/turf_decal/delivery, +/obj/machinery/status_display/ai/directional/north, +/obj/item/storage/dice, +/obj/machinery/camera/autoname/directional/north, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"qqZ" = ( +/obj/structure/table/wood/fancy/red, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/item/folder/red, +/obj/item/pen, +/turf/open/floor/wood, +/area/station/security/courtroom) +"qra" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "chem_lockdown"; + name = "Chemistry Shutters" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/medical/chemistry) +"qrc" = ( +/obj/structure/table/reinforced, +/obj/machinery/microwave{ + pixel_y = 8 + }, +/turf/open/floor/iron/white, +/area/station/medical/break_room) +"qrd" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"qrf" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/door/poddoor/shutters{ + id = "PermaTrash"; + name = "Disposal Shutters" + }, +/turf/open/floor/plating/airless, +/area/station/security/prison/mess) +"qrh" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + name = "Labor Camp Shuttle Airlock" + }, +/turf/open/floor/iron, +/area/station/security/execution/transfer) +"qrm" = ( +/obj/structure/grille, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"qru" = ( +/obj/structure/rack, +/obj/item/stack/cable_coil{ + pixel_x = -1; + pixel_y = -3 + }, +/obj/item/wrench, +/obj/item/flashlight/seclite, +/obj/effect/decal/cleanable/dirt, +/obj/item/storage/belt/utility, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/iron, +/area/station/science/research/abandoned) +"qrw" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_y = 3 + }, +/obj/item/pen{ + pixel_y = 3 + }, +/obj/machinery/newscaster/directional/north, +/obj/machinery/light/directional/north, +/turf/open/floor/iron/dark, +/area/station/medical/surgery/theatre) +"qrD" = ( +/obj/structure/flora/bush/fullgrass, +/turf/open/floor/grass, +/area/station/security/prison/garden) +"qrP" = ( +/obj/structure/chair/sofa/bench/right{ + dir = 8; + pixel_x = 5 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/commons/dorms) +"qrU" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/simple/supply/hidden{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/maintenance/department/engineering/atmos_aux_port) +"qsb" = ( +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/ai_monitored/command/storage/eva/upper) +"qsc" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/purple/half, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white/side, +/area/station/science) +"qsd" = ( +/obj/machinery/camera/directional/north{ + c_tag = "Science - Ordnance Storage Fore"; + name = "science camera"; + network = list("ss13","rd") + }, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/iron, +/area/station/science/ordnance/storage) +"qsf" = ( +/obj/item/folder/white{ + pixel_x = 3; + pixel_y = 4 + }, +/obj/item/reagent_containers/cup/beaker/large{ + pixel_x = -4; + pixel_y = 7 + }, +/obj/item/reagent_containers/cup/beaker{ + pixel_x = 7 + }, +/obj/item/reagent_containers/dropper{ + pixel_x = -3; + pixel_y = -6 + }, +/obj/structure/table/glass, +/obj/effect/turf_decal/tile/purple/half{ + dir = 1 + }, +/turf/open/floor/iron/white/side{ + dir = 1 + }, +/area/station/science/research) +"qsl" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark/corner{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/brig) +"qsm" = ( +/obj/machinery/light/directional/north, +/obj/machinery/status_display/evac/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/stairs/right{ + dir = 4 + }, +/area/station/hallway/primary/upper) +"qst" = ( +/obj/structure/table, +/obj/effect/turf_decal/bot, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/item/paper_bin, +/obj/item/pen, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/service) +"qsv" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/iron/dark/smooth_large/airless, +/area/space/nearstation) +"qsz" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 5 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/sign/departments/science/alt/directional/north, +/turf/open/floor/iron/white, +/area/station/science/research) +"qsD" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/cargo/warehouse) +"qsG" = ( +/obj/structure/table, +/obj/item/scanner_wand, +/obj/item/clothing/gloves/latex/nitrile, +/obj/item/clothing/gloves/latex/nitrile, +/obj/item/clothing/neck/stethoscope, +/turf/open/floor/iron/white, +/area/station/medical/exam_room) +"qsI" = ( +/obj/machinery/suit_storage_unit/rd, +/obj/effect/turf_decal/stripes, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/rd) +"qsL" = ( +/obj/effect/turf_decal/vg_decals/numbers/two, +/turf/open/floor/iron, +/area/station/hallway/secondary/command) +"qsN" = ( +/obj/structure/table, +/obj/machinery/recharger{ + pixel_y = 3 + }, +/turf/open/floor/iron/grimy, +/area/station/command/heads_quarters/captain/private) +"qsO" = ( +/obj/machinery/door/airlock/external{ + space_dir = 8 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 8 + }, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/airlock/access/all/engineering/external, +/turf/open/floor/plating, +/area/station/maintenance/department/security/prison_upper) +"qsP" = ( +/turf/open/floor/iron, +/area/station/hallway/secondary/command) +"qsW" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/effect/landmark/generic_maintenance_landmark, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/construction/mining/aux_base) +"qsY" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/escapepodbay) +"qtb" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/status_display/evac/directional/east, +/obj/machinery/camera/directional/east{ + c_tag = "Central Hallway - Lower Starboard Central"; + name = "hallway camera" + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"qtd" = ( +/obj/machinery/newscaster/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 1 + }, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"qte" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"qti" = ( +/obj/item/kirbyplants/organic/plant21, +/obj/machinery/firealarm/directional/north, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/tcommsat/computer) +"qtj" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 4 + }, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"qtk" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron/smooth_edge, +/area/station/command/secure_bunker) +"qtl" = ( +/obj/machinery/door/airlock/research{ + name = "Xenobiology Controll Room" + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/door/poddoor/shutters/window/preopen{ + id = "XenoOffice"; + name = "Xenobiology Controll Room Shutters" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, +/turf/open/floor/iron/white, +/area/station/science/xenobiology/control) +"qtm" = ( +/obj/structure/window/spawner/directional/west, +/obj/effect/turf_decal/bot, +/obj/structure/closet/wardrobe/black, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/landmark/start/hangover/closet, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/commons/locker) +"qtn" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/food_packaging, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"qts" = ( +/turf/open/floor/plating, +/area/station/maintenance/department/science/ordnance_maint) +"qtw" = ( +/obj/structure/chair/stool/directional/west, +/obj/effect/landmark/start/hangover, +/turf/open/floor/plating, +/area/station/maintenance/central) +"qtE" = ( +/turf/closed/wall/r_wall/rust, +/area/station/maintenance/starboard/fore) +"qtF" = ( +/obj/structure/cable, +/obj/effect/landmark/start/medical_doctor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"qtM" = ( +/obj/structure/closet/crate/large{ + name = "large exotic import crate" + }, +/obj/item/coin/gold{ + desc = "A limited edition coin printed with a FTU cargo hauler on the tail's side and the FTU logo on the head's side.. only 500 of these were ever made as a celebration to the passing of lessened trade regulations in the frontier sector."; + name = "FTU special edition collector's coin" + }, +/obj/item/melee/baseball_bat{ + desc = "This ancient baseball bat looks worn and used, it still has a pristine signature of a major league baseball player that was popular way back in the 20th century on terra... wow"; + name = "Signed baseball bat" + }, +/obj/item/toy/figure/clown{ + desc = "Aside from the engraving on the back of this figurine it's identical to any old NT departmental action figure, yet these sell for eye watering prices on the open market."; + name = "Comedycon edition clown action figure" + }, +/obj/item/reagent_containers/cup/glass/bottle/wine{ + desc = "A vintage wine bottle that appears to be produced on terra around the early 20th century.. the label is written in an ancient human language that sounds indecipherable.. le.. chateau.. what now?"; + name = "Vintage Terran red wine bottle" + }, +/obj/item/clothing/head/collectable/petehat, +/turf/open/floor/carpet/royalblack, +/area/station/command/heads_quarters/qm) +"qtO" = ( +/obj/structure/trash_pile, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/station/security/detectives_office/private_investigators_office) +"qtS" = ( +/obj/item/cigbutt, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"qtY" = ( +/obj/structure/railing, +/turf/open/floor/iron/stairs/old{ + dir = 4 + }, +/area/station/service/bar/atrium) +"qub" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Security Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"qug" = ( +/obj/machinery/air_sensor/nitrogen_tank, +/turf/open/floor/engine/n2, +/area/station/engineering/atmos) +"qum" = ( +/obj/structure/closet, +/obj/effect/turf_decal/delivery, +/obj/item/stack/spacecash/c100, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"qun" = ( +/obj/structure/railing, +/obj/structure/table/glass, +/obj/item/storage/medkit/regular, +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron/white/side{ + dir = 1 + }, +/area/station/medical/medbay/lobby) +"quo" = ( +/obj/structure/chair/wood{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet/directional/south, +/turf/open/floor/wood, +/area/station/security/courtroom) +"qur" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/west, +/obj/structure/window/spawner/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/dorms) +"qut" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/gloves/color/orange, +/obj/item/clothing/gloves/color/orange, +/obj/item/clothing/gloves/color/orange, +/obj/item/clothing/shoes/galoshes, +/obj/item/clothing/shoes/galoshes, +/obj/item/wirebrush{ + pixel_y = 5 + }, +/obj/item/wirebrush{ + pixel_y = 5 + }, +/obj/item/reagent_containers/spray/cleaner{ + pixel_x = -8; + pixel_y = 8 + }, +/obj/item/reagent_containers/spray/cleaner{ + pixel_x = -4; + pixel_y = 6 + }, +/obj/item/reagent_containers/spray/cleaner{ + pixel_x = 1; + pixel_y = 4 + }, +/obj/item/grenade/chem_grenade/cleaner{ + pixel_x = 11; + pixel_y = 3 + }, +/obj/item/grenade/chem_grenade/cleaner{ + pixel_x = 11; + pixel_y = 3 + }, +/obj/item/grenade/chem_grenade/cleaner{ + pixel_x = 11; + pixel_y = 3 + }, +/obj/effect/turf_decal/siding/purple{ + dir = 9 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/service/janitor) +"quu" = ( +/obj/structure/weightmachine/weightlifter, +/turf/open/floor/iron/dark, +/area/station/commons/fitness) +"qux" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/medical/cryo) +"quA" = ( +/obj/machinery/computer/records/security, +/obj/effect/turf_decal/siding/wood, +/obj/machinery/light/directional/north, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/blueshield) +"quC" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/mob/living/basic/bot/medbot/autopatrol, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"quF" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/dorms) +"quH" = ( +/obj/item/radio/intercom/directional/east, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/obj/effect/turf_decal/tile/blue/half/contrasted, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/captain) +"quJ" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/stairs/left{ + dir = 1 + }, +/area/station/hallway/secondary/service) +"quO" = ( +/obj/structure/chair, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"quW" = ( +/obj/structure/showcase/cyborg/old{ + pixel_y = 20 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat_interior) +"qva" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, +/turf/closed/wall/r_wall, +/area/station/engineering/supermatter) +"qvc" = ( +/obj/structure/table/reinforced, +/obj/effect/spawner/random/maintenance, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/maintenance/abandon_diner) +"qvj" = ( +/obj/structure/cable, +/obj/machinery/firealarm/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"qvs" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/station/service/theater) +"qvv" = ( +/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/cargo/office) +"qvB" = ( +/obj/structure/chair/office/light, +/turf/open/floor/carpet, +/area/station/science/ordnance/office) +"qvG" = ( +/obj/machinery/status_display/ai/directional/north, +/obj/item/radio/intercom/directional/east, +/obj/structure/table/reinforced, +/obj/item/chicken_feed, +/obj/item/chicken_feed, +/obj/item/chicken_feed, +/obj/item/chicken_feed, +/obj/machinery/camera/directional/east{ + c_tag = "Recreation - Nightclub Lockers"; + name = "hallway camera" + }, +/obj/machinery/feed_machine, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/common/night_club/changing_room) +"qvK" = ( +/turf/closed/wall/r_wall, +/area/station/security/prison/garden) +"qvM" = ( +/obj/machinery/atmospherics/components/unary/bluespace_sender, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"qvO" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible, +/turf/closed/wall/r_wall, +/area/station/engineering/supermatter) +"qvR" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/glass/reinforced, +/area/station/security/prison/safe) +"qvW" = ( +/obj/machinery/conveyor/inverted{ + dir = 6; + id = "cargoload" + }, +/turf/open/floor/plating, +/area/station/cargo/storage) +"qvX" = ( +/turf/closed/wall/r_wall, +/area/station/science/server) +"qwc" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/effect/turf_decal/stripes/white/line{ + dir = 10 + }, +/turf/open/floor/iron/dark, +/area/station/security/prison) +"qwf" = ( +/turf/open/floor/iron/stairs/medium{ + dir = 4 + }, +/area/station/hallway/primary/central) +"qwg" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/light/small/directional/south, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/security/power_station) +"qwm" = ( +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"qws" = ( +/obj/structure/table, +/obj/item/restraints/handcuffs/cable/red, +/obj/item/weldingtool/mini, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/abandon_exam/cat) +"qwu" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible/layer4{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer2, +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/engineering/atmos) +"qwx" = ( +/obj/structure/bookcase/random/religion, +/turf/open/floor/wood, +/area/station/security/prison/rec) +"qwF" = ( +/obj/structure/ladder, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/dorms) +"qwP" = ( +/obj/structure/sink/kitchen/directional/west, +/turf/open/floor/wood, +/area/station/service/hydroponics/garden) +"qwW" = ( +/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/cargo/sorting) +"qwX" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"qxa" = ( +/obj/structure/rack/wooden, +/obj/item/clothing/under/color/black{ + pixel_x = -7; + pixel_y = 7 + }, +/obj/item/clothing/under/color/black{ + pixel_y = 7 + }, +/obj/item/clothing/under/color/black{ + pixel_x = 7; + pixel_y = 7 + }, +/obj/item/clothing/under/color/jumpskirt/black{ + pixel_x = -7; + pixel_y = -7 + }, +/obj/item/clothing/under/color/jumpskirt/black{ + pixel_y = -7 + }, +/obj/item/clothing/under/color/jumpskirt/black{ + pixel_x = 7; + pixel_y = -7 + }, +/turf/open/floor/wood/parquet, +/area/station/common/tailoring) +"qxb" = ( +/obj/structure/grille, +/obj/item/shard, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"qxc" = ( +/obj/structure/chair/wood{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/security/execution/education) +"qxf" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/vending/hydronutrients, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/service/hydroponics) +"qxs" = ( +/obj/structure/closet/athletic_mixed, +/obj/effect/turf_decal/bot, +/obj/item/clothing/shoes/sports, +/turf/open/floor/iron/dark, +/area/station/common/locker_room_shower) +"qxt" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/medical/pharmacy) +"qxI" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/obj/structure/chair/stool/directional/east, +/obj/effect/landmark/start/shaft_miner, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) +"qxT" = ( +/obj/effect/turf_decal/box/white/corners{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"qxV" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/department/chapel) +"qxY" = ( +/obj/effect/turf_decal/bot_white, +/obj/machinery/ai_slipper{ + uses = 10 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/event_spawn, +/turf/open/floor/engine, +/area/station/ai_monitored/turret_protected/aisat/hallway) +"qya" = ( +/obj/structure/railing, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"qyf" = ( +/obj/machinery/modular_computer/preset/civilian, +/obj/effect/turf_decal/tile/dark_blue/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"qyi" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"qyl" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/ai_monitored/turret_protected/aisat_interior) +"qym" = ( +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/dark, +/area/station/maintenance/solars/starboard/fore) +"qyn" = ( +/obj/item/storage/secure/safe{ + pixel_x = 32 + }, +/obj/structure/chair/comfy/brown, +/obj/effect/landmark/start/detective, +/turf/open/floor/wood/parquet, +/area/station/security/detectives_office) +"qyp" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, +/obj/machinery/atmospherics/pipe/heat_exchanging/junction/layer4{ + dir = 8 + }, +/obj/machinery/door/airlock/research/glass{ + name = "Cooling Room" + }, +/turf/open/floor/engine, +/area/station/science/ordnance/freezerchamber) +"qyq" = ( +/obj/machinery/door/airlock{ + name = "Commisary Desk" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/commons/vacant_room/commissary) +"qyr" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing{ + dir = 8 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/glass/reinforced, +/area/station/security/prison/safe) +"qys" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/hidden, +/turf/open/floor/plating, +/area/station/maintenance/central) +"qyt" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"qyu" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood/parquet, +/area/station/science/breakroom) +"qyx" = ( +/obj/item/camera, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/maintenance/abandon_art_studio) +"qyy" = ( +/turf/closed/wall/rust, +/area/station/service/library/abandoned) +"qyF" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 9 + }, +/obj/machinery/newscaster/directional/north{ + pixel_x = -7 + }, +/obj/machinery/light/directional/west, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/digital_clock/directional/west, +/turf/open/floor/iron/white, +/area/station/science/lab) +"qyM" = ( +/obj/effect/turf_decal/bot, +/obj/effect/spawner/random/structure/crate, +/turf/open/floor/iron/dark, +/area/station/cargo/warehouse) +"qyN" = ( +/obj/structure/closet/secure_closet/freezer/fridge, +/obj/item/reagent_containers/condiment/soymilk, +/obj/item/reagent_containers/condiment/soymilk, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/cup/glass/bottle/juice/cream, +/obj/item/reagent_containers/cup/glass/bottle/juice/cream, +/obj/item/reagent_containers/cup/glass/ice, +/obj/item/reagent_containers/cup/glass/ice, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/sugar, +/obj/machinery/chem_dispenser/drinks{ + pixel_y = 32 + }, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/iron/dark, +/area/station/service/cafeteria) +"qyT" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/small, +/area/station/security/range) +"qza" = ( +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood/large, +/area/station/science/auxlab/firing_range) +"qzb" = ( +/obj/structure/window/spawner/directional/east, +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/flowers_br, +/turf/open/floor/grass, +/area/station/hallway/primary/port) +"qzi" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood/large, +/area/station/service/theater/abandoned) +"qzj" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 5 + }, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/research) +"qzm" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/command/gateway) +"qzn" = ( +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/service/barber) +"qzx" = ( +/obj/machinery/modular_computer/preset/command, +/obj/structure/plaque/static_plaque/golden{ + pixel_y = 32 + }, +/obj/machinery/camera/directional/north{ + c_tag = "Command - Blueshield's Office"; + name = "command camera" + }, +/obj/machinery/light/directional/north, +/turf/open/floor/carpet/executive, +/area/station/command/heads_quarters/blueshield) +"qzz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/machinery/door/airlock/maintenance{ + name = "Abandoned Clown Theater" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/maintenance/clown_chamber) +"qzC" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/hallway/primary/central) +"qzI" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/firecloset, +/obj/item/radio/intercom/directional/south, +/obj/machinery/light/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/science/ordnance) +"qzK" = ( +/obj/structure/reagent_dispensers/plumbed{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/science/central) +"qzO" = ( +/obj/machinery/power/smes/engineering, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/service/power_station) +"qzQ" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/rack, +/obj/item/gps, +/obj/item/gps, +/obj/item/gps, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/entry) +"qzV" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet/directional/south, +/turf/open/floor/wood, +/area/station/service/lawoffice) +"qAa" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/white/side{ + dir = 8 + }, +/area/station/command/heads_quarters/ce) +"qAr" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/grandfatherclock, +/obj/structure/sign/calendar/directional/east, +/turf/open/floor/iron/dark, +/area/station/command/meeting_room/council) +"qAt" = ( +/obj/machinery/light/directional/east, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 6 + }, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"qAu" = ( +/turf/open/floor/plating, +/area/station/maintenance/central) +"qAB" = ( +/obj/structure/table/glass, +/obj/item/reagent_containers/spray/plantbgone{ + pixel_x = 8; + pixel_y = 8 + }, +/obj/item/reagent_containers/spray/plantbgone{ + pixel_x = 4; + pixel_y = 5 + }, +/obj/item/reagent_containers/spray/plantbgone{ + pixel_y = 3 + }, +/obj/item/grenade/chem_grenade/antiweed{ + pixel_x = -6 + }, +/obj/item/grenade/chem_grenade/antiweed{ + pixel_x = -6 + }, +/obj/item/grenade/chem_grenade/antiweed{ + pixel_x = -6 + }, +/obj/machinery/firealarm/directional/west, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"qAE" = ( +/turf/open/floor/iron/dark/side{ + dir = 9 + }, +/area/station/hallway/primary/central) +"qAK" = ( +/obj/effect/turf_decal/stripes/box, +/obj/effect/turf_decal/stripes/red/box, +/obj/machinery/camera/directional/south{ + c_tag = "Science - Mech Bay"; + name = "science camera"; + network = list("ss13","rd") + }, +/obj/machinery/light/directional/south, +/turf/open/floor/iron/recharge_floor, +/area/station/science/robotics/mechbay) +"qAW" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/station/security/courtroom) +"qBc" = ( +/obj/structure/rack, +/obj/item/circuitboard/machine/telecomms/bus, +/obj/item/circuitboard/machine/telecomms/bus, +/obj/item/circuitboard/machine/telecomms/hub, +/obj/item/circuitboard/machine/telecomms/hub, +/obj/item/circuitboard/machine/telecomms/processor, +/obj/item/circuitboard/machine/telecomms/processor, +/obj/item/circuitboard/machine/telecomms/server, +/obj/item/circuitboard/machine/telecomms/server, +/obj/item/circuitboard/machine/telecomms/message_server, +/obj/machinery/airalarm/directional/north, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tcomms) +"qBd" = ( +/turf/closed/wall, +/area/station/engineering/supermatter/room) +"qBg" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"qBh" = ( +/obj/structure/cable, +/obj/machinery/newscaster/directional/north, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/security/execution/transfer) +"qBm" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/qm) +"qBq" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"qBu" = ( +/obj/effect/turf_decal/bot_red, +/obj/machinery/computer/mech_bay_power_console, +/obj/structure/reagent_dispensers/wall/peppertank/directional/west, +/obj/item/radio/intercom/directional/north, +/obj/effect/turf_decal/trimline/red/line, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_edge{ + dir = 1 + }, +/area/station/ai_monitored/security/armory) +"qBA" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/chair/office/light{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/medical/pharmacy) +"qBE" = ( +/obj/structure/cable, +/obj/machinery/light/directional/west, +/obj/machinery/airalarm/directional/west, +/turf/open/floor/iron/stairs{ + dir = 1 + }, +/area/station/ai_monitored/turret_protected/aisat_interior) +"qBG" = ( +/obj/effect/turf_decal/bot, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"qBK" = ( +/obj/item/kirbyplants/random, +/obj/machinery/newscaster/directional/north, +/turf/open/floor/iron/dark, +/area/station/service/library/lounge) +"qBP" = ( +/obj/structure/table/wood, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/commons/dorms/room5) +"qBR" = ( +/obj/effect/spawner/random/trash/moisture_trap, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"qBS" = ( +/obj/effect/spawner/random/structure/steam_vent, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_port) +"qBT" = ( +/turf/open/floor/iron/dark, +/area/station/security/prison/workout) +"qBX" = ( +/obj/machinery/door/airlock/research{ + autoclose = 0; + frequency = 1449; + id_tag = "xeno_airlock_exterior"; + name = "Xenobiology Lab External Airlock" + }, +/obj/machinery/door_buttons/access_button{ + idDoor = "xeno_airlock_exterior"; + idSelf = "xeno_airlock_control"; + name = "Access Button"; + pixel_x = 25; + req_access = list("xenobiology") + }, +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, +/turf/open/floor/iron, +/area/station/science/xenobiology/hallway) +"qCg" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/turf/open/floor/wood/large, +/area/station/common/night_club) +"qCh" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"qCp" = ( +/obj/effect/turf_decal/stripes/end, +/obj/effect/turf_decal/siding/thinplating/dark/end, +/obj/machinery/shower/directional/south, +/obj/structure/drain, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) +"qCv" = ( +/obj/effect/turf_decal/trimline/red/filled/line{ + color = "#DE3A3A"; + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hos) +"qCy" = ( +/turf/closed/wall, +/area/station/service/forge) +"qCz" = ( +/obj/machinery/firealarm/directional/west, +/obj/structure/table/reinforced, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/medical) +"qCC" = ( +/obj/structure/table/wood/fancy/cyan, +/obj/item/clothing/head/helmet/skull{ + desc = "The skull of a Syndicate nuclear operatives commander flayed and displayed as a trophy."; + name = "Skull trophy"; + pixel_y = 4 + }, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/command/heads_quarters/blueshield) +"qCE" = ( +/obj/structure/railing{ + dir = 6 + }, +/obj/structure/table/wood/fancy/royalblack, +/obj/item/toy/talking/codex_gigas, +/turf/open/floor/cult, +/area/station/maintenance/cult_chapel_maint) +"qCI" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/turf_decal/trimline/red/filled/warning{ + color = "#DE3A3A" + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/side, +/area/station/security/prison/upper) +"qCJ" = ( +/obj/structure/chair/sofa/bench/right{ + dir = 8; + pixel_x = 5 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/command) +"qCL" = ( +/obj/structure/table/reinforced, +/obj/item/paper_bin{ + pixel_y = 3 + }, +/obj/item/pen{ + pixel_y = 5 + }, +/obj/machinery/recharger{ + pixel_x = 16; + pixel_y = 8 + }, +/obj/effect/turf_decal/tile/purple/anticorner/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/security/corrections_officer) +"qCN" = ( +/obj/structure/chair/stool/directional/west, +/obj/item/clothing/head/costume/ushanka, +/turf/open/floor/plating, +/area/station/maintenance/rus_gambling) +"qCP" = ( +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 1 + }, +/obj/structure/closet/crate/bin, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/port) +"qCS" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/flowers_br, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "cmoshutter"; + name = "CMO Office Shutters" + }, +/turf/open/floor/grass, +/area/station/command/heads_quarters/cmo) +"qCU" = ( +/obj/machinery/door/poddoor/preopen{ + id = "atmoslock"; + name = "Atmospherics Lockdown Blast Door" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/landmark/navigate_destination, +/turf/open/floor/iron, +/area/station/engineering/atmos/office) +"qCV" = ( +/obj/structure/closet/cardboard, +/obj/effect/spawner/random/maintenance, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/wrestle) +"qCZ" = ( +/obj/structure/flora/bush/grassy, +/turf/open/water/overlay, +/area/station/hallway/primary/central) +"qDc" = ( +/obj/effect/spawner/random/vending/colavend, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 9 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"qDe" = ( +/obj/structure/flora/bush/jungle/a/style_2, +/obj/structure/flora/bush/flowers_yw/style_3, +/obj/structure/window/fulltile, +/turf/open/floor/grass, +/area/station/hallway/primary/upper) +"qDf" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/turf/open/indestructible{ + base_icon_state = "reinf_glass"; + icon = 'icons/turf/floors/reinf_glass.dmi'; + icon_state = "reinf_glass-0"; + name = "Ultra Reinforced Glass Floor" + }, +/area/station/ai_monitored/turret_protected/aisat_interior) +"qDn" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/security/checkpoint/customs/auxiliary) +"qDo" = ( +/obj/structure/chair/comfy/black{ + dir = 1; + pixel_y = 3 + }, +/obj/machinery/keycard_auth/directional/south{ + pixel_y = -23 + }, +/obj/machinery/requests_console/directional/south{ + department = "Bridge"; + name = "Bridge Requests Console"; + pixel_y = -37 + }, +/obj/effect/mapping_helpers/requests_console/announcement, +/obj/effect/mapping_helpers/requests_console/information, +/obj/effect/mapping_helpers/requests_console/assistance, +/obj/machinery/camera/directional/south{ + c_tag = "Bridge - Command Chair"; + name = "command camera" + }, +/obj/machinery/light/directional/south, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/command/bridge) +"qDq" = ( +/obj/structure/table, +/obj/item/storage/fancy/cigarettes/cigpack_robust{ + pixel_x = -4; + pixel_y = 6 + }, +/obj/item/toy/cards/deck, +/obj/item/clipboard{ + pixel_x = 5; + pixel_y = 12 + }, +/obj/item/toy/figure/miner{ + pixel_x = 4; + pixel_y = 11 + }, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) +"qDx" = ( +/obj/structure/closet/crate/coffin, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/chapel) +"qDz" = ( +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/station/commons/dorms/room4) +"qDE" = ( +/obj/structure/cable, +/obj/machinery/firealarm/directional/west, +/obj/machinery/light/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/ai_monitored/command/storage/eva/upper) +"qDF" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/structure/chair/comfy{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"qDH" = ( +/obj/effect/turf_decal/tile/green/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 6 + }, +/area/station/hallway/primary/central) +"qDO" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/security/interrogation) +"qDP" = ( +/obj/machinery/newscaster/directional/east, +/obj/effect/turf_decal/tile/red, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"qDQ" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Security Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/security/detective, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/security/lesser) +"qDV" = ( +/obj/effect/spawner/random/trash/moisture_trap, +/turf/open/floor/plating, +/area/station/maintenance/department/security/prison_upper) +"qEb" = ( +/obj/structure/window/reinforced/plasma/spawner/directional/east, +/obj/machinery/power/shuttle_engine/heater, +/turf/open/floor/plating, +/area/station/science/research/abandoned) +"qEg" = ( +/obj/machinery/firealarm/directional/west, +/turf/open/floor/wood, +/area/station/command/meeting_room/council) +"qEn" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/caution/stand_clear{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/escapepodbay) +"qEo" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/test_chambers) +"qEt" = ( +/obj/item/clothing/mask/breath, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"qEu" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/filingcabinet/employment, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/hop) +"qEQ" = ( +/turf/open/floor/iron, +/area/station/service/chapel) +"qES" = ( +/obj/machinery/status_display/evac/directional/west, +/obj/structure/extinguisher_cabinet/directional/north, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/computer/accounting{ + dir = 4 + }, +/obj/machinery/camera/autoname/directional/north, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hop) +"qEU" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/cargo/sorting) +"qEW" = ( +/obj/machinery/light/directional/south, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/security/brig) +"qEY" = ( +/obj/machinery/door/firedoor, +/obj/machinery/conveyor{ + id = "Luggagebelt" + }, +/turf/open/floor/plating, +/area/station/security/checkpoint) +"qFa" = ( +/obj/structure/cable, +/turf/open/floor/iron/shuttle/evac/airless, +/area/space/nearstation) +"qFc" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 1; + name = "Cold Loop to Gas" + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"qFi" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"qFl" = ( +/obj/structure/lattice/catwalk, +/turf/open/openspace, +/area/station/maintenance/aft/upper) +"qFr" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"qFt" = ( +/obj/effect/decal/cleanable/oil, +/obj/structure/sign/warning/vacuum/external/directional/west, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"qFv" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 9 + }, +/obj/structure/closet/crate/large, +/turf/open/floor/iron/dark/small, +/area/station/cargo/miningdock) +"qFE" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/chair/sofa/bench{ + dir = 4 + }, +/turf/open/floor/glass/reinforced, +/area/station/security/prison/safe) +"qFH" = ( +/obj/structure/flora/tree/jungle/small, +/turf/open/floor/grass, +/area/station/service/cafeteria) +"qFI" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/item/radio/intercom/directional/south, +/obj/machinery/duct, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/nt_rep) +"qFL" = ( +/obj/machinery/door/firedoor, +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "brigwindows"; + name = "Brig Front Blast Door" + }, +/obj/item/folder/red, +/obj/item/pen, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/door/window/brigdoor/right/directional/north{ + name = "Security Desk"; + req_access = list("security") + }, +/obj/machinery/door/window/right/directional/south{ + name = "Security Desk" + }, +/turf/open/floor/iron, +/area/station/security/brig) +"qFQ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/curtain/cloth/fancy/mechanical/start_closed{ + desc = "A set of curtains serving as a fancy theater backdrop. They can only be opened by a button."; + id = "theater_curtains"; + name = "Theater Curtains" + }, +/turf/open/floor/wood, +/area/station/service/theater) +"qFV" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/carpet/blue, +/area/station/command/heads_quarters/captain/private) +"qFW" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/smooth_edge{ + dir = 1 + }, +/area/station/cargo/miningdock) +"qGc" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/lavendergrass, +/turf/open/floor/grass, +/area/station/service/hydroponics) +"qGh" = ( +/obj/structure/flora/bush/sparsegrass{ + pixel_x = 7; + pixel_y = 3 + }, +/turf/open/floor/grass, +/area/station/security/prison/garden) +"qGm" = ( +/obj/effect/turf_decal/bot_white, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/entry) +"qGr" = ( +/obj/effect/turf_decal/bot, +/obj/structure/training_machine, +/obj/item/target/syndicate, +/turf/open/floor/iron, +/area/station/security/range) +"qGv" = ( +/obj/machinery/light/directional/west, +/obj/structure/flora/bush/fullgrass, +/obj/structure/flora/bush/flowers_pp, +/obj/effect/turf_decal/weather/sand{ + dir = 4 + }, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"qGw" = ( +/obj/effect/turf_decal/trimline/purple/filled/corner{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/science) +"qGA" = ( +/obj/structure/sign/departments/xenobio/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"qGC" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron/dark, +/area/station/commons/fitness) +"qGD" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/weather/sand, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/service/chapel) +"qGL" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/atmos_aux_port) +"qGP" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/corner{ + dir = 4 + }, +/area/station/hallway/primary/upper) +"qGR" = ( +/turf/open/openspace/airless, +/area/space) +"qGT" = ( +/obj/structure/table, +/obj/machinery/recharger{ + pixel_y = 2 + }, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/security/checkpoint/escape) +"qGV" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"qGZ" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/rack, +/obj/machinery/button/crematorium{ + id = "crematoriumSec"; + pixel_y = 26; + req_access = list("crematorium") + }, +/obj/item/book/bible, +/turf/open/floor/iron/dark, +/area/station/security/prison) +"qHg" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter) +"qHh" = ( +/obj/machinery/door/airlock/maintenance, +/obj/effect/mapping_helpers/airlock/abandoned, +/obj/structure/barricade/wooden/crude, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/abandon_exam/cat) +"qHq" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/central) +"qHx" = ( +/obj/structure/rack, +/obj/item/electronics/airlock, +/obj/item/electronics/airlock, +/obj/item/electronics/airlock, +/obj/item/electronics/airlock, +/obj/item/stack/cable_coil, +/obj/item/stack/cable_coil, +/obj/item/wallframe/camera, +/obj/item/wallframe/camera, +/obj/item/wallframe/camera, +/obj/item/wallframe/camera, +/obj/item/assault_pod/mining, +/obj/machinery/computer/security/telescreen/auxbase{ + dir = 8; + pixel_x = 30 + }, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/construction/mining/aux_base) +"qHy" = ( +/obj/effect/spawner/random/structure/crate, +/obj/structure/grille/broken, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/station/maintenance/department/science/upper) +"qHB" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/duct, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/turf/open/floor/iron/dark/herringbone, +/area/station/security/prison/safe) +"qHE" = ( +/obj/structure/rack, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/suit/hooded/wintercoat/science, +/obj/item/clothing/suit/hooded/wintercoat/science, +/obj/effect/turf_decal/bot, +/obj/machinery/light/directional/north, +/turf/open/floor/iron/white/side, +/area/station/science/xenobiology) +"qHK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/prison) +"qHM" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/effect/turf_decal/caution/stand_clear, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + name = "External Docking Port"; + space_dir = 8 + }, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/exit/departure_lounge) +"qHR" = ( +/obj/item/weldingtool/mini, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"qHU" = ( +/obj/effect/decal/cleanable/wrapping, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"qIc" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/table, +/turf/open/floor/iron/dark, +/area/station/cargo/sorting) +"qIh" = ( +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"qIm" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/portable_atmospherics/scrubber/huge/movable/cargo, +/obj/effect/turf_decal/loading_area, +/turf/open/floor/iron/dark, +/area/station/cargo/warehouse) +"qIn" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/window/spawner/directional/west, +/obj/structure/dresser, +/obj/machinery/digital_clock/directional/north, +/turf/open/floor/carpet/royalblack, +/area/station/commons/dorms/room8) +"qIo" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"qIs" = ( +/turf/closed/wall/r_wall, +/area/station/common/arcade) +"qIv" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/chair/stool/bar/directional/south, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/service/kitchen/diner) +"qIA" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/security/office) +"qIB" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/machinery/button/curtain{ + id = "dormscurtain5"; + pixel_y = -25 + }, +/obj/structure/chair/comfy/brown{ + color = "#A46106"; + dir = 1 + }, +/turf/open/floor/wood, +/area/station/commons/dorms/room6) +"qIF" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 8 + }, +/obj/machinery/computer/rdconsole{ + dir = 4; + pixel_x = -2 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/iron/white/smooth_half{ + dir = 8 + }, +/area/station/science/explab) +"qII" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/caution/stand_clear{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/escapepodbay) +"qIJ" = ( +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/flora/bush/jungle/b, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"qIS" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"qIU" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/secure_closet/personal, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/commons/dorms) +"qIW" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/hallway/secondary/service) +"qIZ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"qJb" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/science/ordnance) +"qJc" = ( +/obj/item/kirbyplants/random, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/machinery/airalarm/directional/north, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/wood, +/area/station/security/detectives_office/private_investigators_office) +"qJi" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "rdoffice"; + name = "Research Director's Shutters" + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/command/heads_quarters/rd) +"qJk" = ( +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/upper) +"qJm" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall/r_wall, +/area/station/command/heads_quarters/qm) +"qJo" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"qJF" = ( +/obj/effect/turf_decal/siding/blue, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured_edge, +/area/station/security/prison/garden) +"qJH" = ( +/obj/machinery/vending/boozeomat, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/service/bar) +"qJJ" = ( +/obj/structure/table, +/obj/item/reagent_containers/cup/glass/bottle/beer{ + pixel_y = 7 + }, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"qJL" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/filingcabinet/security, +/obj/item/radio/intercom/directional/south, +/obj/machinery/button/curtain{ + id = "prisonlibrarycurtain3"; + pixel_x = -6; + pixel_y = -37 + }, +/obj/machinery/button/door/directional/south{ + id = "Repdoor"; + name = "Door Lock"; + normaldoorcontrol = 1; + pixel_x = 4; + pixel_y = -36; + req_access = list("cent_general"); + specialfunctions = 4 + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/nt_rep) +"qJV" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/status_display/evac/directional/east, +/obj/machinery/camera/directional/east{ + c_tag = "Upper Central Hallway - Upper Port Bow"; + name = "hallway camera" + }, +/obj/machinery/light/directional/east, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"qJZ" = ( +/obj/structure/chair, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/effect/landmark/start/hangover, +/turf/open/floor/wood, +/area/station/hallway/primary/central) +"qKa" = ( +/obj/machinery/shower/directional/east{ + name = "emergency shower" + }, +/obj/effect/turf_decal/stripes/end{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating/dark/end{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/drain, +/turf/open/floor/iron/checker, +/area/station/science/ordnance) +"qKp" = ( +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai) +"qKr" = ( +/obj/structure/closet/secure_closet/medical1, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 10 + }, +/turf/open/floor/iron/white, +/area/station/command/gateway) +"qKz" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/machinery/door/window/left/directional/north, +/turf/open/floor/wood, +/area/station/service/theater) +"qKA" = ( +/obj/machinery/power/terminal, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/engineering/gravity_generator) +"qKF" = ( +/obj/structure/table, +/obj/item/stamp/denied{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/stamp, +/obj/effect/turf_decal/siding/brown{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/cargo/sorting) +"qKH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/trash/can, +/turf/open/floor/iron/smooth_edge{ + dir = 4 + }, +/area/station/security/prison/upper) +"qKN" = ( +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"qKP" = ( +/obj/structure/rack, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"qKT" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron, +/area/station/ai_monitored/command/storage/eva/upper) +"qKW" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/obj/machinery/suit_storage_unit/standard_unit, +/turf/open/floor/iron/dark, +/area/station/engineering/transit_tube) +"qLh" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/common/laser_tag) +"qLj" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/wood, +/area/station/medical/psychology) +"qLn" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/catwalk_floor, +/area/station/science/ordnance/testlab) +"qLp" = ( +/turf/open/floor/iron/smooth_edge, +/area/station/engineering/atmos/hfr_room) +"qLy" = ( +/obj/structure/chair/wood{ + dir = 4 + }, +/obj/effect/landmark/start/bartender, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/hallway/secondary/service) +"qLC" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/cargo/lobby) +"qLE" = ( +/obj/machinery/vending/medical, +/turf/open/floor/iron, +/area/station/medical/storage) +"qLQ" = ( +/obj/effect/turf_decal/bot_white/left, +/obj/structure/closet/crate/hydroponics, +/turf/open/floor/iron/dark/small, +/area/station/cargo/miningdock) +"qLT" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/ai_monitored/command/storage/eva) +"qLU" = ( +/obj/structure/fluff/metalpole{ + dir = 8 + }, +/obj/structure/fluff/metalpole{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) +"qLW" = ( +/obj/effect/turf_decal/bot_white, +/obj/structure/cable, +/obj/machinery/holopad/secure, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat_interior) +"qMb" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/security/detectives_office/private_investigators_office) +"qMm" = ( +/obj/structure/table, +/obj/structure/bedsheetbin, +/turf/open/floor/iron/kitchen{ + dir = 1 + }, +/area/station/security/prison/upper) +"qMs" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 1 + }, +/obj/structure/flora/bush/fullgrass, +/obj/structure/flora/bush/lavendergrass, +/obj/structure/chair/sofa/bench/right{ + dir = 1 + }, +/turf/open/floor/grass, +/area/station/hallway/primary/aft) +"qMu" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/bed/roller{ + dir = 1 + }, +/obj/structure/sign/clock/directional/south, +/turf/open/floor/iron/white, +/area/station/medical/exam_room) +"qMv" = ( +/obj/structure/chair/sofa/bench{ + dir = 8; + pixel_x = 5 + }, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/common/wrestling/locker) +"qMK" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"qML" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"qMW" = ( +/obj/structure/cable, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"qNf" = ( +/obj/item/organ/internal/tongue, +/turf/open/floor/material/meat, +/area/station/maintenance/department/science/xenobiology) +"qNi" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Theater Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/service/theatre, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/dorms) +"qNl" = ( +/obj/effect/turf_decal/trimline/purple/line{ + dir = 6 + }, +/turf/open/floor/iron/white/side{ + dir = 6 + }, +/area/station/science/research) +"qNm" = ( +/obj/structure/extinguisher_cabinet/directional/west, +/turf/closed/wall/r_wall, +/area/station/science/circuits) +"qNr" = ( +/obj/structure/bed/double, +/obj/item/bedsheet/hop/double, +/turf/open/floor/carpet/royalblue, +/area/station/command/heads_quarters/hop) +"qNt" = ( +/obj/machinery/door/airlock/command/glass{ + name = "Gateway Chamber" + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/bot, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/command/gateway, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/command/gateway) +"qNu" = ( +/turf/open/openspace, +/area/station/maintenance/department/medical) +"qNz" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"qNB" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/ai) +"qNF" = ( +/obj/machinery/light/directional/south, +/turf/open/floor/iron/dark, +/area/station/security/prison) +"qNG" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/science/research/abandoned) +"qNR" = ( +/obj/effect/turf_decal/siding/thinplating/light{ + dir = 4 + }, +/obj/structure/curtain, +/turf/open/floor/iron/white, +/area/station/medical/patients_rooms) +"qOc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"qOe" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/light/small/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"qOt" = ( +/obj/effect/turf_decal/trimline/purple/filled/line, +/obj/machinery/status_display/evac/directional/south, +/obj/machinery/light/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/science/research) +"qOu" = ( +/obj/machinery/computer/security{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/machinery/airalarm/directional/south, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint) +"qOA" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron, +/area/station/commons/dorms) +"qOJ" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/public/glass{ + name = "Central Hallway" + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"qOK" = ( +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/station/maintenance/abandon_art_studio) +"qON" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/effect/turf_decal/vg_decals/numbers/one, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/machinery/door/window/elevator/right/directional/west, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/central) +"qOZ" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/table/wood, +/obj/item/folder/blue{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/folder/blue, +/obj/item/coin/antagtoken, +/turf/open/floor/carpet/executive, +/area/station/command/heads_quarters/blueshield) +"qPf" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/xenobiology/control) +"qPh" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"qPi" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/security/prison/upper) +"qPn" = ( +/obj/item/book/codex_gigas, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/sign/painting/library_private{ + pixel_x = -32 + }, +/turf/open/floor/iron/dark, +/area/station/service/library/private) +"qPq" = ( +/obj/structure/railing{ + dir = 10 + }, +/turf/open/floor/plating/rust, +/area/station/maintenance/department/science/xenobiology) +"qPs" = ( +/obj/effect/spawner/random/trash/mess, +/obj/item/chair/wood, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/wood, +/area/station/commons/dorms/vacantroom) +"qPz" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/sign/poster/random/directional/north, +/turf/open/floor/iron, +/area/station/commons/dorms) +"qPC" = ( +/obj/item/rack_parts, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"qPD" = ( +/obj/structure/table/reinforced, +/obj/item/restraints/handcuffs, +/obj/item/assembly/flash/handheld, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"qPH" = ( +/obj/item/flashlight/flare/candle/infinite, +/turf/open/floor/material/meat, +/area/station/maintenance/department/science/xenobiology) +"qPM" = ( +/obj/item/cigbutt, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"qPO" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/bridge_pipe/violet/visible/layer2, +/turf/open/space/basic, +/area/space/nearstation) +"qPQ" = ( +/obj/structure/table/wood, +/obj/effect/spawner/random/trash/garbage, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/wood, +/area/station/maintenance/abandon_office) +"qPT" = ( +/obj/machinery/newscaster/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/service/barber) +"qQe" = ( +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/science/auxlab/firing_range) +"qQf" = ( +/obj/structure/cable, +/turf/open/floor/carpet, +/area/station/service/library/printer) +"qQh" = ( +/obj/machinery/camera/autoname/directional/west, +/turf/open/floor/iron, +/area/station/hallway/secondary/entry) +"qQj" = ( +/obj/structure/closet/crate, +/obj/machinery/light/small/directional/west, +/obj/effect/spawner/random/maintenance/four, +/turf/open/floor/plating, +/area/station/maintenance/department/science/central) +"qQn" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/commons/vacant_room/commissary) +"qQp" = ( +/obj/structure/grille, +/obj/structure/barricade/wooden, +/turf/open/floor/plating, +/area/station/maintenance/console_room) +"qQs" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/sign/poster/random/directional/west, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/primary/port) +"qQA" = ( +/obj/machinery/door_buttons/airlock_controller{ + idExterior = "virology_airlock_exterior"; + idInterior = "virology_airlock_interior"; + idSelf = "virology_airlock_control"; + name = "Virology Access Console"; + pixel_x = -24; + req_access = list("pathology") + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/light/directional/east, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/virology) +"qQE" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine, +/area/station/science/tele_sci) +"qQF" = ( +/turf/closed/wall/r_wall, +/area/station/maintenance/solars/starboard/aft) +"qQM" = ( +/obj/machinery/door/airlock/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"qQN" = ( +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/iron/stairs/old, +/area/station/cargo/miningdock) +"qQO" = ( +/turf/open/floor/iron/dark, +/area/station/maintenance/solars/port/fore) +"qQQ" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/east, +/obj/structure/window/spawner/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"qQW" = ( +/obj/machinery/door/firedoor, +/obj/structure/table/reinforced, +/obj/item/folder/blue, +/obj/item/folder/blue, +/obj/item/folder/blue, +/obj/item/pen, +/obj/machinery/door/window/right/directional/east{ + name = "Customs Desk" + }, +/obj/machinery/door/window/brigdoor/right/directional/west{ + name = "Customs Desk"; + req_access = list("command") + }, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/customs) +"qQZ" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/landmark/start/security_officer, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/dark/corner{ + dir = 4 + }, +/area/station/security/office) +"qRf" = ( +/obj/machinery/door/airlock/engineering{ + name = "Cargo Power Station" + }, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/turf/open/floor/plating, +/area/station/cargo/power_station/upper) +"qRp" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 10 + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/power/apc/auto_name/directional/south, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"qRz" = ( +/obj/effect/turf_decal/delivery, +/obj/item/kirbyplants/organic/plant21, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/west, +/turf/open/floor/iron, +/area/station/engineering/storage/tech) +"qRI" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/junction/flip{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red, +/turf/open/floor/iron/dark/small, +/area/station/security/brig) +"qRN" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) +"qRS" = ( +/obj/structure/trash_pile, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"qRT" = ( +/obj/structure/table, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"qRV" = ( +/obj/structure/closet/secure_closet/brig/genpop, +/obj/effect/turf_decal/bot, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/iron/dark, +/area/station/security/prison) +"qSc" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/obj/machinery/status_display/ai/directional/north, +/obj/machinery/light/directional/north, +/turf/open/floor/iron/white, +/area/station/science) +"qSd" = ( +/turf/open/floor/plating, +/area/station/maintenance/aux_eva) +"qSe" = ( +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/turf/open/floor/carpet/blue, +/area/station/command/heads_quarters/captain/private) +"qSk" = ( +/obj/structure/chair/sofa/corp/left{ + dir = 8; + pixel_x = 7 + }, +/turf/open/floor/wood/parquet, +/area/station/common/night_club) +"qSo" = ( +/obj/machinery/photocopier, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/machinery/status_display/ai/directional/north, +/turf/open/floor/iron/dark/side{ + dir = 5 + }, +/area/station/commons/vacant_room/commissary) +"qSs" = ( +/obj/structure/chair/stool/bar/directional{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/security/prison/mess) +"qSv" = ( +/obj/machinery/computer/security{ + dir = 1 + }, +/turf/open/floor/iron/dark/side, +/area/station/security/checkpoint/customs/auxiliary) +"qSx" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/space_heater, +/turf/open/openspace, +/area/station/maintenance/aft/upper) +"qSy" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/primary/port) +"qSA" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/structure/cable, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured_edge{ + dir = 4 + }, +/area/station/engineering/supermatter/room) +"qSE" = ( +/obj/structure/chair/sofa/corner/brown{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood/corner, +/turf/open/floor/wood/parquet, +/area/station/service/theater) +"qSJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"qSK" = ( +/mob/living/carbon/human/species/monkey/angry{ + name = "Monkey guardian" + }, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/cult, +/area/station/maintenance/department/science/xenobiology) +"qSM" = ( +/obj/structure/sign/warning/secure_area{ + desc = "A warning sign which reads 'BOMB RANGE"; + name = "BOMB RANGE" + }, +/turf/closed/wall/mineral/titanium, +/area/station/science/ordnance/bomb) +"qSO" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/chair/sofa/bench/right{ + dir = 8; + pixel_x = 5 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/common/wrestling/arena) +"qSQ" = ( +/obj/structure/cable, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/medical/virology) +"qSS" = ( +/obj/structure/table/wood, +/obj/item/stack/sheet/mineral/sandstone/thirty, +/obj/item/chisel, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/abandon_art_studio) +"qST" = ( +/obj/effect/turf_decal/bot_white, +/obj/structure/rack, +/obj/item/crowbar, +/obj/item/gps/engineering{ + gpstag = "CE0" + }, +/turf/open/floor/iron/dark, +/area/station/engineering/transit_tube) +"qSW" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/hop) +"qTb" = ( +/obj/structure/chair/sofa/bench/right{ + dir = 4; + pixel_x = -5 + }, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/stone, +/area/station/hallway/primary/central) +"qTi" = ( +/obj/structure/table, +/obj/item/crowbar, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/abandon_wrestle) +"qTy" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes/end, +/obj/machinery/light_switch/directional/east{ + pixel_x = 23 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/command/gateway) +"qTC" = ( +/obj/machinery/door/airlock/command{ + name = "Telescience Supply Storage" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/science/tele_sci) +"qTD" = ( +/obj/structure/closet/crate/bin, +/obj/structure/cable, +/turf/open/floor/iron/dark/side{ + dir = 6 + }, +/area/station/security/corrections_officer) +"qTG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/mess, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"qTH" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/effect/mapping_helpers/airlock/abandoned, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/central) +"qTT" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/stairs{ + dir = 4 + }, +/area/station/hallway/primary/port) +"qTW" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark/small, +/area/station/security/brig) +"qUa" = ( +/obj/item/paper/fluff{ + default_raw_text = "Just get this over with, seal up the staircase after the boys over at the wharf separate the lower deck, make sure it's sealed nice and tight too."; + name = "Workorder" + }, +/obj/structure/railing{ + dir = 10 + }, +/turf/open/floor/plating, +/area/station/security/prison/safe) +"qUg" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/prison) +"qUm" = ( +/obj/structure/table/reinforced, +/obj/machinery/computer/security/telescreen/interrogation{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/dark, +/area/station/security/interrogation) +"qUp" = ( +/obj/item/kirbyplants/random, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/green/filled/line, +/turf/open/floor/iron/dark/textured_edge, +/area/station/common/night_club) +"qUu" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/red{ + color = "#DE3A3A"; + dir = 4 + }, +/obj/machinery/light/directional/north, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/iron/white/corner{ + dir = 1 + }, +/area/station/hallway/secondary/exit/departure_lounge) +"qUA" = ( +/obj/item/kirbyplants/random, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/maintenance/abandon_office) +"qUF" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing{ + dir = 4 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/glass/reinforced, +/area/station/security/prison/safe) +"qUH" = ( +/obj/structure/sign/plaques/kiddie/perfect_man{ + pixel_y = -32 + }, +/obj/machinery/light/directional/south, +/obj/machinery/camera/directional/south, +/turf/open/floor/iron/stairs/old{ + dir = 8 + }, +/area/station/command/heads_quarters/nt_rep) +"qUO" = ( +/obj/structure/bed/roller, +/obj/effect/turf_decal/bot, +/obj/structure/window/spawner/directional/north, +/obj/machinery/iv_drip, +/obj/machinery/vending/wallmed/directional/west, +/turf/open/floor/iron/dark, +/area/station/medical/medbay/central) +"qUP" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/commons/storage/art) +"qUR" = ( +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/station/service/lawoffice) +"qVa" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"qVi" = ( +/obj/structure/curtain/bounty, +/obj/effect/spawner/structure/window, +/turf/open/floor/iron/dark, +/area/station/common/night_club) +"qVl" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/machinery/door/poddoor/shutters/radiation/preopen{ + id = "engsm"; + name = "Radiation Chamber Shutters" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/engineering/supermatter) +"qVr" = ( +/obj/item/trash/candle, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_port) +"qVs" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/command) +"qVu" = ( +/obj/structure/girder, +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/station/maintenance/department/chapel) +"qVv" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/effect/turf_decal/stripes, +/obj/machinery/suit_storage_unit/standard_unit, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva/upper) +"qVC" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/commons/dorms) +"qVE" = ( +/obj/structure/chair/stool/directional/west, +/obj/effect/turf_decal/tile/brown/anticorner/contrasted, +/obj/effect/landmark/start/shaft_miner, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) +"qVG" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"qVI" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/smart/simple/violet/visible/layer2{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) +"qVP" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/commons/dorms) +"qVY" = ( +/obj/structure/barricade/wooden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"qVZ" = ( +/obj/structure/railing{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/station/common/wrestling/arena) +"qWg" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"qWm" = ( +/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/simple/supply/hidden/layer4{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/floor/iron, +/area/station/engineering/storage) +"qWn" = ( +/obj/structure/flippedtable{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable/layer1, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"qWx" = ( +/obj/structure/table, +/obj/item/folder/yellow, +/turf/open/floor/iron, +/area/station/maintenance/solars/port/fore) +"qWA" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"qWG" = ( +/turf/open/misc/beach/sand, +/area/station/medical/patients_rooms) +"qWK" = ( +/turf/closed/wall, +/area/station/medical/cryo) +"qWN" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/table, +/obj/machinery/recharger{ + pixel_y = 4 + }, +/obj/machinery/button/door/directional/south{ + id = "councilblast"; + name = "Council Blast Doors"; + pixel_x = 26; + pixel_y = 0 + }, +/turf/open/floor/iron/dark, +/area/station/command/meeting_room/council) +"qWO" = ( +/obj/structure/table/wood, +/obj/item/book/manual/wiki/security_space_law, +/obj/item/camera/detective, +/obj/machinery/camera/directional/west{ + c_tag = "Detective's Office" + }, +/obj/machinery/status_display/ai/directional/west, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/station/security/detectives_office) +"qWQ" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 4 + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/science/research) +"qWR" = ( +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/structure/sign/departments/exam_room/directional/south, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"qWS" = ( +/obj/machinery/button/door{ + id = "cargounload"; + layer = 4; + name = "Loading Doors"; + pixel_x = 24; + pixel_y = -8 + }, +/obj/machinery/button/door{ + id = "cargoload"; + layer = 4; + name = "Loading Doors"; + pixel_x = 24; + pixel_y = 8 + }, +/obj/machinery/computer/cargo{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/dark/small, +/area/station/cargo/storage) +"qWT" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/west, +/obj/structure/sign/poster/contraband/random/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"qWU" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/medical/aslyum) +"qXe" = ( +/obj/machinery/door/poddoor/preopen{ + id = "bridgedoors"; + name = "Bridge Access Blast Door" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/light/small/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/command) +"qXk" = ( +/obj/machinery/light/small/directional/east, +/obj/structure/reagent_dispensers/fueltank{ + pixel_y = 1 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) +"qXp" = ( +/obj/effect/spawner/random/vending/colavend, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/starboard) +"qXs" = ( +/turf/closed/wall, +/area/station/commons/dorms/room3) +"qXv" = ( +/obj/structure/sink/kitchen/directional/west, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/cafeteria, +/area/station/command/heads_quarters/nt_rep) +"qXx" = ( +/obj/effect/decal/cleanable/blood/old{ + icon_state = "floor3-old" + }, +/turf/open/floor/plating, +/area/station/medical/patients_rooms) +"qXz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/obj/effect/landmark/start/hangover, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"qXA" = ( +/turf/open/floor/plating, +/area/station/maintenance/department/security/prison_upper) +"qXU" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/space/openspace, +/area/space) +"qXV" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"qXZ" = ( +/obj/structure/cable, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/iron, +/area/station/engineering/atmos/hfr_room) +"qYa" = ( +/obj/machinery/atmospherics/components/trinary/mixer, +/turf/open/floor/iron, +/area/station/maintenance/department/engineering/atmos_aux_port) +"qYb" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/structure/rack, +/obj/item/assembly/voice{ + pixel_x = -3; + pixel_y = 11 + }, +/obj/item/assembly/voice{ + pixel_y = 5 + }, +/obj/item/assembly/voice{ + pixel_x = 3; + pixel_y = -1 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/testlab) +"qYf" = ( +/obj/effect/spawner/random/trash/garbage, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"qYg" = ( +/obj/structure/closet/crate, +/obj/effect/turf_decal/bot, +/obj/effect/spawner/random/maintenance/seven, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"qYk" = ( +/obj/machinery/chem_master/condimaster{ + name = "CondiMaster Neo" + }, +/obj/machinery/camera/directional/west{ + c_tag = "Kitchen Upper"; + name = "service camera" + }, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) +"qYp" = ( +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white/side{ + dir = 6 + }, +/area/station/medical/medbay/lobby) +"qYs" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/item/clothing/suit/hazardvest, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"qYv" = ( +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"qYy" = ( +/obj/effect/decal/cleanable/dirt, +/mob/living/basic/mining/goliath/ancient, +/turf/open/misc/asteroid/airless, +/area/space/nearstation) +"qYC" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/carpet, +/area/station/service/library/printer) +"qYE" = ( +/obj/structure/plasticflaps/opaque, +/obj/effect/turf_decal/bot, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + location = "Hydroponics" + }, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) +"qYF" = ( +/obj/structure/rack/shelf, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/engineering/tool, +/turf/open/floor/iron/dark/side, +/area/station/science/tele_sci) +"qYH" = ( +/obj/machinery/vending/sovietsoda, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"qYI" = ( +/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/floor/iron, +/area/station/engineering/storage) +"qYP" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/light/small/directional/north, +/obj/structure/closet/crate{ + name = "Old Surplus crate" + }, +/obj/item/clothing/suit/armor/vest/alt, +/obj/item/clothing/suit/armor/vest/alt, +/obj/item/grenade/flashbang, +/turf/open/floor/iron/dark, +/area/station/security/lockers) +"qYQ" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/transit_tube/station/dispenser/flipped{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/aisat/exterior) +"qYX" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/engine/hull/reinforced, +/area/space/nearstation) +"qYZ" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/item/stack/package_wrap, +/obj/item/storage/box, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"qZb" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/external, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"qZh" = ( +/obj/structure/sign/warning/vacuum/external/directional/south, +/obj/structure/chair/sofa/bench/left{ + dir = 8; + pixel_x = 5 + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/entry) +"qZs" = ( +/obj/effect/turf_decal/stripes{ + dir = 10 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 5 + }, +/obj/structure/table, +/obj/item/reagent_containers/spray/cleaner{ + pixel_x = -8; + pixel_y = 8 + }, +/obj/item/clothing/gloves/latex, +/obj/item/clothing/mask/surgical, +/turf/open/floor/iron/dark, +/area/station/science/genetics) +"qZu" = ( +/obj/machinery/light/directional/east, +/obj/structure/flora/bush/fullgrass, +/turf/open/water/overlay, +/area/station/hallway/primary/central) +"qZv" = ( +/turf/open/openspace, +/area/station/command/secure_bunker) +"qZA" = ( +/obj/machinery/photocopier, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/security/checkpoint/escape) +"qZD" = ( +/obj/machinery/space_heater, +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"qZG" = ( +/obj/structure/railing{ + dir = 1 + }, +/mob/living/basic/chicken/brown{ + forced_gender = "male" + }, +/turf/open/floor/grass, +/area/station/common/night_club/back_stage) +"qZH" = ( +/obj/effect/spawner/random/structure/crate, +/turf/open/floor/plating, +/area/station/maintenance/department/chapel) +"qZJ" = ( +/turf/open/floor/iron/smooth, +/area/station/cargo/power_station/upper) +"qZM" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/condiment/saltshaker{ + pixel_x = -3 + }, +/obj/item/reagent_containers/condiment/peppermill{ + pixel_x = 3 + }, +/obj/machinery/light/small/directional/south, +/turf/open/floor/iron, +/area/station/security/prison/mess) +"qZN" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/firecloset, +/obj/effect/landmark/start/hangover/closet, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/port) +"qZQ" = ( +/obj/structure/closet/crate/bin, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/brig) +"qZR" = ( +/obj/structure/table/glass, +/obj/item/folder/white, +/obj/item/stamp/rd, +/turf/open/floor/iron, +/area/station/command/heads_quarters/rd) +"rah" = ( +/obj/structure/flora/bush/lavendergrass, +/obj/effect/turf_decal/siding/thinplating/light{ + dir = 4 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rdgene"; + name = "Genetics Lab Shutters" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/window/left/directional/east{ + name = "'Monkey Pen" + }, +/turf/open/floor/grass, +/area/station/science/genetics) +"raj" = ( +/obj/structure/mirror{ + pixel_y = 32 + }, +/obj/structure/sink/directional/south, +/obj/machinery/dryer{ + dir = 8; + pixel_x = 6 + }, +/turf/open/floor/iron/white, +/area/station/commons/toilet/restrooms) +"ral" = ( +/obj/machinery/camera/directional/south{ + c_tag = "Engineering - Gravity Generator"; + dir = 1; + name = "engineering camera" + }, +/obj/machinery/status_display/ai/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/engineering/gravity_generator) +"raw" = ( +/obj/machinery/airalarm/directional/west, +/turf/open/floor/iron, +/area/station/engineering/atmos/test_chambers) +"raz" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/common/pool) +"raF" = ( +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/primary/central) +"raG" = ( +/obj/machinery/washing_machine, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/iron/kitchen{ + dir = 1 + }, +/area/station/security/prison/upper) +"raI" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock/maintenance_hatch, +/obj/structure/cable, +/turf/open/floor/iron/smooth, +/area/station/security/prison/upper) +"raJ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/station/service/cafeteria) +"raP" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/effect/spawner/random/entertainment/drugs, +/turf/open/floor/plating/reinforced{ + initial_gas_mix = "TEMP=2.7" + }, +/area/station/science/ordnance/bomb) +"rba" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/dark/corner, +/obj/effect/turf_decal/trimline/dark/corner{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark/corner, +/obj/effect/turf_decal/siding/thinplating_new/dark/corner{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured_edge{ + dir = 1 + }, +/area/station/security/prison/safe) +"rbc" = ( +/obj/structure/table, +/obj/item/soap, +/turf/open/floor/noslip, +/area/station/maintenance/gag_room) +"rbg" = ( +/obj/structure/chair/sofa/bench/right{ + dir = 8; + pixel_x = 5 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/secondary/command) +"rbi" = ( +/obj/structure/window/spawner/directional/north, +/obj/structure/flora/bush/sparsegrass, +/obj/structure/flora/bush/sunny{ + pixel_y = -5 + }, +/turf/open/floor/grass, +/area/station/service/chapel) +"rbn" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/item/kirbyplants/random, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/wood, +/area/station/service/library/abandoned) +"rbq" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/iron/dark/small, +/area/station/security/prison/safe) +"rbs" = ( +/turf/closed/wall, +/area/station/medical/patients_rooms) +"rbD" = ( +/obj/effect/decal/cleanable/blood/innards, +/mob/living/carbon/human/species/monkey/angry{ + name = "Monkey guardian" + }, +/turf/open/floor/cult, +/area/station/maintenance/department/science/xenobiology) +"rbE" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/closet/crate, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating/airless, +/area/station/maintenance/fore/upper) +"rbJ" = ( +/obj/structure/table, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 10 + }, +/obj/item/stack/medical/mesh{ + pixel_x = -6 + }, +/obj/item/healthanalyzer/simple{ + pixel_y = 8 + }, +/turf/open/floor/iron/white, +/area/station/security/prison) +"rbL" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/atmos_aux_port) +"rbY" = ( +/obj/structure/chair/sofa/bench{ + dir = 8; + pixel_x = 5 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/command) +"rce" = ( +/obj/structure/chair/stool, +/obj/machinery/camera/directional/west{ + c_tag = "Recreation - Fore"; + name = "recreation camera" + }, +/obj/machinery/light/directional/west, +/obj/machinery/status_display/ai/directional/west, +/obj/effect/landmark/start/assistant, +/turf/open/floor/iron, +/area/station/commons/fitness/recreation) +"rcg" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) +"rci" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"rcq" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/obj/structure/railing, +/turf/open/floor/iron, +/area/station/cargo/lobby) +"rcr" = ( +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/dark, +/area/station/cargo/miningoffice) +"rcw" = ( +/turf/open/floor/iron/dark/side{ + dir = 10 + }, +/area/station/security/prison/upper) +"rcB" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Engineering Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/general, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_starboard) +"rcC" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/machinery/status_display/door_timer{ + id = "Cell 4"; + name = "Cell 4"; + pixel_x = 32 + }, +/turf/open/floor/iron, +/area/station/security/brig) +"rcI" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/crate, +/obj/effect/spawner/random/maintenance/three, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"rcU" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/machinery/camera/directional/south{ + c_tag = "Bridge - Bunker Entrance"; + name = "command camera" + }, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/iron/smooth_edge{ + dir = 8 + }, +/area/station/command/secure_bunker) +"rcW" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/iron/smooth_edge{ + dir = 8 + }, +/area/station/command/secure_bunker) +"rcX" = ( +/obj/effect/spawner/random/trash/mess, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"rcY" = ( +/turf/open/floor/carpet/lone, +/area/station/service/chapel) +"rdi" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/security/prison_upper) +"rdj" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/table, +/obj/machinery/recharger{ + pixel_y = 3 + }, +/obj/item/borg/sight/hud/sec{ + pixel_y = 17 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"rdo" = ( +/obj/machinery/firealarm/directional/east, +/obj/machinery/light/directional/east, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/iron/stairs/right, +/area/station/hallway/secondary/command) +"rdq" = ( +/obj/machinery/portable_atmospherics/canister, +/turf/open/floor/iron/dark/smooth_large, +/area/station/engineering/atmos/hfr_room) +"rdr" = ( +/obj/structure/flora/bush/flowers_pp, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/grass, +/area/station/service/chapel) +"rdt" = ( +/obj/machinery/light/directional/west, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/machinery/conveyor{ + dir = 9; + id = "mining" + }, +/turf/open/floor/plating, +/area/station/cargo/miningdock) +"rdz" = ( +/obj/structure/table, +/obj/item/folder/red, +/obj/item/pen, +/turf/open/floor/iron, +/area/station/security/execution/transfer) +"rdB" = ( +/obj/structure/closet/secure_closet/personal, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/station/command/gateway) +"rdC" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/machinery/status_display/ai/directional/west, +/obj/item/book/manual/wiki/ordnance, +/obj/item/storage/medkit/toxin{ + pixel_x = -4; + pixel_y = 4 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) +"rdL" = ( +/obj/structure/sign/directions/security{ + dir = 1; + pixel_y = 8 + }, +/obj/structure/sign/directions/engineering{ + pixel_y = 2 + }, +/obj/structure/sign/directions/supply{ + pixel_y = -4 + }, +/obj/structure/sign/directions/evac{ + pixel_y = -10 + }, +/turf/closed/wall, +/area/station/maintenance/department/chapel) +"rdR" = ( +/obj/structure/chair/sofa/right/brown, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/carpet, +/area/station/common/wrestling/lobby) +"reb" = ( +/turf/open/floor/mineral/plastitanium, +/area/station/science/robotics/lab) +"rej" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Bar" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"rem" = ( +/obj/structure/window/spawner/directional/south, +/obj/structure/curtain, +/obj/structure/table/glass, +/obj/item/reagent_containers/cup/bowl, +/obj/item/food/grown/citrus/orange, +/obj/item/food/grown/apple, +/obj/item/food/watermelonslice, +/turf/open/floor/iron, +/area/station/medical/patients_rooms) +"ren" = ( +/obj/structure/closet/crate/medical, +/obj/effect/turf_decal/bot, +/obj/item/storage/medkit/regular{ + empty = 1; + name = "First-Aid (empty)" + }, +/obj/item/healthanalyzer, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"reo" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"req" = ( +/obj/machinery/newscaster/directional/south, +/turf/open/floor/iron/smooth_edge, +/area/station/command/secure_bunker) +"reu" = ( +/obj/machinery/computer/atmos_control/nitrogen_tank{ + dir = 1 + }, +/obj/structure/window/spawner/directional/south, +/obj/effect/turf_decal/tile/red/real_red/diagonal_centre, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"rew" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/brown/visible{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"rex" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/mapping_helpers/iannewyear, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/hop) +"rez" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"reA" = ( +/obj/structure/table/reinforced, +/obj/item/taperecorder{ + pixel_x = 6; + pixel_y = 10 + }, +/obj/item/book/manual/wiki/security_space_law{ + pixel_y = 3 + }, +/turf/open/floor/iron/dark, +/area/station/security/office) +"reB" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/science) +"reE" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/science/research) +"reG" = ( +/obj/effect/turf_decal/stripes, +/obj/effect/landmark/start/atmospheric_technician, +/turf/open/floor/iron/smooth, +/area/station/engineering/atmos/pumproom) +"reJ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/commons/dorms) +"reO" = ( +/obj/structure/window/reinforced/tinted/spawner/directional/west, +/obj/effect/decal/cleanable/dirt, +/obj/structure/toiletbong, +/obj/item/bodypart/head/simian, +/obj/effect/decal/cleanable/blood/old{ + icon_state = "floor5-old" + }, +/turf/open/floor/carpet, +/area/station/commons/dorms/vacantroom) +"reQ" = ( +/obj/item/clothing/head/utility/hardhat, +/turf/open/floor/plating, +/area/station/security/execution/transfer) +"reW" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, +/turf/open/floor/iron, +/area/station/medical/cryo) +"reZ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rnd"; + name = "Research Lab Shutters" + }, +/turf/open/floor/plating, +/area/station/science/lab) +"rfh" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue/half/contrasted, +/turf/open/floor/iron/dark/side, +/area/station/hallway/secondary/command) +"rfm" = ( +/obj/machinery/light/directional/north, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/escapepodbay) +"rfn" = ( +/obj/structure/girder, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"rfs" = ( +/obj/effect/turf_decal/box/white/corners{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"rfv" = ( +/obj/effect/turf_decal/bot_white, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"rfy" = ( +/obj/structure/table/wood, +/obj/structure/window/spawner/directional/north, +/obj/item/phone{ + desc = "Supposedly a direct line to Nanotrasen Central Command. It's not even plugged in."; + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/cigbutt/cigarbutt{ + pixel_x = 7 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron/grimy, +/area/station/command/meeting_room/council) +"rfE" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/command/gateway) +"rfF" = ( +/turf/closed/wall, +/area/station/science/explab) +"rfP" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Clothingstore"; + name = "Clothing Store Shutters" + }, +/turf/open/floor/plating, +/area/station/common/tailoring) +"rfQ" = ( +/obj/machinery/airalarm/directional/east, +/obj/machinery/light/small/directional/east, +/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer4{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/security/prison/upper) +"rfX" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/bed{ + dir = 1; + pixel_y = 8 + }, +/obj/item/bedsheet{ + dir = 1; + pixel_y = 8 + }, +/turf/open/floor/iron/dark, +/area/station/security/brig) +"rgd" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/test_chambers) +"rgg" = ( +/obj/machinery/power/port_gen/pacman/pre_loaded, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/lesser) +"rgh" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"rgi" = ( +/obj/structure/railing, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/iron/white/corner{ + dir = 4 + }, +/area/station/science/xenobiology) +"rgk" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + name = "Security Post - Cargo" + }, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/supply) +"rgo" = ( +/obj/structure/bookcase/random/fiction, +/turf/open/floor/wood, +/area/station/medical/aslyum) +"rgD" = ( +/turf/closed/wall/r_wall, +/area/station/common/laser_tag) +"rgF" = ( +/obj/item/kirbyplants/random, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/console_room) +"rgJ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon{ + dir = 4 + }, +/turf/open/floor/engine/vacuum, +/area/station/maintenance/department/engineering/atmos_aux_port) +"rgK" = ( +/obj/structure/table, +/obj/item/camera_film{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/camera_film, +/obj/item/camera{ + pixel_y = -11 + }, +/obj/machinery/newscaster/directional/north, +/turf/open/floor/iron, +/area/station/commons/fitness/recreation) +"rgS" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Engineering Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/lesser) +"rgW" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/effect/turf_decal/stripes, +/obj/machinery/portable_atmospherics/canister, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos) +"rha" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_port) +"rhi" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible, +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible/layer2, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"rhk" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/machinery/suit_storage_unit/open, +/turf/open/floor/iron/dark, +/area/station/security/lockers) +"rhm" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"rhp" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/prison) +"rhs" = ( +/obj/structure/chair/office/light, +/obj/effect/turf_decal/stripes/white/corner{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/science/xenobiology/control) +"rhu" = ( +/turf/open/floor/iron/submarine_perf/airless, +/area/space/nearstation) +"rhA" = ( +/obj/structure/table/wood, +/obj/item/storage/bag/books, +/turf/open/floor/wood, +/area/station/service/library) +"rhM" = ( +/obj/structure/wrestling_corner{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 6 + }, +/area/station/common/wrestling/arena) +"rhO" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/effect/turf_decal/box/white, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) +"rhV" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/thinplating_new/dark, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/line, +/turf/open/floor/iron/dark/textured_edge{ + dir = 1 + }, +/area/station/security/lockers) +"rhW" = ( +/obj/structure/table/reinforced, +/obj/item/storage/toolbox/mechanical, +/obj/item/radio{ + pixel_x = -12; + pixel_y = 3 + }, +/obj/item/flashlight, +/obj/item/radio{ + pixel_x = -12; + pixel_y = 3 + }, +/obj/item/flashlight, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) +"rhX" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/cargo/sorting) +"rib" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/siding/thinplating/dark/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 10 + }, +/turf/open/floor/iron/dark/textured_corner{ + dir = 4 + }, +/area/station/common/night_club) +"rid" = ( +/obj/effect/landmark/start/assistant, +/obj/structure/flora/bush/lavendergrass, +/turf/open/floor/grass, +/area/station/common/night_club) +"rig" = ( +/obj/structure/table/wood, +/obj/structure/window/spawner/directional/south, +/obj/structure/window/spawner/directional/east, +/obj/item/food/cakeslice/pound_cake_slice{ + pixel_x = -13; + pixel_y = 1 + }, +/obj/item/food/cakeslice/pound_cake_slice{ + pixel_x = -18; + pixel_y = -5 + }, +/obj/item/food/hotcrossbun{ + pixel_x = 4; + pixel_y = 5 + }, +/obj/item/food/hotcrossbun{ + pixel_x = 1; + pixel_y = -1 + }, +/turf/open/floor/iron/dark, +/area/station/service/cafeteria) +"rii" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/red{ + color = "#DE3A3A"; + dir = 4 + }, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron/white/corner{ + dir = 1 + }, +/area/station/hallway/secondary/exit/departure_lounge) +"rik" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/stripes{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 10 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/iron/white, +/area/station/science/xenobiology/hallway) +"ril" = ( +/obj/structure/chair/sofa/bench/left{ + dir = 8; + pixel_x = 5 + }, +/obj/structure/railing{ + dir = 4 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/stone, +/area/station/hallway/primary/central) +"rix" = ( +/obj/structure/table, +/obj/item/storage/medkit/regular, +/obj/machinery/light/small/directional/east, +/turf/open/floor/iron/dark, +/area/station/medical/medbay/central) +"riS" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/start/medical_doctor, +/turf/open/floor/iron/white, +/area/station/medical/cryo) +"riX" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 6 + }, +/obj/machinery/light_switch/directional/east, +/turf/open/floor/iron/white, +/area/station/medical/cryo) +"rjb" = ( +/obj/docking_port/stationary/random{ + dir = 2; + name = "lavaland"; + shuttle_id = "pod_4_lavaland" + }, +/turf/open/space/basic, +/area/space/nearstation) +"rje" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/hallway/primary/port) +"rjj" = ( +/obj/item/kirbyplants/random, +/obj/machinery/light/directional/south, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/service/barber) +"rjm" = ( +/obj/structure/table/glass, +/obj/item/storage/box/beakers{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/reagent_containers/cup/beaker/large, +/obj/item/reagent_containers/dropper, +/obj/structure/noticeboard/directional/south, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 6 + }, +/turf/open/floor/iron/white, +/area/station/medical/pharmacy) +"rjn" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/duct, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/turf/open/floor/iron/dark/herringbone, +/area/station/security/prison/safe) +"rjq" = ( +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/service/barber) +"rjs" = ( +/turf/open/floor/engine, +/area/station/maintenance/department/science/xenobiology) +"rjt" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/obj/structure/rack, +/obj/item/clothing/shoes/magboots, +/turf/open/floor/iron/dark, +/area/station/engineering/transit_tube) +"rjv" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/station/service/cafeteria) +"rjB" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/service/cafeteria) +"rjF" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/dorms) +"rjM" = ( +/obj/machinery/door/airlock/research{ + name = "Cytology Lab" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/science/cytology) +"rjO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/sign/poster/contraband/random/directional/south, +/turf/open/floor/iron, +/area/station/maintenance/clown_chamber) +"rjS" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, +/obj/machinery/atmospherics/pipe/bridge_pipe/green/visible{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) +"rjW" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"rjX" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/power/emitter, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/engineering/storage) +"rkb" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/science/research) +"rkc" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/port/central) +"rkh" = ( +/obj/effect/turf_decal/trimline/purple/filled/line, +/turf/open/floor/iron/white, +/area/station/science/lab) +"rki" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/trash/cheesie, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"rko" = ( +/obj/effect/spawner/liquids_spawner{ + reagent_list = list(/datum/reagent/water=600) + }, +/obj/structure/flora/rock/pile/jungle, +/obj/item/toy/seashell, +/turf/open/misc/asteroid, +/area/station/hallway/primary/upper) +"rkp" = ( +/obj/structure/cable, +/obj/item/retractor, +/turf/open/floor/plating, +/area/station/maintenance/abandon_surgery) +"rkq" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "xenosecure"; + name = "Secure Pen Shutters" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/science/xenobiology) +"rkv" = ( +/turf/open/floor/iron/stairs/right{ + dir = 8 + }, +/area/station/hallway/primary/central) +"rkz" = ( +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/flowers_yw, +/obj/structure/window/spawner/directional/north, +/turf/open/floor/grass, +/area/station/commons/dorms) +"rkC" = ( +/obj/machinery/firealarm/directional/west, +/obj/machinery/light/directional/west, +/obj/machinery/nanite_program_hub, +/turf/open/floor/iron/dark/small, +/area/station/science/circuits) +"rkF" = ( +/obj/structure/window/reinforced/plasma/spawner/directional/south, +/obj/machinery/power/shuttle_engine/heater{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"rkJ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/chair/office{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/station/maintenance/abandon_office) +"rkK" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/filled/line, +/turf/open/floor/iron/white, +/area/station/security/checkpoint/medical) +"rkL" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/common/arcade) +"rkS" = ( +/obj/effect/turf_decal/stripes/red/line, +/obj/machinery/camera/directional/south{ + network = list("ss13","xeno","rd") + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"rkT" = ( +/obj/structure/table, +/obj/effect/turf_decal/siding/wood, +/obj/item/food/spaghetti/beefnoodle{ + pixel_y = 11 + }, +/obj/item/food/spaghetti/beefnoodle{ + pixel_y = 7 + }, +/obj/item/food/spaghetti/pastatomato{ + pixel_y = 3 + }, +/obj/item/food/spaghetti/pastatomato, +/obj/structure/sign/flag/nanotrasen/directional/north, +/turf/open/floor/iron/dark, +/area/station/command/captain_dining) +"rkY" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/department/security) +"rle" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/table/wood, +/obj/item/phone{ + pixel_x = -10; + pixel_y = 6 + }, +/obj/item/flashlight/lamp{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/machinery/digital_clock/directional/east, +/turf/open/floor/carpet/executive, +/area/station/command/heads_quarters/blueshield) +"rlp" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/duct, +/turf/open/floor/carpet/green, +/area/station/commons/dorms/room2) +"rlt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"rlz" = ( +/obj/machinery/mech_bay_recharge_port, +/obj/effect/turf_decal/delivery/red, +/turf/open/floor/mineral/plastitanium, +/area/station/science/robotics/mechbay) +"rlA" = ( +/obj/item/reagent_containers/cup/bucket/wooden{ + name = "waste bucket" + }, +/obj/structure/sink/directional/east{ + reclaim_rate = 5 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/vault/rock, +/area/station/security/prison/safe) +"rlC" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/loom, +/obj/machinery/camera/directional/west{ + c_tag = "Chapel Apiary"; + name = "chapel camera" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/service/chapel) +"rlG" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Prison Sanitarium" + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/security/brig, +/turf/open/floor/iron/dark, +/area/station/security/prison) +"rlI" = ( +/mob/living/basic/chicken/brown{ + forced_gender = "female" + }, +/obj/effect/turf_decal/siding/thinplating/dark, +/turf/open/floor/grass, +/area/station/common/night_club) +"rlK" = ( +/obj/machinery/duct, +/turf/open/floor/iron/white/textured, +/area/station/medical/aslyum) +"rlQ" = ( +/obj/machinery/holopad, +/turf/open/floor/glass/reinforced, +/area/station/security/checkpoint/customs/auxiliary) +"rlW" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/chair/sofa/bench/right{ + dir = 8; + pixel_x = 5 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/common/wrestling/arena) +"rlY" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/access/all/engineering/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) +"rlZ" = ( +/obj/structure/window/spawner/directional/north, +/obj/structure/chair/sofa/middle/brown, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"rme" = ( +/obj/effect/turf_decal/delivery/white, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/obj/machinery/door/airlock/security/glass{ + name = "Flight Control" + }, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"rmf" = ( +/obj/structure/curtain/cloth, +/turf/open/floor/iron/freezer, +/area/station/common/locker_room_shower) +"rmi" = ( +/obj/machinery/door/airlock/hatch{ + name = "MiniSat Antechamber" + }, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/any/command/general, +/obj/effect/mapping_helpers/airlock/access/any/engineering/construction, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat_interior) +"rml" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 4 + }, +/obj/effect/landmark/start/hangover/closet, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/upper) +"rmp" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/medical{ + name = "Surgery Theater" + }, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 1 + }, +/obj/effect/mapping_helpers/airlock/access/all/medical/surgery, +/obj/effect/turf_decal/tile/blue/fourcorners, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) +"rmr" = ( +/obj/effect/turf_decal/trimline/red/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/prison/upper) +"rmz" = ( +/obj/machinery/camera/directional/east{ + c_tag = "Leisure Area - Lasertag Red Fore"; + name = "hallway camera" + }, +/turf/open/floor/iron/dark, +/area/station/common/laser_tag) +"rmB" = ( +/obj/structure/barricade/security/ctf, +/obj/structure/window/reinforced/tinted/spawner/directional/south, +/turf/open/floor/iron/dark, +/area/station/common/laser_tag) +"rmC" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"rmI" = ( +/obj/machinery/space_heater, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/bar) +"rmM" = ( +/obj/machinery/door/airlock{ + name = "Auxiliary Console Room" + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/maintenance/console_room) +"rmT" = ( +/obj/machinery/digital_clock/directional/east, +/turf/open/floor/wood, +/area/station/command/captain_dining) +"rmY" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/science/cytology) +"rnl" = ( +/obj/machinery/gulag_teleporter, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"rno" = ( +/turf/closed/wall, +/area/station/science/ordnance/testlab) +"rns" = ( +/obj/effect/turf_decal/vg_decals/numbers/five, +/turf/open/floor/iron/shuttle/arrivals/airless, +/area/space/nearstation) +"rny" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/sheet/cardboard, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"rnz" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/machinery/duct, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/office) +"rnF" = ( +/obj/machinery/power/shuttle_engine/heater{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"rnR" = ( +/obj/structure/closet/crate, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"rnT" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/common/wrestling/beverage) +"rnU" = ( +/obj/effect/turf_decal/tile/blue/fourcorners, +/turf/open/floor/iron/white, +/area/station/medical/patients_rooms) +"rnY" = ( +/obj/structure/chair/stool/bar, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/green, +/area/station/service/abandoned_gambling_den) +"roc" = ( +/obj/item/kirbyplants/random, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured, +/area/station/common/cryopods) +"rof" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000 + }, +/obj/machinery/light/small/directional/east, +/turf/open/floor/iron, +/area/station/science/research/abandoned) +"rog" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/carpet, +/area/station/service/theater) +"roA" = ( +/obj/structure/flora/tree/jungle/small{ + pixel_x = -30 + }, +/turf/open/floor/grass, +/area/station/medical/aslyum) +"roC" = ( +/obj/structure/closet/crate/large, +/obj/item/mecha_parts/part/ripley_left_leg, +/obj/item/mecha_parts/part/ripley_right_leg, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/science/research/abandoned) +"roM" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/cargo/lobby) +"roO" = ( +/obj/machinery/light/directional/north, +/obj/machinery/door/window/brigdoor/left/directional/south{ + name = "Cargo Cell"; + req_access = list("security") + }, +/turf/open/floor/iron, +/area/station/security/checkpoint/supply) +"roU" = ( +/obj/structure/hedge, +/obj/structure/railing{ + dir = 6 + }, +/obj/effect/turf_decal/tile/purple/half{ + dir = 8 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/iron/white/side{ + dir = 8 + }, +/area/station/science/research) +"roZ" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/holopad, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) +"rpa" = ( +/obj/structure/chair/office{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/obj/effect/landmark/start/paramedic, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) +"rpj" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"rpk" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/secondary/command) +"rpn" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"rpq" = ( +/obj/effect/spawner/random/trash/garbage, +/turf/open/floor/plating, +/area/station/science/research/abandoned) +"rpr" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/carpet, +/area/station/common/tailoring) +"rpt" = ( +/obj/machinery/power/solar{ + id = "forestarboard"; + name = "Fore-Starboard Solar Array" + }, +/obj/structure/cable, +/turf/open/floor/iron/solarpanel/airless, +/area/station/solars/port/fore) +"rpv" = ( +/obj/effect/turf_decal/box/red, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/effect/turf_decal/stripes{ + dir = 5 + }, +/turf/open/floor/engine, +/area/station/science/ordnance) +"rpz" = ( +/obj/structure/flora/tree/jungle/small, +/obj/effect/turf_decal/weather/sand, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"rpA" = ( +/obj/structure/rack/shelf, +/obj/effect/turf_decal/bot/left, +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/railing, +/turf/open/floor/wood/large, +/area/station/security/brig) +"rpJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"rpO" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"rpP" = ( +/obj/structure/chair/sofa/bench/right{ + dir = 4; + pixel_x = -5 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/light/directional/west, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/commons/dorms) +"rpQ" = ( +/turf/closed/wall, +/area/station/commons/toilet/restrooms) +"rpU" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/duct, +/turf/open/floor/carpet/green, +/area/station/command/heads_quarters/nt_rep) +"rpW" = ( +/obj/structure/trash_pile, +/obj/machinery/light/small/directional/north, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/library/upper) +"rpZ" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/science/lab) +"rqa" = ( +/obj/structure/sign/poster/contraband/borg_fancy_2/directional/south, +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/grass, +/area/station/common/night_club) +"rqb" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/eighties/red, +/area/station/common/arcade) +"rqj" = ( +/obj/structure/flora/bush/jungle/a/style_3, +/turf/open/floor/grass, +/area/station/hallway/primary/central/aft) +"rqn" = ( +/obj/structure/rack, +/obj/item/restraints/handcuffs, +/obj/item/restraints/handcuffs, +/obj/item/assembly/flash/handheld, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/checkpoint/escape) +"rqq" = ( +/obj/structure/trash_pile, +/turf/open/floor/plating, +/area/station/security/prison/upper) +"rqt" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/light/small/directional/east, +/turf/open/floor/carpet, +/area/station/common/tailoring) +"rqw" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"rqz" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen" + }, +/obj/effect/turf_decal/bot, +/obj/effect/spawner/random/decoration/carpet, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"rqA" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"rqC" = ( +/turf/closed/wall, +/area/station/cargo/office) +"rqD" = ( +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/central/fore) +"rqF" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/commons/dorms/room3) +"rqK" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 10 + }, +/obj/machinery/status_display/evac/directional/west, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/surgery) +"rqN" = ( +/obj/machinery/light/small/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/iron/dark, +/area/station/common/night_club/back_stage) +"rqR" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/red/filled/warning, +/obj/effect/turf_decal/trimline/red/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/side, +/area/station/security/lockers) +"rqS" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Cooling Loop Bypass" + }, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"rqU" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"rre" = ( +/obj/structure/bed/double, +/obj/item/bedsheet/centcom/double, +/obj/machinery/light_switch/directional/south, +/turf/open/floor/carpet/green, +/area/station/command/heads_quarters/nt_rep) +"rrt" = ( +/turf/open/floor/iron/stairs/left{ + dir = 1 + }, +/area/station/hallway/secondary/exit) +"rrB" = ( +/obj/structure/closet/crate/freezer/blood, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/iron/white, +/area/station/maintenance/abandon_surgery) +"rrD" = ( +/obj/structure/reagent_dispensers/plumbed{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/night_club) +"rrI" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/dorms) +"rrK" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/machinery/camera/autoname/directional/south{ + network = list("ss13","medbay") + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"rrO" = ( +/turf/closed/wall/rust, +/area/station/maintenance/abandon_holding_cell) +"rrS" = ( +/obj/effect/turf_decal/trimline/yellow/filled/corner{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"rsc" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"rsg" = ( +/mob/living/basic/crab/coffee, +/obj/machinery/light/directional/west, +/turf/open/water/overlay, +/area/station/hallway/primary/central) +"rsi" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"rsq" = ( +/obj/machinery/modular_computer/preset/id{ + dir = 1 + }, +/obj/effect/turf_decal/siding/yellow{ + dir = 5 + }, +/obj/machinery/newscaster/directional/south, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/ce) +"rss" = ( +/obj/effect/spawner/random/trash/cigbutt, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/maintenance/abandon_holding_cell) +"rsz" = ( +/obj/structure/table/wood/fancy, +/obj/structure/sign/painting/library_secure{ + pixel_y = 32 + }, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/carpet, +/area/station/service/library) +"rsD" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/directional/south, +/turf/open/floor/iron/white/side{ + dir = 1 + }, +/area/station/maintenance/abandon_diner) +"rsG" = ( +/obj/machinery/door/poddoor/shutters/window{ + id = "BrigBigEntrance"; + name = "Brig Shutters" + }, +/obj/machinery/door/poddoor/preopen{ + id = "brigfront"; + name = "Brig Blast Door" + }, +/turf/open/floor/iron/dark, +/area/station/security/brig) +"rsK" = ( +/obj/machinery/door/poddoor/preopen{ + id = "XenoOffice"; + name = "Xenobiology Lockdown Blast Doors" + }, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Toxins Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) +"rsO" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/security/prison/workout) +"rsR" = ( +/obj/effect/turf_decal/bot_white, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/iron/dark/small, +/area/station/cargo/storage) +"rsU" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"rsX" = ( +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "brig-enterance" + }, +/obj/machinery/door/airlock/security/glass{ + id_tag = "innerbrig"; + name = "Brig" + }, +/obj/effect/turf_decal/delivery/blue, +/obj/machinery/door/poddoor/preopen{ + id = "brigfront"; + name = "Brig Blast Door" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/security/entrance, +/turf/open/floor/iron/dark, +/area/station/security/brig) +"rsZ" = ( +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/grass, +/area/station/common/night_club/back_stage) +"rta" = ( +/obj/structure/sign/directions/security{ + dir = 1; + pixel_y = 8 + }, +/obj/structure/sign/directions/engineering{ + pixel_y = 2 + }, +/obj/structure/sign/directions/supply{ + pixel_y = -4 + }, +/obj/structure/sign/directions/evac{ + pixel_y = -10 + }, +/turf/closed/wall, +/area/station/service/kitchen/diner) +"rtc" = ( +/obj/effect/turf_decal/trimline/blue/line{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/prison/workout) +"rtg" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/ai_monitored/command/storage/eva) +"rtj" = ( +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"rtp" = ( +/obj/structure/girder, +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"rtq" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt, +/obj/item/taperecorder{ + pixel_y = 7 + }, +/obj/item/storage/briefcase, +/turf/open/floor/wood, +/area/station/service/electronic_marketing_den) +"rtr" = ( +/turf/closed/wall, +/area/station/service/abandoned_gambling_den) +"rts" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless, +/area/station/maintenance/fore/upper) +"rtG" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/science/central) +"rtH" = ( +/obj/effect/turf_decal/trimline/red/filled/line, +/obj/effect/turf_decal/trimline/red/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/side, +/area/station/security/prison/upper) +"rtK" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/effect/turf_decal/caution/stand_clear, +/obj/machinery/door/airlock/external{ + name = "External Docking Port"; + space_dir = 8 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/exit/departure_lounge) +"rtL" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"rtN" = ( +/obj/structure/chair/sofa/bench/right{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/engineering/break_room) +"rtR" = ( +/obj/effect/turf_decal/caution/stand_clear, +/obj/effect/turf_decal/bot, +/obj/machinery/door/poddoor/shutters{ + id = "evashutter"; + name = "E.V.A. Storage Shutter" + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva/upper) +"rtX" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/science/tele_sci) +"rtY" = ( +/obj/item/bodypart/head/monkey, +/turf/open/floor/cult, +/area/station/maintenance/department/science/xenobiology) +"rtZ" = ( +/obj/structure/table/reinforced, +/turf/open/floor/iron, +/area/station/medical/surgery/theatre) +"rua" = ( +/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/engineering/main) +"rum" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/service/bar) +"ruq" = ( +/obj/effect/turf_decal/bot_white, +/obj/structure/cable, +/obj/machinery/door/poddoor/shutters/window/preopen{ + id = "ArrivalsEntry4"; + name = "Line Acces Shutter" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 4 + }, +/obj/effect/turf_decal/arrows/white{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/entry) +"rur" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Central Hallway" + }, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"rus" = ( +/obj/machinery/power/shuttle_engine/heater{ + dir = 8 + }, +/obj/structure/window/reinforced/plasma/spawner/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"ruu" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start/hangover, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/dorms) +"rux" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/engineering/transit_tube) +"ruz" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/white/side, +/area/station/science/xenobiology) +"ruB" = ( +/obj/machinery/door/airlock/engineering{ + name = "Tech Storage" + }, +/obj/machinery/door/firedoor/heavy, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/navigate_destination, +/obj/effect/mapping_helpers/airlock/access/all/engineering/tech_storage, +/turf/open/floor/iron, +/area/station/engineering/storage/tech) +"ruF" = ( +/obj/structure/cable, +/turf/open/floor/iron/kitchen, +/area/station/security/prison/mess) +"ruG" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/security/prison/shower) +"ruK" = ( +/obj/structure/cable, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/service/abandoned_gambling_den) +"ruN" = ( +/obj/effect/turf_decal/bot_white, +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/storage) +"ruR" = ( +/obj/machinery/computer/arcade/orion_trail{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/white/textured, +/area/station/medical/aslyum) +"ruS" = ( +/obj/machinery/power/smes, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/power_station) +"ruT" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/hallway/primary/central) +"ruV" = ( +/obj/effect/turf_decal/bot, +/obj/structure/table, +/obj/item/soap{ + pixel_y = 5 + }, +/obj/item/reagent_containers/spray/cleaner, +/obj/machinery/airalarm/directional/south, +/obj/machinery/camera/directional/south{ + c_tag = "Medbay - Viro Airlock"; + name = "medbay camera"; + network = list("ss13","medbay") + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/medical/virology) +"ruX" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command/glass{ + name = "Bridge" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "bridge-east" + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/effect/mapping_helpers/airlock/access/all/command/general, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"ruY" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/mob/living/basic/chicken{ + forced_gender = "female" + }, +/obj/structure/flora/bush/sparsegrass{ + pixel_x = -6 + }, +/turf/open/floor/grass, +/area/station/common/night_club) +"rvb" = ( +/obj/structure/chair/sofa/corp/left{ + dir = 8 + }, +/obj/machinery/newscaster/directional/south, +/turf/open/floor/iron/white, +/area/station/science/research) +"rvf" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ + dir = 10 + }, +/turf/open/floor/iron/dark, +/area/station/tcommsat/computer) +"rvj" = ( +/obj/structure/grille/broken, +/obj/effect/decal/cleanable/glass, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"rvl" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron/white/textured, +/area/station/medical/aslyum) +"rvo" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"rvs" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/item/trash/semki, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"rvy" = ( +/obj/structure/sign/barber{ + pixel_x = -13 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/primary/port) +"rvL" = ( +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/security/brig) +"rvO" = ( +/obj/structure/chair/comfy/black, +/obj/effect/landmark/start/head_of_security, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/security/office) +"rvP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"rvW" = ( +/obj/structure/flora/bush/ferny, +/obj/machinery/growing/tray, +/turf/open/floor/grass, +/area/station/security/prison/garden) +"rvZ" = ( +/obj/machinery/shower/directional/east{ + name = "emergency shower" + }, +/obj/structure/drain, +/obj/effect/turf_decal/box, +/turf/open/floor/iron/checker, +/area/station/engineering/main) +"rwl" = ( +/obj/structure/toilet{ + dir = 1 + }, +/obj/machinery/light/small/directional/east{ + pixel_y = 11 + }, +/obj/structure/sink/directional/west, +/obj/structure/mirror/directional/east, +/turf/open/floor/iron/freezer, +/area/station/commons/dorms/room4) +"rwq" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/chair/sofa/bench{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"rws" = ( +/obj/effect/turf_decal/bot, +/obj/structure/rack/shelf, +/obj/item/storage/box/beakers{ + pixel_x = 3; + pixel_y = 4 + }, +/obj/item/storage/box/syringes, +/obj/effect/turf_decal/tile/purple/half, +/turf/open/floor/iron/white/side, +/area/station/science/xenobiology/control) +"rwt" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/closet/firecloset/wall/directional/west, +/turf/open/floor/iron/white/side{ + dir = 8 + }, +/area/station/hallway/secondary/entry) +"rwM" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/green/visible{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/engineering/atmos/pumproom) +"rwP" = ( +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 8 + }, +/turf/open/floor/wood/large, +/area/station/science/auxlab/firing_range) +"rwS" = ( +/obj/structure/chair/sofa/bench/left{ + dir = 4; + pixel_x = -5 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/common/locker_room_shower) +"rwX" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/prison) +"rwZ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/common/night_club/changing_room) +"rxe" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/light/directional/west, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"rxl" = ( +/obj/structure/table/wood/fancy, +/obj/structure/sign/painting/library_secure{ + pixel_y = 32 + }, +/obj/effect/turf_decal/siding/wood, +/obj/machinery/door/window/left/directional/south{ + name = "Secure Art Exhibition"; + req_access = list("library") + }, +/turf/open/floor/carpet, +/area/station/service/library) +"rxm" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rdgene"; + name = "Genetics Lab Shutters" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/science/genetics) +"rxo" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 6 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/security/checkpoint/medical) +"rxp" = ( +/obj/structure/window/spawner/directional/north, +/obj/structure/chair/sofa/corp{ + color = "#DE3A3A" + }, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen/diner) +"rxy" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/lobby) +"rxA" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"rxE" = ( +/obj/structure/trash_pile, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet, +/area/station/maintenance/abandon_office) +"rxG" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/light/directional/west, +/obj/machinery/power/energy_accumulator/tesla_coil, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/engineering/storage) +"rxK" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/warning/vacuum/external/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"rxQ" = ( +/obj/structure/extinguisher_cabinet/directional/south, +/turf/open/floor/grass, +/area/station/common/night_club) +"rxR" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/science/research) +"rxV" = ( +/obj/machinery/computer/security, +/obj/structure/extinguisher_cabinet/directional/north, +/obj/effect/turf_decal/stripes/blue/line, +/turf/open/floor/iron/dark, +/area/station/security/office) +"rxX" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/office) +"rxY" = ( +/obj/machinery/light/small/broken/directional/south, +/turf/open/openspace, +/area/station/maintenance/port/upper) +"ryb" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ + dir = 9 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"rye" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/effect/landmark/start/hangover, +/obj/machinery/door/window/left/directional/north, +/turf/open/floor/wood, +/area/station/service/cafeteria) +"ryf" = ( +/obj/machinery/door/airlock{ + id_tag = "Toilet5"; + name = "Stall 1" + }, +/turf/open/floor/iron/cafeteria, +/area/station/commons/toilet/auxiliary) +"ryi" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/medical/surgery) +"ryl" = ( +/mob/living/basic/clown/fleshclown, +/turf/open/floor/material/meat, +/area/station/maintenance/department/science/xenobiology) +"ryt" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/landmark/start/medical_doctor, +/turf/open/floor/iron/white, +/area/station/medical/break_room) +"ryu" = ( +/obj/structure/chair/pew/right, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain/private) +"ryz" = ( +/obj/machinery/vending/wardrobe/sec_wardrobe, +/obj/machinery/camera/autoname/directional/west, +/turf/open/floor/iron, +/area/station/security/checkpoint) +"ryA" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/small, +/area/station/cargo/miningdock) +"ryB" = ( +/obj/effect/spawner/random/trash/cigbutt, +/turf/open/floor/plating, +/area/station/maintenance/department/science/ordnance_maint) +"ryK" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/hallway/primary/central) +"ryM" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/air_input{ + dir = 4 + }, +/turf/open/floor/engine/air, +/area/station/engineering/atmos) +"ryU" = ( +/obj/structure/sink/directional/east, +/obj/structure/mirror{ + pixel_y = 32 + }, +/obj/structure/toilet{ + pixel_y = 16 + }, +/turf/open/floor/iron/freezer, +/area/station/command/heads_quarters/hop) +"ryY" = ( +/obj/structure/chair/sofa/left/brown{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/turf/open/floor/wood/parquet, +/area/station/service/theater) +"rzg" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted, +/obj/structure/disposalpipe/junction, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/cargo/office) +"rzv" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/captain{ + id_tag = "Capoffice2"; + name = "Captain's Suite" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/command/general, +/obj/machinery/duct, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/captain) +"rzA" = ( +/obj/structure/extinguisher_cabinet/directional/west, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/engine, +/area/station/command/secure_bunker) +"rzE" = ( +/obj/effect/spawner/liquids_spawner, +/turf/open/floor/lowered/iron/pool/cobble/side{ + dir = 1 + }, +/area/station/common/pool) +"rzI" = ( +/obj/structure/table, +/obj/item/stack/sheet/cardboard, +/turf/open/floor/plating, +/area/station/maintenance/department/science/central) +"rzJ" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/fullgrass, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"rzK" = ( +/obj/structure/table/wood/poker, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/wood, +/area/station/service/abandoned_gambling_den) +"rAq" = ( +/obj/effect/landmark/start/janitor, +/turf/open/floor/iron/checker, +/area/station/service/janitor) +"rAr" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/security/courtroom) +"rAx" = ( +/obj/effect/turf_decal/siding/thinplating/dark/corner{ + dir = 1 + }, +/turf/open/floor/iron/dark/herringbone, +/area/station/common/night_club/back_stage) +"rAA" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet/directional/south, +/obj/machinery/power/floodlight, +/turf/open/floor/iron, +/area/station/commons/fitness/recreation) +"rAD" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/supermatter/room) +"rAE" = ( +/obj/structure/water_source/puddle, +/obj/structure/flora/bush/reed{ + pixel_y = 2 + }, +/obj/effect/turf_decal/weather/sand{ + dir = 8 + }, +/turf/open/floor/grass, +/area/station/medical/patients_rooms) +"rAN" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hall11"; + location = "hall10" + }, +/turf/open/floor/iron/dark/corner, +/area/station/hallway/primary/port) +"rAQ" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 6 + }, +/obj/machinery/quantum_server, +/obj/machinery/light/small/blacklight/directional/west, +/obj/effect/decal/cleanable/dirt, +/obj/item/pizzabox/meat{ + pixel_y = 14 + }, +/turf/open/floor/iron/dark/small, +/area/station/security/prison/upper) +"rAY" = ( +/obj/machinery/modular_computer/preset/cargochat/medical, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 10 + }, +/obj/structure/sign/calendar/directional/north, +/turf/open/floor/iron, +/area/station/medical/break_room) +"rBh" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/north, +/obj/structure/window/spawner/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"rBo" = ( +/obj/effect/turf_decal/siding/wood/corner, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"rBy" = ( +/obj/structure/table, +/obj/item/reagent_containers/cup/glass/bottle/beer/almost_empty{ + pixel_x = -6; + pixel_y = 3 + }, +/obj/machinery/pollution_scrubber{ + pixel_x = 7; + pixel_y = -5 + }, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"rBB" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"rBF" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/science/auxlab/firing_range) +"rBK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/science/auxlab/firing_range) +"rBP" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "bridgewindows"; + name = "Bridge View Blast Door" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/command/bridge) +"rBS" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/camera/autoname/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"rBT" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/station/command/meeting_room/council) +"rBU" = ( +/turf/open/floor/iron/stairs{ + dir = 1 + }, +/area/station/common/wrestling/arena) +"rBV" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple/layer4{ + dir = 5 + }, +/turf/open/floor/engine, +/area/station/science/ordnance/freezerchamber) +"rBW" = ( +/obj/structure/bookcase/random/nonfiction, +/turf/open/floor/wood, +/area/station/security/prison/rec) +"rBX" = ( +/obj/structure/window/reinforced/spawner/directional/north{ + pixel_y = 1 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/obj/machinery/vending/coffee, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) +"rBZ" = ( +/obj/structure/stairs/north, +/obj/structure/sign/directions/command{ + dir = 8; + pixel_x = 32; + pixel_y = 6 + }, +/obj/structure/sign/directions/medical{ + dir = 8; + pixel_x = 32 + }, +/obj/structure/sign/directions/science{ + dir = 8; + pixel_x = 32; + pixel_y = -6 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/central) +"rCe" = ( +/obj/structure/chair/sofa/corp/right{ + dir = 4; + layer = 2.8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/wood/parquet, +/area/station/common/night_club) +"rCh" = ( +/obj/item/stack/sheet/cardboard, +/obj/item/storage/box/lights/mixed, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"rCi" = ( +/obj/structure/table, +/obj/item/storage/organbox, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"rCo" = ( +/obj/structure/table, +/obj/machinery/microwave{ + pixel_y = 8 + }, +/obj/machinery/button/curtain{ + id = "dormscurtain4"; + pixel_x = 25 + }, +/turf/open/floor/wood, +/area/station/commons/dorms/room3) +"rCv" = ( +/obj/machinery/portable_atmospherics/canister/water_vapor, +/obj/effect/turf_decal/bot/right, +/obj/machinery/newscaster/directional/west, +/turf/open/floor/iron/checker, +/area/station/service/janitor) +"rCA" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Abandoned Clown Theater" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/maintenance/clown_chamber) +"rCC" = ( +/obj/structure/closet/secure_closet/engineering_personal, +/obj/item/inducer, +/turf/open/floor/iron/dark, +/area/station/engineering/break_room) +"rCE" = ( +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "brig-enterance" + }, +/obj/machinery/door/airlock/security/glass{ + id_tag = "outerbrig"; + name = "Brig" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/delivery/blue, +/obj/machinery/door/poddoor/preopen{ + id = "brigfront"; + name = "Brig Blast Door" + }, +/obj/effect/landmark/navigate_destination, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/security/entrance, +/turf/open/floor/iron/dark, +/area/station/security/brig) +"rCH" = ( +/obj/structure/rack/wooden, +/obj/item/clothing/under/color/yellow{ + pixel_x = -7; + pixel_y = 7 + }, +/obj/item/clothing/under/color/orange{ + pixel_y = 7 + }, +/obj/item/clothing/under/color/red{ + pixel_x = 7; + pixel_y = 7 + }, +/obj/item/clothing/under/color/jumpskirt/yellow{ + pixel_x = -7; + pixel_y = -7 + }, +/obj/item/clothing/under/color/jumpskirt/orange{ + pixel_y = -7 + }, +/obj/item/clothing/under/color/jumpskirt/red{ + pixel_x = 7; + pixel_y = -7 + }, +/turf/open/floor/wood/parquet, +/area/station/common/tailoring) +"rCL" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hallup40"; + location = "hallup39" + }, +/turf/open/floor/iron, +/area/station/commons/dorms) +"rCO" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/station/maintenance/library/lower) +"rCR" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/obj/machinery/door/airlock/atmos/glass{ + name = "Distribution Loop" + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/atmos/pumproom) +"rCS" = ( +/turf/open/floor/iron/shuttle/evac/airless, +/area/station/maintenance/fore/upper) +"rCT" = ( +/obj/effect/turf_decal/tile/red, +/obj/machinery/airalarm/directional/east, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/office) +"rCV" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/commons/dorms) +"rCX" = ( +/obj/effect/spawner/random/trash/cigbutt, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/science/ordnance_maint) +"rCY" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/bot, +/obj/structure/railing{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/primary/upper) +"rDq" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/growing/tray, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 9 + }, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) +"rDv" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/science/ordnance/office) +"rDy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"rDJ" = ( +/obj/structure/chair/sofa/corp/left, +/obj/item/toy/plush/space_lizard_plushie{ + name = "Observes-The-Laser" + }, +/obj/structure/railing{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 6 + }, +/turf/open/floor/iron/grimy, +/area/station/engineering/supermatter/room) +"rDK" = ( +/obj/structure/table/wood, +/obj/item/paper_bin{ + pixel_y = 3 + }, +/obj/item/pen{ + pixel_y = 3 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/command/meeting_room/council) +"rDL" = ( +/obj/structure/trash_pile, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"rDP" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/service/theater) +"rDS" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "ToxinsBridge" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/external, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"rDT" = ( +/obj/structure/cable, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/security/glass{ + name = "Shuttle Hangar" + }, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 1 + }, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/turf/open/floor/iron/dark/small, +/area/station/security/brig) +"rDU" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/bluespace_beacon, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/command/gateway) +"rDV" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/head/utility/hardhat, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"rEb" = ( +/turf/closed/wall, +/area/station/command/heads_quarters/cmo) +"rEd" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/pink/visible{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced/plasma, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/atmos_aux_port) +"rEf" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/firecloset, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/science/ordnance) +"rEg" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/effect/turf_decal/caution/stand_clear, +/obj/machinery/door/airlock/external{ + name = "External Docking Port" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/exit/departure_lounge) +"rEj" = ( +/obj/structure/hedge, +/turf/open/floor/glass/reinforced, +/area/station/security/prison/safe) +"rEk" = ( +/obj/effect/decal/cleanable/blood/gibs/old, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/freezer, +/area/station/maintenance/abandon_kitchen_upper) +"rEm" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/science/genetics) +"rEn" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 9 + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"rEy" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/porta_turret/ai, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/camera/autoname/directional/north, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat_interior) +"rED" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/science) +"rEH" = ( +/obj/structure/curtain/bounty, +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/service/electronic_marketing_den) +"rER" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"rES" = ( +/obj/effect/spawner/random/structure/closet_empty/crate, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"rFd" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/structure/frame/computer{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine, +/area/station/science/tele_sci) +"rFh" = ( +/obj/structure/cable, +/obj/machinery/camera/directional/north{ + c_tag = " Prison - Upper"; + network = list("ss13","prison") + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/newscaster/directional/north, +/obj/machinery/duct, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/prison/upper) +"rFk" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "Plasma to Pure" + }, +/obj/effect/turf_decal/stripes/end{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/station/engineering/atmos/upper) +"rFr" = ( +/obj/effect/turf_decal/trimline/red/line{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/red/filled/corner, +/turf/open/floor/iron/dark/corner, +/area/station/security/prison/upper) +"rFv" = ( +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet, +/area/station/service/electronic_marketing_den) +"rFA" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 5 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/science/research) +"rFD" = ( +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_port) +"rFH" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/door/airlock{ + id_tag = "Storefront"; + name = "Store Backroom" + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/common/tailoring) +"rFI" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"rFN" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/security/prison/mess) +"rFR" = ( +/obj/machinery/camera/directional/west{ + c_tag = "Prison gym"; + network = list("ss13","prison") + }, +/obj/item/kirbyplants/random, +/turf/open/floor/iron/dark, +/area/station/security/prison/workout) +"rFT" = ( +/obj/machinery/button/door/directional/north{ + id = "evashutters"; + name = "E.V.A. Shutters"; + pixel_x = 24; + pixel_y = 0; + req_access = list("command") + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/corner, +/obj/machinery/camera/directional/east{ + c_tag = "Command - E.V.A."; + name = "command camera" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/ai_monitored/command/storage/eva) +"rFV" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/wood, +/area/station/command/captain_dining) +"rFW" = ( +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/red/corner{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 10 + }, +/turf/open/floor/iron/dark/side{ + dir = 10 + }, +/area/station/security/prison) +"rGa" = ( +/obj/structure/chair/sofa/bench/left{ + dir = 4; + pixel_x = -5 + }, +/obj/machinery/light/directional/west, +/obj/effect/landmark/start/assistant, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/secondary/entry) +"rGh" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/bot, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"rGl" = ( +/obj/machinery/door/airlock/research{ + name = "Ordnance Launch Site" + }, +/obj/machinery/door/firedoor/heavy, +/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, +/obj/machinery/firealarm/directional/west, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/science/ordnance/testlab) +"rGn" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"rGo" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/light/directional/north, +/obj/machinery/vending/wardrobe/robo_wardrobe, +/turf/open/floor/iron/dark, +/area/station/science/robotics) +"rGs" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "garbage" + }, +/obj/machinery/door/window/right/directional/north{ + name = "Danger: Conveyor Access" + }, +/obj/machinery/door/window/right/directional/south{ + name = "Danger: Conveyor Access" + }, +/turf/open/floor/plating, +/area/station/maintenance/disposal) +"rGt" = ( +/obj/structure/chair/office, +/turf/open/floor/carpet/green, +/area/station/command/heads_quarters/nt_rep) +"rGx" = ( +/obj/structure/cable, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hallup10"; + location = "hallup9" + }, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/hallway/secondary/command) +"rGA" = ( +/obj/structure/table/wood/fancy/blue, +/obj/item/food/mint, +/turf/open/floor/carpet/blue, +/area/station/command/captain_dining) +"rGB" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/holopad/secure, +/turf/open/floor/iron/dark, +/area/station/security/interrogation) +"rGF" = ( +/obj/structure/bed/maint, +/obj/item/toy/plush/rouny, +/obj/machinery/flasher{ + id = "IsolationCell_2"; + pixel_x = 22; + pixel_y = 28 + }, +/obj/machinery/camera/directional/south{ + c_tag = " Prison - Isolation 2"; + network = list("ss13","prison") + }, +/obj/machinery/light/small/directional/south, +/turf/open/floor/vault/rock, +/area/station/security/prison/safe) +"rGQ" = ( +/obj/effect/spawner/random/trash/cigbutt, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"rGT" = ( +/obj/structure/table/wood, +/obj/item/paper_bin{ + pixel_y = 3 + }, +/obj/item/pen{ + pixel_y = 3 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood/parquet, +/area/station/security/detectives_office) +"rGZ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/science) +"rHj" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/dark/corner, +/obj/effect/turf_decal/trimline/dark/corner{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark/corner{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured_edge{ + dir = 8 + }, +/area/station/security/prison/safe) +"rHm" = ( +/obj/structure/chair/office{ + dir = 8 + }, +/obj/effect/landmark/start/geneticist, +/turf/open/floor/iron/white, +/area/station/science/genetics) +"rHu" = ( +/obj/structure/cable, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/office) +"rHv" = ( +/obj/structure/chair/pew/right{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/mineral/plastitanium, +/area/station/maintenance/cult_chapel_maint) +"rHB" = ( +/obj/item/trash/chips, +/turf/open/floor/plating, +/area/station/maintenance/department/science/upper) +"rHG" = ( +/obj/item/stack/sheet/cardboard, +/obj/item/storage/box/lights, +/obj/machinery/light/small/directional/north, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"rHH" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/chair/comfy/brown{ + color = "#A46106"; + dir = 8; + pixel_y = -3 + }, +/turf/open/floor/carpet/blue, +/area/station/command/heads_quarters/captain) +"rHI" = ( +/obj/item/kirbyplants/random, +/obj/machinery/firealarm/directional/south, +/obj/machinery/camera/directional/south{ + c_tag = "Security - Gear Room" + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/red/corner{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 10 + }, +/area/station/security/lockers) +"rHK" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"rHM" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/lattice, +/turf/open/space/openspace, +/area/space/nearstation) +"rHO" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/dark, +/area/station/tcommsat/computer) +"rHQ" = ( +/obj/structure/sink/directional/east, +/obj/machinery/camera/directional/west{ + c_tag = " Prison - Cell 1"; + network = list("ss13","prison") + }, +/obj/effect/landmark/start/prisoner, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/security/prison/safe) +"rHT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"rHV" = ( +/obj/effect/spawner/random/trash/mess, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"rIc" = ( +/obj/structure/rack, +/obj/effect/spawner/random/aimodule/harmful, +/obj/machinery/light/directional/east, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) +"rId" = ( +/obj/structure/toilet{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/tiled/white{ + name = "Padded tile" + }, +/area/station/medical/aslyum) +"rIh" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/sign/poster/random/directional/east, +/turf/open/floor/iron/smooth_corner{ + dir = 8 + }, +/area/station/cargo/miningdock) +"rIB" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/openspace, +/area/station/maintenance/fore/upper) +"rIC" = ( +/obj/machinery/suit_storage_unit/industrial, +/turf/open/floor/plating, +/area/station/cargo/storage) +"rIJ" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 4 + }, +/obj/effect/landmark/start/hangover/closet, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/central) +"rIK" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/structure/closet/secure_closet/freezer/fridge/open, +/turf/open/floor/wood, +/area/station/commons/dorms/room7) +"rIM" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/wood/large, +/area/station/service/theater/abandoned) +"rIP" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/commons/dorms) +"rIQ" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/commons/dorms) +"rIX" = ( +/obj/machinery/computer/prisoner/gulag_teleporter_computer{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"rJf" = ( +/obj/structure/window/reinforced/tinted/spawner/directional/east, +/obj/item/toy/plush/slimeplushie{ + name = "Lasertag Blue Flag" + }, +/obj/structure/window/reinforced/tinted/spawner/directional/south, +/obj/structure/window/reinforced/tinted/spawner/directional/north, +/obj/effect/turf_decal/tile/dark_blue/fourcorners, +/turf/open/floor/iron/dark, +/area/station/common/laser_tag) +"rJh" = ( +/obj/machinery/corral_corner{ + mapping_id = "6" + }, +/obj/machinery/slime_pen_controller{ + mapping_id = "6" + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"rJj" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/light_switch/directional/south, +/turf/open/floor/carpet/blue, +/area/station/service/lawoffice) +"rJm" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted, +/obj/machinery/newscaster/directional/south, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"rJn" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/sign/picture_frame/showroom/three{ + pixel_x = -8; + pixel_y = 32 + }, +/obj/structure/sign/picture_frame/showroom/four{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/iron/dark, +/area/station/command/meeting_room/council) +"rJo" = ( +/obj/structure/chair/sofa/bench/right{ + dir = 8; + pixel_x = 5 + }, +/obj/machinery/light/directional/east, +/obj/effect/landmark/start/assistant, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/secondary/entry) +"rJC" = ( +/obj/structure/disposalpipe/junction/flip{ + dir = 2 + }, +/turf/open/floor/iron/dark/side, +/area/station/hallway/primary/central) +"rJL" = ( +/obj/structure/table/wood, +/obj/item/food/grown/harebell, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/station/service/chapel/funeral) +"rJM" = ( +/obj/effect/spawner/random/trash/bin, +/turf/open/floor/plating, +/area/station/maintenance/department/security/prison_upper) +"rJO" = ( +/obj/structure/table/wood/fancy/red, +/obj/machinery/newscaster/directional/south, +/obj/item/storage/toolbox/guncase/skyrat/pistol/pepperball, +/turf/open/floor/wood, +/area/station/command/heads_quarters/hos) +"rJQ" = ( +/obj/effect/decal/remains/human, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) +"rJT" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/iron/dark, +/area/station/science/xenobiology/control) +"rJW" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/wood, +/area/station/hallway/primary/central) +"rJZ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/service/hydroponics/garden) +"rKn" = ( +/turf/closed/wall, +/area/station/maintenance/port/fore) +"rKq" = ( +/obj/machinery/door/airlock/maintenance, +/obj/structure/barricade/wooden/crude, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) +"rKw" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/science/ordnance) +"rKC" = ( +/obj/structure/table/reinforced, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/poddoor/shutters{ + id = "SnacksKitchen"; + name = "Snack Bar Shutters" + }, +/turf/open/floor/iron/dark, +/area/station/common/wrestling/concessions) +"rKG" = ( +/turf/open/floor/iron/dark, +/area/station/maintenance/department/security/prison_upper) +"rKI" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/east, +/obj/structure/window/spawner/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/abandon_wrestle) +"rKJ" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/door/window/right/directional/west{ + name = "Research Delivery"; + req_access = list("research") + }, +/turf/open/floor/iron/dark, +/area/station/science/research) +"rKN" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/maintenance/solars/port/fore) +"rKP" = ( +/obj/structure/sign/departments/cargo, +/turf/closed/wall, +/area/station/security/prison/upper) +"rKQ" = ( +/obj/machinery/photocopier, +/turf/open/floor/carpet, +/area/station/maintenance/abandon_office) +"rKX" = ( +/obj/machinery/button/curtain{ + id = "prisoncell3"; + pixel_y = 21 + }, +/obj/structure/bed{ + dir = 4 + }, +/obj/item/bedsheet/orange{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/dark, +/area/station/security/prison/safe) +"rLe" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rdtoxins"; + name = "Toxins Lab Shutters" + }, +/obj/machinery/door/airlock/research{ + name = "Ordnance Lab" + }, +/obj/machinery/door/firedoor/heavy, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/science/ordnance) +"rLf" = ( +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/turf/open/floor/circuit/telecomms/mainframe, +/area/station/tcommsat/server) +"rLm" = ( +/obj/effect/spawner/random/trash/mess, +/turf/open/floor/plating, +/area/station/maintenance/department/science/ordnance_maint) +"rLE" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/abandon_arcade) +"rLF" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"rLH" = ( +/obj/structure/closet/crate, +/obj/structure/grille/broken, +/obj/effect/spawner/random/entertainment/gambling, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"rLL" = ( +/obj/effect/turf_decal/stripes/red/line{ + dir = 6 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"rLU" = ( +/obj/structure/toilet{ + dir = 1 + }, +/obj/machinery/light/small/directional/south, +/obj/structure/sink/directional/west, +/obj/structure/mirror/directional/east, +/turf/open/floor/iron/freezer, +/area/station/commons/dorms/room6) +"rMc" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"rMd" = ( +/obj/structure/girder, +/obj/structure/grille/broken, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"rMe" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/hallway/secondary/entry) +"rMm" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"rMr" = ( +/turf/closed/wall, +/area/station/engineering/storage/tech) +"rMu" = ( +/obj/structure/chair/office{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/obj/machinery/button/ticket_machine{ + pixel_x = 25; + pixel_y = 25 + }, +/obj/machinery/button/flasher{ + id = "hopflash"; + pixel_x = 25; + pixel_y = 35; + req_access = list("kitchen") + }, +/obj/effect/landmark/start/head_of_personnel, +/turf/open/floor/wood, +/area/station/command/heads_quarters/hop) +"rMy" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/security/lesser) +"rMz" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hallup3"; + location = "hallup2" + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"rMA" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/door/airlock{ + name = "Defense Attorney Office"; + req_access = list("lawyer") + }, +/turf/open/floor/iron, +/area/station/security/courtroom) +"rMM" = ( +/obj/effect/turf_decal/tile/blue/fourcorners, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/chair/stool, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/exam_room) +"rMP" = ( +/obj/structure/sign/picture_frame/showroom/four{ + pixel_y = 32 + }, +/obj/machinery/airalarm/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/duct, +/turf/open/floor/carpet/green, +/area/station/command/heads_quarters/nt_rep) +"rNa" = ( +/turf/open/floor/wood, +/area/station/hallway/primary/central) +"rNd" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white/side{ + dir = 4 + }, +/area/station/medical/medbay/lobby) +"rNe" = ( +/obj/machinery/door/airlock/engineering{ + name = "Science Power Station" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/any/science/rd, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/science/power_station) +"rNl" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Auxiliary Hallway" + }, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/port) +"rNn" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/effect/spawner/random/trash/mess, +/turf/open/floor/plating/reinforced{ + initial_gas_mix = "TEMP=2.7" + }, +/area/station/science/ordnance/bomb) +"rNv" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/storage) +"rNy" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/hallway/primary/port) +"rNG" = ( +/obj/item/radio/intercom/directional/east, +/obj/structure/bed/roller{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue/fourcorners, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"rNT" = ( +/obj/structure/cable, +/turf/open/floor/iron/dark/textured_large, +/area/station/ai_monitored/security/armory) +"rNV" = ( +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"rNY" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/security/checkpoint/escape) +"rOc" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/command/bridge) +"rOe" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/spawner/random/trash/mess, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/bar) +"rOj" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/item/flashlight/lamp/green{ + pixel_y = 11 + }, +/obj/item/toy/figure/prisoner, +/turf/open/floor/carpet, +/area/station/security/prison/rec) +"rOl" = ( +/obj/machinery/light/directional/north, +/obj/machinery/status_display/ai/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/stairs/left{ + dir = 8 + }, +/area/station/hallway/primary/upper) +"rOx" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/carpet, +/area/station/security/courtroom) +"rOy" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/item/kirbyplants/random, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/command/secure_bunker) +"rOD" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/contraband/gorlex_recruitment/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"rOF" = ( +/obj/structure/table, +/obj/machinery/camera/directional/north{ + c_tag = "Science - Robotics Surgery"; + name = "science camera"; + network = list("ss13","rd") + }, +/obj/item/mmi, +/obj/item/mmi, +/obj/item/mmi, +/turf/open/floor/iron, +/area/station/science/robotics) +"rOH" = ( +/obj/machinery/light/small/directional/east, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"rOM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron/grimy, +/area/station/command/heads_quarters/captain/private) +"rON" = ( +/obj/effect/turf_decal/tile/blue/half/contrasted, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/command) +"rPi" = ( +/obj/structure/table/glass, +/obj/structure/cable, +/obj/item/storage/fancy/coffee_cart_rack{ + pixel_x = -8; + pixel_y = 8 + }, +/obj/item/coffee_cartridge, +/obj/item/coffee_cartridge, +/obj/item/coffee_cartridge, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) +"rPm" = ( +/obj/machinery/shower/directional/west, +/obj/structure/drain, +/turf/open/floor/iron/freezer, +/area/station/common/pool) +"rPr" = ( +/turf/open/floor/iron/stairs/left, +/area/station/commons/dorms) +"rPt" = ( +/obj/effect/decal/cleanable/dirt, +/turf/closed/wall, +/area/station/service/chapel) +"rPv" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 9 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/science/cytology) +"rPy" = ( +/obj/machinery/door/airlock/grunge{ + name = "Morgue" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/medical/morgue, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/landmark/navigate_destination, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/medical/morgue) +"rPB" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"rPE" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 5 + }, +/obj/structure/flora/bush/jungle/a/style_3, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"rPM" = ( +/obj/structure/toilet{ + pixel_y = 10 + }, +/obj/machinery/button/door/directional/south{ + id = "Toilet1"; + name = "Lock Control"; + normaldoorcontrol = 1; + specialfunctions = 4 + }, +/obj/machinery/light/small/directional/east, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/commons/toilet/restrooms) +"rPQ" = ( +/obj/effect/turf_decal/bot_white/right, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/engineering/gravity_generator) +"rPS" = ( +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/item/soap/homemade, +/obj/item/melee/flyswatter, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/fore/upper) +"rPX" = ( +/obj/structure/chair/wood{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/red, +/area/station/service/library/abandoned) +"rPZ" = ( +/turf/closed/wall/r_wall, +/area/station/science/xenobiology/control) +"rQc" = ( +/obj/item/kirbyplants/random, +/obj/machinery/camera/directional/east{ + c_tag = "Central Hallway - Starboard Aft"; + dir = 10; + name = "hallway camera" + }, +/obj/structure/sign/poster/random/directional/west, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/primary/central/aft) +"rQh" = ( +/obj/structure/flora/bush/sparsegrass{ + pixel_y = 5 + }, +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/grass, +/area/station/service/chapel) +"rQn" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/sheet/cardboard, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/effect/landmark/generic_maintenance_landmark, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"rQp" = ( +/obj/structure/table/wood/fancy/green, +/obj/effect/turf_decal/siding/wood, +/obj/item/storage/briefcase{ + pixel_x = 3; + pixel_y = 3 + }, +/turf/open/floor/wood, +/area/station/security/courtroom) +"rQt" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/station/common/tailoring) +"rQv" = ( +/obj/machinery/shower/directional/north, +/obj/structure/drain, +/obj/effect/turf_decal/trimline/blue/end{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_large, +/area/station/service/barber) +"rRe" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/recharge_station, +/obj/effect/landmark/start/cyborg, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat_interior) +"rRh" = ( +/obj/effect/turf_decal/bot_white, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/command/gateway) +"rRi" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/cmo) +"rRk" = ( +/obj/machinery/disposal/bin, +/obj/machinery/camera/directional/south{ + c_tag = "Recreation - Starboard Arcade"; + name = "hallway camera" + }, +/obj/machinery/light/directional/south, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/turf/open/floor/eighties/red, +/area/station/common/arcade) +"rRu" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"rRv" = ( +/obj/effect/turf_decal/trimline/purple/filled/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"rRw" = ( +/obj/effect/turf_decal/stripes/box, +/obj/structure/cable, +/obj/machinery/power/shieldwallgen/anchored{ + shield_range = 14 + }, +/turf/open/floor/plating/airless, +/area/station/maintenance/eva_shed/starboard) +"rRC" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/eva) +"rRJ" = ( +/obj/structure/table, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"rRM" = ( +/obj/machinery/status_display/ai, +/turf/closed/wall, +/area/station/command/heads_quarters/captain) +"rRT" = ( +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ + dir = 6 + }, +/turf/open/floor/engine, +/area/station/science/explab) +"rRU" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/item/kirbyplants/organic/plant21, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/security/execution/education) +"rSj" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/mining{ + name = "Cargo Bay" + }, +/obj/effect/mapping_helpers/airlock/access/all/supply/general, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/sorting) +"rSs" = ( +/turf/open/floor/glass/reinforced, +/area/station/security/prison) +"rSw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/sign/poster/contraband/icebox_moment/directional/west, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"rSz" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "Luggagebelt" + }, +/turf/open/floor/plating, +/area/station/security/checkpoint/customs) +"rSB" = ( +/obj/machinery/holopad/secure, +/obj/effect/turf_decal/bot_white, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai) +"rSK" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Public Pool" + }, +/obj/machinery/door/firedoor, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/dorms) +"rSM" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/science/research) +"rSN" = ( +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat/hallway) +"rSX" = ( +/obj/structure/stairs/south, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"rSY" = ( +/obj/structure/table/reinforced, +/obj/item/storage/toolbox/electrical, +/obj/item/clothing/gloves/color/yellow, +/obj/item/stack/cable_coil, +/obj/item/multitool, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) +"rSZ" = ( +/obj/item/kirbyplants/random, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/commons/dorms) +"rTb" = ( +/obj/structure/table, +/obj/item/storage/bag/tray, +/obj/item/storage/bag/tray, +/obj/item/storage/bag/tray, +/obj/item/storage/bag/tray, +/obj/item/storage/bag/tray, +/obj/item/storage/bag/tray, +/obj/machinery/dish_drive{ + pixel_y = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron, +/area/station/command/captain_dining) +"rTc" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Equipment Requisition" + }, +/obj/effect/turf_decal/delivery/blue, +/obj/structure/cable, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/turf/open/floor/iron/dark, +/area/station/security/office) +"rTv" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/item/paper_bin{ + pixel_y = 3 + }, +/obj/item/pen{ + pixel_y = 4 + }, +/obj/effect/turf_decal/tile/blue/half/contrasted, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/customs/auxiliary) +"rTx" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"rTB" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/bar) +"rTF" = ( +/obj/structure/lattice/catwalk, +/turf/open/openspace/airless, +/area/station/maintenance/port/upper) +"rTH" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/service/theater/abandoned) +"rTL" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Medbay Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/medical/general, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"rUb" = ( +/obj/machinery/button/curtain{ + id = "prisoncell7"; + pixel_y = 21 + }, +/obj/structure/bed, +/obj/item/bedsheet/orange, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/dark, +/area/station/security/prison/safe) +"rUd" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"rUl" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/structure/closet_maintenance, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_port) +"rUt" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"rUv" = ( +/obj/machinery/light/floor/has_bulb, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"rUA" = ( +/obj/machinery/door/airlock/external{ + space_dir = 8 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "ToxinsBridge" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/external, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"rUD" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light_switch/directional/south, +/turf/open/floor/iron, +/area/station/hallway/secondary/construction) +"rUF" = ( +/obj/machinery/power/shuttle_engine/heater{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"rVd" = ( +/obj/machinery/power/shuttle_engine/heater{ + dir = 1 + }, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/science/research/abandoned) +"rVg" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/north, +/turf/open/floor/wood, +/area/station/service/hydroponics/garden/abandoned) +"rVh" = ( +/obj/machinery/status_display/evac/directional/north, +/obj/structure/railing, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai) +"rVq" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/caution/stand_clear/blue{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/security/brig) +"rVw" = ( +/obj/structure/table, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/machinery/door/window/brigdoor/left/directional/west{ + name = "Firing Range" + }, +/turf/open/floor/iron/dark, +/area/station/science/auxlab/firing_range) +"rVz" = ( +/obj/effect/turf_decal/delivery/white{ + color = "#00ff00"; + name = "green" + }, +/obj/machinery/cryopod{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/security/prison/upper) +"rVD" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"rVE" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hall20"; + location = "hall19" + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"rVF" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/machinery/camera/directional/south{ + c_tag = "Cargo - Quartermaster's office"; + dir = 1 + }, +/obj/structure/table/wood/fancy/royalblack, +/obj/item/modular_computer/laptop, +/turf/open/floor/carpet/royalblack, +/area/station/command/heads_quarters/qm) +"rVN" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Penalty Chamber" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/security/brig, +/turf/open/floor/iron/dark, +/area/station/security/execution/education) +"rVR" = ( +/obj/effect/turf_decal/loading_area{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/end, +/obj/machinery/status_display/ai/directional/west, +/turf/open/floor/iron/dark, +/area/station/command/gateway) +"rVU" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/science/robotics) +"rWg" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/light/directional/east, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"rWk" = ( +/obj/effect/turf_decal/stripes{ + dir = 6 + }, +/obj/structure/cable, +/turf/open/floor/circuit, +/area/station/command/gateway) +"rWm" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/command/heads_quarters/rd) +"rWn" = ( +/obj/structure/table, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/machinery/requests_console/directional/south{ + department = "Genetics"; + name = "Genetics Requests console"; + pixel_x = -30; + pixel_y = 0 + }, +/obj/item/bouquet/rose, +/turf/open/floor/iron/dark, +/area/station/science/genetics) +"rWt" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/north, +/obj/structure/window/spawner/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"rWB" = ( +/obj/structure/table/wood, +/obj/item/book/manual/wiki/medicine, +/obj/item/book/manual/wiki/engineering_hacking{ + pixel_x = -4; + pixel_y = -3 + }, +/turf/open/floor/carpet, +/area/station/service/library/printer) +"rWM" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/cargo/miningoffice) +"rWO" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"rWP" = ( +/obj/structure/table, +/obj/item/folder/yellow, +/turf/open/floor/iron, +/area/station/maintenance/solars/starboard/fore) +"rWQ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"rXb" = ( +/obj/structure/bodycontainer/morgue{ + dir = 8 + }, +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/iron/dark, +/area/station/service/chapel) +"rXc" = ( +/obj/structure/cable, +/obj/machinery/power/smes/super/full, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/ai) +"rXe" = ( +/obj/structure/bed/roller, +/obj/machinery/iv_drip, +/obj/effect/turf_decal/bot, +/obj/machinery/light/small/directional/east, +/turf/open/floor/iron/dark, +/area/station/maintenance/abandon_exam/cat) +"rXg" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/commons/dorms) +"rXk" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/security/brig) +"rXm" = ( +/obj/machinery/camera/directional/north{ + c_tag = "Xenobiology - Killroom Chamber"; + name = "xenobiology camera"; + network = list("ss13","xeno","rd") + }, +/turf/open/floor/iron/freezer, +/area/station/science/xenobiology) +"rXp" = ( +/obj/machinery/camera/autoname/directional/west, +/turf/open/floor/iron, +/area/station/hallway/secondary/command) +"rXr" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/landmark/start/security_officer, +/turf/open/floor/iron, +/area/station/security/office) +"rXx" = ( +/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/cargo/office) +"rXy" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/machinery/airalarm/directional/east, +/obj/structure/extinguisher_cabinet/directional/south, +/turf/open/floor/engine, +/area/station/command/secure_bunker) +"rXC" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 5 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"rXM" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"rXO" = ( +/obj/machinery/light/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/command/bridge) +"rXP" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_port) +"rXY" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/maintenance/abandon_diner) +"rYe" = ( +/obj/effect/turf_decal/box/corners, +/obj/effect/turf_decal/box/corners{ + dir = 8 + }, +/obj/effect/turf_decal/box/corners{ + dir = 4 + }, +/obj/effect/turf_decal/box/corners{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/science/xenobiology) +"rYf" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron, +/area/station/engineering/storage/tech) +"rYi" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/west, +/obj/structure/window/spawner/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"rYl" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/commons/dorms) +"rYr" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/wrestle) +"rYv" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"rYx" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 1 + }, +/obj/structure/flora/bush/jungle/a/style_3, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"rYH" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/ai_monitored/command/storage/eva) +"rYQ" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"rYT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"rYU" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron/white, +/area/station/medical/surgery/theatre) +"rYW" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/item/multitool{ + pixel_x = -5 + }, +/obj/item/multitool{ + pixel_x = -5 + }, +/obj/item/t_scanner{ + pixel_x = 6; + pixel_y = 3 + }, +/obj/item/t_scanner{ + pixel_x = 6; + pixel_y = 3 + }, +/obj/item/analyzer, +/obj/item/analyzer, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva/upper) +"rZj" = ( +/obj/effect/turf_decal/stripes, +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"rZk" = ( +/obj/structure/bed/double, +/obj/item/bedsheet/nanotrasen/double, +/obj/machinery/light_switch/directional/south, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/carpet/executive, +/area/station/command/heads_quarters/blueshield) +"rZl" = ( +/obj/machinery/door/airlock/highsecurity{ + name = "Gravity Generator Room" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/sign/warning/radiation/directional/north, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "grav-gen" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/construction, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/engineering/gravity_generator) +"rZq" = ( +/obj/effect/turf_decal/stripes/box, +/turf/open/floor/iron/recharge_floor, +/area/station/security/mechbay) +"rZu" = ( +/obj/item/storage/crayons{ + pixel_x = 2; + pixel_y = 8 + }, +/obj/item/storage/toolbox/artistic, +/obj/structure/table/wood, +/turf/open/floor/grass, +/area/station/medical/patients_rooms) +"rZz" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/side, +/area/station/security/prison) +"rZC" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/item/kirbyplants/random, +/turf/open/floor/iron/dark, +/area/station/security/prison) +"rZG" = ( +/obj/structure/table/wood, +/obj/item/paper_bin{ + pixel_y = 3 + }, +/obj/item/pen{ + pixel_y = 3 + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/rd) +"rZJ" = ( +/turf/closed/wall/r_wall, +/area/station/command/gateway) +"rZM" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/tile/bar/opposingcorners{ + dir = 1 + }, +/obj/machinery/camera/autoname/directional/west, +/turf/open/floor/iron, +/area/station/service/kitchen/diner) +"rZN" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 10 + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"rZO" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/landmark/start/hangover, +/turf/open/floor/eighties/red, +/area/station/common/arcade) +"rZR" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/item/storage/box/monkeycubes{ + pixel_x = 6; + pixel_y = 9 + }, +/obj/item/storage/box/monkeycubes{ + pixel_x = 4 + }, +/obj/item/reagent_containers/spray/cleaner{ + pixel_x = -10; + pixel_y = -1 + }, +/turf/open/floor/iron/dark, +/area/station/science/genetics) +"rZZ" = ( +/turf/closed/wall/r_wall, +/area/station/engineering/lobby) +"sac" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/item/storage/box/beakers{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/box/syringes, +/obj/machinery/light/small/directional/west, +/obj/item/restraints/handcuffs, +/turf/open/floor/iron, +/area/station/medical/virology/isolation) +"sak" = ( +/obj/structure/bed/dogbed/mcgriff, +/mob/living/basic/pet/dog/pug/mcgriff, +/obj/machinery/light/small/directional/north, +/turf/open/floor/carpet/red, +/area/station/security/warden) +"sal" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/sorting/mail{ + dir = 4; + name = "Toxin Junction"; + sortType = 25 + }, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/science/ordnance) +"saz" = ( +/obj/effect/turf_decal/trimline/red, +/turf/open/floor/iron/dark/small, +/area/station/security/brig) +"saC" = ( +/obj/structure/girder, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"saL" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 10 + }, +/obj/machinery/airalarm/directional/west, +/obj/machinery/light/directional/west, +/obj/machinery/chem_mass_spec, +/turf/open/floor/iron/white, +/area/station/medical/pharmacy) +"saM" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/start/hangover, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"saO" = ( +/obj/structure/bed/double, +/obj/item/bedsheet/ce/double, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/ce) +"saS" = ( +/obj/machinery/chem_master/condimaster, +/turf/open/floor/iron/dark, +/area/station/security/prison/mess) +"saV" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/window/spawner/directional/south, +/obj/structure/displaycase/forsale/kitchen{ + pixel_y = 8 + }, +/turf/open/floor/iron/dark, +/area/station/common/tailoring) +"sba" = ( +/obj/effect/spawner/random/trash/mopbucket, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"sbg" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/service/electronic_marketing_den) +"sbk" = ( +/obj/machinery/camera/directional/north{ + c_tag = "Holodeck - Fore 2"; + name = "holodeck camera" + }, +/turf/open/floor/engine{ + name = "Holodeck Projector Floor" + }, +/area/station/holodeck/rec_center) +"sbm" = ( +/obj/structure/chair/office{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/security/detectives_office) +"sbn" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/security/checkpoint/medical) +"sbo" = ( +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"sbr" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"sbw" = ( +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/structure/window/spawner/directional/south, +/obj/structure/ore_container/gutlunch_trough{ + name = "feeding trough" + }, +/turf/open/floor/grass, +/area/station/common/night_club) +"sbx" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/camera/directional/north{ + c_tag = "Security - Foyer" + }, +/obj/machinery/light/directional/north, +/obj/effect/landmark/secequipment, +/obj/effect/turf_decal/trimline/red/line, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_edge{ + dir = 1 + }, +/area/station/security/office) +"sbF" = ( +/obj/structure/flora/tree/jungle, +/obj/structure/flora/rock/pile, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"sbH" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/machinery/newscaster/directional/west, +/obj/item/disk/ammo_workbench/advanced, +/obj/effect/turf_decal/trimline/red/line{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured_edge{ + dir = 8 + }, +/area/station/ai_monitored/security/armory) +"sbQ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/common/wrestling/arena) +"sbR" = ( +/turf/closed/wall, +/area/station/maintenance/department/medical) +"sbZ" = ( +/obj/structure/grille, +/turf/open/space/basic, +/area/space/nearstation) +"sca" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/command/heads_quarters/rd) +"scb" = ( +/obj/structure/table/glass, +/obj/item/folder/white, +/obj/item/pen/red, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 10 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/machinery/camera/autoname/directional/west{ + network = list("ss13","medbay") + }, +/turf/open/floor/iron/white, +/area/station/medical/virology) +"scc" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/iron, +/area/station/maintenance/console_room) +"sci" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green/half/contrasted{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"sck" = ( +/obj/machinery/light/directional/west, +/obj/machinery/newscaster/directional/west, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hallup7"; + location = "hallup6" + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/secondary/command) +"sco" = ( +/obj/machinery/light/floor/has_bulb, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/engineering/transit_tube) +"scr" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/blueshield) +"scw" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/machinery/status_display/ai/directional/east, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/ai) +"scy" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/common/night_club/changing_room) +"scG" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Central Hallway" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"scI" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/station/science/robotics/lab) +"scJ" = ( +/obj/structure/girder, +/obj/structure/grille/broken, +/obj/structure/window/reinforced/tinted/spawner/directional/east, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"scL" = ( +/obj/machinery/light/small/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"scO" = ( +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/station/security/courtroom) +"scR" = ( +/obj/machinery/igniter/incinerator_ordmix, +/mob/living/basic/chicken/teshari, +/turf/open/floor/engine, +/area/station/science/ordnance/burnchamber) +"sdh" = ( +/obj/machinery/door/airlock/external{ + name = "External Thrusters Access" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/external, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"sdi" = ( +/turf/open/floor/engine, +/area/station/cargo/miningdock) +"sdu" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"sdw" = ( +/turf/open/floor/mineral/plastitanium, +/area/station/science/robotics/mechbay) +"sdx" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 8 + }, +/obj/effect/landmark/event_spawn, +/obj/structure/cable, +/turf/open/floor/mineral/plastitanium/red, +/area/station/maintenance/cult_chapel_maint) +"sdC" = ( +/obj/effect/turf_decal/stripes/corner, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"sdE" = ( +/obj/structure/chair/comfy/black{ + dir = 8 + }, +/turf/open/floor/carpet/blue, +/area/station/command/heads_quarters/cmo) +"sdF" = ( +/turf/open/floor/iron/smooth_edge{ + dir = 1 + }, +/area/station/cargo/miningdock) +"sdG" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes{ + dir = 10 + }, +/obj/machinery/shieldgen, +/turf/open/floor/iron, +/area/station/engineering/storage) +"sdK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/common/wrestling/arena) +"sdM" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain/private) +"sdO" = ( +/obj/item/trash/can, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"sdR" = ( +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"sdU" = ( +/turf/open/misc/beach/sand, +/area/station/hallway/primary/aft) +"sdV" = ( +/obj/structure/closet/radiation, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plating, +/area/station/engineering/atmos) +"sdZ" = ( +/obj/effect/turf_decal/stripes, +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/pumproom) +"sea" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/purple/half, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron/white/side, +/area/station/science) +"seh" = ( +/obj/item/kirbyplants/organic/plant21, +/turf/open/floor/iron/chapel{ + dir = 4 + }, +/area/station/service/chapel) +"sej" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/door/airlock/mining{ + name = "Cargo Bay" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/supply/general, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/storage) +"sek" = ( +/obj/structure/table/wood/poker, +/obj/effect/spawner/random/entertainment/gambling, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"sen" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/security/range) +"ses" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/cargo/sorting) +"seG" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/command/heads_quarters/hos) +"seI" = ( +/obj/structure/window/spawner/directional/east, +/obj/item/skillchip/wine_taster, +/obj/item/skillchip/light_remover, +/obj/item/skillchip/bonsai, +/obj/item/skillchip/basketweaving, +/obj/structure/rack, +/obj/machinery/newscaster/directional/north, +/turf/open/floor/iron/dark, +/area/station/service/library/printer) +"seM" = ( +/turf/closed/wall, +/area/station/cargo/miningoffice) +"seO" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/light/directional/east, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/dark/side, +/area/station/hallway/primary/upper) +"seT" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/obj/effect/landmark/start/medical_doctor, +/turf/open/floor/iron/white, +/area/station/medical/cryo) +"sfa" = ( +/obj/structure/filingcabinet/chestdrawer/wheeled, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/science/lab) +"sfd" = ( +/obj/machinery/button/door{ + id = "xeno9"; + name = "Top Shutters Containment Control"; + pixel_x = 30; + pixel_y = 7; + req_access = list("xenobiology") + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/obj/machinery/button/door{ + id = "xenosecure"; + name = "Containment Control"; + pixel_x = 30; + pixel_y = -6; + req_access = list("xenobiology") + }, +/obj/structure/table/reinforced, +/obj/item/paper_bin{ + pixel_x = 9; + pixel_y = 3 + }, +/obj/item/pen{ + pixel_x = 1; + pixel_y = 3 + }, +/turf/open/floor/iron/dark, +/area/station/science/xenobiology/control) +"sfe" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/sign/departments/cargo/directional/north, +/obj/machinery/conveyor_switch/oneway{ + id = "Luggagebelt"; + name = "Luggage conveyor switch"; + pixel_y = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/central) +"sfn" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/item/ammo_box/foambox, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"sfs" = ( +/obj/structure/table, +/obj/effect/spawner/random/clothing/twentyfive_percent_cyborg_mask, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"sfw" = ( +/obj/structure/table/wood/fancy/green, +/obj/effect/spawner/random/entertainment/gambling, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/service/abandoned_gambling_den) +"sfO" = ( +/obj/structure/window/spawner/directional/north, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/structure/chair/wood, +/turf/open/floor/wood, +/area/station/service/cafeteria) +"sfS" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/spawner/random/structure/steam_vent, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"sfX" = ( +/obj/machinery/door/airlock/research{ + name = "Research and Development Lab" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rdrnd"; + name = "Research and Development Shutters" + }, +/obj/effect/turf_decal/trimline/purple/filled/warning, +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/effect/mapping_helpers/airlock/access/all/science/general, +/turf/open/floor/iron/white, +/area/station/science/lab) +"sge" = ( +/obj/machinery/portable_atmospherics/canister/water_vapor, +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron/dark/side, +/area/station/hallway/primary/port) +"sgi" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/bookcase/random/adult, +/turf/open/floor/wood, +/area/station/security/prison/rec) +"sgp" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/structure/sign/poster/random/directional/east, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"sgq" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/security/checkpoint/customs/auxiliary) +"sgt" = ( +/obj/structure/flora/bush/jungle/b, +/obj/structure/flora/bush/flowers_br, +/obj/structure/window/fulltile, +/turf/open/floor/grass, +/area/station/hallway/primary/upper) +"sgw" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 6 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/camera/autoname/directional/east{ + network = list("ss13","medbay") + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"sgz" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/security/power_station) +"sgD" = ( +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/entry) +"sgI" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 6 + }, +/obj/machinery/newscaster/directional/south, +/turf/open/floor/iron/white, +/area/station/science/research) +"sgU" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/dorms) +"sgW" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/red/anticorner/contrasted, +/obj/item/mod/module/plasma_stabilizer, +/obj/item/mod/module/signlang_radio, +/obj/item/mod/module/thermal_regulator, +/turf/open/floor/iron/dark, +/area/station/security/office) +"sgZ" = ( +/obj/structure/cable, +/turf/open/floor/iron/smooth, +/area/station/cargo/power_station/upper) +"sha" = ( +/obj/structure/table, +/obj/effect/spawner/random/food_or_drink/donkpockets, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"shb" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/security/checkpoint/medical) +"she" = ( +/obj/structure/closet/crate/freezer/blood, +/obj/machinery/light/directional/north, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron/white, +/area/station/medical/coldroom) +"shq" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/dark/corner, +/obj/effect/turf_decal/trimline/dark/corner{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark/corner, +/obj/effect/turf_decal/siding/thinplating_new/dark/corner{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured_edge{ + dir = 8 + }, +/area/station/security/prison/safe) +"shr" = ( +/obj/structure/table, +/obj/machinery/recharger{ + pixel_y = 3 + }, +/obj/machinery/status_display/evac/directional/west, +/turf/open/floor/iron/dark, +/area/station/command/gateway) +"shu" = ( +/obj/structure/table/reinforced, +/obj/item/paper_bin, +/obj/item/pen, +/obj/effect/turf_decal/tile/yellow/full, +/turf/open/floor/iron/large, +/area/station/command/heads_quarters/ce) +"shI" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/wrestle) +"shK" = ( +/obj/effect/turf_decal/siding/blue{ + dir = 4 + }, +/obj/effect/turf_decal/siding/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/simple/general/visible, +/turf/open/floor/iron/dark/telecomms, +/area/station/science/server) +"shP" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Ward Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/medical/psychology, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"shS" = ( +/obj/structure/shipping_container/nanotrasen{ + layer = 4.6 + }, +/turf/open/floor/iron/dark/small, +/area/station/cargo/miningdock) +"shW" = ( +/obj/item/kirbyplants/random, +/obj/structure/extinguisher_cabinet/directional/south, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/command/gateway) +"shY" = ( +/obj/machinery/telecomms/server/presets/supply, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 6 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/iron/telecomms, +/area/station/tcommsat/server) +"shZ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/window/spawner/directional/east, +/obj/structure/closet/secure_closet/personal/cabinet, +/turf/open/floor/carpet/orange, +/area/station/commons/dorms/room1) +"sia" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/engineering/atmos) +"sik" = ( +/obj/structure/flora/bush/fullgrass/style_random, +/obj/structure/flora/bush/flowers_pp, +/turf/open/floor/grass, +/area/station/medical/patients_rooms) +"siB" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"siD" = ( +/turf/open/floor/eighties/red, +/area/station/common/arcade) +"siK" = ( +/obj/structure/closet/crate/trashcart, +/obj/effect/turf_decal/bot, +/obj/item/storage/bag/trash, +/obj/machinery/camera/directional/east{ + c_tag = "Leisure Hallway - Custodial Closet"; + name = "hallway camera" + }, +/obj/machinery/airalarm/directional/east, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/hallway/primary/port) +"siP" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/bed/dogbed, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/engine, +/area/station/command/secure_bunker) +"siV" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/camera/directional/south{ + c_tag = " Prison - Coldroom"; + network = list("ss13","prison") + }, +/obj/machinery/light/small/directional/east, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/security/prison/mess) +"siW" = ( +/obj/effect/spawner/random/structure/closet_empty/crate, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"siX" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"sjd" = ( +/obj/machinery/light_switch/directional/south, +/obj/structure/cable, +/turf/open/floor/iron/dark/herringbone, +/area/station/security/range) +"sjf" = ( +/obj/structure/table/reinforced, +/obj/item/mod/module/plasma_stabilizer, +/obj/item/mod/module/signlang_radio, +/obj/item/mod/module/thermal_regulator, +/turf/open/floor/iron/dark, +/area/station/engineering/storage_shared) +"sjh" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"sjj" = ( +/turf/open/floor/iron/dark/side{ + dir = 10 + }, +/area/station/commons/fitness) +"sjk" = ( +/obj/effect/turf_decal/trimline/red/filled/corner{ + color = "#DE3A3A"; + dir = 4 + }, +/obj/machinery/pdapainter/security, +/obj/structure/railing, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hos) +"sjq" = ( +/turf/open/floor/glass/reinforced, +/area/station/security/checkpoint/customs/auxiliary) +"sjs" = ( +/obj/structure/rack, +/obj/item/storage/toolbox/mechanical, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating/airless, +/area/station/maintenance/fore/upper) +"sjx" = ( +/obj/structure/chair/comfy/black, +/obj/effect/landmark/start/head_of_security, +/turf/open/floor/carpet/red, +/area/station/command/heads_quarters/hos) +"sjA" = ( +/turf/closed/wall, +/area/station/service/bar/atrium) +"sjE" = ( +/obj/effect/spawner/random/trash/graffiti, +/turf/closed/wall, +/area/station/security/prison/upper) +"sjF" = ( +/obj/machinery/door/airlock/bathroom{ + name = "Restroom" + }, +/obj/machinery/duct, +/turf/open/floor/carpet/purple, +/area/station/commons/dorms/room4) +"sjH" = ( +/obj/effect/turf_decal/trimline/red/filled/warning{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/bluespace_vendor/directional/west, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"sjP" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/flowers_br, +/obj/structure/window/reinforced/shuttle, +/turf/open/floor/grass, +/area/station/common/cryopods) +"sjT" = ( +/obj/structure/cable, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"sjW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"ske" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/engine, +/area/station/command/secure_bunker) +"skf" = ( +/obj/structure/window/spawner/directional/north, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/structure/filingcabinet/chestdrawer/wheeled, +/obj/effect/turf_decal/siding/wood/corner, +/obj/machinery/digital_clock/directional/west, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hop) +"skh" = ( +/obj/machinery/door/airlock/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"skk" = ( +/obj/effect/decal/cleanable/oil/slippery, +/obj/machinery/light/directional/west, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"skq" = ( +/obj/machinery/door/poddoor/preopen{ + id = "xenosecure"; + name = "Secure Pen Shutters" + }, +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/window/brigdoor/left/directional/south{ + name = "Creature Pen"; + req_access = list("research") + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"skx" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/structure/closet/firecloset, +/obj/machinery/camera/directional/east{ + c_tag = "Science - Xenobio Entrance"; + name = "science camera"; + network = list("ss13","rd") + }, +/turf/open/floor/iron, +/area/station/science/xenobiology/hallway) +"skz" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"skC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/science/upper) +"skJ" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/spawner/random/trash/mess, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"skL" = ( +/obj/machinery/atmospherics/pipe/smart/simple/general/visible, +/turf/open/floor/engine/vacuum, +/area/station/engineering/atmos/test_chambers) +"skS" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"skT" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/landmark/start/medical_doctor, +/turf/open/floor/iron/white, +/area/station/medical/break_room) +"skZ" = ( +/obj/effect/decal/cleanable/oil, +/obj/effect/spawner/random/trash/cigbutt, +/turf/open/floor/plating/airless, +/area/station/maintenance/port/upper) +"slb" = ( +/obj/machinery/atmospherics/pipe/multiz/supply/visible/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/multiz/scrubbers/visible/layer2{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/end{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"slh" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/commons/dorms) +"sln" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"slp" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"sly" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/entry) +"slG" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_y = 3 + }, +/obj/item/pen{ + pixel_y = 3 + }, +/obj/machinery/light/directional/south, +/obj/structure/noticeboard/directional/south, +/obj/item/clipboard, +/obj/item/toy/figure/botanist, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) +"slI" = ( +/obj/machinery/power/port_gen/pacman, +/obj/effect/turf_decal/bot, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/machinery/light/directional/east, +/turf/open/floor/iron/dark, +/area/station/engineering/storage) +"slR" = ( +/obj/structure/cable, +/obj/machinery/camera/directional/north, +/turf/open/floor/iron/dark, +/area/station/maintenance/disposal/incinerator) +"slU" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/athletic_mixed, +/obj/effect/landmark/start/hangover/closet, +/turf/open/floor/iron, +/area/station/commons/dorms) +"slX" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes/corner, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/machinery/light/small/directional/east, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/iron/smooth_edge{ + dir = 1 + }, +/area/station/command/secure_bunker) +"smg" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/machinery/light/directional/west, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/storage) +"smi" = ( +/obj/effect/turf_decal/stripes, +/turf/open/floor/plating, +/area/station/cargo/storage) +"smo" = ( +/obj/structure/table/wood, +/obj/item/storage/belt/grenade{ + pixel_y = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"smr" = ( +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/item/storage/box/shipping, +/obj/item/pushbroom, +/obj/machinery/light/directional/west, +/turf/open/floor/iron/dark, +/area/station/cargo/sorting) +"smt" = ( +/turf/open/floor/iron/white/side{ + dir = 1 + }, +/area/station/maintenance/abandon_diner) +"smw" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plating, +/area/station/maintenance/department/science/central) +"smA" = ( +/obj/effect/turf_decal/stripes, +/obj/machinery/suit_storage_unit/open, +/turf/open/floor/iron/dark, +/area/station/security/lockers) +"smC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"smO" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/hallway/secondary/construction) +"smR" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"smS" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/obj/machinery/status_display/ai/directional/west, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"smV" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/iron/dark, +/area/station/security/detectives_office) +"smX" = ( +/obj/structure/chair/pew/right{ + dir = 4 + }, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/service/barber/spa) +"smY" = ( +/obj/structure/table, +/obj/item/screwdriver{ + pixel_y = 3 + }, +/obj/item/wirecutters, +/turf/open/floor/iron, +/area/station/security/execution/transfer) +"sna" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron/white, +/area/station/science/research) +"snh" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/machinery/status_display/door_timer{ + id = "IsolationCell_1"; + name = "Isolation Cell 1"; + pixel_y = -32 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/dark/line{ + dir = 6 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark/corner{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_corner{ + dir = 1 + }, +/area/station/security/prison/safe) +"snl" = ( +/obj/structure/chair/office{ + dir = 4 + }, +/obj/effect/landmark/start/lawyer, +/turf/open/floor/wood, +/area/station/service/lawoffice) +"snr" = ( +/obj/effect/decal/remains/human, +/turf/open/floor/plating, +/area/station/maintenance/abandon_holding_cell) +"snu" = ( +/turf/closed/wall, +/area/station/service/library/printer) +"snw" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine, +/area/station/science/tele_sci) +"sny" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/item/t_scanner, +/obj/item/analyzer{ + pixel_y = 7 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/transit_tube) +"snz" = ( +/obj/structure/cable, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/maintenance/port/upper) +"snF" = ( +/obj/machinery/vending/wardrobe/chem_wardrobe, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron, +/area/station/medical/chemistry) +"snH" = ( +/turf/open/floor/iron/stairs{ + dir = 4 + }, +/area/station/common/wrestling/arena) +"snK" = ( +/obj/machinery/door/airlock/research{ + name = "Research Division Access" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/unres, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "rnd-enterance" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/mapping_helpers/airlock/access/all/science/general, +/turf/open/floor/iron, +/area/station/science/research) +"soa" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/white, +/area/station/science) +"sob" = ( +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"sof" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/corner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/corner{ + dir = 1 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/prison/upper) +"soi" = ( +/obj/machinery/light/small/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/obj/effect/turf_decal/tile/green/opposingcorners, +/turf/open/floor/iron/white, +/area/station/medical/virology) +"sot" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/obj/structure/disposalpipe/segment, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hall5"; + location = "hall4" + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"sov" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"sox" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/commons/dorms) +"soz" = ( +/turf/open/floor/iron/shuttle/evac/airless, +/area/space/nearstation) +"soC" = ( +/obj/structure/window/reinforced/tinted/spawner/directional/west, +/obj/structure/bed/maint, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/broken/directional/south, +/turf/open/floor/carpet, +/area/station/commons/dorms/vacantroom) +"soH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light_switch/directional/south, +/obj/effect/spawner/random/contraband/cannabis, +/turf/open/floor/grass, +/area/station/service/hydroponics/garden/abandoned) +"soI" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/item/soap/deluxe, +/obj/item/reagent_containers/spray/cleaner{ + pixel_x = -5 + }, +/obj/item/mop, +/obj/item/pushbroom, +/obj/item/storage/bag/trash, +/turf/open/floor/iron, +/area/station/command/heads_quarters/nt_rep) +"soS" = ( +/obj/structure/barricade/wooden, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"spb" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock/security/glass{ + name = "Jail Cell" + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/prison/safe) +"spj" = ( +/obj/machinery/camera/directional/north{ + c_tag = "Recreation - Nightclub Entrance"; + name = "hallway camera" + }, +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_edge{ + dir = 1 + }, +/area/station/common/night_club) +"spk" = ( +/obj/machinery/power/shuttle_engine/heater{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"spp" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/medical/pharmacy) +"spq" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron, +/area/station/science/xenobiology) +"spA" = ( +/obj/structure/sink/directional/south, +/obj/effect/turf_decal/bot, +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron, +/area/station/medical/virology) +"spD" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating/airless, +/area/station/maintenance/fore/upper) +"spE" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/field/generator, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/engineering/storage) +"spH" = ( +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"spI" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/secure_closet/personal, +/turf/open/floor/iron/dark, +/area/station/engineering/break_room) +"spO" = ( +/turf/open/floor/iron/white, +/area/station/science/genetics) +"spR" = ( +/obj/machinery/door/window/brigdoor/right/directional/east{ + name = "Crematorium"; + req_access = list("security") + }, +/turf/open/floor/iron/dark, +/area/station/security/prison) +"spS" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/storage) +"spX" = ( +/obj/structure/machine/assembly_bench, +/turf/open/floor/iron/smooth, +/area/station/cargo/miningdock) +"sqa" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/security/prison/shower) +"sqn" = ( +/obj/effect/turf_decal/stripes/box, +/obj/effect/turf_decal/stripes/red/box, +/obj/vehicle/ridden/secway, +/obj/structure/sign/poster/official/carwo_grenade/directional/north, +/obj/effect/turf_decal/trimline/red/line, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_edge{ + dir = 1 + }, +/area/station/ai_monitored/security/armory) +"sqo" = ( +/obj/structure/cable, +/obj/machinery/power/emitter{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) +"squ" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"sqy" = ( +/obj/machinery/light/small/broken/directional/north, +/obj/effect/spawner/random/structure/steam_vent, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"sqS" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/hedge, +/obj/structure/railing{ + dir = 10 + }, +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/security/prison/safe) +"sqT" = ( +/obj/machinery/power/port_gen/pacman, +/obj/machinery/light_switch/directional/north, +/turf/open/floor/iron/dark, +/area/station/engineering/gravity_generator) +"sqU" = ( +/obj/effect/spawner/random/structure/steam_vent, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) +"sqV" = ( +/obj/structure/cable, +/obj/effect/turf_decal/trimline/red/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/filled/warning{ + dir = 10 + }, +/turf/open/floor/iron/dark, +/area/station/security/brig) +"srd" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"srf" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 9 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/chemical_manufacturer, +/obj/item/multitool, +/obj/item/stock_parts/cell/high, +/obj/item/integrated_circuit/chemical, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"srj" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/station/security/courtroom) +"srq" = ( +/obj/structure/table/reinforced, +/obj/item/modular_computer/laptop, +/obj/item/stamp{ + pixel_x = -7; + pixel_y = 14 + }, +/obj/item/stamp/denied{ + pixel_x = 8; + pixel_y = 14 + }, +/obj/machinery/camera/directional/west{ + c_tag = "Arrivals Customs"; + name = "customs camera" + }, +/obj/machinery/light/directional/west, +/obj/machinery/status_display/ai/directional/west, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/customs) +"srr" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"srs" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/machinery/airalarm/directional/south, +/obj/machinery/light/directional/south, +/turf/open/floor/iron, +/area/station/security/checkpoint/engineering) +"srx" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/security/checkpoint/medical) +"sry" = ( +/obj/item/cigbutt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/dorms) +"srD" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/item/kirbyplants/random, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/execution/transfer) +"srJ" = ( +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/port) +"srK" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/sign/picture_frame/showroom/four{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/item/radio/intercom/directional/west, +/obj/machinery/duct, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/nt_rep) +"srR" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible, +/turf/open/floor/plating, +/area/station/science/ordnance/freezerchamber) +"srS" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 8 + }, +/obj/structure/flora/bush/large, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"ssb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/cigbutt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"ssh" = ( +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/prison) +"ssj" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/plasma{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/box, +/turf/open/floor/plating/airless, +/area/station/engineering/atmos/upper) +"ssm" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/lavendergrass, +/turf/open/floor/grass, +/area/station/hallway/primary/central/aft) +"sso" = ( +/obj/effect/turf_decal/trimline/purple/filled/line, +/turf/open/floor/iron/white, +/area/station/science/research) +"ssr" = ( +/obj/effect/landmark/start/lawyer, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/service/lawoffice) +"sst" = ( +/obj/effect/turf_decal/trimline/red/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/filled/warning{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/prison/upper) +"ssv" = ( +/obj/machinery/growing/soil, +/turf/open/floor/grass, +/area/station/maintenance/starboard/fore) +"ssw" = ( +/obj/structure/table/wood/fancy/black, +/obj/item/flashlight/lamp{ + pixel_y = 11 + }, +/turf/open/floor/carpet/royalblack, +/area/station/commons/dorms/room8) +"ssz" = ( +/obj/structure/railing{ + dir = 5 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/iron/dark/side{ + dir = 5 + }, +/area/station/engineering/atmos/hfr_room) +"ssA" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/newscaster/directional/west, +/obj/structure/disposalpipe/segment, +/obj/machinery/camera/autoname/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"ssB" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) +"ssK" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/closet, +/obj/effect/spawner/random/maintenance/two, +/turf/open/floor/plating, +/area/station/maintenance/department/security/lesser) +"ssN" = ( +/obj/structure/mirror/directional/west, +/obj/effect/landmark/start/clown, +/obj/structure/sink/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/service/theater) +"ssU" = ( +/obj/effect/spawner/random/trash/mess, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/maintenance/aft/upper) +"ssW" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/medical/patients_rooms) +"stn" = ( +/obj/machinery/power/shuttle_engine/large, +/turf/open/space/basic, +/area/space) +"sto" = ( +/obj/structure/chair/sofa/corp/left, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/customs/auxiliary) +"stq" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plating, +/area/station/maintenance/department/science/central) +"stu" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating, +/area/station/maintenance/abandon_wrestle) +"stz" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Security Checkpoint" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/escape) +"stB" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister/nitrogen, +/obj/machinery/incident_display/delam/directional/south, +/turf/open/floor/iron/dark, +/area/station/engineering/supermatter/room) +"stH" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/effect/turf_decal/caution/stand_clear, +/obj/machinery/door/airlock/external{ + name = "External Docking Port"; + space_dir = 8 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/escape) +"stP" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/machinery/newscaster/directional/north, +/turf/open/floor/iron, +/area/station/commons/vacant_room/commissary) +"stQ" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/start/atmospheric_technician, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos) +"stR" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "Pure to Ports" + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"stV" = ( +/obj/machinery/light_switch/directional/east, +/turf/open/floor/carpet/black, +/area/station/service/barber) +"stW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/garbage, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"stY" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible/layer4{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer2{ + dir = 5 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"suc" = ( +/obj/effect/spawner/structure/window/reinforced/tinted, +/turf/open/floor/plating, +/area/station/cargo/miningoffice) +"sue" = ( +/obj/effect/decal/cleanable/dirt, +/mob/living/basic/spider/growing/young, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"sum" = ( +/turf/open/floor/iron/dark, +/area/station/security/brig) +"sup" = ( +/obj/structure/rack, +/obj/item/clothing/gloves/color/black, +/obj/item/storage/box/evidence, +/obj/item/taperecorder, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/station/security/detectives_office/private_investigators_office) +"sur" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/structure/window/reinforced/tinted/spawner/directional/east, +/obj/machinery/recharge_station, +/obj/effect/landmark/start/cyborg, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat_interior) +"sus" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, +/turf/open/floor/plating, +/area/station/service/theater/abandoned) +"sut" = ( +/obj/machinery/rnd/production/techfab/department/cargo, +/obj/machinery/status_display/supply{ + pixel_y = 32 + }, +/turf/open/floor/iron/dark, +/area/station/cargo/office) +"suE" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters{ + id = "commissaryshutter"; + name = "Vacant Commissary Shutter" + }, +/turf/open/floor/iron/dark, +/area/station/commons/vacant_room/commissary) +"suF" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/bot, +/obj/machinery/bluespace_vendor/directional/east, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/science/ordnance) +"suN" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/science/lab) +"suO" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/effect/landmark/start/hangover, +/turf/open/floor/eighties/red, +/area/station/common/arcade) +"suP" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"suV" = ( +/obj/machinery/power/shuttle_engine/heater{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"suZ" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/machinery/light/directional/west, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/airalarm/directional/south, +/turf/open/floor/iron/dark, +/area/station/cargo/sorting) +"svc" = ( +/obj/structure/reagent_dispensers/water_cooler, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/science/ordnance/office) +"svd" = ( +/obj/structure/table, +/obj/item/clothing/glasses/blindfold, +/obj/item/clothing/glasses/blindfold, +/obj/item/clothing/glasses/blindfold, +/obj/item/clothing/glasses/blindfold, +/obj/item/clothing/mask/muzzle, +/obj/item/clothing/mask/muzzle, +/obj/item/clothing/mask/muzzle, +/obj/item/clothing/mask/muzzle, +/obj/item/clothing/ears/earmuffs, +/obj/item/clothing/ears/earmuffs, +/obj/item/clothing/ears/earmuffs, +/obj/item/clothing/ears/earmuffs, +/obj/machinery/camera/directional/east{ + c_tag = "Medbay - Psych Ward Airlock"; + name = "medbay camera"; + network = list("ss13","medbay") + }, +/obj/machinery/airalarm/directional/east, +/obj/machinery/light/directional/east, +/turf/open/floor/iron, +/area/station/medical/aslyum) +"svg" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/medical/cryo) +"svn" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/lattice/catwalk, +/turf/open/openspace, +/area/station/maintenance/department/medical/central) +"svp" = ( +/obj/structure/cable, +/turf/open/floor/iron/stairs, +/area/station/ai_monitored/command/storage/eva) +"svq" = ( +/obj/item/shard, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"svt" = ( +/obj/structure/window/spawner/directional/south, +/obj/structure/flora/bush/jungle, +/obj/machinery/door/firedoor/border_only, +/turf/open/floor/grass, +/area/station/medical/patients_rooms) +"svu" = ( +/obj/structure/showcase/cyborg/old{ + pixel_y = 20 + }, +/obj/machinery/camera/directional/north{ + c_tag = "AI Chamber - Fore"; + name = "motion-sensitive ai camera"; + network = list("aichamber") + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai) +"svy" = ( +/turf/closed/wall, +/area/station/medical/surgery/theatre) +"svH" = ( +/obj/machinery/door/airlock/external, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "balcony1" + }, +/obj/effect/mapping_helpers/airlock/access/all/command/general, +/turf/open/floor/plating, +/area/station/command/secure_bunker) +"svI" = ( +/obj/structure/table/reinforced, +/obj/item/modular_computer/laptop/preset/civilian, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) +"svJ" = ( +/obj/effect/turf_decal/stripes{ + dir = 9 + }, +/turf/open/floor/plating, +/area/station/security/range) +"svL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/engineering/main) +"svR" = ( +/obj/structure/table/wood, +/obj/item/paper_bin, +/obj/item/flashlight/lamp/green{ + pixel_y = -8 + }, +/turf/open/floor/wood, +/area/station/service/library) +"svX" = ( +/obj/structure/cable, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark/corner{ + dir = 1 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/brig) +"svZ" = ( +/turf/open/floor/iron/white/corner, +/area/station/hallway/secondary/entry) +"swd" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"swi" = ( +/obj/effect/spawner/random/structure/closet_maintenance, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/department/science/ordnance_maint) +"swj" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock/security{ + name = "Warden's Quarters" + }, +/obj/effect/mapping_helpers/airlock/access/all/security/armory, +/turf/open/floor/iron/dark, +/area/station/security/warden) +"swp" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/science/lab) +"swr" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/aisat/exterior) +"swt" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Security Maintenance" + }, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/turf/open/floor/plating, +/area/station/security/courtroom) +"sww" = ( +/obj/structure/sign/warning/vacuum/external/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"swy" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible, +/obj/effect/spawner/structure/window/reinforced/plasma, +/turf/open/floor/plating, +/area/station/engineering/atmos) +"swC" = ( +/obj/structure/chair/sofa/bench/left{ + dir = 4; + pixel_x = -5 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/obj/machinery/light_switch/directional/west{ + pixel_x = -38 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"swG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/carpet/red, +/area/station/service/library/abandoned) +"swO" = ( +/obj/structure/chair/sofa/corp, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/customs/auxiliary) +"swQ" = ( +/obj/structure/table/wood, +/obj/machinery/computer/records/medical/laptop, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/newscaster/directional/east, +/turf/open/floor/wood, +/area/station/command/heads_quarters/hop) +"swW" = ( +/obj/structure/lattice, +/obj/structure/grille, +/turf/open/space/basic, +/area/space/nearstation) +"sxa" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/department/security/lesser) +"sxb" = ( +/obj/structure/chair/sofa/bench{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/lobby) +"sxc" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/station/service/chapel/office) +"sxd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/item/screwdriver, +/obj/effect/spawner/random/decoration/glowstick, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"sxl" = ( +/obj/structure/closet/emcloset, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"sxp" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"sxu" = ( +/obj/structure/chair, +/obj/effect/landmark/start/assistant, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/sign/poster/random/directional/east, +/turf/open/floor/wood, +/area/station/hallway/primary/central) +"sxA" = ( +/obj/structure/rack, +/obj/structure/window/spawner/directional/east, +/obj/item/storage/box/donkpockets{ + pixel_y = 1 + }, +/obj/item/storage/box/donkpockets/donkpocketpizza{ + pixel_y = 5 + }, +/obj/item/storage/box/donkpockets/donkpocketspicy{ + pixel_y = 9 + }, +/turf/open/floor/iron/checker, +/area/station/hallway/secondary/service) +"sxB" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/storage) +"sxC" = ( +/obj/structure/table, +/obj/item/clipboard, +/obj/item/wrench, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/obj/machinery/airalarm/directional/south, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/science/server) +"sxF" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/obj/effect/turf_decal/trimline/green/filled/corner, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/medical/virology) +"sxG" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"sxI" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/camera/directional/east, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/prison) +"sxJ" = ( +/obj/structure/table, +/obj/item/storage/photo_album, +/turf/open/floor/iron, +/area/station/commons/fitness/recreation) +"sxM" = ( +/turf/open/floor/iron/stairs/medium{ + dir = 1 + }, +/area/station/hallway/primary/port) +"sxO" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark/side, +/area/station/maintenance/xenobio_disposals) +"sya" = ( +/obj/item/wrench, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"syc" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Abandoned Psychologist Office" + }, +/obj/structure/barricade/wooden/crude, +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/wood, +/area/station/maintenance/abandon_psych) +"syf" = ( +/obj/machinery/power/shuttle_engine/heater, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"syh" = ( +/turf/open/floor/iron, +/area/station/service/hydroponics) +"syp" = ( +/obj/effect/spawner/random/trash/graffiti, +/turf/closed/wall, +/area/station/security/detectives_office/private_investigators_office) +"syt" = ( +/obj/structure/window/reinforced/tinted/spawner/directional/west, +/turf/open/floor/iron/dark, +/area/station/common/laser_tag) +"syv" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/cup/glass/coffee_cup{ + pixel_x = -4; + pixel_y = 8 + }, +/turf/open/floor/wood, +/area/station/service/cafeteria) +"syx" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"syy" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/obj/effect/decal/cleanable/food/flour, +/turf/open/floor/iron/cafeteria, +/area/station/common/wrestling/concessions) +"syJ" = ( +/turf/open/floor/iron, +/area/station/engineering/lobby) +"syM" = ( +/obj/structure/bed/maint, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/machinery/light_switch/directional/east, +/turf/open/floor/carpet, +/area/station/commons/dorms/vacantroom) +"syX" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 1 + }, +/obj/structure/sign/poster/random/directional/north, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"syY" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/eighties, +/area/station/maintenance/abandon_arcade) +"szb" = ( +/obj/structure/fans/tiny/forcefield, +/turf/open/floor/plating, +/area/station/cargo/storage) +"szl" = ( +/obj/machinery/computer/telecomms/server{ + dir = 8; + network = "tcommsat" + }, +/turf/open/floor/iron/dark, +/area/station/tcommsat/computer) +"szm" = ( +/turf/closed/wall/r_wall, +/area/station/science/ordnance/office) +"szn" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) +"szo" = ( +/turf/closed/wall/r_wall, +/area/station/security/checkpoint/customs/auxiliary) +"szq" = ( +/turf/open/floor/plating, +/area/station/maintenance/console_room) +"szy" = ( +/obj/machinery/power/solar_control{ + dir = 8; + id = "aftstarboard"; + name = "Starboard Quarter Solar Control" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/solars/starboard/aft) +"szD" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/effect/mapping_helpers/airlock/access/all/engineering, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) +"szI" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/chair/sofa/bench/left, +/turf/open/floor/iron/dark, +/area/station/security/prison/workout) +"szU" = ( +/obj/effect/spawner/random/trash/moisture_trap, +/turf/open/floor/plating, +/area/station/maintenance/department/science/upper) +"szZ" = ( +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/aisat/hallway) +"sAc" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/space_heater, +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/iron, +/area/station/engineering/atmos/pumproom) +"sAe" = ( +/obj/machinery/power/shuttle_engine/heater{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_port) +"sAm" = ( +/obj/machinery/door/poddoor/shutters{ + id = "gatewayshutters"; + name = "Gateway Chamber Shutters" + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/command/gateway) +"sAs" = ( +/obj/effect/turf_decal/delivery/white, +/obj/machinery/status_display/supply{ + pixel_x = -32 + }, +/obj/machinery/light/directional/west, +/turf/open/floor/iron/dark/small, +/area/station/cargo/storage) +"sAv" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/holopad/secure, +/turf/open/floor/iron/white, +/area/station/security/medical) +"sAy" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/flowers_yw, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/grass, +/area/station/hallway/secondary/exit) +"sAD" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/chair{ + name = "Defendant" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/security/courtroom) +"sAE" = ( +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/science/research) +"sAG" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/sign/gym{ + pixel_y = 32 + }, +/turf/open/floor/iron, +/area/station/commons/fitness) +"sAH" = ( +/obj/effect/spawner/random/trash/graffiti, +/turf/closed/wall/rust, +/area/station/security/prison/upper) +"sAN" = ( +/obj/effect/turf_decal/stripes/full, +/obj/effect/turf_decal/stripes/white/full, +/obj/machinery/door/poddoor/shutters{ + id = "securitydock2"; + name = "Security Dock 2" + }, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"sAW" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/chair/sofa/bench{ + dir = 8; + pixel_x = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/common/wrestling/arena) +"sBa" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/item/stack/medical/gauze, +/obj/item/stack/medical/bruise_pack, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"sBd" = ( +/obj/structure/cable, +/obj/structure/chair/stool/bar, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/green, +/area/station/service/abandoned_gambling_den) +"sBh" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"sBj" = ( +/obj/structure/window/spawner/directional/east, +/obj/structure/flora/bush/jungle/a/style_3, +/turf/open/floor/grass, +/area/station/service/cafeteria) +"sBq" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) +"sBs" = ( +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible/layer2{ + dir = 10 + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/loading_area{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) +"sBt" = ( +/turf/closed/wall/r_wall, +/area/station/engineering/atmos) +"sBu" = ( +/obj/effect/turf_decal/stripes/red/corner{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/science/xenobiology) +"sBw" = ( +/obj/effect/turf_decal/tile/brown/fourcorners, +/turf/open/floor/iron, +/area/station/cargo/lobby) +"sBC" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/south, +/obj/structure/window/spawner/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"sBF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/wood, +/area/station/maintenance/abandon_psych) +"sBG" = ( +/obj/structure/table/reinforced, +/obj/item/paper_bin, +/obj/item/pen, +/obj/effect/turf_decal/tile/yellow/half/contrasted, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/engineering/lobby) +"sBJ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/command/heads_quarters/rd) +"sBK" = ( +/obj/structure/barricade/wooden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"sBW" = ( +/obj/machinery/vending/sustenance, +/turf/open/floor/iron/white, +/area/station/medical/aslyum) +"sBX" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron/white, +/area/station/science/research) +"sBZ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"sCa" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/siding/purple, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/holopad/secure, +/turf/open/floor/iron, +/area/station/command/heads_quarters/rd) +"sCe" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/sign/departments/lawyer/directional/south, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"sCh" = ( +/obj/machinery/door/airlock/maintenance, +/turf/open/floor/plating, +/area/station/security/prison/upper) +"sCm" = ( +/turf/closed/wall, +/area/station/science/ordnance/office) +"sCo" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/table, +/obj/item/stack/license_plates/empty/fifty{ + pixel_x = -3 + }, +/turf/open/floor/iron/dark/side{ + dir = 6 + }, +/area/station/security/prison/work) +"sCt" = ( +/obj/machinery/requests_console/directional/west{ + department = "Research Director's Desk"; + name = "Research Director's Requests Console"; + pixel_y = 4 + }, +/obj/effect/mapping_helpers/requests_console/announcement, +/obj/effect/mapping_helpers/requests_console/ore_update, +/obj/effect/mapping_helpers/requests_console/information, +/obj/effect/mapping_helpers/requests_console/assistance, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 8 + }, +/obj/machinery/light/directional/west, +/obj/machinery/button/door/directional/west{ + id = "RDdoor"; + name = "Door lock"; + normaldoorcontrol = 1; + pixel_x = -30; + pixel_y = -9; + req_access = list("rd"); + specialfunctions = 4 + }, +/turf/open/floor/iron/white, +/area/station/command/heads_quarters/rd) +"sCu" = ( +/obj/structure/rack/shelf, +/turf/open/floor/iron/smooth_edge{ + dir = 1 + }, +/area/station/cargo/miningdock) +"sCA" = ( +/obj/machinery/door/firedoor, +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "atmoslock"; + name = "Atmospherics Lockdown Blast Door" + }, +/obj/item/paper_bin, +/obj/item/pen, +/obj/machinery/door/window/right/directional/east{ + name = "Atmospherics Desk"; + req_access = list("atmospherics") + }, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/office) +"sCB" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/security/checkpoint/escape) +"sCE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/maintenance/rus_gambling) +"sCF" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/start/atmospheric_technician, +/turf/open/floor/plating, +/area/station/engineering/atmos/upper) +"sCJ" = ( +/obj/structure/table/reinforced, +/obj/item/book/manual/wiki/security_space_law, +/obj/item/radio, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/checkpoint/supply) +"sCM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"sCR" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Gear Room" + }, +/obj/effect/turf_decal/delivery/blue, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/dark, +/area/station/security/lockers) +"sCX" = ( +/turf/closed/wall, +/area/station/commons/storage/primary) +"sCZ" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) +"sDg" = ( +/obj/structure/grille/broken, +/obj/effect/spawner/random/trash/mess, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"sDl" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/break_room) +"sDm" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/secondary/construction) +"sDp" = ( +/obj/effect/turf_decal/bot, +/obj/structure/punching_bag, +/turf/open/floor/iron/dark, +/area/station/security/prison/workout) +"sDt" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) +"sDx" = ( +/turf/open/floor/iron, +/area/station/engineering/storage/tech) +"sDG" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"sDO" = ( +/obj/structure/railing, +/obj/effect/turf_decal/stripes, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"sDS" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/item/clothing/gloves/latex{ + pixel_x = 4; + pixel_y = 9 + }, +/obj/item/radio/headset/headset_medsci{ + pixel_x = -7; + pixel_y = 4 + }, +/obj/item/storage/box/gloves{ + pixel_x = 6; + pixel_y = -2 + }, +/turf/open/floor/iron/dark, +/area/station/science/genetics) +"sDW" = ( +/obj/machinery/light/small/directional/south, +/obj/machinery/duct, +/turf/open/floor/iron/freezer, +/area/station/security/prison/shower) +"sDX" = ( +/obj/structure/cable, +/obj/effect/landmark/start/hangover, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"sEg" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/firealarm/directional/south, +/obj/machinery/light/directional/south, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/hop) +"sEm" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "cargounload" + }, +/obj/structure/plasticflaps, +/turf/open/floor/iron/dark, +/area/station/cargo/storage) +"sEs" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/crate/secure{ + desc = "A secure crate containing various materials for building a customised test-site."; + name = "Test Site Materials Crate"; + req_access = list("ordnance") + }, +/obj/item/target/clown, +/obj/item/target/clown, +/obj/item/target/alien, +/obj/item/target/alien, +/turf/open/floor/iron, +/area/station/science/ordnance/testlab) +"sEv" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/thinplating_new/dark/corner{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark/corner{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_large, +/area/station/security/office) +"sEy" = ( +/obj/machinery/light/directional/south, +/obj/machinery/computer/security/telescreen/cmo{ + dir = 1; + pixel_y = -32 + }, +/turf/open/floor/carpet/blue, +/area/station/command/heads_quarters/cmo) +"sEz" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/vending/coffee, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/iron/dark, +/area/station/service/bar/atrium) +"sEF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"sEL" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/mining{ + name = "Cargo Bay" + }, +/obj/effect/mapping_helpers/airlock/access/all/supply/general, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/office) +"sER" = ( +/obj/structure/table/wood, +/obj/item/pai_card, +/obj/structure/noticeboard{ + dir = 4; + pixel_x = -32 + }, +/turf/open/floor/wood, +/area/station/command/meeting_room/council) +"sEV" = ( +/obj/structure/cable, +/turf/open/floor/iron/stairs/old{ + dir = 1 + }, +/area/station/engineering/transit_tube) +"sEW" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/machinery/light/directional/north{ + dir = 2 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"sEZ" = ( +/obj/effect/turf_decal/trimline/purple/filled/line, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/science/research) +"sFd" = ( +/turf/open/floor/iron/stairs/right{ + dir = 1 + }, +/area/station/hallway/primary/port) +"sFi" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/service/hydroponics) +"sFl" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tcomms) +"sFm" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron, +/area/station/security/courtroom) +"sFo" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/catwalk_floor, +/area/station/science/ordnance/testlab) +"sFt" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/obj/machinery/conveyor_switch/oneway{ + id = "packageSort2"; + name = "Sort and Deliver"; + pixel_x = 5; + pixel_y = 16 + }, +/turf/open/floor/iron, +/area/station/cargo/sorting) +"sFu" = ( +/obj/structure/table, +/obj/item/storage/dice{ + pixel_y = 14 + }, +/obj/item/toy/cards/deck{ + pixel_y = 2 + }, +/obj/item/radio/intercom/directional/south, +/obj/machinery/light/directional/south, +/turf/open/floor/iron, +/area/station/command/gateway) +"sFC" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/commons/dorms) +"sFE" = ( +/turf/open/floor/iron, +/area/station/science/ordnance/storage) +"sFF" = ( +/obj/structure/sign/picture_frame/portrait/bar{ + name = "Portrait of the late MR.Deempisi"; + pixel_x = 32; + pixel_y = 32 + }, +/obj/effect/turf_decal/tile/bar/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/service/bar) +"sFG" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/science/research) +"sFJ" = ( +/obj/structure/window/spawner/directional/north, +/obj/machinery/vending/wardrobe/medi_wardrobe, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/medical/break_room) +"sFP" = ( +/obj/effect/decal/remains/human, +/turf/open/floor/plating, +/area/station/security/courtroom) +"sFU" = ( +/obj/machinery/light/small/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/department/security/prison_upper) +"sFY" = ( +/obj/effect/turf_decal/stripes/white/line, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/aisat/exterior) +"sFZ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat_interior) +"sGa" = ( +/obj/machinery/light/small/directional/east, +/turf/open/floor/iron, +/area/station/security/execution/transfer) +"sGk" = ( +/obj/structure/reagent_dispensers/fueltank{ + pixel_y = 1 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/light/small/directional/west, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/testlab) +"sGo" = ( +/obj/machinery/atmospherics/miner/carbon_dioxide, +/turf/open/floor/engine/co2, +/area/station/engineering/atmos) +"sGr" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Teleport Access" + }, +/obj/effect/turf_decal/delivery, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/command/teleporter, +/turf/open/floor/iron, +/area/station/command/gateway) +"sGt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/portable_atmospherics/scrubber, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"sGz" = ( +/obj/machinery/door/window/right/directional/north{ + name = "Danger: Conveyor Access" + }, +/turf/open/floor/plating, +/area/station/maintenance/disposal) +"sGD" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/obj/structure/sign/directions/security{ + pixel_x = -32; + pixel_y = 8 + }, +/obj/structure/sign/directions/engineering{ + pixel_x = -32; + pixel_y = 2 + }, +/obj/structure/sign/directions/supply{ + pixel_x = -32; + pixel_y = -4 + }, +/obj/structure/sign/directions/evac{ + pixel_x = -32; + pixel_y = -10 + }, +/turf/open/floor/iron/dark/side, +/area/station/hallway/primary/upper) +"sGF" = ( +/obj/item/kirbyplants/random, +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/iron/white, +/area/station/medical/aslyum) +"sGN" = ( +/obj/effect/landmark/start/chaplain, +/turf/open/floor/carpet, +/area/station/service/chapel) +"sGP" = ( +/obj/structure/sign/warning/vacuum/external, +/turf/closed/wall/r_wall, +/area/station/engineering/transit_tube) +"sGR" = ( +/obj/effect/turf_decal/delivery/white, +/obj/machinery/airalarm/directional/east, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/nuke_storage) +"sGZ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron, +/area/station/science/ordnance/storage) +"sHg" = ( +/obj/structure/table, +/obj/machinery/door/poddoor/shutters{ + id = "visitation"; + name = "Visitation Shutters" + }, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/iron/dark, +/area/station/security/prison/visit) +"sHo" = ( +/turf/closed/wall, +/area/station/maintenance/department/science/ordnance_maint) +"sHp" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/wood, +/area/station/service/library) +"sHr" = ( +/obj/structure/cable, +/obj/machinery/light/directional/south, +/obj/item/radio/intercom/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"sHt" = ( +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) +"sHv" = ( +/obj/machinery/newscaster/directional/south, +/obj/machinery/light/directional/south, +/obj/structure/cable, +/obj/effect/turf_decal/tile/blue/half/contrasted, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/command) +"sHy" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "xenosecure"; + name = "Secure Pen Shutters" + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/science/xenobiology) +"sHB" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 6 + }, +/obj/structure/closet/crate, +/obj/effect/spawner/random/maintenance/eight, +/turf/open/floor/iron/dark/small, +/area/station/cargo/miningdock) +"sHE" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/science/ordnance) +"sHL" = ( +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/commons/storage/art) +"sHQ" = ( +/obj/machinery/door/airlock/external{ + name = "External Docking Port"; + space_dir = 8 + }, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/hallway/secondary/exit) +"sHR" = ( +/obj/effect/turf_decal/siding/yellow{ + dir = 4 + }, +/obj/machinery/computer/atmos_alert{ + dir = 4 + }, +/obj/machinery/keycard_auth/directional/west, +/turf/open/floor/iron/dark/textured_large, +/area/station/command/heads_quarters/ce) +"sHU" = ( +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/commons/fitness) +"sHV" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"sIg" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark/small, +/area/station/security/prison/upper) +"sIh" = ( +/obj/machinery/computer/records/security{ + dir = 4 + }, +/obj/structure/window/spawner/directional/south, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"sIk" = ( +/obj/structure/closet/cardboard, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"sIq" = ( +/obj/effect/turf_decal/bot, +/obj/effect/spawner/random/structure/crate, +/obj/effect/turf_decal/loading_area, +/turf/open/floor/iron/dark, +/area/station/cargo/warehouse) +"sIv" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/hedge, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/central) +"sIz" = ( +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"sIH" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"sIL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/structure/sign/poster/contraband/random/directional/west, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"sIN" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/gravity_generator) +"sIS" = ( +/obj/structure/closet, +/obj/structure/grille/broken, +/obj/effect/spawner/random/maintenance, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"sJb" = ( +/obj/machinery/door/airlock/silver{ + name = "Locker Room" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/common/wrestling/locker) +"sJe" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/landmark/generic_maintenance_landmark, +/turf/open/floor/carpet/red, +/area/station/service/library/abandoned) +"sJk" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Departures Lounge" + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"sJo" = ( +/obj/machinery/atmospherics/components/tank/air, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) +"sJq" = ( +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"sJw" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/item/plant_analyzer, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/wood, +/area/station/service/hydroponics/garden/abandoned) +"sJy" = ( +/obj/structure/bookcase/random/religion, +/turf/open/floor/wood, +/area/station/service/library) +"sJA" = ( +/obj/structure/chair, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"sJC" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/item/folder/yellow, +/obj/item/stamp/qm, +/obj/item/reagent_containers/cup/glass/drinkingglass/shotglass{ + pixel_x = 6; + pixel_y = 16 + }, +/obj/item/reagent_containers/cup/glass/drinkingglass/shotglass{ + pixel_x = -4; + pixel_y = 16 + }, +/obj/item/hand_labeler_refill{ + pixel_x = -8; + pixel_y = -8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet/royalblack, +/area/station/command/heads_quarters/qm) +"sJE" = ( +/obj/machinery/light_switch{ + pixel_y = 26 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/mob/living/basic/rabbit/daisy, +/obj/structure/bed/dogbed{ + anchored = 1; + name = "Daisy's bed" + }, +/turf/open/floor/iron/dark, +/area/station/service/library/private) +"sJP" = ( +/obj/structure/filingcabinet, +/turf/open/floor/iron/dark, +/area/station/science/robotics) +"sJT" = ( +/obj/machinery/door/airlock/engineering{ + name = "Power Access Hatch" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/engineering/engine_equipment, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"sJU" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/station/maintenance/disposal/incinerator) +"sJW" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/crate, +/obj/effect/spawner/random/maintenance, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"sKb" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/item/radio/intercom/directional/east, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/dark/line{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured_edge{ + dir = 8 + }, +/area/station/security/prison/safe) +"sKc" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"sKe" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet, +/obj/structure/cable, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"sKk" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/station/maintenance/fore/upper) +"sKn" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/item/storage/fancy/candle_box{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/fancy/candle_box, +/turf/open/floor/carpet, +/area/station/service/chapel/office) +"sKo" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/dark, +/area/station/security/brig) +"sKq" = ( +/obj/structure/closet/crate/bin, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/commons/fitness) +"sKr" = ( +/obj/structure/bookcase/manuals/engineering, +/turf/open/floor/wood, +/area/station/service/library) +"sKs" = ( +/obj/machinery/camera/directional/west{ + c_tag = "Detective's Private Interrogation Room" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/security/detectives_office) +"sKv" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/station/maintenance/department/science/ordnance_maint) +"sKx" = ( +/obj/machinery/requests_console/directional/east{ + department = "Captain's Desk"; + name = "Captain's Requests Console" + }, +/obj/effect/mapping_helpers/requests_console/announcement, +/obj/effect/mapping_helpers/requests_console/information, +/obj/effect/mapping_helpers/requests_console/assistance, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet/blue, +/area/station/command/heads_quarters/captain/private) +"sKy" = ( +/obj/structure/fluff/drake_statue/falling, +/obj/machinery/light/directional/north, +/turf/open/floor/cult, +/area/station/maintenance/cult_chapel_maint) +"sKz" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/ai_upload) +"sKA" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/security/checkpoint/engineering) +"sKB" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 5 + }, +/obj/machinery/arc_forge, +/turf/open/floor/iron/dark/small, +/area/station/cargo/miningdock) +"sKD" = ( +/obj/structure/table, +/obj/item/lighter, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/entry) +"sKI" = ( +/obj/structure/chair, +/obj/machinery/status_display/ai/directional/north, +/turf/open/floor/iron/dark, +/area/station/medical/surgery/theatre) +"sKL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/common/wrestling/arena) +"sKP" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 9 + }, +/obj/structure/filingcabinet/chestdrawer, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) +"sKW" = ( +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"sLh" = ( +/obj/machinery/status_display/ai/directional/west, +/obj/machinery/light_switch/directional/south{ + pixel_x = -5 + }, +/obj/machinery/button/door/directional/south{ + id = "HoPdoor"; + name = "HoP Door Lock"; + normaldoorcontrol = 1; + pixel_x = 4; + req_access = list("hop"); + specialfunctions = 4 + }, +/obj/machinery/vending/cart, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hop) +"sLj" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/engineering/atmos/test_chambers) +"sLm" = ( +/obj/machinery/computer/atmos_alert{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/office) +"sLr" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/side{ + dir = 5 + }, +/area/station/commons/fitness) +"sLv" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/aquarium/prefilled, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain/private) +"sLx" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/structure/sign/poster/contraband/space_cola/directional/west, +/turf/open/floor/wood, +/area/station/hallway/primary/port) +"sLF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"sLI" = ( +/obj/machinery/airalarm/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) +"sLJ" = ( +/obj/effect/turf_decal/stripes{ + dir = 10 + }, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/science/xenobiology) +"sLK" = ( +/obj/effect/turf_decal/siding/wood, +/obj/item/radio/intercom/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/command/captain_dining) +"sLL" = ( +/obj/structure/closet/secure_closet/freezer/kitchen/maintenance, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/white, +/area/station/maintenance/abandon_diner) +"sLQ" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/light/directional/east, +/obj/structure/sign/poster/random/directional/east, +/turf/open/floor/wood, +/area/station/hallway/primary/port) +"sLT" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"sMb" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/carpet/black, +/area/station/security/prison) +"sMd" = ( +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/science/xenobiology/control) +"sMl" = ( +/obj/structure/sign/directions/security{ + dir = 1; + pixel_y = 8 + }, +/obj/structure/sign/directions/engineering{ + pixel_y = 2 + }, +/obj/structure/sign/directions/supply{ + pixel_y = -4 + }, +/obj/structure/sign/directions/evac{ + pixel_y = -10 + }, +/turf/closed/wall, +/area/station/service/library) +"sMp" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/hop) +"sMu" = ( +/obj/effect/landmark/start/librarian, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/service/library) +"sMv" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/effect/turf_decal/delivery, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/digital_clock/directional/west, +/turf/open/floor/iron, +/area/station/science/breakroom) +"sMw" = ( +/obj/structure/sauna_oven, +/obj/machinery/light/small/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/common/pool/sauna) +"sMx" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "garbage" + }, +/turf/open/floor/plating, +/area/station/maintenance/disposal) +"sME" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/service/library) +"sMH" = ( +/obj/machinery/light/small/directional/south, +/obj/machinery/duct, +/turf/open/floor/iron/freezer, +/area/station/science/breakroom) +"sMM" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"sMR" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + id_tag = "commissarydoor"; + name = "Commissary" + }, +/turf/open/floor/iron, +/area/station/commons/vacant_room/commissary) +"sMX" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "garbage" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/window/left/directional/north{ + name = "Danger: Conveyor Access" + }, +/turf/open/floor/plating, +/area/station/maintenance/disposal) +"sMY" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/science/ordnance/testlab) +"sNa" = ( +/obj/structure/fence/door/opened{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/maintenance/abandon_holding_cell) +"sNb" = ( +/turf/closed/wall, +/area/station/science/tele_sci) +"sNc" = ( +/obj/structure/dresser, +/turf/open/floor/carpet/purple, +/area/station/command/heads_quarters/rd) +"sNd" = ( +/turf/open/floor/iron/stairs/right, +/area/station/hallway/primary/port) +"sNf" = ( +/obj/structure/sign/nanotrasen{ + pixel_y = 32 + }, +/turf/open/floor/wood, +/area/station/command/meeting_room/council) +"sNk" = ( +/obj/machinery/light/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/carpet/executive, +/area/station/command/heads_quarters/blueshield) +"sNl" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 10 + }, +/obj/structure/chair/sofa/corp/corner, +/obj/machinery/light/small/blacklight/directional/east, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/iron/dark/small, +/area/station/security/prison/upper) +"sNn" = ( +/obj/structure/trash_pile, +/turf/open/floor/plating, +/area/station/maintenance/xenobio_disposals) +"sNs" = ( +/obj/machinery/light/directional/south, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tcomms) +"sNu" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron, +/area/station/security/checkpoint/supply) +"sNw" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/cargo/storage) +"sNz" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"sND" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/grass, +/area/station/service/hydroponics) +"sNE" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/portable_atmospherics/scrubber, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/simple/supply/hidden/layer4{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/dorms) +"sNJ" = ( +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/central) +"sNK" = ( +/obj/structure/table/wood/fancy, +/obj/structure/sign/painting/library_secure{ + pixel_y = 32 + }, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/carpet, +/area/station/service/library) +"sNP" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/random/maintenance/seven, +/turf/open/floor/plating, +/area/station/hallway/secondary/construction) +"sNR" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"sNT" = ( +/mob/living/basic/chicken/brown{ + forced_gender = "female" + }, +/turf/open/floor/grass, +/area/station/common/night_club/back_stage) +"sNY" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 9 + }, +/turf/open/space/basic, +/area/space/nearstation) +"sOh" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/item/wrench, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"sOm" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/item/kirbyplants/random, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva) +"sOn" = ( +/obj/structure/chair/sofa/corp/left{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/carpet/lone, +/area/station/command/meeting_room/council) +"sOu" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/machinery/door/window/left/directional/west{ + name = "Security Mech Recharge Dock"; + req_access = list("security") + }, +/turf/open/floor/iron/dark/textured_large, +/area/station/ai_monitored/security/armory) +"sOy" = ( +/obj/structure/table, +/obj/item/wrench{ + pixel_y = 4 + }, +/obj/item/wrench, +/obj/item/screwdriver, +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"sOD" = ( +/obj/machinery/plate_press{ + pixel_y = 4 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/iron/dark/side{ + dir = 9 + }, +/area/station/security/prison/work) +"sOK" = ( +/obj/structure/table/glass, +/obj/item/clipboard, +/obj/item/toy/figure/rd, +/obj/effect/turf_decal/siding/purple{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/command/heads_quarters/rd) +"sOQ" = ( +/obj/machinery/duct, +/turf/open/floor/carpet/royalblack, +/area/station/commons/dorms/room8) +"sOS" = ( +/obj/item/stack/ore/titanium, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"sOT" = ( +/obj/effect/mapping_helpers/airlock/access/any/engineering/construction, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "AISATFOYER" + }, +/obj/structure/cable, +/obj/machinery/door/airlock/external{ + name = "MiniSat Exterior Access" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/engineering/transit_tube) +"sOV" = ( +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/service/library/printer) +"sPa" = ( +/obj/structure/table/wood, +/obj/item/clipboard, +/obj/item/toy/figure/scientist, +/obj/structure/cable, +/turf/open/floor/carpet/purple, +/area/station/science/breakroom) +"sPe" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/bar) +"sPk" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron/dark, +/area/station/service/chapel) +"sPm" = ( +/turf/closed/wall/r_wall, +/area/station/medical/virology/isolation) +"sPq" = ( +/obj/structure/chair/office{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hos) +"sPz" = ( +/obj/structure/table/wood, +/obj/item/storage/briefcase{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/briefcase/secure, +/turf/open/floor/carpet, +/area/station/service/library/printer) +"sPB" = ( +/obj/structure/table, +/obj/item/stack/ducts/fifty, +/obj/item/stack/ducts/fifty, +/obj/item/stack/ducts/fifty, +/obj/item/stack/ducts/fifty, +/obj/item/stack/ducts/fifty, +/obj/item/stack/ducts/fifty, +/obj/item/stack/ducts/fifty, +/obj/item/stack/ducts/fifty, +/obj/item/plunger, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 5 + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"sPI" = ( +/turf/open/floor/grass, +/area/station/service/hydroponics/garden/abandoned) +"sPS" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/carpet, +/area/station/security/courtroom) +"sPT" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"sPU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/grandfatherclock, +/turf/open/floor/carpet, +/area/station/service/chapel/office) +"sQa" = ( +/obj/machinery/duct, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/open/floor/wood/large, +/area/station/common/night_club) +"sQf" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/item/clothing/glasses/regular/kim{ + pixel_x = -4; + pixel_y = -5 + }, +/obj/item/clothing/glasses/regular{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/glasses/regular/hipster{ + pixel_y = 9 + }, +/obj/structure/window/spawner/directional/north, +/turf/open/floor/iron/dark, +/area/station/common/tailoring) +"sQr" = ( +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/iron/stairs{ + dir = 1 + }, +/area/station/engineering/atmos/hfr_room) +"sQu" = ( +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/pool_maintenance) +"sQv" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/security/courtroom) +"sQw" = ( +/obj/structure/closet/crate/freezer, +/obj/item/storage/cans/sixsoda, +/obj/item/storage/cans/sixsoda, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/dark, +/area/station/common/wrestling/beverage) +"sQD" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister/plasma, +/turf/open/floor/engine, +/area/station/science/explab) +"sQF" = ( +/obj/effect/turf_decal/caution/stand_clear, +/obj/effect/turf_decal/bot, +/obj/machinery/door/poddoor/shutters{ + id = "evashutters"; + name = "E.V.A. Storage Shutter" + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva) +"sQH" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/smart/simple/violet/visible/layer2, +/turf/open/space/basic, +/area/space/nearstation) +"sQI" = ( +/obj/structure/girder, +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"sQO" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/cargo/lobby) +"sQQ" = ( +/turf/open/floor/iron, +/area/station/engineering/atmos/test_chambers) +"sQS" = ( +/obj/effect/landmark/start/assistant, +/turf/open/floor/iron/dark, +/area/station/commons/fitness) +"sQU" = ( +/obj/structure/sink/directional/west, +/obj/machinery/status_display/evac/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/science/genetics) +"sQX" = ( +/obj/effect/spawner/random/trash/mess, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"sRd" = ( +/obj/machinery/computer/security{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red/half{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/warden) +"sRq" = ( +/turf/open/floor/carpet/executive, +/area/station/command/heads_quarters/blueshield) +"sRt" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/dorms) +"sRw" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 6 + }, +/obj/machinery/light/directional/south, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/science/cytology) +"sRx" = ( +/obj/structure/table, +/obj/machinery/power/shuttle_engine/heater{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/security/execution/transfer) +"sRD" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/junction{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"sRP" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"sRV" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"sRY" = ( +/obj/structure/railing{ + dir = 10 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/command/gateway) +"sSc" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 8 + }, +/obj/structure/closet/firecloset/wall/directional/north, +/turf/open/floor/iron/dark/textured_edge{ + dir = 4 + }, +/area/station/engineering/supermatter/room) +"sSi" = ( +/obj/effect/turf_decal/vg_decals/numbers/one{ + dir = 8 + }, +/obj/machinery/suit_storage_unit/standard_unit, +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 10 + }, +/turf/open/floor/wood/large, +/area/station/science/auxlab/firing_range) +"sSp" = ( +/obj/effect/turf_decal/vg_decals/numbers/one, +/obj/effect/landmark/start/prisoner, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/security/prison/safe) +"sSq" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet, +/area/station/service/chapel) +"sSt" = ( +/obj/structure/window/reinforced/plasma/spawner/directional/south, +/obj/machinery/power/shuttle_engine/heater{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"sSv" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/station/service/library) +"sSz" = ( +/obj/structure/table/wood, +/obj/item/taperecorder, +/obj/item/tape, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/security/detectives_office) +"sSE" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/chair/sofa/bench{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/port) +"sSI" = ( +/obj/effect/turf_decal/tile/bar/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/security/prison/mess) +"sSK" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 8 + }, +/obj/structure/closet/crate/secure/engineering{ + name = "surplus equipment crate" + }, +/obj/item/flatpacked_machine/co2_cracker, +/obj/item/flatpacked_machine/fuel_generator, +/obj/item/flatpacked_machine/large_station_battery, +/obj/item/flatpacked_machine/recycler, +/obj/item/flatpacked_machine/rtg, +/obj/item/flatpacked_machine/stirling_generator, +/obj/item/flatpacked_machine/thermomachine, +/obj/item/circuitboard/machine/circulator, +/obj/item/circuitboard/machine/circulator, +/obj/item/circuitboard/machine/thermoelectric_generator, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/engineering/storage) +"sSP" = ( +/turf/open/floor/iron, +/area/station/security/prison/mess) +"sSS" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/obj/effect/landmark/start/quartermaster, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/qm) +"sSX" = ( +/obj/structure/toilet{ + dir = 1 + }, +/obj/machinery/light/small/directional/east{ + pixel_y = 11 + }, +/obj/structure/sink/directional/east, +/obj/structure/mirror/directional/west, +/turf/open/floor/iron/freezer, +/area/station/commons/dorms/room1) +"sSZ" = ( +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"sTg" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/vending/wardrobe/sec_wardrobe, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/dark/side, +/area/station/security/checkpoint/escape) +"sTh" = ( +/obj/effect/turf_decal/bot_white, +/turf/open/floor/iron, +/area/station/engineering/transit_tube) +"sTk" = ( +/turf/closed/wall, +/area/station/service/theater) +"sTl" = ( +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"sTz" = ( +/obj/machinery/duct, +/turf/open/floor/iron/white/corner{ + dir = 4 + }, +/area/station/science/xenobiology) +"sTA" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/security/medical) +"sTB" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Holodeck Controls" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/commons/fitness/recreation) +"sTF" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/duct, +/turf/open/floor/carpet/blue, +/area/station/commons/dorms/room3) +"sTH" = ( +/obj/structure/railing, +/obj/machinery/door/firedoor/border_only, +/turf/open/floor/iron, +/area/station/commons/dorms) +"sUc" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/structure/chair/office{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/landmark/generic_maintenance_landmark, +/obj/structure/cable, +/turf/open/floor/carpet, +/area/station/maintenance/abandon_psych) +"sUe" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/turf_decal/trimline/red/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/filled/warning{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/prison/upper) +"sUg" = ( +/obj/effect/turf_decal/trimline/red/filled/corner{ + color = "#DE3A3A"; + dir = 1 + }, +/obj/structure/railing, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hos) +"sUj" = ( +/obj/machinery/door/poddoor/shutters{ + id = "evashutters2"; + name = "E.V.A. Storage Shutters" + }, +/turf/open/floor/iron/dark, +/area/station/maintenance/aux_eva) +"sUs" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/cable, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock/security/old{ + name = "Library" + }, +/turf/open/floor/wood, +/area/station/security/prison/rec) +"sUt" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet/directional/east, +/obj/structure/cable, +/obj/machinery/light/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/dorms) +"sUJ" = ( +/obj/structure/window/spawner/directional/east, +/obj/effect/turf_decal/delivery, +/obj/structure/table, +/obj/item/storage/box/beakers/variety{ + pixel_x = -15; + pixel_y = 6 + }, +/obj/item/reagent_containers/cup/beaker/cryoxadone{ + pixel_y = 4 + }, +/obj/item/reagent_containers/dropper{ + pixel_y = -4 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 5 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"sUL" = ( +/turf/closed/wall, +/area/station/maintenance/department/engineering/engine_aft_starboard) +"sUV" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/medical/cryo) +"sVc" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science) +"sVg" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/flora/bush/jungle/a/style_3, +/turf/open/floor/grass, +/area/station/science/research) +"sVh" = ( +/obj/structure/reagent_dispensers/plumbed{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"sVi" = ( +/obj/structure/closet/cardboard, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/xenobio_disposals) +"sVj" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light/directional/south, +/obj/structure/sign/poster/random/directional/south, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"sVk" = ( +/obj/machinery/firealarm/directional/east, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/chair/stool/bar/directional/south, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/service/kitchen/diner) +"sVm" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + name = "Atmospherics Internal Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/engineering/atmos) +"sVt" = ( +/turf/open/floor/iron, +/area/station/command/gateway) +"sVz" = ( +/obj/machinery/power/shuttle_engine/heater, +/turf/open/floor/plating, +/area/station/science/research/abandoned) +"sVC" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Engineering Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering, +/obj/effect/mapping_helpers/airlock/abandoned, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"sVD" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"sVH" = ( +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = 3 + }, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = 3 + }, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = 3 + }, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = 3 + }, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = 3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/head/utility/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/utility/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/utility/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/utility/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/utility/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/structure/closet/crate/internals, +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/dark/side{ + dir = 5 + }, +/area/station/command/gateway) +"sVJ" = ( +/obj/structure/cable, +/turf/open/floor/carpet/black, +/area/station/service/barber) +"sVR" = ( +/obj/structure/closet/crate/bin, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/effect/spawner/random/contraband/prison, +/turf/open/floor/wood, +/area/station/security/prison/rec) +"sVS" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/closet/toolcloset, +/turf/open/floor/iron/dark, +/area/station/engineering/main) +"sVV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate/trashcart/filled, +/obj/machinery/light/small/broken/directional/north, +/obj/effect/spawner/random/contraband/cannabis, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"sVZ" = ( +/obj/machinery/suit_storage_unit/atmos, +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/office) +"sWd" = ( +/obj/structure/closet/secure_closet/brig/genpop, +/obj/effect/turf_decal/bot, +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/iron/dark, +/area/station/security/prison) +"sWk" = ( +/obj/structure/closet, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"sWo" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/construction/mining/aux_base) +"sWA" = ( +/turf/closed/wall, +/area/station/service/janitor) +"sWD" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/glass/reinforced, +/area/station/maintenance/aft/upper) +"sWE" = ( +/obj/structure/table, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/commons/dorms) +"sWF" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"sWH" = ( +/obj/machinery/computer/atmos_control/mix_tank{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/engineering/atmos/pumproom) +"sWM" = ( +/obj/structure/table, +/obj/item/reagent_containers/blood/random{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/reagent_containers/blood/random, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/white, +/area/station/maintenance/abandon_diner) +"sWO" = ( +/obj/machinery/computer/station_alert{ + dir = 8 + }, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/office) +"sWX" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning, +/obj/effect/turf_decal/trimline/purple/filled/corner{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"sXb" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/dark, +/area/station/science/xenobiology/control) +"sXk" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "lawyerprivacy"; + name = "Lawyer's Privacy Shutter" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/service/lawoffice) +"sXo" = ( +/obj/machinery/computer/records/medical/laptop, +/obj/structure/table/reinforced, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/machinery/light/directional/east, +/turf/open/floor/iron, +/area/station/medical/surgery/theatre) +"sXp" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/door/airlock/qm{ + name = "Quartermaster's Quarters" + }, +/obj/effect/mapping_helpers/airlock/access/all/supply/qm, +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/qm) +"sXt" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "roboticsprivacy"; + name = "Robotics Shutters" + }, +/turf/open/floor/plating, +/area/station/science/robotics) +"sXv" = ( +/obj/machinery/holopad, +/turf/open/floor/carpet, +/area/station/security/courtroom) +"sXy" = ( +/obj/effect/turf_decal/trimline/red/filled/line{ + color = "#DE3A3A" + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/side, +/area/station/security/brig) +"sXD" = ( +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"sXE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"sXG" = ( +/obj/structure/table, +/obj/machinery/light/small/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"sXH" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/science/research) +"sXJ" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/machinery/atmospherics/components/tank/oxygen, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/storage) +"sXK" = ( +/obj/docking_port/stationary{ + dwidth = 1; + height = 13; + name = "arrivals"; + shuttle_id = "arrival_stationary"; + width = 5; + roundstart_template = /datum/map_template/shuttle/arrival/nova + }, +/turf/open/space/basic, +/area/space) +"sXR" = ( +/obj/machinery/door/airlock{ + name = "Private Ranching Area" + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/duct, +/obj/effect/mapping_helpers/airlock/access/all/service/hydroponics, +/turf/open/floor/iron/dark, +/area/station/common/night_club/back_stage) +"sXU" = ( +/obj/structure/table, +/obj/item/book/manual/wiki/tcomms, +/obj/item/radio/off, +/turf/open/floor/iron/dark, +/area/station/tcommsat/computer) +"sXV" = ( +/obj/structure/table/wood, +/obj/structure/window/spawner/directional/north, +/obj/item/storage/fancy/donut_box, +/obj/structure/cable, +/turf/open/floor/iron/grimy, +/area/station/command/meeting_room/council) +"sXX" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/obj/item/radio/intercom/directional/west, +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"sXZ" = ( +/obj/machinery/computer/shuttle/mining{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/construction/mining/aux_base) +"sYa" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/turf_decal/trimline/red/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/prison/upper) +"sYd" = ( +/obj/structure/sign/poster/contraband/have_a_puff/directional/south, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/effect/landmark/start/botanist{ + required_jobtitle = "Rancher" + }, +/turf/open/floor/wood/parquet, +/area/station/common/night_club) +"sYe" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/carpet/lone, +/area/station/service/chapel) +"sYh" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/machinery/conveyor{ + dir = 6; + id = "Luggagebelt" + }, +/turf/open/floor/plating, +/area/station/security/checkpoint/customs) +"sYw" = ( +/obj/structure/sign/poster/random/directional/north, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"sYz" = ( +/obj/structure/flora/bush/flowers_pp, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"sYB" = ( +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/red/corner{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 10 + }, +/turf/open/floor/iron/dark/side{ + dir = 10 + }, +/area/station/security/prison/upper) +"sYE" = ( +/mob/living/basic/chicken/brown{ + forced_gender = "female" + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/turf/open/floor/grass, +/area/station/common/night_club) +"sYK" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/hallway/primary/central) +"sYL" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 1 + }, +/obj/structure/flora/grass/jungle/b, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"sYM" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/common/wrestling/lobby) +"sYN" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"sYO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/chair, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"sYQ" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/structure/closet/crate/freezer/blood, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron/freezer, +/area/station/maintenance/abandon_kitchen_upper) +"sYX" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/closet/secure_closet/atmospherics, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/office) +"sYY" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/service/theater) +"sZb" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/light/directional/north, +/obj/machinery/status_display/ai/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"sZc" = ( +/obj/structure/chair/pew/left{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/security/courtroom) +"sZd" = ( +/obj/machinery/door/firedoor/border_only, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/stairs/old, +/area/station/engineering/atmos/upper) +"sZm" = ( +/turf/closed/wall, +/area/station/cargo/miningdock) +"sZp" = ( +/turf/closed/wall/r_wall, +/area/station/command/heads_quarters/blueshield) +"sZu" = ( +/obj/structure/chair/sofa/corp/right{ + dir = 8 + }, +/obj/item/toy/plush/beeplushie, +/obj/item/radio/intercom/directional/east, +/obj/machinery/light/directional/east, +/turf/open/floor/iron/smooth_edge{ + dir = 4 + }, +/area/station/command/secure_bunker) +"sZz" = ( +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"sZB" = ( +/obj/machinery/button/door{ + id = "surgery"; + name = "Shared Surgery Shutter Control"; + pixel_x = -4; + pixel_y = -26 + }, +/obj/structure/closet/secure_closet/medical2, +/obj/machinery/button/door/directional/south{ + id = "surgeryb"; + name = "Privacy Shutters Control"; + pixel_x = 7; + pixel_y = -26 + }, +/obj/effect/turf_decal/trimline/blue/filled/end, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/machinery/camera/autoname/directional/south{ + network = list("ss13","medbay") + }, +/turf/open/floor/iron/white, +/area/station/medical/surgery) +"sZC" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible, +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible/layer2, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/machinery/light/directional/west, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"sZG" = ( +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"sZI" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 6 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/prison/workout) +"sZM" = ( +/obj/structure/girder, +/obj/structure/grille/broken, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"sZO" = ( +/obj/structure/chair/sofa/corp{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/science/research) +"sZS" = ( +/obj/effect/spawner/random/trash/moisture_trap, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"sZT" = ( +/obj/structure/chair/sofa/corp/right, +/obj/item/toy/katana{ + pixel_x = -12; + pixel_y = 2 + }, +/obj/structure/sign/poster/contraband/busty_backdoor_xeno_babes_6/directional/north, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/small, +/area/station/security/prison/upper) +"sZV" = ( +/obj/machinery/portable_atmospherics/canister/nitrogen, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/pumproom) +"taa" = ( +/obj/structure/trash_pile, +/turf/open/floor/plating, +/area/station/maintenance/department/eva) +"tag" = ( +/obj/effect/turf_decal/stripes/corner, +/obj/effect/spawner/random/trash/hobo_squat, +/turf/open/floor/plating/reinforced{ + initial_gas_mix = "TEMP=2.7" + }, +/area/station/science/ordnance/bomb) +"tai" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 9 + }, +/obj/structure/chair/sofa/corp/left{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/small, +/area/station/security/prison/upper) +"tan" = ( +/obj/machinery/door/airlock/security{ + name = "Courtroom Tunnel" + }, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/turf/open/floor/iron/dark, +/area/station/security/courtroom) +"tat" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes, +/obj/machinery/holopad, +/obj/effect/landmark/event_spawn, +/obj/effect/landmark/blobstart, +/turf/open/floor/iron, +/area/station/command/teleporter) +"tax" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/prison) +"tay" = ( +/obj/machinery/camera/autoname/directional/west, +/turf/open/floor/wood, +/area/station/security/courtroom) +"taF" = ( +/obj/machinery/door/airlock/external{ + name = "Common Mining Shuttle Bay"; + space_dir = 4 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/hallway/secondary/entry) +"taK" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Distro to Waste" + }, +/turf/open/floor/iron/smooth, +/area/station/engineering/atmos/pumproom) +"taL" = ( +/obj/structure/window/reinforced/plasma/spawner/directional/north, +/obj/structure/window/reinforced/plasma/spawner/directional/south, +/obj/structure/table/reinforced, +/obj/machinery/light/directional/west, +/turf/open/floor/iron/dark, +/area/station/maintenance/department/engineering/atmos_aux_port) +"taN" = ( +/obj/structure/window/reinforced/fulltile, +/obj/structure/flora/grass/jungle/b, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/flowers_pp, +/turf/open/floor/grass, +/area/station/hallway/primary/central/fore) +"taP" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 1 + }, +/obj/machinery/camera/directional/north{ + c_tag = "Recreation - Gym Lower"; + dir = 5; + name = "hallway camera" + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/commons/fitness) +"taQ" = ( +/obj/machinery/airalarm/directional/north, +/obj/structure/cable, +/obj/machinery/light/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"taR" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Chapel Maintenance" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/service/chapel_office, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/chapel) +"taT" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Auxiliary E.V.A. Storage" + }, +/obj/effect/turf_decal/delivery, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/command/eva, +/turf/open/floor/iron, +/area/station/ai_monitored/command/storage/eva/upper) +"taU" = ( +/obj/effect/turf_decal/trimline/purple/filled/line, +/obj/structure/disposalpipe/segment, +/obj/machinery/holopad, +/turf/open/floor/iron/white, +/area/station/science/lab) +"taY" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Captainprivacy"; + name = "Privacy Shutters" + }, +/obj/machinery/door/airlock/captain{ + id_tag = "Capoffice"; + name = "Captain's Office" + }, +/obj/effect/mapping_helpers/airlock/access/all/command/captain, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain/private) +"taZ" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/trimline/red/filled/line{ + color = "#DE3A3A" + }, +/obj/structure/cable, +/obj/machinery/fax{ + fax_name = "Head of Security's Office"; + name = "Head of Security's Fax Machine" + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hos) +"tbb" = ( +/obj/structure/cable, +/turf/open/floor/iron/solarpanel/airless, +/area/station/solars/port/fore) +"tbf" = ( +/obj/structure/chair/office/light, +/obj/effect/turf_decal/stripes/white/corner{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/science/xenobiology/control) +"tbl" = ( +/obj/machinery/power/smes/engineering, +/obj/structure/railing{ + dir = 9 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/cargo/power_station/upper) +"tbm" = ( +/obj/structure/chair/plastic{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple/half{ + dir = 1 + }, +/turf/open/floor/iron/white/side{ + dir = 1 + }, +/area/station/science/research) +"tbo" = ( +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/common/pool) +"tbq" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/transit_tube/station/dispenser/reverse{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/engineering/transit_tube) +"tbu" = ( +/obj/machinery/status_display/ai/directional/west, +/turf/open/openspace, +/area/station/hallway/secondary/command) +"tbx" = ( +/turf/open/floor/iron/stairs/left{ + dir = 8 + }, +/area/station/hallway/primary/central) +"tby" = ( +/obj/effect/landmark/start/scientist, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/breakroom) +"tbz" = ( +/obj/machinery/door/airlock/external{ + space_dir = 2 + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "ExternalAirlockAtmosEngines" + }, +/turf/open/floor/plating, +/area/station/hallway/secondary/entry) +"tbH" = ( +/obj/structure/chair/pew/left{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/common/pool/sauna) +"tbS" = ( +/obj/structure/table/wood, +/obj/item/paper_bin, +/obj/item/pen, +/obj/machinery/digital_clock/directional/east, +/turf/open/floor/carpet, +/area/station/service/library/printer) +"tbT" = ( +/obj/structure/window/spawner/directional/east, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 6 + }, +/obj/structure/closet/crate/freezer/blood, +/turf/open/floor/iron/white, +/area/station/command/gateway) +"tbW" = ( +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/brig) +"tbY" = ( +/obj/machinery/door/airlock/external{ + space_dir = 4 + }, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/engineering/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "greater-sec-maint-cluster" + }, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"tca" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"tcf" = ( +/obj/effect/turf_decal/siding/blue, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/machinery/duct, +/turf/open/floor/iron/dark/textured_edge, +/area/station/security/prison/garden) +"tch" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) +"tci" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing, +/turf/open/space/basic, +/area/space/nearstation) +"tck" = ( +/obj/structure/chair/sofa/bench{ + dir = 8; + pixel_x = 5 + }, +/obj/effect/turf_decal/tile/blue/half{ + dir = 8 + }, +/turf/open/floor/iron/white/side{ + dir = 8 + }, +/area/station/medical/medbay/lobby) +"tcl" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"tco" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/commons/dorms) +"tcp" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/medical/glass{ + id_tag = "MedbayFoyer"; + name = "Medbay" + }, +/obj/effect/mapping_helpers/airlock/access/all/medical/general, +/obj/effect/mapping_helpers/airlock/unres, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"tcq" = ( +/turf/closed/wall, +/area/station/maintenance/aft/upper) +"tcz" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/secure_closet/security/engine, +/obj/machinery/camera/directional/west, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/engineering) +"tcI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"tcL" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/iron, +/area/station/security/checkpoint/medical) +"tcM" = ( +/turf/open/floor/iron/stairs/right{ + dir = 4 + }, +/area/station/security/prison/upper) +"tcS" = ( +/obj/structure/girder, +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/atmos_aux_port) +"tda" = ( +/obj/item/organ/internal/stomach, +/turf/open/floor/material/meat, +/area/station/maintenance/department/science/xenobiology) +"tdb" = ( +/obj/structure/railing, +/turf/open/floor/engine, +/area/station/cargo/miningdock) +"tdi" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/structure/kitchenspike, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/freezer, +/area/station/maintenance/abandon_kitchen_upper) +"tdl" = ( +/obj/structure/table/glass, +/obj/item/reagent_containers/cup/beaker/large{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/reagent_containers/cup/beaker{ + pixel_x = 8; + pixel_y = 2 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/science/xenobiology/control) +"tdr" = ( +/obj/effect/turf_decal/stripes/end{ + dir = 1 + }, +/turf/open/floor/plating/reinforced{ + initial_gas_mix = "TEMP=2.7" + }, +/area/station/science/ordnance/bomb) +"tdu" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 1; + name = "Coolant refiller" + }, +/turf/open/floor/engine/vacuum, +/area/station/maintenance/department/engineering/atmos_aux_port) +"tdv" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red/real_red/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hos) +"tdy" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/trinary/filter/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/department/engineering/atmos_aux_port) +"tdA" = ( +/obj/structure/cable, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"tdG" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/poddoor/shutters{ + id = "toxinsaccess"; + name = "Toxins Storage" + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/storage) +"tdH" = ( +/obj/effect/turf_decal/stripes/white/line, +/obj/effect/decal/cleanable/dirt, +/obj/item/trash/can, +/turf/open/floor/iron/dark/small, +/area/station/security/prison/upper) +"tdK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"tdO" = ( +/obj/structure/closet/bombcloset, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes{ + dir = 6 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) +"tdQ" = ( +/obj/effect/turf_decal/bot, +/obj/structure/table, +/obj/item/stack/sheet/cloth/ten, +/obj/machinery/newscaster/directional/west, +/turf/open/floor/iron/dark, +/area/station/commons/fitness) +"tdR" = ( +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/science/ordnance) +"tdU" = ( +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/chapel) +"teb" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/item/radio/intercom/directional/east, +/obj/machinery/corral_corner{ + mapping_id = "4" + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"tef" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/hallway/primary/port) +"tej" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"tel" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/table/reinforced, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/effect/turf_decal/stripes, +/obj/item/clothing/suit/armor/vest/alt/sec{ + pixel_y = 7 + }, +/obj/item/clothing/suit/armor/vest/alt/sec{ + pixel_x = -5; + pixel_y = -1 + }, +/obj/item/clothing/suit/armor/vest/alt/sec{ + pixel_x = 6; + pixel_y = 7 + }, +/obj/item/clothing/suit/armor/vest/alt/sec{ + pixel_y = -1 + }, +/obj/item/clothing/suit/armor/vest/alt/sec{ + pixel_x = -5; + pixel_y = 7 + }, +/obj/item/clothing/suit/armor/vest/alt/sec{ + pixel_x = 6; + pixel_y = -1 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark, +/turf/open/floor/iron/dark/textured_edge, +/area/station/ai_monitored/security/armory) +"teo" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/moisture_trap, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"tex" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/dark/line{ + dir = 5 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark/corner{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured_corner{ + dir = 8 + }, +/area/station/security/prison/safe) +"tey" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 5 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/medical/storage) +"tez" = ( +/obj/item/kirbyplants/random, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/security/detectives_office) +"teE" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/vending/engivend, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/iron/dark, +/area/station/engineering/storage_shared) +"teI" = ( +/obj/machinery/vending/coffee, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/firealarm/directional/north, +/obj/machinery/light/directional/north, +/turf/open/floor/iron/dark, +/area/station/command/meeting_room/council) +"teL" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 5 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/iron/white, +/area/station/science/research) +"teO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/photocopier, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/service/electronic_marketing_den) +"teQ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron, +/area/station/command/bridge) +"teT" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/cargo/office) +"teV" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/sign/nanotrasen{ + pixel_x = -32 + }, +/obj/machinery/door/airlock/public/glass{ + name = "Central Upper Hallway" + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"tfe" = ( +/turf/open/floor/plating, +/area/station/service/abandoned_gambling_den) +"tff" = ( +/turf/closed/wall/r_wall, +/area/station/medical/patients_rooms) +"tfg" = ( +/obj/machinery/atmospherics/pipe/smart/simple/general/visible{ + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/station/engineering/supermatter) +"tfh" = ( +/obj/structure/closet/secure_closet/chief_medical, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/cmo) +"tfq" = ( +/obj/structure/noticeboard/directional/south, +/obj/structure/table, +/obj/item/clothing/glasses/science{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/clothing/glasses/science, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 10 + }, +/turf/open/floor/iron/white, +/area/station/medical/pharmacy) +"tfC" = ( +/obj/machinery/firealarm/directional/south{ + pixel_y = -20 + }, +/obj/structure/fireaxecabinet/directional/south{ + pixel_y = -38 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/stairs{ + dir = 8 + }, +/area/station/command/bridge) +"tfE" = ( +/turf/closed/wall/rust, +/area/station/security/prison/upper) +"tfG" = ( +/obj/structure/chair/plastic{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/station/commons/dorms/vacantroom) +"tfJ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"tfO" = ( +/obj/structure/table, +/obj/item/reagent_containers/pill/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"tfP" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/carpet/green, +/area/station/service/abandoned_gambling_den) +"tfR" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"tfU" = ( +/turf/closed/wall/r_wall, +/area/station/maintenance/department/security/prison_upper) +"tfY" = ( +/obj/machinery/power/shuttle_engine/heater{ + dir = 4 + }, +/obj/structure/window/reinforced/plasma/spawner/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"tga" = ( +/turf/open/floor/iron/dark/side{ + dir = 5 + }, +/area/station/commons/fitness) +"tgb" = ( +/obj/effect/spawner/random/trash/mess, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"tgc" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/trimline/red/filled/line{ + color = "#DE3A3A"; + dir = 5 + }, +/obj/effect/turf_decal/trimline/red/corner{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 5 + }, +/area/station/security/prison/upper) +"tgl" = ( +/obj/item/kirbyplants/organic/plant22, +/obj/effect/turf_decal/trimline/red/filled/line{ + color = "#DE3A3A" + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron, +/area/station/command/heads_quarters/hos) +"tgn" = ( +/obj/structure/cable, +/obj/machinery/status_display/evac/directional/west, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/aisat/hallway) +"tgq" = ( +/obj/machinery/light/directional/south, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"tgs" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/layer2{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/xenobio_disposals) +"tgH" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 9 + }, +/obj/machinery/iv_drip, +/turf/open/floor/iron/white, +/area/station/command/gateway) +"tgR" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/cargo/lobby) +"tgV" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple/half{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron/white/side{ + dir = 4 + }, +/area/station/science) +"tgW" = ( +/obj/machinery/light/floor/has_bulb, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/engineering/transit_tube) +"thg" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"thj" = ( +/obj/effect/spawner/random/structure/table_or_rack, +/obj/effect/spawner/random/maintenance, +/obj/effect/decal/cleanable/dirt, +/obj/structure/fluff/broken_flooring, +/turf/open/floor/plating, +/area/station/science/tele_sci) +"thq" = ( +/obj/machinery/light/small/directional/south, +/obj/machinery/status_display/evac/directional/south, +/turf/open/floor/iron/white/small, +/area/station/medical/break_room) +"thr" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/security/range) +"thv" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white/side{ + dir = 1 + }, +/area/station/science/xenobiology) +"thw" = ( +/obj/machinery/smartfridge, +/turf/open/floor/plating, +/area/station/maintenance/abandon_kitchen_upper) +"thz" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/flowers_br, +/turf/open/floor/grass, +/area/station/science/research) +"thB" = ( +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/service/general, +/obj/machinery/door/airlock/service{ + name = "Service Hall" + }, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen/diner) +"thH" = ( +/obj/structure/extinguisher_cabinet/directional/west, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"thV" = ( +/obj/structure/table, +/obj/structure/reagent_dispensers/wall/peppertank/directional/east, +/obj/item/radio{ + pixel_x = -5; + pixel_y = 5 + }, +/obj/item/radio{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/machinery/status_display/ai/directional/north, +/obj/item/radio, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/line, +/turf/open/floor/iron/dark/textured_edge{ + dir = 1 + }, +/area/station/security/lockers) +"tib" = ( +/obj/machinery/airalarm/directional/east, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/bar/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/service/bar) +"tif" = ( +/obj/effect/landmark/start/warden, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/carpet/red, +/area/station/security/warden) +"tik" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/engineering/storage/tech) +"tim" = ( +/obj/structure/chair/stool/directional/east, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/prison/visit) +"tis" = ( +/obj/effect/spawner/random/trash/mess, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/abandon_wrestle) +"tix" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/computer/piratepad_control/civilian{ + dir = 1 + }, +/obj/structure/railing{ + dir = 8 + }, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/cargo/lobby) +"tiy" = ( +/obj/machinery/door/airlock{ + name = "Bar" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/command/captain_dining) +"tiA" = ( +/obj/effect/spawner/liquids_spawner{ + reagent_list = list(/datum/reagent/water=600) + }, +/obj/structure/flora/ocean/glowweed, +/mob/living/basic/carp/passive, +/turf/open/misc/asteroid, +/area/station/hallway/primary/upper) +"tiD" = ( +/obj/machinery/computer/prisoner/management{ + dir = 8 + }, +/obj/machinery/light/directional/east, +/obj/effect/turf_decal/tile/red/anticorner/contrasted, +/turf/open/floor/iron, +/area/station/security/checkpoint/escape) +"tiE" = ( +/obj/structure/table, +/obj/machinery/microwave{ + pixel_y = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"tiF" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/flowers_br, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/grass, +/area/station/hallway/secondary/command) +"tiN" = ( +/turf/closed/wall, +/area/station/service/theater/abandoned) +"tiO" = ( +/obj/effect/spawner/random/trash/cigbutt, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"tiU" = ( +/obj/item/trash/chips, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"tiZ" = ( +/obj/structure/filingcabinet/chestdrawer/wheeled, +/obj/machinery/airalarm/directional/west, +/obj/machinery/light/directional/west, +/obj/machinery/newscaster/directional/north, +/turf/open/floor/wood, +/area/station/service/lawoffice) +"tjj" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/turf/open/floor/iron, +/area/station/science/ordnance/storage) +"tjl" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/airlock/external{ + name = "Solar Maintenance"; + space_dir = 2 + }, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/engineering/general, +/turf/open/floor/plating, +/area/station/maintenance/solars/starboard/aft) +"tjw" = ( +/obj/structure/chair/sofa/corner/brown{ + dir = 4 + }, +/obj/effect/landmark/start/hangover, +/turf/open/floor/carpet, +/area/station/hallway/primary/port) +"tjC" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/item/folder/yellow, +/obj/item/flashlight/lamp, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/office) +"tjJ" = ( +/obj/effect/turf_decal/box/white{ + color = "#52B4E9" + }, +/turf/open/floor/engine, +/area/station/engineering/atmos/hfr_room) +"tjK" = ( +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible/layer2{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) +"tjN" = ( +/obj/structure/fans/tiny/forcefield{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/cargo/storage) +"tka" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/machinery/vending/coffee, +/turf/open/floor/wood, +/area/station/service/lawoffice) +"tkb" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/turf_decal/caution/stand_clear/red, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/smooth, +/area/station/command/secure_bunker) +"tkj" = ( +/obj/structure/rack/shelf, +/obj/effect/turf_decal/bot, +/obj/item/flashlight{ + pixel_x = 1; + pixel_y = 5 + }, +/obj/item/clothing/mask/gas, +/turf/open/floor/iron, +/area/station/commons/vacant_room/commissary) +"tkn" = ( +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_starboard) +"tku" = ( +/obj/machinery/power/terminal, +/obj/structure/cable, +/turf/open/floor/iron/dark/telecomms, +/area/station/tcommsat/server) +"tkC" = ( +/obj/item/cigbutt, +/obj/structure/cable, +/obj/structure/disposalpipe/trunk/multiz/down{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/eva) +"tkG" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/south, +/obj/structure/window/spawner/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"tkL" = ( +/obj/item/stack/sheet/cardboard, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"tkM" = ( +/obj/effect/spawner/random/maintenance, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"tkN" = ( +/obj/structure/cable, +/obj/effect/turf_decal/bot, +/obj/machinery/ammo_workbench, +/obj/effect/turf_decal/trimline/red/line{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark, +/turf/open/floor/iron/dark/textured_edge, +/area/station/security/office) +"tkQ" = ( +/obj/structure/drain, +/obj/machinery/shower/directional/north, +/obj/structure/curtain/cloth, +/turf/open/floor/iron/freezer, +/area/station/command/heads_quarters/cmo) +"tkV" = ( +/obj/item/stack/sheet/animalhide/human, +/turf/open/floor/material/meat, +/area/station/maintenance/department/science/xenobiology) +"tkX" = ( +/obj/structure/chair/sofa/bench/right{ + dir = 4; + pixel_x = -5 + }, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/science/research) +"tle" = ( +/turf/open/floor/iron/dark, +/area/station/security/courtroom) +"tli" = ( +/obj/effect/turf_decal/caution/stand_clear, +/obj/structure/industrial_lift/public, +/obj/effect/landmark/lift_id{ + specific_lift_id = "publicElevator" + }, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/plating/elevatorshaft, +/area/station/hallway/primary/central) +"tlr" = ( +/obj/structure/closet/lasertag/red, +/obj/machinery/light/small/directional/north, +/obj/effect/turf_decal/tile/red/real_red/half/contrasted, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/common/laser_tag) +"tls" = ( +/obj/structure/flora/bush/sparsegrass, +/obj/structure/flora/ocean/seaweed{ + pixel_y = 12 + }, +/turf/open/water/overlay, +/area/station/hallway/primary/central) +"tlw" = ( +/obj/effect/turf_decal/trimline/blue/line{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/prison/workout) +"tlC" = ( +/obj/structure/closet/secure_closet/psychology, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/item/storage/box/pillbottles, +/obj/item/cane, +/obj/item/storage/briefcase, +/turf/open/floor/carpet, +/area/station/medical/psychology) +"tlJ" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/access/all/service/bar, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/bar) +"tlN" = ( +/obj/effect/turf_decal/stripes/white/corner, +/obj/effect/turf_decal/stripes/white/corner{ + dir = 4 + }, +/turf/open/floor/engine/hull/reinforced, +/area/space/nearstation) +"tlR" = ( +/obj/effect/turf_decal/stripes{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/engineering/gravity_generator) +"tlT" = ( +/obj/item/kirbyplants/random, +/obj/machinery/light/directional/east, +/turf/open/floor/iron/dark/side{ + dir = 6 + }, +/area/station/security/prison) +"tme" = ( +/obj/effect/decal/cleanable/glass, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"tml" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/rack/shelf, +/obj/effect/turf_decal/bot, +/obj/item/stack/rods/fifty, +/obj/item/stack/rods/fifty, +/obj/item/stack/rods/fifty, +/obj/item/stack/rods/fifty, +/obj/item/stack/rods/fifty, +/obj/item/storage/belt/utility, +/obj/item/storage/belt/utility, +/obj/item/hand_labeler{ + pixel_x = -4; + pixel_y = -4 + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva) +"tmp" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/pumproom) +"tmr" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/reagent_containers/condiment/enzyme{ + pixel_y = 5 + }, +/obj/item/storage/box/beakers{ + pixel_x = -8; + pixel_y = -5 + }, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) +"tms" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters{ + id = "ChapelGardain"; + name = "Chapel Garden Shutters" + }, +/turf/open/floor/plating, +/area/station/service/chapel) +"tmt" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/maintenance/xenobio_disposals) +"tmB" = ( +/obj/machinery/rnd/production/protolathe/department/engineering, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/dark, +/area/station/engineering/storage_shared) +"tmD" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/holopad, +/turf/open/floor/iron, +/area/station/security/checkpoint/customs) +"tmI" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Hydroponics Maintenance" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/service/hydroponics, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"tmP" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron/dark, +/area/station/service/chapel/office) +"tmU" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/cafeteria, +/area/station/maintenance/department/medical/central) +"tmW" = ( +/obj/machinery/gravity_generator/main, +/obj/effect/turf_decal/bot_white, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/engineering/gravity_generator) +"tmY" = ( +/obj/machinery/computer/mech_bay_power_console{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/cargo/warehouse) +"tmZ" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 9 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "roboticsprivacy"; + name = "Robotics Shutters" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/science/robotics) +"tne" = ( +/obj/structure/showcase/cyborg/old{ + pixel_y = 20 + }, +/obj/machinery/ai_slipper{ + uses = 10 + }, +/obj/effect/turf_decal/bot_white, +/obj/machinery/status_display/ai/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat_interior) +"tnh" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/science/ordnance/storage) +"tnj" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron/dark, +/area/station/commons/fitness) +"tnm" = ( +/turf/closed/wall/r_wall, +/area/station/maintenance/abandon_office) +"tno" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/machinery/light/directional/south, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"tnr" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rdtoxins"; + name = "Toxins Lab Shutters" + }, +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/airlock/research{ + name = "Ordnance Secure Storage" + }, +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 1 + }, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/science/ordnance_storage, +/turf/open/floor/iron/white, +/area/station/science/ordnance/storage) +"tnw" = ( +/turf/closed/wall, +/area/station/security/prison/shower) +"tnz" = ( +/obj/structure/bed/roller, +/obj/machinery/iv_drip, +/obj/effect/turf_decal/bot, +/obj/machinery/anesthetic_machine, +/turf/open/floor/iron/dark, +/area/station/medical/surgery/theatre) +"tnI" = ( +/obj/structure/window/fulltile, +/turf/open/floor/grass, +/area/station/service/chapel) +"tnJ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/door/morgue{ + name = "Private Study"; + req_access = list("library") + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/service/library/private) +"tnW" = ( +/obj/structure/cable, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) +"toc" = ( +/obj/machinery/chem_master/condimaster{ + desc = "Looks like a knock-off chem-master. Perhaps useful for separating liquids when mixing drinks precisely. Also dispenses condiments."; + name = "HoochMaster Deluxe" + }, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/command/captain_dining) +"tod" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/green/filled/corner, +/turf/open/floor/iron/white, +/area/station/medical/virology) +"toe" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/item/clipboard, +/obj/item/folder/red, +/obj/item/folder/red, +/turf/open/floor/wood, +/area/station/service/electronic_marketing_den) +"tol" = ( +/obj/effect/turf_decal/stripes{ + dir = 10 + }, +/turf/open/floor/plating, +/area/station/cargo/storage) +"toq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/moisture, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"toB" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) +"toE" = ( +/obj/structure/table/wood, +/obj/item/folder/blue{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/folder/blue, +/obj/item/stamp/denied{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/stamp/captain{ + pixel_x = 5; + pixel_y = 2 + }, +/obj/item/stamp{ + pixel_x = -6 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/window/brigdoor/right/directional/west{ + name = "Captain's Desk"; + req_access = list("captain") + }, +/turf/open/floor/carpet/blue, +/area/station/command/heads_quarters/captain/private) +"toI" = ( +/obj/effect/spawner/random/trash/mess, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"toK" = ( +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/ai) +"toN" = ( +/obj/structure/window/spawner/directional/west, +/obj/structure/flora/bush/grassy, +/turf/open/floor/grass, +/area/station/service/cafeteria) +"toP" = ( +/obj/effect/spawner/structure/window, +/obj/structure/curtain/bounty, +/turf/open/floor/plating, +/area/station/service/barber) +"toQ" = ( +/obj/machinery/light/directional/east, +/obj/machinery/newscaster/directional/east, +/turf/open/floor/carpet, +/area/station/service/bar/atrium) +"toR" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/chair/wood{ + dir = 4; + layer = 2.8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/service/abandoned_gambling_den) +"toW" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/station/command/captain_dining) +"toZ" = ( +/obj/effect/turf_decal/tile/red, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/table/reinforced, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/iron/dark/side, +/area/station/security/office) +"tpc" = ( +/obj/structure/closet/crate/hydroponics, +/obj/item/cultivator, +/obj/item/hatchet, +/obj/item/wirecutters, +/obj/item/shovel/spade, +/obj/item/wrench, +/obj/item/crowbar/large, +/obj/item/screwdriver, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) +"tpd" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/wood, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/carpet, +/area/station/service/cafeteria) +"tpe" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/hallway/primary/central) +"tpg" = ( +/obj/item/kirbyplants/random, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/service/lawoffice) +"tph" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"tpk" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"tpp" = ( +/obj/effect/spawner/random/trash/graffiti, +/turf/closed/wall, +/area/station/cargo/miningdock) +"tpx" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/wood{ + dir = 4; + layer = 2.8 + }, +/turf/open/floor/wood, +/area/station/service/abandoned_gambling_den) +"tpG" = ( +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/commons/fitness) +"tpI" = ( +/obj/machinery/modular_computer/preset/civilian{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/dark/small, +/area/station/cargo/storage) +"tpN" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"tpR" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/item/beacon, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) +"tpT" = ( +/obj/structure/curtain/cloth, +/obj/structure/drain, +/obj/machinery/shower/directional/south, +/turf/open/floor/iron/freezer, +/area/station/commons/dorms/room3) +"tpV" = ( +/obj/machinery/smartfridge/organ, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron, +/area/station/science/robotics) +"tqc" = ( +/obj/effect/decal/cleanable/oil, +/obj/effect/landmark/generic_maintenance_landmark, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"tqh" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/hallway/secondary/service) +"tqo" = ( +/obj/effect/turf_decal/trimline/red/filled{ + color = "#DE3A3A" + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hos) +"tqr" = ( +/obj/effect/spawner/random/trash/moisture, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"tqs" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/cafeteria, +/area/station/maintenance/abandon_diner) +"tqu" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/research) +"tqE" = ( +/obj/structure/chair/comfy, +/obj/structure/cable, +/turf/open/floor/carpet/purple, +/area/station/science/breakroom) +"tqF" = ( +/obj/effect/landmark/generic_maintenance_landmark, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"tqG" = ( +/obj/effect/landmark/start/detective, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/security/detectives_office) +"tqJ" = ( +/turf/closed/wall/r_wall, +/area/station/maintenance/xenobio_disposals) +"tqL" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"tqW" = ( +/obj/item/kirbyplants/random, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/iron, +/area/station/science/auxlab/firing_range) +"trj" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/dark/side, +/area/station/hallway/primary/upper) +"trk" = ( +/obj/effect/spawner/random/trash/hobo_squat, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_port) +"trl" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "garbage" + }, +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/disposal) +"trz" = ( +/obj/structure/closet/crate/bin, +/obj/effect/spawner/random/trash/garbage, +/obj/effect/spawner/random/trash/garbage, +/obj/effect/spawner/random/contraband/prison, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/dark/line, +/obj/effect/turf_decal/siding/thinplating_new/dark, +/turf/open/floor/iron/dark/textured_edge{ + dir = 1 + }, +/area/station/security/prison/safe) +"trC" = ( +/obj/structure/light_construct/directional/west, +/turf/open/floor/plating, +/area/station/hallway/secondary/construction) +"trE" = ( +/obj/structure/cable, +/obj/machinery/light_switch/directional/west, +/turf/open/floor/iron, +/area/station/engineering/engine_smes) +"trG" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Service Hallway Maintenance Hatch" + }, +/obj/effect/mapping_helpers/airlock/access/all/service/general, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"trQ" = ( +/turf/closed/wall/r_wall, +/area/station/security/detectives_office) +"tsb" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/item/clothing/shoes/magboots{ + pixel_y = 4 + }, +/obj/item/clothing/shoes/magboots, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva/upper) +"tsh" = ( +/obj/effect/turf_decal/trimline/blue/line{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"tso" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/security/lesser) +"tsr" = ( +/obj/structure/table, +/obj/item/reagent_containers/condiment/peppermill{ + pixel_x = 3 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"tsB" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 4; + id = "qmprivacy"; + name = "Quartermaster's Privacy Shutters" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/command/heads_quarters/qm) +"tsQ" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/chair/comfy/brown{ + color = "#A46106" + }, +/turf/open/floor/wood/parquet, +/area/station/service/theater) +"tsR" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/entry) +"tsS" = ( +/obj/effect/spawner/random/maintenance, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"tsU" = ( +/obj/structure/urinal/directional/west, +/turf/open/floor/iron/cafeteria, +/area/station/commons/toilet/auxiliary) +"tsX" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/dorms) +"ttf" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/common/locker_room_shower) +"ttj" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/security/courtroom) +"ttI" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/structure/closet/secure_closet/personal/cabinet, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/cmo) +"ttJ" = ( +/obj/structure/table/wood, +/obj/item/paper_bin/carbon{ + pixel_x = -3; + pixel_y = 2 + }, +/obj/item/pen{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/flashlight/lamp/green{ + pixel_x = 5; + pixel_y = -5 + }, +/turf/open/floor/carpet, +/area/station/medical/psychology) +"ttN" = ( +/obj/machinery/status_display/ai/directional/south, +/obj/machinery/airalarm/directional/west, +/obj/structure/hedge, +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 1 + }, +/turf/open/floor/iron/dark/small, +/area/station/science/circuits) +"ttS" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"ttV" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/engineering/main) +"tue" = ( +/obj/structure/barricade/wooden, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"tuf" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/curtain/cloth/fancy/mechanical{ + icon_state = "bounty-open"; + icon_type = "bounty"; + id = "dormscurtain3"; + name = "curtain" + }, +/turf/open/floor/plating, +/area/station/commons/dorms/room4) +"tui" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/machinery/computer/rdconsole{ + dir = 4; + pixel_x = -5 + }, +/obj/structure/noticeboard/directional/west, +/obj/machinery/posialert{ + pixel_y = -35 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/rd) +"tum" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/open/floor/wood, +/area/station/security/prison/mess) +"tuv" = ( +/obj/machinery/light/small/directional/east, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/structure/closet/secure_closet/brig{ + id = "Cell 3"; + name = "Cell 3 Locker" + }, +/turf/open/floor/iron/dark, +/area/station/security/brig) +"tuC" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 6 + }, +/obj/machinery/status_display/evac/directional/east, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"tuJ" = ( +/obj/machinery/light/directional/south, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"tuO" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/green/filled/corner, +/obj/machinery/newscaster/directional/west, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/virology) +"tuQ" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 1 + }, +/obj/structure/flora/bush/fullgrass, +/obj/structure/chair/sofa/bench/left{ + dir = 1 + }, +/obj/structure/flora/bush/flowers_pp, +/turf/open/floor/grass, +/area/station/hallway/primary/aft) +"tuS" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/science/explab) +"tva" = ( +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/iron/kitchen, +/area/station/security/prison/mess) +"tvb" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"tve" = ( +/obj/machinery/growing/tray, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics/garden) +"tvg" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"tvk" = ( +/obj/effect/landmark/start/assistant, +/turf/open/floor/iron/dark, +/area/station/service/cafeteria) +"tvl" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/piratepad/civilian, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/cargo/lobby) +"tvm" = ( +/obj/machinery/power/shuttle_engine/heater, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"tvp" = ( +/obj/structure/chair/wood{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/commons/dorms/room2) +"tvs" = ( +/obj/machinery/disease2/diseaseanalyser, +/turf/open/floor/iron, +/area/station/medical/virology) +"tvu" = ( +/obj/item/radio/intercom/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/commons/vacant_room/commissary) +"tvB" = ( +/turf/closed/wall, +/area/station/service/chapel/office) +"tvI" = ( +/obj/machinery/light/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/light_switch/directional/east, +/obj/effect/turf_decal/siding/thinplating_new/dark/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/red/corner{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_corner{ + dir = 1 + }, +/area/station/security/lockers) +"tvJ" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless, +/area/station/maintenance/port/upper) +"tvL" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"tvY" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Genetics Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/genetics, +/turf/open/floor/plating, +/area/station/maintenance/department/science/upper) +"twc" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"twj" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/components/unary/passive_vent/layer4, +/turf/open/space/basic, +/area/space/nearstation) +"two" = ( +/obj/structure/chair/office{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/hop) +"twp" = ( +/obj/structure/rack/shelf, +/obj/effect/spawner/random/techstorage/engineering_all, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) +"twq" = ( +/obj/effect/turf_decal/trimline/red/filled/line{ + color = "#DE3A3A"; + dir = 8 + }, +/obj/structure/bed/dogbed/lia, +/mob/living/basic/carp/pet/lia, +/obj/machinery/light/directional/east, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hos) +"twz" = ( +/obj/effect/turf_decal/trimline/red/filled/corner{ + color = "#DE3A3A"; + dir = 4 + }, +/obj/machinery/disposal/bin, +/obj/structure/railing, +/obj/structure/disposalpipe/trunk{ + dir = 2 + }, +/obj/machinery/requests_console/directional/north{ + department = "Head of Security's Desk"; + name = "Head of Security's Requests Console"; + pixel_x = -31; + pixel_y = 0 + }, +/obj/effect/mapping_helpers/requests_console/announcement, +/obj/effect/mapping_helpers/requests_console/information, +/obj/effect/mapping_helpers/requests_console/assistance, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hos) +"twB" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 6 + }, +/obj/structure/flora/bush/jungle/b, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"twI" = ( +/obj/structure/chair/sofa/corp/left{ + dir = 4; + layer = 2.8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/wood/parquet, +/area/station/common/night_club) +"twL" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 9 + }, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/science) +"twQ" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/red, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 6 + }, +/area/station/security/office) +"twS" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/status_display/evac/directional/east, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/commons/dorms) +"twV" = ( +/obj/structure/table, +/obj/item/spear, +/obj/item/hatchet/wooden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"txa" = ( +/obj/effect/turf_decal/stripes, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/circuit, +/area/station/command/gateway) +"txg" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/ordnance_burn_chamber_input{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/science/ordnance/burnchamber) +"txk" = ( +/obj/structure/table/reinforced, +/obj/item/implanter{ + pixel_x = 5; + pixel_y = 12 + }, +/obj/item/storage/box/evidence{ + pixel_x = -5; + pixel_y = 12 + }, +/obj/item/toy/crayon/white{ + pixel_x = -5; + pixel_y = -4 + }, +/obj/item/toy/crayon/white{ + pixel_y = -4 + }, +/obj/effect/turf_decal/tile/red/anticorner/contrasted{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/security/office) +"txl" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/smart/simple/violet/visible/layer2, +/turf/open/space/basic, +/area/space/nearstation) +"txp" = ( +/obj/machinery/conveyor{ + dir = 10; + id = "garbage" + }, +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/disposal) +"txq" = ( +/obj/effect/turf_decal/trimline/white/line{ + dir = 1 + }, +/obj/structure/transit_tube/junction{ + dir = 4 + }, +/turf/open/floor/iron/shuttle/arrivals/airless, +/area/space/nearstation) +"txw" = ( +/obj/structure/cable, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/dorms) +"txy" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/openspace, +/area/station/maintenance/aft/upper) +"txz" = ( +/obj/machinery/conveyor{ + dir = 10; + id = "cargounload" + }, +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/plating, +/area/station/cargo/storage) +"txJ" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "packageSort2" + }, +/obj/machinery/door/window/right/directional/east{ + name = "Crate Security Door"; + req_access = list("cargo") + }, +/turf/open/floor/iron/dark, +/area/station/cargo/sorting) +"txP" = ( +/obj/machinery/duct, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood/large, +/area/station/common/night_club) +"txW" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/security/prison/mess) +"txY" = ( +/obj/structure/cable, +/turf/open/floor/iron/smooth, +/area/station/cargo/miningdock) +"tyb" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/green, +/area/station/service/abandoned_gambling_den) +"tyh" = ( +/turf/open/floor/grass, +/area/station/common/night_club) +"tyk" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/n2o{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/box, +/turf/open/floor/plating/airless, +/area/station/engineering/atmos/upper) +"tyl" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/tile/purple/half{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/iron/white/side{ + dir = 4 + }, +/area/station/science) +"tym" = ( +/obj/effect/turf_decal/trimline/purple/filled/corner, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/research) +"tys" = ( +/obj/machinery/vending/wardrobe/chap_wardrobe, +/obj/effect/turf_decal/bot_white, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/dark, +/area/station/service/chapel/office) +"tyu" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"tyB" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/hallway/secondary/construction) +"tyD" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/sunny, +/obj/structure/flora/bush/flowers_pp, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/grass, +/area/station/hallway/secondary/exit) +"tyE" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"tyG" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/junction{ + dir = 1 + }, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/science/research) +"tyH" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"tyK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/command/bridge) +"tyO" = ( +/obj/structure/chair/comfy/barber_chair{ + dir = 8 + }, +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/wood/tile, +/area/station/service/barber) +"tyT" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/flora/grass/jungle/b, +/obj/structure/flora/bush/flowers_yw, +/turf/open/floor/grass, +/area/station/service/hydroponics) +"tyV" = ( +/obj/machinery/duct, +/turf/open/floor/iron/freezer, +/area/station/medical/aslyum) +"tyX" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"tzc" = ( +/obj/structure/window/reinforced/plasma/spawner/directional/east, +/obj/machinery/power/shuttle_engine/heater{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/science/research/abandoned) +"tze" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet/directional/north, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/commons/dorms) +"tzf" = ( +/turf/closed/wall, +/area/station/maintenance/department/science/lower) +"tzi" = ( +/obj/structure/door_assembly/door_assembly_ext, +/obj/item/screwdriver, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mob_spawn/corpse/human/damaged, +/obj/effect/gibspawner/human/bodypartless, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating, +/area/station/maintenance/department/security/lower) +"tzl" = ( +/obj/structure/table, +/obj/machinery/microwave{ + pixel_x = -2; + pixel_y = 6 + }, +/obj/structure/sign/poster/contraband/microwave/directional/west, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"tzm" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"tzu" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/purple/half, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/iron/white/side, +/area/station/science) +"tzv" = ( +/obj/structure/disposalpipe/sorting/mail{ + dir = 2; + name = "Janitor Junction"; + sortType = 22 + }, +/turf/open/floor/iron/checker, +/area/station/service/janitor) +"tzz" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/machinery/duct, +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/night_club) +"tzA" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"tzE" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"tzF" = ( +/obj/structure/cable, +/obj/effect/spawner/random/trash/mess, +/turf/open/floor/plating, +/area/station/maintenance/library/upper) +"tzH" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk/multiz/down{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"tzJ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron/dark, +/area/station/security/interrogation) +"tzN" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"tzO" = ( +/obj/structure/table/reinforced, +/obj/machinery/computer/security/telescreen{ + dir = 1; + name = "Relay monitoring"; + network = list("tcomms") + }, +/turf/open/floor/iron/dark, +/area/station/tcommsat/computer) +"tzR" = ( +/obj/effect/turf_decal/trimline/purple/filled/line, +/obj/structure/extinguisher_cabinet/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/camera/autoname/directional/south{ + network = list("ss13","xeno","rd") + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"tzV" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 10 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/science/research) +"tzX" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/cafeteria, +/area/station/common/wrestling/concessions) +"tAc" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"tAd" = ( +/obj/structure/chair/comfy/brown{ + color = "#A46106"; + dir = 4 + }, +/turf/open/floor/carpet, +/area/station/medical/patients_rooms) +"tAe" = ( +/obj/structure/window/spawner/directional/south, +/obj/structure/curtain, +/obj/machinery/iv_drip, +/obj/effect/turf_decal/siding/thinplating/light{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/medical/patients_rooms) +"tAf" = ( +/obj/item/radio/intercom/directional/west, +/turf/open/floor/carpet, +/area/station/medical/psychology) +"tAj" = ( +/turf/closed/wall, +/area/station/hallway/secondary/entry) +"tAn" = ( +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 4 + }, +/obj/structure/disposalpipe/junction{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) +"tAr" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"tAt" = ( +/turf/closed/wall, +/area/station/maintenance/department/crew_quarters/bar) +"tAw" = ( +/obj/structure/table, +/obj/item/restraints/handcuffs{ + pixel_y = 4 + }, +/obj/item/restraints/handcuffs{ + pixel_y = 4 + }, +/obj/item/restraints/handcuffs{ + pixel_y = 4 + }, +/obj/item/restraints/handcuffs{ + pixel_y = 4 + }, +/obj/item/restraints/legcuffs, +/obj/item/restraints/legcuffs, +/obj/item/restraints/legcuffs, +/obj/item/restraints/legcuffs, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/medical/aslyum) +"tAy" = ( +/obj/effect/landmark/navigate_destination, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Arrivals" + }, +/turf/open/floor/iron/stairs/right{ + dir = 8 + }, +/area/station/escapepodbay) +"tAE" = ( +/obj/machinery/food_cart, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/checker, +/area/station/hallway/secondary/service) +"tAL" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood/parquet, +/area/station/common/night_club) +"tAM" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 8 + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron/white, +/area/station/science) +"tAR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"tAS" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"tAX" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/gbp_redemption{ + pixel_y = 6 + }, +/turf/open/floor/iron, +/area/station/cargo/lobby) +"tBb" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"tBc" = ( +/obj/structure/noticeboard/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/commons/vacant_room/commissary) +"tBi" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"tBp" = ( +/obj/structure/table/wood/fancy, +/obj/item/flashlight/lantern, +/turf/open/floor/carpet, +/area/station/service/chapel) +"tBq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine, +/area/station/engineering/supermatter) +"tBw" = ( +/obj/machinery/door/poddoor/preopen{ + id = "atmoslock"; + name = "Atmospherics Lockdown Blast Door" + }, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Atmospherics Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/turf/open/floor/plating, +/area/station/maintenance/central) +"tBy" = ( +/obj/machinery/computer/records/medical{ + dir = 4 + }, +/obj/machinery/newscaster/directional/north, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/medical) +"tBG" = ( +/turf/open/floor/iron/smooth_edge, +/area/station/maintenance/disposal/incinerator) +"tBI" = ( +/obj/structure/door_assembly/door_assembly_fre{ + anchored = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"tBJ" = ( +/obj/effect/turf_decal/stripes/end{ + dir = 8 + }, +/obj/machinery/light/small/directional/west, +/turf/open/floor/engine, +/area/station/science/auxlab/firing_range) +"tBM" = ( +/obj/machinery/light/small/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/security/courtroom) +"tBT" = ( +/obj/effect/turf_decal/delivery, +/obj/item/kirbyplants/organic/plant21, +/turf/open/floor/iron, +/area/station/engineering/storage/tech) +"tBZ" = ( +/obj/machinery/corral_corner{ + mapping_id = "5" + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"tCd" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/landmark/start/atmospheric_technician, +/turf/open/floor/iron, +/area/station/engineering/atmos/office) +"tCe" = ( +/obj/structure/sign/warning/test_chamber, +/turf/closed/wall/r_wall, +/area/station/engineering/atmos/test_chambers) +"tCf" = ( +/obj/structure/table/wood/fancy/purple, +/obj/item/pai_card, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/carpet/purple, +/area/station/command/heads_quarters/rd) +"tCi" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"tCj" = ( +/obj/machinery/duct, +/turf/open/floor/carpet/executive, +/area/station/command/heads_quarters/blueshield) +"tCm" = ( +/obj/docking_port/stationary{ + dheight = 4; + dir = 8; + dwidth = 4; + height = 9; + name = "Aux Base Zone"; + roundstart_template = /datum/map_template/shuttle/aux_base/default; + shuttle_id = "aux_base_zone"; + width = 9 + }, +/turf/open/floor/plating, +/area/station/construction/mining/aux_base) +"tCr" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/security/checkpoint/medical) +"tCt" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"tCv" = ( +/obj/machinery/door/poddoor/preopen{ + id = "XenoOffice"; + name = "Xenobiology Lockdown Blast Doors" + }, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Toxins Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"tCC" = ( +/obj/structure/table/reinforced, +/obj/item/folder/yellow, +/obj/item/folder/yellow, +/obj/item/folder/yellow, +/obj/item/stamp/denied{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/stamp, +/turf/open/floor/iron/dark, +/area/station/cargo/office) +"tCJ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/structure/hedge/opaque, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/central) +"tCN" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/science/ordnance) +"tCQ" = ( +/obj/structure/trash_pile, +/turf/open/floor/plating, +/area/station/maintenance/department/science/upper) +"tCS" = ( +/obj/effect/turf_decal/siding/wood/corner, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/medical/patients_rooms) +"tCX" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/spawner/random/structure/steam_vent, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"tCY" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/oxygen_output{ + dir = 1 + }, +/turf/open/floor/engine/o2, +/area/station/engineering/atmos) +"tDi" = ( +/obj/machinery/modular_computer/preset/civilian, +/turf/open/floor/iron/dark, +/area/station/tcommsat/computer) +"tDm" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/miningdock) +"tDr" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/chair/office, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/carpet, +/area/station/maintenance/abandon_office) +"tDy" = ( +/obj/structure/bed, +/turf/open/floor/wood, +/area/station/common/pool) +"tDH" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/duct, +/turf/open/floor/wood/parquet, +/area/station/science/breakroom) +"tDN" = ( +/obj/machinery/computer/security{ + dir = 4 + }, +/obj/machinery/button/flasher{ + id = "secentranceflasher"; + name = "Brig Entrance Flasher"; + pixel_x = -24; + pixel_y = -22; + req_access = list("security") + }, +/obj/structure/cable, +/obj/effect/turf_decal/siding/thinplating_new/dark/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/corner{ + dir = 4 + }, +/turf/open/floor/iron/dark/smooth_corner{ + dir = 4 + }, +/area/station/security/brig) +"tDT" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/displaycase/forsale, +/obj/machinery/camera/autoname/directional/north, +/turf/open/floor/iron/dark, +/area/station/common/gaskiosk) +"tDU" = ( +/obj/structure/cable, +/obj/structure/table/wood/poker, +/obj/item/toy/cards/deck, +/turf/open/floor/plating, +/area/station/service/abandoned_gambling_den) +"tEa" = ( +/obj/machinery/light/no_nightlight/directional/south, +/obj/machinery/light_switch/directional/south, +/turf/open/floor/iron, +/area/station/engineering/atmos/hfr_room) +"tEb" = ( +/obj/structure/table, +/obj/item/training_toolbox{ + pixel_y = 8 + }, +/obj/item/training_toolbox, +/turf/open/floor/stone, +/area/station/common/wrestling/arena) +"tEi" = ( +/obj/structure/table/reinforced, +/obj/item/book/manual/wiki/security_space_law, +/obj/item/radio, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/medical) +"tEl" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/turf_decal/trimline/red, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/dark/small, +/area/station/security/brig) +"tEr" = ( +/obj/structure/chair/sofa/corp/left{ + dir = 8 + }, +/obj/machinery/camera/directional/east{ + c_tag = "Bridge - Command Safehouse"; + name = "command camera" + }, +/turf/open/floor/iron/smooth_corner{ + dir = 1 + }, +/area/station/command/secure_bunker) +"tEs" = ( +/obj/item/kirbyplants/random, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"tEv" = ( +/obj/structure/table/reinforced/rglass, +/obj/item/book/manual/wiki/grenades, +/obj/item/book/manual/wiki/plumbing{ + pixel_x = 5 + }, +/obj/item/book/manual/wiki/chemistry{ + pixel_x = 8 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 9 + }, +/turf/open/floor/iron/white, +/area/station/medical/pharmacy) +"tEx" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron, +/area/station/commons/dorms) +"tEA" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/service/theater/abandoned) +"tEK" = ( +/obj/machinery/door/airlock/maintenance, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"tEN" = ( +/obj/machinery/modular_computer/preset/civilian{ + dir = 4; + pixel_x = -5 + }, +/obj/machinery/airalarm/directional/west, +/turf/open/floor/iron/dark, +/area/station/service/library/printer) +"tES" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible, +/turf/open/space/basic, +/area/space/nearstation) +"tEU" = ( +/obj/structure/window/spawner/directional/east, +/turf/open/floor/iron/white, +/area/station/medical/pharmacy) +"tEY" = ( +/obj/machinery/duct, +/turf/open/floor/carpet, +/area/station/commons/dorms/room7) +"tFa" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/command/meeting_room/council) +"tFc" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/commons/dorms) +"tFd" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron/white, +/area/station/science) +"tFj" = ( +/obj/effect/spawner/structure/window, +/obj/structure/curtain{ + req_access = list("medical") + }, +/turf/open/floor/plating, +/area/station/medical/surgery) +"tFl" = ( +/turf/closed/wall, +/area/station/maintenance/pool_maintenance) +"tFo" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/station/hallway/primary/port) +"tFx" = ( +/obj/machinery/biogenerator, +/obj/machinery/splicer{ + pixel_x = -6; + pixel_y = 13 + }, +/obj/item/toy/figure/botanist{ + pixel_x = 6; + pixel_y = 13 + }, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/common/night_club/changing_room) +"tFG" = ( +/obj/structure/table, +/obj/item/stack/sheet/iron/fifty, +/obj/item/stack/sheet/glass{ + amount = 30 + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/construction) +"tFN" = ( +/obj/machinery/airalarm/directional/west, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) +"tFQ" = ( +/obj/structure/bed, +/obj/effect/landmark/start/hangover, +/turf/open/floor/wood, +/area/station/common/pool) +"tFX" = ( +/obj/structure/door_assembly, +/obj/structure/barricade/wooden/crude, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"tGb" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/carpet, +/area/station/security/courtroom) +"tGf" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible/layer4{ + dir = 9 + }, +/turf/open/space/basic, +/area/space/nearstation) +"tGg" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "Prison Gate"; + name = "Prison Blast Door" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/security/prison) +"tGh" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/service/hydroponics/garden/abandoned) +"tGm" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Wrestling Table" + }, +/obj/effect/mapping_helpers/airlock/abandoned, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/abandon_wrestle) +"tGq" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/wood, +/area/station/command/heads_quarters/hop) +"tGu" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"tGx" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/station/maintenance/department/chapel) +"tGz" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/yellow/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/main) +"tGH" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/science) +"tHn" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/tcommsat/computer) +"tHo" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/duct, +/obj/effect/turf_decal/trimline/red/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + color = "#DE3A3A"; + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/prison/safe) +"tHq" = ( +/obj/machinery/light/small/directional/west, +/obj/effect/decal/remains/human, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"tHs" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/plastic{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/light/small/directional/east, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"tHx" = ( +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/commons/fitness) +"tHz" = ( +/obj/machinery/seed_extractor, +/turf/open/floor/iron/dark, +/area/station/service/chapel) +"tHA" = ( +/obj/structure/table/wood, +/obj/machinery/fax{ + fax_name = "Psychology Office"; + name = "Psychology Office Fax Machine"; + pixel_y = 3 + }, +/turf/open/floor/carpet, +/area/station/medical/psychology) +"tHG" = ( +/obj/item/kirbyplants/random, +/obj/machinery/camera/directional/east{ + c_tag = "Arrivals - Lounge 1"; + name = "arrivals camera" + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/secondary/entry) +"tHK" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"tHM" = ( +/obj/machinery/door/firedoor, +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "chemisttop"; + name = "Chemistry Lobby Shutters" + }, +/obj/item/folder/white, +/obj/item/reagent_containers/cup/bottle/multiver{ + pixel_x = -7; + pixel_y = 1 + }, +/obj/machinery/door/window/left/directional/south{ + name = "Chemistry Desk"; + req_access = list("pharmacy") + }, +/turf/open/floor/iron/dark, +/area/station/medical/pharmacy) +"tHQ" = ( +/obj/structure/sink/directional/north, +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/service/hydroponics) +"tHR" = ( +/obj/effect/turf_decal/trimline/purple/filled/line, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/science/research) +"tHX" = ( +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ + dir = 6 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/maintenance/disposal/incinerator) +"tHY" = ( +/turf/closed/wall/r_wall, +/area/station/maintenance/central) +"tIb" = ( +/obj/machinery/duct, +/turf/open/floor/iron/dark/side{ + dir = 10 + }, +/area/station/common/locker_room_shower) +"tId" = ( +/obj/structure/window/spawner/directional/north, +/obj/effect/landmark/start/assistant, +/obj/structure/chair/sofa/corp{ + color = "#DE3A3A" + }, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen/diner) +"tIh" = ( +/obj/structure/curtain/bounty, +/obj/structure/cable, +/turf/open/floor/iron/stairs/old, +/area/station/service/barber) +"tIi" = ( +/obj/machinery/roulette, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/wood, +/area/station/maintenance/rus_gambling) +"tIk" = ( +/obj/effect/turf_decal/stripes{ + dir = 10 + }, +/turf/open/floor/iron/smooth, +/area/station/engineering/atmos/hfr_room) +"tIl" = ( +/obj/machinery/door/airlock/external{ + name = "Solar Maintenance"; + space_dir = 2 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/structure/cable, +/obj/structure/sign/warning/electric_shock/directional/west, +/obj/effect/mapping_helpers/airlock/access/all/engineering/general, +/turf/open/floor/plating, +/area/station/maintenance/solars/port/fore) +"tIo" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/cable, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/iron, +/area/station/security/checkpoint/escape) +"tIv" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/bar) +"tIy" = ( +/obj/structure/window/spawner/directional/east, +/obj/structure/window/spawner/directional/north, +/obj/structure/chair/sofa/corp/left{ + color = "#DE3A3A" + }, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen/diner) +"tID" = ( +/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/cargo/lobby) +"tIH" = ( +/turf/open/floor/iron/dark, +/area/station/service/library) +"tIM" = ( +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/station/science/ordnance/burnchamber) +"tIN" = ( +/obj/machinery/atmospherics/pipe/bridge_pipe/dark/visible, +/obj/machinery/atmospherics/pipe/bridge_pipe/supply/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/maintenance/disposal/incinerator) +"tIW" = ( +/obj/structure/closet/cardboard, +/turf/open/floor/plating, +/area/station/maintenance/department/science/upper) +"tJe" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"tJn" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/wood, +/area/station/hallway/primary/port) +"tJq" = ( +/obj/effect/artifact_spawner, +/turf/open/floor/engine, +/area/station/science/explab) +"tJx" = ( +/obj/structure/railing, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/stairs/old{ + dir = 4 + }, +/area/station/common/wrestling/arena) +"tJA" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/space/openspace, +/area/space) +"tJG" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/common/night_club/changing_room) +"tJJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/port_gen/pacman/pre_loaded, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"tJL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/common/night_club/changing_room) +"tJM" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/curtain/bounty, +/turf/open/floor/plating, +/area/station/service/barber) +"tJN" = ( +/obj/machinery/power/shuttle_engine/heater{ + dir = 4 + }, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/station/maintenance/port/upper) +"tJP" = ( +/obj/structure/table, +/obj/item/hfr_box/body/waste_output, +/obj/item/hfr_box/body/moderator_input, +/obj/item/hfr_box/body/fuel_input, +/obj/item/hfr_box/body/interface, +/obj/machinery/light/no_nightlight/directional/north, +/obj/machinery/camera/directional/north{ + c_tag = "Atmospherics - Hypertorus Fusion Reactor Chamber Fore" + }, +/turf/open/floor/iron/dark/smooth_large, +/area/station/engineering/atmos/hfr_room) +"tJS" = ( +/obj/machinery/computer/robotics, +/obj/effect/turf_decal/stripes, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/rd) +"tJV" = ( +/obj/machinery/door/airlock/grunge{ + name = "Chapel Apiary" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/service/chapel_office, +/obj/machinery/duct, +/turf/open/floor/iron/dark, +/area/station/service/chapel) +"tJX" = ( +/obj/machinery/door/airlock/public/glass/incinerator/atmos_interior, +/obj/effect/mapping_helpers/airlock/locked, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/airlock_controller/incinerator_atmos{ + pixel_x = 40; + pixel_y = 8 + }, +/turf/open/floor/engine, +/area/station/maintenance/disposal/incinerator) +"tKi" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/service/library) +"tKm" = ( +/turf/closed/wall, +/area/station/security/prison/mess) +"tKu" = ( +/obj/structure/table, +/obj/item/storage/fancy/nugget_box{ + pixel_x = -7; + pixel_y = 8 + }, +/obj/item/storage/fancy/nugget_box{ + pixel_x = 6; + pixel_y = 8 + }, +/obj/item/knife/kitchen{ + pixel_x = 11; + pixel_y = -10 + }, +/obj/item/kitchen/rollingpin{ + pixel_x = -4; + pixel_y = -9 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/cafeteria, +/area/station/common/wrestling/concessions) +"tKz" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/machinery/computer/slime_market, +/turf/open/floor/iron, +/area/station/science/xenobiology) +"tKB" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/maintenance/central) +"tKH" = ( +/obj/machinery/photocopier, +/obj/structure/noticeboard/directional/north, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain/private) +"tKJ" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/iron/smooth_corner, +/area/station/command/secure_bunker) +"tKM" = ( +/obj/item/paper{ + default_raw_text = "The goons over at our NT relations department have informed us we've gotta somehow shove a 3 deck ship into 2 decks on a budget fit to build us a frigate.. maybe a very cheap destroyer, best we can do at the moment is just weld off the bottom deck starting at the structural support beams and ending with the stairwells and elevator shaft, we'll take it up from there with the engine array.. just make sure to plug the hole."; + name = "Shipyard Orders"; + pixel_x = -4; + pixel_y = 6 + }, +/turf/open/floor/plating, +/area/station/hallway/primary/port) +"tKQ" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/turf/open/floor/iron, +/area/station/engineering/atmos/test_chambers) +"tKX" = ( +/obj/item/clothing/head/utility/welding, +/turf/open/floor/plating, +/area/station/hallway/primary/port) +"tLc" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured_edge{ + dir = 8 + }, +/area/station/security/lockers) +"tLf" = ( +/obj/machinery/atmospherics/components/tank/air, +/turf/open/floor/iron, +/area/station/science/xenobiology/control) +"tLs" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/effect/turf_decal/siding/wood, +/obj/item/kirbyplants/random, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/wood/parquet, +/area/station/science/breakroom) +"tLu" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/tcommsat/computer) +"tLz" = ( +/obj/effect/turf_decal/trimline/purple/filled/line, +/obj/machinery/camera/directional/south{ + c_tag = "Science - Waiting Room"; + name = "science camera"; + network = list("ss13","rd") + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/science) +"tLI" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/science/auxlab/firing_range) +"tLL" = ( +/turf/closed/wall, +/area/station/maintenance/department/chapel) +"tLM" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/maintenance/solars/port/fore) +"tLN" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) +"tLO" = ( +/obj/structure/easel, +/obj/item/canvas/twentythree_twentythree{ + pixel_x = 3 + }, +/obj/item/canvas/twentythree_twentythree{ + pixel_x = 3 + }, +/obj/item/canvas/twentythree_twentythree{ + pixel_x = 3 + }, +/turf/open/floor/iron/white, +/area/station/medical/aslyum) +"tMc" = ( +/obj/machinery/camera/directional/south{ + c_tag = "Security - Perma Airlock"; + dir = 6 + }, +/obj/machinery/light/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/dark/side{ + dir = 5 + }, +/area/station/security/prison) +"tMh" = ( +/obj/structure/bed{ + dir = 1 + }, +/obj/effect/spawner/random/bedsheet{ + dir = 1 + }, +/obj/effect/landmark/start/hangover, +/turf/open/floor/carpet/black, +/area/station/commons/dorms/room5) +"tMn" = ( +/obj/structure/table/glass, +/obj/machinery/cell_charger, +/obj/item/stack/cable_coil, +/obj/item/stock_parts/cell, +/obj/structure/window/spawner/directional/south, +/obj/effect/turf_decal/tile/purple/half{ + dir = 8 + }, +/turf/open/floor/iron/white/side{ + dir = 8 + }, +/area/station/science) +"tMq" = ( +/obj/machinery/computer/slot_machine, +/turf/open/floor/eighties, +/area/station/maintenance/abandon_arcade) +"tMs" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/item/storage/box/masks{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/box/gloves, +/turf/open/floor/iron, +/area/station/science/xenobiology) +"tMt" = ( +/turf/open/floor/iron, +/area/station/hallway/secondary/exit) +"tMy" = ( +/obj/structure/table/wood/fancy/blue, +/obj/item/reagent_containers/cup/glass/trophy/gold_cup{ + name = "#1st prize for Nanotrasen's finest captain's office"; + pixel_y = 4 + }, +/obj/structure/cable, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/captain) +"tMz" = ( +/obj/item/radio/intercom/directional/south, +/obj/machinery/light/directional/south, +/obj/machinery/computer/security/labor{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"tMA" = ( +/obj/item/kirbyplants/random, +/obj/machinery/atmospherics/pipe/smart/simple/general/visible, +/obj/item/radio/intercom/directional/east, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/science/server) +"tMB" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/sign/departments/evac/directional/south, +/turf/open/floor/plating, +/area/station/hallway/secondary/exit/departure_lounge) +"tMD" = ( +/obj/machinery/door/airlock/security{ + name = "Courtroom Tunnel" + }, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/turf/open/floor/iron/dark, +/area/station/security/interrogation) +"tME" = ( +/obj/structure/table/wood, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/cassette/adv_cassette_deck{ + pixel_y = 8 + }, +/turf/open/floor/carpet, +/area/station/service/library) +"tMF" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/effect/turf_decal/stripes, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/science/research) +"tMM" = ( +/obj/structure/mirror/directional/south, +/obj/structure/mannequin/plastic{ + dir = 1 + }, +/turf/open/floor/wood/parquet, +/area/station/common/tailoring) +"tMT" = ( +/obj/structure/flora/bush/jungle, +/obj/effect/turf_decal/weather/sand{ + dir = 5 + }, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"tMV" = ( +/obj/machinery/door/airlock/engineering{ + name = "Power Access Hatch" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/engineering/engine_equipment, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"tNa" = ( +/obj/structure/chair/comfy/barber_chair{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/security/prison) +"tNg" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "chem_lockdown"; + name = "Chemistry Shutters" + }, +/turf/open/floor/plating, +/area/station/medical/storage) +"tNi" = ( +/obj/effect/turf_decal/bot, +/obj/effect/spawner/random/vending/snackvend, +/turf/open/floor/iron, +/area/station/engineering/break_room) +"tNj" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating{ + dir = 8 + }, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"tNn" = ( +/obj/machinery/modular_computer/preset/civilian, +/obj/effect/turf_decal/stripes, +/obj/effect/turf_decal/stripes/white/line, +/obj/machinery/button/door/directional/east{ + id = "rdgene2"; + name = "Secondary Genetics Shutters Control"; + pixel_x = -6; + pixel_y = 27; + req_access = list("research") + }, +/obj/machinery/button/door/directional/east{ + id = "rdgene"; + name = "Primary Genetics Shutters Control"; + pixel_x = 7; + pixel_y = 27; + req_access = list("research") + }, +/obj/machinery/light/directional/north, +/turf/open/floor/iron/dark, +/area/station/science/genetics) +"tNq" = ( +/obj/structure/filingcabinet/security, +/obj/machinery/light/directional/west, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/station/security/detectives_office) +"tNu" = ( +/obj/effect/decal/cleanable/dirt, +/mob/living/basic/mining/basilisk, +/turf/open/misc/asteroid/airless, +/area/space/nearstation) +"tNx" = ( +/obj/effect/turf_decal/siding/thinplating/corner{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"tNy" = ( +/obj/effect/turf_decal/trimline/green/filled/line, +/turf/open/floor/iron/white, +/area/station/medical/virology/isolation) +"tNz" = ( +/turf/closed/wall/r_wall, +/area/station/maintenance/port/fore) +"tNE" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/caution/stand_clear/blue{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/security/brig) +"tNM" = ( +/obj/machinery/camera/directional/west{ + c_tag = "Recreation - Nightclub Starboard"; + name = "hallway camera" + }, +/obj/machinery/light/directional/west, +/obj/machinery/vending/wardrobe/hydro_wardrobe, +/turf/open/floor/iron/dark, +/area/station/common/night_club) +"tNN" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen" + }, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"tNU" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/airalarm/directional/north{ + pixel_y = 20 + }, +/obj/machinery/camera/directional/north{ + c_tag = "Bridge - Hall"; + name = "command camera" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/command) +"tNZ" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/iron/smooth_large, +/area/station/command/secure_bunker) +"tOg" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/sorting) +"tOi" = ( +/obj/structure/railing, +/obj/machinery/light/directional/north, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/cargo/warehouse) +"tOv" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"tOB" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/captain{ + id_tag = "Capoffice"; + name = "Captain's Office" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/command/captain, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain/private) +"tOE" = ( +/obj/machinery/icecream_vat, +/obj/structure/window/spawner/directional/north, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/checker, +/area/station/hallway/secondary/service) +"tOH" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 4 + }, +/obj/machinery/disposal/bin{ + desc = "A pneumatic waste disposal unit. This one leads into space!"; + name = "deathsposal unit" + }, +/obj/effect/turf_decal/delivery, +/obj/structure/cable, +/obj/machinery/airalarm/directional/south, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/virology) +"tOJ" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/iron/white/side, +/area/station/medical/aslyum) +"tON" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 5 + }, +/obj/machinery/camera/autoname/directional/west, +/turf/open/floor/iron/dark/small, +/area/station/cargo/miningdock) +"tOP" = ( +/obj/item/flashlight/flare/candle/infinite{ + pixel_x = -15; + pixel_y = -11 + }, +/turf/open/floor/material/meat, +/area/station/maintenance/department/science/xenobiology) +"tOS" = ( +/obj/effect/turf_decal/trimline/yellow/filled/corner{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"tPe" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Central Hallway" + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"tPg" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"tPj" = ( +/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/north, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) +"tPk" = ( +/obj/structure/fluff/metalpole/end/right{ + dir = 4 + }, +/obj/structure/fluff/metalpole{ + dir = 8 + }, +/turf/open/space/basic, +/area/space/nearstation) +"tPm" = ( +/obj/item/stock_parts/scanning_module{ + pixel_x = -5; + pixel_y = 7 + }, +/obj/item/stock_parts/scanning_module{ + pixel_x = 5; + pixel_y = 7 + }, +/obj/item/stock_parts/scanning_module{ + pixel_x = -5 + }, +/obj/item/stock_parts/scanning_module{ + pixel_x = 5 + }, +/obj/structure/table, +/obj/item/stock_parts/micro_laser{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/stock_parts/micro_laser{ + pixel_x = -2; + pixel_y = 2 + }, +/obj/item/stock_parts/micro_laser{ + pixel_x = 2 + }, +/obj/item/stock_parts/micro_laser{ + pixel_x = 6; + pixel_y = -2 + }, +/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/drone_bay) +"tPn" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"tPs" = ( +/obj/structure/frame/computer{ + anchored = 1; + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/contraband/random/directional/east, +/turf/open/floor/iron/dark, +/area/station/maintenance/abandon_exam/cat) +"tPv" = ( +/obj/structure/closet/secure_closet/personal, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron, +/area/station/science/breakroom) +"tPF" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/iron/dark/corner{ + dir = 1 + }, +/area/station/security/office) +"tPG" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"tPH" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/start/hangover, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/dorms) +"tPK" = ( +/obj/structure/falsewall, +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, +/turf/open/floor/plating, +/area/station/engineering/atmos/hfr_room) +"tPS" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hallup8"; + location = "hallup7" + }, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/hallway/primary/upper) +"tPT" = ( +/obj/effect/spawner/random/structure/closet_maintenance, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"tPV" = ( +/obj/structure/bed/maint, +/obj/effect/spawner/random/contraband/permabrig_gear, +/turf/open/floor/plating, +/area/station/security/prison/mess) +"tQg" = ( +/obj/effect/turf_decal/vg_decals/numbers/four, +/obj/effect/landmark/start/prisoner, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/security/prison/safe) +"tQj" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/station/maintenance/port/upper) +"tQk" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/station/command/heads_quarters/qm) +"tQn" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Library" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/service/library) +"tQr" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood/parquet, +/area/station/common/gaskiosk) +"tQu" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 5 + }, +/obj/machinery/newscaster/directional/east, +/obj/machinery/camera/autoname/directional/east{ + network = list("ss13","medbay") + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"tQv" = ( +/obj/effect/decal/cleanable/blood/gibs/bubblegum, +/obj/item/bodypart/arm/left/monkey, +/turf/open/floor/cult, +/area/station/maintenance/department/science/xenobiology) +"tQx" = ( +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/atmos/test_chambers) +"tQA" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/science/ordnance) +"tQB" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/iron/shuttle/arrivals/airless, +/area/space/nearstation) +"tQJ" = ( +/obj/machinery/power/smes/engineering, +/obj/structure/cable, +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/engine_smes) +"tQM" = ( +/obj/structure/drain, +/obj/machinery/shower/directional/east, +/turf/open/floor/iron/freezer, +/area/station/commons/toilet/restrooms) +"tQQ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/junction{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"tQS" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/light/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/science/research) +"tQT" = ( +/obj/machinery/computer/slot_machine{ + pixel_y = 2 + }, +/obj/machinery/digital_clock/directional/east, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"tQV" = ( +/obj/machinery/power/shuttle_engine/heater{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"tQZ" = ( +/obj/structure/cable, +/turf/open/floor/iron/white/textured_large, +/area/station/common/cryopods) +"tRa" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/medical/treatment_center) +"tRc" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/newscaster/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) +"tRe" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/condiment/saltshaker{ + pixel_x = -3; + pixel_y = 16 + }, +/obj/item/reagent_containers/condiment/peppermill{ + pixel_x = 3; + pixel_y = 16 + }, +/obj/effect/turf_decal/tile/bar/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/security/prison/mess) +"tRj" = ( +/obj/effect/landmark/event_spawn, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen/diner) +"tRm" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/airlock/atmos/glass{ + name = "Atmospherics Testing Room" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/atmos/hfr_room) +"tRu" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_y = 3 + }, +/turf/open/floor/plating, +/area/station/maintenance/solars/starboard/aft) +"tRz" = ( +/obj/structure/window/spawner/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/service/theater) +"tRC" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"tRI" = ( +/obj/machinery/space_heater, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"tRP" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"tRQ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/turf/open/floor/wood, +/area/station/hallway/primary/central) +"tRS" = ( +/turf/closed/wall/r_wall, +/area/station/medical/exam_room) +"tRT" = ( +/obj/structure/rack/shelf, +/obj/effect/turf_decal/bot, +/obj/item/rcd_ammo/large{ + pixel_y = 8 + }, +/obj/item/rcd_ammo/large{ + pixel_y = 4 + }, +/obj/item/rcd_ammo/large, +/turf/open/floor/iron/dark, +/area/station/engineering/transit_tube) +"tRU" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"tRV" = ( +/obj/structure/mirror/directional/north, +/obj/structure/sink/directional/south, +/obj/machinery/dryer{ + dir = 8; + pixel_x = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/cafeteria, +/area/station/commons/toilet/auxiliary) +"tRX" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"tSe" = ( +/obj/structure/table/wood, +/obj/item/clothing/mask/cigarette/cigar/cohiba{ + pixel_x = 3 + }, +/obj/item/clothing/mask/cigarette/cigar/havana{ + pixel_x = -3 + }, +/obj/item/clothing/mask/cigarette/cigar, +/obj/item/clothing/mask/cigarette/pipe{ + pixel_y = 13 + }, +/turf/open/floor/carpet/blue, +/area/station/command/heads_quarters/captain) +"tSu" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"tSE" = ( +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/nuke_storage) +"tSF" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium, +/area/station/science/robotics/mechbay) +"tSH" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/iron, +/area/station/commons/dorms) +"tSI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/sheet/cardboard, +/obj/item/storage/box/lights, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"tSL" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/medical/virology/isolation) +"tSM" = ( +/obj/item/trash/candy, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"tSR" = ( +/obj/structure/closet/crate/bin, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/iron, +/area/station/security/prison) +"tSU" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/secondary/service) +"tTg" = ( +/turf/closed/wall/mineral/wood, +/area/station/common/pool/sauna) +"tTm" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"tTn" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/purple/opposingcorners, +/turf/open/floor/iron, +/area/station/service/barber) +"tTp" = ( +/turf/closed/wall, +/area/station/security/interrogation) +"tTr" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/eva) +"tTt" = ( +/obj/machinery/door/airlock/hatch{ + name = "MiniSat Foyer" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/any/command/general, +/obj/effect/mapping_helpers/airlock/access/any/engineering/construction, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat_interior) +"tTy" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/security/prison/visit) +"tTB" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 8 + }, +/obj/structure/table/wood, +/obj/item/plate, +/obj/item/plate, +/obj/item/plate, +/obj/item/knife/plastic, +/obj/item/knife/plastic, +/obj/item/knife/plastic, +/obj/item/kitchen/fork/plastic{ + pixel_x = 5 + }, +/obj/item/kitchen/fork/plastic{ + pixel_x = 5 + }, +/obj/item/kitchen/fork/plastic{ + pixel_x = 5 + }, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"tTL" = ( +/obj/structure/closet, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"tTS" = ( +/obj/structure/table/wood, +/obj/item/papercutter{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/structure/noticeboard/directional/north, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/hop) +"tTT" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) +"tTV" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"tTX" = ( +/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{ + dir = 9 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/floor/iron, +/area/station/engineering/storage) +"tUd" = ( +/obj/effect/turf_decal/tile/dark_blue/anticorner/contrasted{ + dir = 8 + }, +/obj/machinery/mech_bay_recharge_port{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/security/mechbay) +"tUg" = ( +/obj/machinery/door/airlock/security{ + name = "Interrogation Monitoring" + }, +/obj/effect/turf_decal/delivery/blue, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/dark, +/area/station/security/interrogation) +"tUj" = ( +/turf/open/floor/circuit, +/area/station/security/mechbay) +"tUm" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/eighties, +/area/station/maintenance/abandon_arcade) +"tUp" = ( +/obj/effect/turf_decal/bot_red, +/obj/effect/landmark/start/cyborg, +/turf/open/floor/mineral/plastitanium, +/area/station/science/robotics/lab) +"tUx" = ( +/obj/structure/closet, +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"tUy" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/office) +"tUz" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Tool"; + name = "Secure Tool Storage Blast Door" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/engineering/transit_tube) +"tUC" = ( +/obj/structure/window/spawner/directional/south, +/obj/item/clothing/shoes/cowboyboots{ + pixel_x = -5; + pixel_y = 8 + }, +/obj/item/clothing/shoes/cowboyboots/black{ + pixel_y = 8 + }, +/obj/item/clothing/shoes/jungleboots{ + pixel_x = 5; + pixel_y = 8 + }, +/obj/item/clothing/shoes/winterboots{ + pixel_x = -3; + pixel_y = -2 + }, +/obj/item/clothing/shoes/workboots{ + pixel_x = 6; + pixel_y = -2 + }, +/obj/structure/rack, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/carpet, +/area/station/common/tailoring) +"tUK" = ( +/obj/effect/turf_decal/trimline/red/filled/warning{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"tUO" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/effect/turf_decal/tile/dark_blue{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"tUP" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/iron, +/area/station/common/wrestling/lobby) +"tUS" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"tUT" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/engineering/storage) +"tUW" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/status_display/ai/directional/south, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/command/gateway) +"tVh" = ( +/obj/effect/decal/cleanable/oil, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless, +/area/station/maintenance/fore/upper) +"tVq" = ( +/turf/open/floor/iron, +/area/station/command/bridge) +"tVr" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/common/laser_tag) +"tVt" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/medical/surgery/theatre) +"tVH" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"tVI" = ( +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"tVW" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"tWb" = ( +/obj/machinery/research/anomaly_refinery, +/obj/effect/turf_decal/bot_red, +/obj/machinery/camera/directional/north{ + c_tag = "Science - Ordnance Launch"; + name = "science camera"; + network = list("ss13","rd") + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/testlab) +"tWe" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"tWh" = ( +/obj/structure/table/wood, +/obj/item/clothing/mask/cigarette/syndicate, +/obj/item/food/sandwich{ + pixel_x = 5; + pixel_y = 14 + }, +/obj/item/reagent_containers/cup/glass/bottle/beer{ + desc = "Takes you to a whole new level of thinking."; + name = "Meta-Cider"; + pixel_x = -7; + pixel_y = 9 + }, +/obj/item/reagent_containers/cup/glass/drinkingglass{ + pixel_x = -14; + pixel_y = 1 + }, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/security/prison/upper) +"tWi" = ( +/obj/machinery/light/directional/north, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"tWm" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/command/secure_bunker) +"tWu" = ( +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/obj/machinery/light_switch/directional/south{ + pixel_y = -37 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/command/bridge) +"tWx" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/carpet, +/area/station/service/library/printer) +"tWE" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/station/maintenance/central) +"tWN" = ( +/obj/structure/sign/directions/vault{ + dir = 1 + }, +/obj/structure/sign/directions/command{ + dir = 1; + pixel_y = 6 + }, +/obj/structure/sign/directions/upload{ + dir = 1; + pixel_y = -6 + }, +/turf/closed/wall/r_wall, +/area/station/hallway/secondary/command) +"tWO" = ( +/obj/machinery/oven/range, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) +"tWP" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/disposal) +"tWS" = ( +/obj/machinery/door/poddoor/preopen{ + id = "brigwindows"; + name = "Brig Front Blast Door" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/security/brig) +"tXj" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/structure/rack, +/obj/item/assembly/igniter{ + pixel_x = -3; + pixel_y = 6 + }, +/obj/item/assembly/igniter{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/assembly/igniter/condenser{ + pixel_x = -2 + }, +/obj/item/assembly/igniter/condenser{ + pixel_x = 8 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/testlab) +"tXk" = ( +/obj/structure/closet/secure_closet/freezer/fridge, +/obj/item/reagent_containers/cup/glass/bottle/juice/orangejuice, +/obj/item/reagent_containers/cup/glass/bottle/juice/tomatojuice, +/obj/item/reagent_containers/condiment/milk, +/obj/item/food/grown/citrus/orange, +/obj/item/food/grown/citrus/orange, +/obj/item/food/grown/apple, +/obj/effect/turf_decal/siding/wood, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/iron, +/area/station/medical/patients_rooms) +"tXo" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/clothing/glasses/welding, +/turf/open/floor/iron/smooth, +/area/station/cargo/power_station/upper) +"tXu" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"tXC" = ( +/obj/structure/mirror{ + pixel_y = 32 + }, +/obj/structure/toilet{ + pixel_y = 16 + }, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/iron/dark, +/area/station/security/prison/safe) +"tXD" = ( +/obj/structure/bed/double, +/obj/item/bedsheet/rd/double, +/obj/machinery/light_switch/directional/south, +/turf/open/floor/carpet/purple, +/area/station/command/heads_quarters/rd) +"tXQ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/medical/patients_rooms) +"tXW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/structure/falsewall, +/turf/open/floor/plating, +/area/station/security/prison/upper) +"tXX" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/science/research) +"tYa" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"tYp" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/sign/flag/nanotrasen/directional/north, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/command) +"tYr" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"tYu" = ( +/obj/structure/cable, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/common/laser_tag) +"tYx" = ( +/obj/structure/table/wood, +/obj/item/book/manual/wiki/detective, +/obj/item/clothing/accessory/badge/holo/detective, +/obj/machinery/requests_console/directional/east{ + department = "Detective's Office"; + name = "Detective's Requests Console" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood/parquet, +/area/station/security/detectives_office) +"tYA" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"tYB" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/machinery/computer/crew, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"tYD" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"tYH" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/ai) +"tYJ" = ( +/obj/effect/turf_decal/stripes{ + dir = 5 + }, +/turf/open/floor/circuit, +/area/station/command/gateway) +"tYM" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/station/command/captain_dining) +"tYT" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"tYW" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/yellow/corner{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_corner{ + dir = 1 + }, +/area/station/engineering/supermatter/room) +"tZf" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/window/spawner/directional/east, +/obj/structure/closet/secure_closet/personal/cabinet, +/turf/open/floor/carpet/black, +/area/station/commons/dorms/room5) +"tZj" = ( +/obj/item/food/grown/banana/bunch, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"tZn" = ( +/obj/machinery/door/airlock/research/glass{ + name = "Chemistry Lab" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "chem_lockdown"; + name = "Chemistry Shutters" + }, +/obj/effect/turf_decal/trimline/yellow/filled/warning{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/yellow/filled/warning, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/medical/chemistry, +/turf/open/floor/iron/white, +/area/station/medical/pharmacy) +"tZy" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/rack, +/obj/item/storage/box/smart_metal_foam{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/box/smart_metal_foam, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva/upper) +"tZB" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/engineering/atmos) +"tZD" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark, +/turf/open/floor/iron/dark/textured_large, +/area/station/ai_monitored/security/armory) +"tZU" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/flashlight{ + pixel_y = 7 + }, +/obj/item/flashlight{ + pixel_x = -3; + pixel_y = 1 + }, +/obj/item/radio{ + pixel_x = -8; + pixel_y = 21 + }, +/obj/item/radio{ + pixel_x = -14; + pixel_y = 12 + }, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"tZV" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/sorting/mail{ + dir = 1; + name = "CMO's Junction"; + sortType = 10 + }, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"uag" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/commons/dorms) +"uak" = ( +/turf/open/floor/circuit/telecomms/mainframe, +/area/station/tcommsat/server) +"uao" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/sign/flag/nanotrasen/directional/north, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/command) +"uaL" = ( +/obj/machinery/light/directional/west, +/turf/open/floor/iron, +/area/station/security/prison/workout) +"uaN" = ( +/obj/structure/sign/directions/command{ + dir = 1; + pixel_y = 3 + }, +/obj/structure/sign/directions/medical{ + dir = 1; + pixel_y = -3 + }, +/turf/closed/wall, +/area/station/common/gaskiosk) +"uaQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"uaV" = ( +/obj/effect/spawner/random/engineering/tool, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"ube" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/public/glass{ + name = "Central Hallway" + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"ubh" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/closet, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/department/security) +"ubj" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 5 + }, +/obj/machinery/computer/quantum_console{ + dir = 4 + }, +/obj/structure/sign/poster/contraband/random/directional/west, +/obj/effect/decal/cleanable/dirt, +/obj/item/reagent_containers/cup/soda_cans/pwr_game{ + pixel_x = -5; + pixel_y = 12 + }, +/turf/open/floor/iron/dark/small, +/area/station/security/prison/upper) +"ubp" = ( +/obj/structure/reagent_dispensers/beerkeg, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"ubC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/duct, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/commons/dorms/vacantroom) +"ubD" = ( +/obj/effect/spawner/random/structure/crate, +/obj/structure/disposalpipe/trunk/multiz, +/turf/open/floor/plating, +/area/station/maintenance/wrestle) +"ubH" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/engineering/atmos/hfr_room) +"ubU" = ( +/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{ + dir = 6 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/floor/iron, +/area/station/engineering/storage) +"uci" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/science/robotics) +"uck" = ( +/obj/machinery/light/directional/west, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/obj/machinery/camera/autoname/directional/west, +/turf/open/floor/iron, +/area/station/commons/vacant_room/commissary) +"ucl" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/chapel) +"ucm" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/obj/structure/cable, +/obj/machinery/camera/autoname/directional/west, +/turf/open/floor/iron, +/area/station/commons/dorms) +"ucn" = ( +/obj/machinery/door/airlock/maintenance, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/security/prison/upper) +"ucs" = ( +/obj/effect/spawner/random/trash/box, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_starboard) +"ucx" = ( +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/cable, +/obj/effect/landmark/start/head_of_personnel, +/turf/open/floor/wood, +/area/station/command/heads_quarters/hop) +"ucK" = ( +/obj/machinery/griddle, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/dark, +/area/station/security/prison/mess) +"ucO" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/wood, +/area/station/service/lawoffice) +"ucP" = ( +/obj/machinery/computer/records/medical, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/carpet, +/area/station/security/detectives_office) +"ucQ" = ( +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/vending/hydroseeds, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/service/hydroponics) +"ucW" = ( +/obj/machinery/airalarm/directional/east, +/obj/machinery/door/window/right/directional/north, +/turf/open/floor/wood, +/area/station/service/theater) +"uda" = ( +/obj/structure/chair/sofa/bench/left{ + dir = 4; + pixel_x = -5 + }, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"udb" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/structure/chair/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/service/chapel/funeral) +"udp" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 6 + }, +/obj/machinery/firealarm/directional/east{ + layer = 3.5 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) +"udr" = ( +/obj/effect/turf_decal/stripes/white/line, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/obj/effect/turf_decal/caution/stand_clear/blue, +/obj/machinery/door/poddoor/shutters/window/preopen{ + id = "Psychward3"; + name = "Cell Door 3" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/aslyum) +"uds" = ( +/obj/structure/table/glass, +/turf/open/floor/iron/white, +/area/station/science/research) +"udt" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder{ + pixel_x = -5; + pixel_y = 9 + }, +/obj/item/reagent_containers/cup/glass/shaker, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/command/captain_dining) +"udv" = ( +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ + dir = 5 + }, +/turf/open/floor/iron/freezer, +/area/station/science/xenobiology) +"udE" = ( +/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"udG" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "xenosecure"; + name = "Containment Control"; + pixel_x = -4; + req_access = list("xenobiology") + }, +/obj/structure/cable, +/obj/machinery/button/ignition{ + id = "Xenobio"; + pixel_x = 6 + }, +/turf/open/floor/iron/dark, +/area/station/science/xenobiology) +"udH" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"udI" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"udK" = ( +/obj/structure/table/reinforced/rglass, +/obj/structure/curtain/cloth, +/obj/machinery/light/directional/east, +/obj/item/reagent_containers/medigel/aiuri{ + desc = "A medicinal massage oil containing aiuri, normally gives a nice cooling effect on the bodypart where it's applied whilst also healing minor burns."; + name = "Cooling massage oil"; + pixel_x = 2; + pixel_y = 5 + }, +/obj/item/reagent_containers/medigel/libital{ + desc = "A medicinal massage oil that warms up and relaxes the skin and muscles, great at both treating backpains, cramps and bruises."; + name = "Relaxing massage oil"; + pixel_x = -4; + pixel_y = 5 + }, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/carpet/black, +/area/station/service/barber) +"udR" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/security/prison) +"udT" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/conveyor_switch/oneway{ + id = "cargoload" + }, +/turf/open/floor/iron/smooth, +/area/station/cargo/storage) +"udU" = ( +/obj/structure/table/reinforced, +/obj/item/folder/red, +/obj/item/folder/red, +/obj/item/taperecorder, +/obj/item/tape, +/obj/item/tape, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/dark, +/area/station/security/interrogation) +"udW" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/wood, +/area/station/hallway/primary/port) +"udY" = ( +/obj/machinery/door/airlock/grunge{ + name = "Chapel Office" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/service/chapel_office, +/obj/machinery/duct, +/turf/open/floor/iron/dark, +/area/station/service/chapel/office) +"uef" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) +"uen" = ( +/obj/machinery/disposal/delivery_chute{ + dir = 8 + }, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/plasticflaps, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/cargo/sorting) +"ueo" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/security/checkpoint/escape) +"ueq" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/dark/textured_large, +/area/station/security/office) +"uer" = ( +/obj/machinery/door/firedoor, +/obj/structure/table/reinforced, +/obj/item/folder, +/obj/item/food/grown/apple, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/window/left/directional/east{ + name = "Hydroponics Desk"; + req_access = list("hydroponics") + }, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) +"uex" = ( +/obj/structure/table, +/obj/item/clothing/head/helmet/skull, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"uez" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/side{ + dir = 5 + }, +/area/station/hallway/primary/port) +"ueB" = ( +/obj/effect/turf_decal/delivery/blue, +/obj/machinery/door/airlock/security/glass{ + name = "Gear Room" + }, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/turf/open/floor/iron/dark, +/area/station/security/lockers) +"ueE" = ( +/obj/structure/window/spawner/directional/east, +/obj/structure/window/spawner/directional/west, +/obj/structure/window/spawner/directional/south, +/obj/structure/flora/rock/pile/jungle/style_4, +/obj/structure/flora/bush/flowers_yw, +/turf/open/floor/grass, +/area/station/hallway/primary/port) +"ueI" = ( +/obj/machinery/door/airlock/glass{ + name = "Cafe Barista" + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 8 + }, +/obj/effect/landmark/navigate_destination, +/turf/open/floor/iron/dark, +/area/station/service/cafeteria) +"ueJ" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/table/reinforced, +/obj/item/paper_bin{ + pixel_x = -12 + }, +/obj/item/pen{ + pixel_x = -12 + }, +/obj/machinery/button/door{ + id = "brigwindows"; + name = "Cell Window Control"; + pixel_x = 3; + pixel_y = 7; + req_access = list("security") + }, +/obj/machinery/button/door{ + id = "Prison Gate"; + name = "Prison Wing Lockdown"; + pixel_x = 3; + pixel_y = -4; + req_access = list("brig") + }, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/security/warden) +"ueR" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/bar) +"ueW" = ( +/obj/structure/reagent_dispensers/water_cooler, +/obj/machinery/status_display/ai/directional/south, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/wood, +/area/station/command/heads_quarters/blueshield) +"ueY" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/service/library/printer) +"ufd" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/item/circuitboard/computer/secure_data{ + pixel_x = 4; + pixel_y = 3 + }, +/obj/item/circuitboard/computer/med_data, +/turf/open/floor/carpet, +/area/station/service/electronic_marketing_den) +"ufg" = ( +/obj/structure/railing{ + dir = 6 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) +"ufk" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/status_display/evac/directional/south, +/turf/open/floor/iron/dark/side, +/area/station/hallway/primary/port) +"ufl" = ( +/obj/machinery/button/door{ + id = "rnd"; + name = "Shutters Control Button"; + pixel_x = -25; + pixel_y = 24; + req_access = list("research") + }, +/obj/structure/table, +/obj/item/paper_bin{ + pixel_y = 3 + }, +/obj/item/pen{ + pixel_y = 3 + }, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/science/lab) +"ufr" = ( +/obj/machinery/conveyor{ + dir = 5; + id = "Luggagebelt" + }, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/plating, +/area/station/security/checkpoint/customs) +"ufs" = ( +/obj/structure/table, +/turf/open/floor/iron, +/area/station/maintenance/port/aft) +"ufv" = ( +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"ufx" = ( +/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/yellow/opposingcorners, +/turf/open/floor/iron, +/area/station/engineering/main) +"ufG" = ( +/obj/structure/window/spawner/directional/west, +/obj/structure/chair/sofa/corp/right{ + color = "#DE3A3A"; + dir = 4 + }, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen/diner) +"ufH" = ( +/obj/machinery/light/directional/west, +/obj/structure/table/reinforced, +/obj/item/circuit_component/soundemitter, +/obj/item/circuit_component/clock, +/obj/item/storage/toolbox/electrical{ + pixel_y = 5 + }, +/obj/item/integrated_circuit/loaded/hello_world, +/obj/item/integrated_circuit/loaded/hello_world, +/turf/open/floor/iron/dark/small, +/area/station/science/circuits) +"ufO" = ( +/obj/machinery/atmospherics/pipe/smart/simple/general/visible{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/station/engineering/supermatter) +"ufV" = ( +/obj/structure/table/reinforced/rglass, +/obj/item/reagent_containers/spray/cleaner{ + pixel_x = -14 + }, +/obj/machinery/light/directional/north, +/obj/item/fur_dyer, +/turf/open/floor/iron/white, +/area/station/service/barber) +"ugc" = ( +/obj/machinery/light/directional/north, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/machinery/button/elevator{ + id = "publicElevator"; + pixel_y = 32 + }, +/obj/machinery/lift_indicator/directional/north{ + linked_elevator_id = "publicElevator" + }, +/obj/machinery/door/window/elevator/right/directional/west{ + elevator_mode = 1; + elevator_linked_id = "publicElevator" + }, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/upper) +"ugd" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible, +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/smart/simple/violet/visible/layer2, +/turf/open/space/basic, +/area/space/nearstation) +"ugk" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/science/lab) +"ugo" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"ugq" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "hosspace"; + name = "HoS Space Blast Door" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/command/heads_quarters/hos) +"ugw" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/hedge, +/obj/structure/railing, +/turf/open/floor/wood, +/area/station/service/cafeteria) +"ugB" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/window/left/directional/north{ + name = "Hydroponics Delivery"; + req_access = list("hydroponics") + }, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) +"ugH" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ + dir = 8 + }, +/turf/open/floor/engine/vacuum, +/area/station/maintenance/department/engineering/atmos_aux_port) +"ugI" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/status_display/evac/directional/west, +/obj/machinery/light/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"ugJ" = ( +/turf/open/floor/iron/dark, +/area/station/security/office) +"ugM" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/engineering/main) +"ugO" = ( +/obj/structure/cable, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/brig) +"ugS" = ( +/obj/structure/girder, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"uhc" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/mob/living/basic/mothroach, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"uhg" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/cable, +/obj/structure/extinguisher_cabinet/directional/south, +/turf/open/floor/iron, +/area/station/ai_monitored/command/storage/eva/upper) +"uhn" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"uho" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/station/engineering/atmos/pumproom) +"uhq" = ( +/turf/open/floor/iron/chapel{ + dir = 4 + }, +/area/station/service/chapel) +"uhs" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/port) +"uhv" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/ai_monitored/turret_protected/aisat/hallway) +"uhD" = ( +/turf/closed/wall, +/area/station/medical/coldroom) +"uhE" = ( +/obj/machinery/pipedispenser/disposal/transit_tube, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos) +"uhH" = ( +/obj/effect/landmark/start/clown, +/turf/open/floor/wood, +/area/station/service/theater) +"uhI" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/item/clipboard, +/obj/item/folder/white, +/obj/item/folder/white, +/obj/item/flashlight/pen, +/turf/open/floor/carpet/blue, +/area/station/medical/exam_room) +"uhK" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/airlock/highsecurity{ + name = "Bunker Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/firedoor/heavy, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/command/general, +/turf/open/floor/iron/smooth_large, +/area/station/command/secure_bunker) +"uhS" = ( +/obj/effect/turf_decal/stripes{ + dir = 5 + }, +/turf/open/floor/plating, +/area/station/cargo/storage) +"uhZ" = ( +/turf/closed/wall/r_wall, +/area/station/command/secure_bunker) +"uid" = ( +/obj/structure/showcase/cyborg/old{ + dir = 8; + pixel_x = 9; + pixel_y = 2 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/aisat/exterior) +"uie" = ( +/obj/structure/table, +/obj/item/radio/intercom/directional/east, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 5 + }, +/turf/open/floor/iron/dark/herringbone, +/area/station/security/prison/safe) +"uif" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/service/library) +"uig" = ( +/obj/structure/cable, +/turf/open/floor/iron/solarpanel/airless, +/area/station/solars/starboard/fore) +"uim" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron/white, +/area/station/science) +"uis" = ( +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/obj/machinery/door/airlock/atmos{ + name = "Atmos Bridge" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos) +"uit" = ( +/obj/structure/ladder, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"uiv" = ( +/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/cargo/lobby) +"uiy" = ( +/obj/machinery/door/airlock/maintenance, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/rus_gambling) +"uiA" = ( +/obj/structure/window/reinforced/plasma/spawner/directional/north, +/obj/machinery/power/shuttle_engine/heater{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"uiE" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"uiR" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/landmark/start/psychologist, +/obj/machinery/light/directional/west, +/obj/structure/chair/comfy/brown{ + color = "#A46106"; + dir = 4 + }, +/turf/open/floor/carpet, +/area/station/medical/psychology) +"uiW" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 8 + }, +/obj/structure/chemical_manufacturer, +/obj/item/multitool, +/obj/item/stock_parts/cell/high, +/obj/item/integrated_circuit/chemical, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"uiX" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/frame/machine, +/obj/item/stack/sheet/glass, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"uiY" = ( +/obj/machinery/camera/directional/east{ + c_tag = "Science - Ordnance Mixing Lab Starboard"; + dir = 5; + name = "science camera"; + network = list("ss13","rd") + }, +/obj/machinery/atmospherics/components/binary/valve/digital/layer2{ + dir = 8; + name = "Waste release" + }, +/obj/machinery/airalarm/directional/south, +/obj/effect/mapping_helpers/airalarm/mixingchamber_access, +/obj/effect/mapping_helpers/airalarm/tlv_no_checks, +/obj/effect/mapping_helpers/airalarm/link{ + chamber_id = "ordnancefreezer" + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) +"ujd" = ( +/obj/machinery/plumbing/ooze_sucker{ + mapping_id = "2"; + dir = 1 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"ujk" = ( +/obj/effect/spawner/structure/window/reinforced/tinted, +/turf/open/floor/plating, +/area/station/science/robotics) +"ujn" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/north, +/obj/structure/window/spawner/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/central) +"ujq" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/airalarm/directional/south, +/obj/structure/closet/wardrobe/pjs, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 1 + }, +/obj/effect/landmark/start/hangover/closet, +/turf/open/floor/iron/dark, +/area/station/commons/locker) +"ujw" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/smart/simple/violet/visible/layer2{ + dir = 5 + }, +/turf/open/space/basic, +/area/space/nearstation) +"ujx" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/storage) +"ujy" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"ujB" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"ujF" = ( +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/engineering/engine_smes) +"ujH" = ( +/obj/structure/closet/secure_closet/personal, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/iron/dark, +/area/station/security/prison/shower) +"ujK" = ( +/obj/effect/turf_decal/siding/blue{ + dir = 4 + }, +/obj/effect/turf_decal/siding/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold/general/visible{ + dir = 1 + }, +/obj/machinery/light/small/directional/north, +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/iron/dark/telecomms, +/area/station/science/server) +"ujN" = ( +/obj/structure/table/reinforced, +/obj/item/book/manual/wiki/ordnance, +/obj/machinery/light_switch/directional/south, +/obj/item/clothing/suit/hooded/wintercoat/science{ + pixel_x = -15 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -13 + }, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) +"ujU" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/maintenance/thruster_room/central) +"ukp" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes{ + dir = 6 + }, +/obj/structure/tank_dispenser, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) +"ukr" = ( +/obj/structure/cable, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"uks" = ( +/obj/effect/spawner/random/trash/mess, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"ukv" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/disposaloutlet{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk{ + dir = 2 + }, +/turf/open/floor/iron/dark, +/area/station/security/brig) +"ukA" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/security/prison) +"ukD" = ( +/obj/effect/turf_decal/stripes, +/obj/structure/cable, +/turf/open/floor/iron/white/side{ + dir = 1 + }, +/area/station/science/xenobiology) +"ukE" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/service/chapel) +"ukF" = ( +/obj/structure/chair/wood/wings{ + dir = 8 + }, +/obj/effect/landmark/start/librarian, +/turf/open/floor/carpet, +/area/station/service/library/lounge) +"ukI" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/command/heads_quarters/ce) +"ukJ" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/circuit, +/area/station/command/gateway) +"ukK" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/station/service/theater/abandoned) +"ukM" = ( +/obj/machinery/power/shuttle_engine/heater{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"ukN" = ( +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/station/commons/dorms/room7) +"ukP" = ( +/obj/machinery/light_switch/directional/west, +/obj/machinery/light/directional/west, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/command/meeting_room/council) +"ukR" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"ukT" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 6 + }, +/obj/machinery/light/directional/west, +/obj/structure/shipping_container/nakamura, +/turf/open/floor/iron/dark/small, +/area/station/cargo/miningdock) +"ulc" = ( +/obj/structure/window/reinforced/plasma/spawner/directional/north, +/obj/machinery/power/shuttle_engine/heater{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/station/maintenance/fore/upper) +"ulk" = ( +/obj/structure/cable, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"ull" = ( +/obj/structure/disposalpipe/junction{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"ulm" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/commons/dorms) +"ult" = ( +/obj/effect/turf_decal/bot_white, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes{ + dir = 10 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 5 + }, +/turf/open/floor/iron/dark, +/area/station/science/xenobiology) +"ulx" = ( +/turf/open/space/openspace, +/area/space) +"uly" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) +"ulA" = ( +/obj/structure/rack/shelf, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"ulF" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Supermatter Engine Storage Room" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) +"ulI" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"ulJ" = ( +/obj/structure/table/wood/fancy/blue, +/obj/item/kitchen/fork{ + pixel_x = -9; + pixel_y = 4 + }, +/obj/item/kitchen/fork{ + pixel_x = -9; + pixel_y = 4 + }, +/obj/item/kitchen/fork{ + pixel_x = -9; + pixel_y = 4 + }, +/obj/item/kitchen/fork{ + pixel_x = -9; + pixel_y = 4 + }, +/obj/item/kitchen/fork{ + pixel_x = -9; + pixel_y = 4 + }, +/obj/item/kitchen/fork{ + pixel_x = -9; + pixel_y = 4 + }, +/obj/item/kitchen/fork{ + pixel_x = -9; + pixel_y = 4 + }, +/obj/item/kitchen/fork{ + pixel_x = -9; + pixel_y = 4 + }, +/obj/item/reagent_containers/condiment/saltshaker{ + pixel_x = -3; + pixel_y = 9 + }, +/obj/item/reagent_containers/condiment/peppermill{ + pixel_x = 3; + pixel_y = 9 + }, +/obj/item/kitchen/spoon{ + pixel_x = 9; + pixel_y = 4 + }, +/obj/item/kitchen/spoon{ + pixel_x = 9; + pixel_y = 4 + }, +/obj/item/kitchen/spoon{ + pixel_x = 9; + pixel_y = 4 + }, +/obj/item/kitchen/spoon{ + pixel_x = 9; + pixel_y = 4 + }, +/obj/item/kitchen/spoon{ + pixel_x = 9; + pixel_y = 4 + }, +/obj/item/kitchen/spoon{ + pixel_x = 9; + pixel_y = 4 + }, +/obj/item/kitchen/spoon{ + pixel_x = 9; + pixel_y = 4 + }, +/obj/item/kitchen/spoon{ + pixel_x = 9; + pixel_y = 4 + }, +/obj/item/kitchen/spoon{ + pixel_x = 9; + pixel_y = 4 + }, +/turf/open/floor/carpet/blue, +/area/station/command/captain_dining) +"ulK" = ( +/obj/structure/table/reinforced, +/obj/structure/window/spawner/directional/east, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 6 + }, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"ulM" = ( +/obj/structure/closet/crate/bin, +/obj/effect/spawner/random/trash/garbage, +/turf/open/floor/plating, +/area/station/maintenance/abandon_holding_cell) +"ulQ" = ( +/obj/structure/window/spawner/directional/west, +/obj/structure/chair/sofa/corp/left{ + color = "#DE3A3A"; + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen/diner) +"ulR" = ( +/obj/machinery/light/directional/north, +/obj/machinery/camera/directional/north{ + c_tag = "Science - Ordnance Office"; + name = "science camera"; + network = list("ss13","rd") + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/airalarm/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron/stairs/old{ + dir = 8 + }, +/area/station/science/ordnance) +"ulX" = ( +/obj/structure/rack, +/obj/item/grenade/smokebomb{ + pixel_x = 4; + pixel_y = 3 + }, +/obj/item/grenade/smokebomb, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"umd" = ( +/obj/effect/spawner/random/trash/mess, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/port/aft) +"umf" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 6 + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"umg" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"umi" = ( +/obj/effect/spawner/random/structure/steam_vent, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"umm" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/window/left/directional/north{ + name = "Bar Delivery"; + req_access = list("bar") + }, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/service) +"umn" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/science/explab) +"umo" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/item/storage/toolbox/electrical{ + pixel_y = 5 + }, +/obj/item/storage/toolbox/mechanical, +/obj/item/storage/toolbox/emergency{ + pixel_y = -5 + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva/upper) +"umx" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt, +/obj/structure/fluff/broken_flooring, +/turf/open/floor/plating, +/area/station/science/tele_sci) +"umz" = ( +/obj/structure/flora/bush/sparsegrass/style_random, +/obj/effect/landmark/start/hangover, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"umB" = ( +/obj/machinery/light/directional/east, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/secondary/command) +"umE" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/bombcloset, +/obj/machinery/light/directional/south, +/turf/open/floor/iron, +/area/station/science/explab) +"umJ" = ( +/obj/machinery/flasher/portable, +/turf/open/floor/iron/dark/side{ + dir = 10 + }, +/area/station/security/lockers) +"umP" = ( +/turf/closed/wall, +/area/station/ai_monitored/command/storage/eva) +"umQ" = ( +/obj/structure/table/reinforced, +/obj/machinery/recharger{ + pixel_y = -3 + }, +/obj/structure/reagent_dispensers/wall/peppertank/directional/west, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/blueshield) +"unm" = ( +/obj/structure/table, +/obj/structure/railing{ + dir = 6 + }, +/obj/item/clothing/gloves/color/fyellow/old, +/turf/open/floor/iron, +/area/station/maintenance/solars/port/fore) +"unp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/white/side{ + dir = 1 + }, +/area/station/maintenance/abandon_diner) +"unq" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/iron/white, +/area/station/medical/break_room) +"uns" = ( +/obj/structure/rack, +/obj/item/storage/briefcase{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/storage/briefcase/secure, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/station/security/detectives_office/private_investigators_office) +"unv" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"unA" = ( +/obj/structure/rack, +/obj/item/restraints/handcuffs, +/obj/item/restraints/handcuffs, +/obj/item/restraints/handcuffs, +/turf/open/floor/iron/dark, +/area/station/security/brig) +"unF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/oil, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"unK" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/chair/sofa/left/brown, +/turf/open/floor/carpet, +/area/station/hallway/primary/port) +"unT" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark/textured_large, +/area/station/service/barber) +"unX" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/junction/flip{ + dir = 2 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"uoa" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/door/airlock{ + id_tag = "Dorm1"; + name = "Cabin 1" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/commons/dorms/room2) +"uog" = ( +/turf/open/floor/iron, +/area/station/science/explab) +"uol" = ( +/obj/effect/turf_decal/vg_decals/numbers/two, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/machinery/door/window/elevator/left/directional/west{ + elevator_mode = 1; + elevator_linked_id = "publicElevator" + }, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/upper) +"uom" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/break_room) +"uoo" = ( +/obj/machinery/computer/records/security{ + dir = 4 + }, +/turf/open/floor/carpet/red, +/area/station/command/heads_quarters/hos) +"uoq" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/structure/chair/sofa/bench{ + dir = 4; + pixel_x = -5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/common/wrestling/arena) +"uor" = ( +/turf/closed/wall, +/area/station/science/robotics) +"uoz" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/item/reagent_containers/cup/glass/bottle/rum{ + pixel_x = -7; + pixel_y = 10 + }, +/obj/item/storage/fancy/cigarettes/cigars/cohiba, +/obj/item/storage/fancy/cigarettes/cigars/havana{ + pixel_y = 4 + }, +/obj/item/clothing/mask/cigarette/rollie/cannabis{ + pixel_x = 8; + pixel_y = 15 + }, +/obj/item/lighter, +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet/royalblack, +/area/station/command/heads_quarters/qm) +"uoB" = ( +/obj/structure/stairs/north, +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/central) +"uoC" = ( +/obj/effect/turf_decal/tile/red{ + color = "#DE3A3A"; + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"uoF" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/gravity_generator) +"uoI" = ( +/obj/machinery/light/directional/north, +/obj/machinery/newscaster/directional/north, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/hallway/secondary/command) +"uoJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/wood, +/area/station/hallway/primary/port) +"uoN" = ( +/mob/living/basic/chicken/brown{ + forced_gender = "male" + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/turf/open/floor/grass, +/area/station/common/night_club) +"uoP" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/stairs/right{ + dir = 1 + }, +/area/station/hallway/secondary/service) +"uoS" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/door/airlock{ + name = "Public Pool" + }, +/obj/structure/cable, +/obj/effect/landmark/navigate_destination, +/turf/open/floor/iron/dark, +/area/station/common/pool) +"upg" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/chair/stool/bar/directional{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/security/prison/mess) +"upv" = ( +/obj/machinery/bluespace_vendor/directional/east, +/obj/effect/turf_decal/tile/red, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"upx" = ( +/obj/structure/chair/sofa/bench, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/hallway/secondary/exit) +"upz" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/commons/dorms/room6) +"upE" = ( +/obj/structure/chair/plastic{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 10 + }, +/area/station/security/prison/work) +"upO" = ( +/turf/closed/wall, +/area/station/maintenance/gamer_lair) +"upT" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 10 + }, +/turf/open/space/basic, +/area/space/nearstation) +"upU" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/item/kirbyplants/random, +/obj/machinery/light/directional/west, +/turf/open/floor/iron, +/area/station/science/xenobiology/hallway) +"upX" = ( +/turf/closed/wall, +/area/station/service/barber) +"uqb" = ( +/obj/item/weldingtool, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"uqr" = ( +/obj/structure/chair, +/obj/effect/landmark/start/assistant, +/obj/machinery/newscaster/directional/north, +/turf/open/floor/iron, +/area/station/service/chapel) +"uqs" = ( +/obj/machinery/door/airlock/research{ + name = "Xenobiology Controll Room" + }, +/obj/machinery/door/poddoor/shutters/window/preopen{ + id = "XenoOffice"; + name = "Xenobiology Controll Room Shutters" + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, +/turf/open/floor/iron/white, +/area/station/science/xenobiology/control) +"uqt" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, +/obj/machinery/door/window/left/directional/east{ + name = "Mech Bay"; + req_access = list("robotics") + }, +/turf/open/floor/mineral/plastitanium/red, +/area/station/science/robotics/lab) +"uqE" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/iron/dark/corner{ + dir = 1 + }, +/area/station/hallway/primary/aft) +"uqH" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/primary/port) +"uqK" = ( +/obj/machinery/light/directional/south, +/obj/machinery/computer/security/labor{ + dir = 1 + }, +/obj/item/radio/intercom/directional/south, +/obj/structure/railing{ + dir = 8 + }, +/obj/machinery/camera/directional/west{ + c_tag = "Security - Flight Control"; + dir = 5 + }, +/obj/machinery/button/door{ + id = "securitydock1"; + name = "Security Dock 1 Shutters"; + pixel_x = 26; + pixel_y = -6; + req_access = list("armory") + }, +/obj/machinery/button/door{ + id = "securitydock2"; + name = "Security Dock 2 Shutters"; + pixel_x = 37; + pixel_y = -6; + req_access = list("armory") + }, +/obj/machinery/button/door{ + id = "securityblast1"; + name = "Dock 1 blast doors"; + pixel_x = 26; + pixel_y = 5; + req_access = list("security") + }, +/obj/machinery/button/door{ + id = "securityblast2"; + name = "Dock 2 blast doors"; + pixel_x = 37; + pixel_y = 5; + req_access = list("security") + }, +/turf/open/floor/iron, +/area/station/security/execution/transfer) +"uqL" = ( +/obj/structure/closet/crate/bin, +/obj/machinery/light_switch/directional/west, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/common/locker_room_shower) +"urb" = ( +/obj/structure/table, +/obj/machinery/microwave{ + pixel_x = -1; + pixel_y = 5 + }, +/obj/machinery/duct, +/turf/open/floor/iron/cafeteria, +/area/station/command/heads_quarters/nt_rep) +"uri" = ( +/obj/machinery/shower/directional/west, +/obj/structure/drain, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron/freezer, +/area/station/common/pool) +"urj" = ( +/obj/structure/table/reinforced/rglass, +/obj/item/clipboard, +/obj/item/toy/figure/chemist, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/medical/pharmacy) +"urm" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"uro" = ( +/obj/structure/closet/secure_closet/evidence, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/security/interrogation) +"urq" = ( +/obj/effect/turf_decal/stripes, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Xenobio Containment"; + name = "Xenobiology Containment Shutters" + }, +/obj/structure/sign/departments/xenobio/directional/east, +/turf/open/floor/iron, +/area/station/science/xenobiology/hallway) +"urs" = ( +/obj/machinery/light/small/broken/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"urC" = ( +/obj/effect/turf_decal/delivery/white, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/nuke_storage) +"urF" = ( +/obj/structure/girder, +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/station/maintenance/department/security) +"urH" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/service/barber) +"urM" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/plating, +/area/station/engineering/atmos) +"urN" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/iron/shuttle/arrivals/airless, +/area/space/nearstation) +"usb" = ( +/obj/structure/flora/bush/fullgrass, +/obj/structure/flora/bush/sunny, +/obj/structure/window/spawner/directional/north, +/turf/open/floor/grass, +/area/station/commons/dorms) +"use" = ( +/obj/machinery/newscaster/directional/north, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"usf" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"ush" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"usi" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"usj" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/machinery/light/directional/west, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/captain) +"usk" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"uso" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"usq" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/cargo/office) +"ust" = ( +/obj/machinery/newscaster/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain) +"usu" = ( +/turf/closed/wall/r_wall, +/area/station/maintenance/department/medical) +"usv" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/hallway/primary/central) +"usy" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/maintenance/disposal) +"usC" = ( +/obj/structure/table/wood, +/obj/item/folder, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/service/lawoffice) +"usE" = ( +/turf/open/floor/iron/dark, +/area/station/security/execution/education) +"usG" = ( +/obj/machinery/power/port_gen/pacman/pre_loaded, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"usI" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible, +/obj/machinery/atmospherics/pipe/bridge_pipe/cyan/visible{ + dir = 4 + }, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/iron, +/area/station/engineering/atmos/pumproom) +"usM" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/iron/dark, +/area/station/security/execution/education) +"usR" = ( +/turf/closed/wall, +/area/station/maintenance/aux_eva) +"usU" = ( +/obj/effect/spawner/random/contraband/landmine, +/turf/open/floor/plating, +/area/station/maintenance/department/security/prison_upper) +"utc" = ( +/obj/structure/table, +/obj/item/storage/toolbox/mechanical, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"ute" = ( +/obj/structure/chair/sofa/bench/left{ + dir = 8; + pixel_x = 5 + }, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/iron/white, +/area/station/science/research) +"utj" = ( +/turf/open/floor/iron/shuttle/evac/airless, +/area/station/maintenance/department/medical) +"utr" = ( +/obj/structure/curtain/cloth, +/obj/structure/drain, +/obj/machinery/shower/directional/south, +/turf/open/floor/iron/freezer, +/area/station/commons/dorms/room5) +"utC" = ( +/obj/structure/bed/roller{ + dir = 1 + }, +/obj/item/bedsheet/medical, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/obj/structure/window/reinforced/spawner/directional/north{ + pixel_y = 1 + }, +/turf/open/floor/iron/white, +/area/station/security/prison) +"utD" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible/layer2{ + dir = 10 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"utJ" = ( +/obj/effect/turf_decal/stripes{ + dir = 6 + }, +/obj/structure/table/glass, +/turf/open/floor/iron, +/area/station/science/xenobiology) +"utK" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"utO" = ( +/obj/effect/spawner/structure/window/reinforced/tinted, +/turf/open/floor/plating, +/area/station/maintenance/rus_surgery) +"utQ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/holopad/secure, +/turf/open/floor/wood, +/area/station/command/heads_quarters/blueshield) +"utV" = ( +/obj/structure/table/reinforced, +/obj/item/storage/medkit/toxin{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/storage/medkit/toxin{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/medkit/regular, +/obj/item/storage/medkit/toxin{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/machinery/newscaster/directional/south, +/obj/machinery/door/window/left/directional/north{ + req_access = list("medical"); + name = "First-Aid Supplies" + }, +/turf/open/floor/iron, +/area/station/medical/storage) +"utX" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/command/heads_quarters/rd) +"uud" = ( +/obj/structure/table/wood, +/obj/item/storage/photo_album/bar, +/obj/item/clothing/head/hats/tophat{ + pixel_y = 17 + }, +/turf/open/floor/wood, +/area/station/hallway/secondary/service) +"uuo" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet, +/area/station/service/chapel/office) +"uup" = ( +/obj/structure/chair/office{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/science/ordnance) +"uuq" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/door/airlock{ + name = "Overgrown Gardain" + }, +/obj/effect/mapping_helpers/airlock/abandoned, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/service/hydroponics/garden/abandoned) +"uur" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/item/reagent_containers/cup/soda_cans/pwr_game, +/obj/effect/spawner/random/trash/garbage, +/obj/item/food/pizzaslice/moldy/bacteria, +/obj/structure/closet/mini_fridge, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/small, +/area/station/security/prison/upper) +"uut" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/security/mechbay) +"uuu" = ( +/obj/effect/spawner/random/trash/cigbutt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/science/upper) +"uuw" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/flora/bush/sparsegrass, +/obj/structure/flora/bush/jungle/a/style_3, +/turf/open/floor/grass, +/area/station/service/hydroponics) +"uuz" = ( +/obj/structure/table, +/obj/item/gun/ballistic/shotgun/toy/crossbow, +/turf/open/floor/iron, +/area/station/commons/fitness/recreation) +"uuD" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/bookcase/manuals/research_and_development, +/turf/open/floor/wood, +/area/station/security/prison/rec) +"uuF" = ( +/turf/closed/wall, +/area/station/service/library) +"uuH" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/computer/cargo{ + dir = 4 + }, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/iron/dark, +/area/station/cargo/office) +"uuS" = ( +/obj/machinery/corral_corner{ + mapping_id = "2" + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"uuZ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + name = "Labor Camp Shuttle Airlock" + }, +/obj/effect/mapping_helpers/airlock/access/all/security/brig, +/turf/open/floor/iron, +/area/station/security/execution/transfer) +"uve" = ( +/obj/effect/turf_decal/stripes{ + dir = 10 + }, +/obj/machinery/power/shieldwallgen, +/obj/machinery/button/door{ + id = "evablastdoor"; + name = "East Bridge Lockdown"; + pixel_x = -26; + req_access = list("eva") + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva/upper) +"uvf" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/security/brig) +"uvi" = ( +/turf/open/floor/iron/stairs/left, +/area/station/science/research) +"uvj" = ( +/obj/machinery/duct, +/turf/open/floor/carpet/blue, +/area/station/command/heads_quarters/cmo) +"uvl" = ( +/obj/machinery/door/airlock/maintenance, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/service/theater/abandoned) +"uvu" = ( +/turf/closed/wall, +/area/station/common/wrestling/arena) +"uvA" = ( +/obj/effect/spawner/random/trash/garbage, +/turf/open/floor/plating, +/area/station/maintenance/department/security/prison_upper) +"uvF" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"uvG" = ( +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hos) +"uvM" = ( +/obj/structure/chair/office, +/obj/effect/landmark/start/cargo_technician, +/turf/open/floor/iron/dark, +/area/station/cargo/office) +"uvO" = ( +/turf/closed/wall/r_wall, +/area/station/science/ordnance/freezerchamber) +"uvP" = ( +/obj/structure/flora/tree/jungle/small, +/obj/machinery/computer/security/telescreen/entertainment/directional/south, +/obj/machinery/light/directional/south, +/turf/open/floor/grass, +/area/station/command/heads_quarters/captain) +"uvY" = ( +/obj/structure/table/wood, +/obj/item/coin/adamantine{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/hand_tele, +/obj/item/melee/chainofcommand, +/obj/machinery/door/window/brigdoor/left/directional/west{ + name = "Captain's Desk"; + req_access = list("captain") + }, +/turf/open/floor/carpet/blue, +/area/station/command/heads_quarters/captain/private) +"uwd" = ( +/obj/machinery/door/firedoor, +/obj/structure/table/reinforced, +/obj/item/folder/red, +/obj/item/pen, +/obj/machinery/door/window/right/directional/east{ + name = "Security Customs" + }, +/obj/machinery/door/window/brigdoor/right/directional/west{ + name = "Security Customs"; + req_access = list("security") + }, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint) +"uwh" = ( +/obj/structure/table, +/obj/machinery/computer/records/medical/laptop{ + dir = 8; + pixel_y = 1 + }, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) +"uwm" = ( +/obj/machinery/door/poddoor/preopen{ + id = "BarBlastDoor"; + name = "Bar Blast Door" + }, +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/service/bar/atrium) +"uwn" = ( +/obj/item/chair{ + dir = 1 + }, +/obj/structure/grille/broken, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"uwr" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/structure/table/wood/fancy/blue, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/cmo) +"uww" = ( +/obj/machinery/door/airlock/bathroom{ + name = "Restroom" + }, +/obj/machinery/duct, +/turf/open/floor/carpet/royalblack, +/area/station/commons/dorms/room8) +"uwy" = ( +/obj/machinery/disposal/bin, +/obj/machinery/light_switch/directional/south, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/airalarm/directional/west, +/turf/open/floor/wood, +/area/station/medical/psychology) +"uwC" = ( +/obj/item/kirbyplants/organic/plant21, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/prison) +"uwH" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/science/genetics) +"uwI" = ( +/obj/effect/turf_decal/vg_decals/numbers/one, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"uwO" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/library/lower) +"uwU" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/structure/chair/sofa/bench/left{ + dir = 4; + pixel_x = -5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/common/wrestling/arena) +"uwW" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/wrestle) +"uwX" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/sign/warning/vacuum/external/directional/west, +/obj/structure/closet, +/obj/effect/spawner/random/maintenance/three, +/turf/open/floor/plating, +/area/station/maintenance/department/security/prison_upper) +"uxa" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/corrections_officer) +"uxy" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"uxA" = ( +/obj/item/banner/security/mundane, +/obj/effect/turf_decal/trimline/red/filled/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 6 + }, +/turf/open/floor/iron/dark/corner{ + dir = 1 + }, +/area/station/security/brig) +"uxI" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"uxK" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/machinery/requests_console/directional/south{ + department = "Pharmacy"; + name = "Pharmacy Requests Console"; + pixel_x = -32; + pixel_y = 0 + }, +/obj/effect/mapping_helpers/requests_console/ore_update, +/obj/structure/disposalpipe/trunk, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 8 + }, +/obj/machinery/camera/autoname/directional/west{ + network = list("ss13","medbay") + }, +/turf/open/floor/iron/white, +/area/station/medical/pharmacy) +"uxO" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/turf/open/floor/iron/smooth, +/area/station/maintenance/disposal/incinerator) +"uxR" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"uxV" = ( +/obj/item/tank/internals/oxygen/red{ + pixel_x = -4; + pixel_y = -1 + }, +/obj/item/tank/internals/oxygen/red{ + pixel_x = 4; + pixel_y = -1 + }, +/obj/item/tank/internals/anesthetic{ + pixel_x = 2 + }, +/obj/item/storage/toolbox/mechanical, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/obj/structure/closet/crate{ + icon_state = "crateopen" + }, +/obj/item/wrench, +/obj/machinery/atmospherics/pipe/smart/manifold/general/visible{ + dir = 8 + }, +/obj/machinery/light/directional/west, +/turf/open/floor/iron/dark, +/area/station/security/execution/education) +"uxW" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/components/trinary/mixer/flipped{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/test_chambers) +"uyi" = ( +/obj/structure/extinguisher_cabinet/directional/south, +/obj/structure/table/rolling, +/obj/effect/spawner/random/trash/mess, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/cafeteria, +/area/station/maintenance/department/medical/central) +"uyj" = ( +/obj/effect/landmark/start/security_officer, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured_edge{ + dir = 8 + }, +/area/station/security/lockers) +"uyl" = ( +/obj/structure/chair/sofa/right/brown{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/red, +/area/station/service/library/abandoned) +"uyo" = ( +/turf/closed/wall/rust, +/area/station/maintenance/abandon_psych) +"uyp" = ( +/obj/effect/spawner/random/trash/graffiti, +/turf/closed/wall, +/area/station/maintenance/starboard/fore) +"uyr" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_y = 3 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plating, +/area/station/maintenance/abandon_holding_cell) +"uyx" = ( +/obj/item/toy/plush/glep, +/obj/item/paper/fluff{ + default_raw_text = "if yor readin this!! its 2 late! it has been unleahsed"; + name = "Ominous Note" + }, +/turf/open/floor/plating, +/area/station/medical/pharmacy) +"uyC" = ( +/turf/open/floor/engine{ + name = "Holodeck Projector Floor" + }, +/area/station/holodeck/rec_center) +"uyP" = ( +/obj/machinery/door/airlock/security/old{ + glass = 1; + name = "Garden" + }, +/obj/effect/turf_decal/delivery/red, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron/dark, +/area/station/security/prison/garden) +"uyR" = ( +/obj/structure/rack/shelf, +/obj/effect/turf_decal/bot, +/obj/item/stack/sheet/iron/fifty, +/obj/item/stack/sheet/iron/fifty, +/obj/item/stack/sheet/iron/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/radio, +/obj/item/radio, +/obj/item/radio, +/obj/item/radio, +/obj/item/radio, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva) +"uyS" = ( +/obj/machinery/door/firedoor, +/obj/structure/sign/nanotrasen{ + pixel_x = 32 + }, +/obj/machinery/door/airlock/public/glass{ + name = "Central Hallway" + }, +/turf/open/floor/iron/dark/side{ + dir = 6 + }, +/area/station/hallway/secondary/command) +"uyT" = ( +/obj/machinery/door/airlock/maintenance, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"uyZ" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/effect/turf_decal/stripes, +/obj/effect/spawner/random/armory/bulletproof_armor, +/obj/effect/turf_decal/trimline/red/line{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark, +/turf/open/floor/iron/dark/textured_edge, +/area/station/ai_monitored/security/armory) +"uzf" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/structure/disposalpipe/sorting/mail{ + dir = 1; + name = "Chemistry Junction"; + sortType = 11 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"uzh" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 10 + }, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"uzi" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/common/laser_tag) +"uzj" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/command/meeting_room/council) +"uzl" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/commons/vacant_room/commissary) +"uzm" = ( +/obj/structure/bed/roller{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue/fourcorners, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"uzo" = ( +/turf/closed/wall/r_wall, +/area/station/engineering/atmos/office) +"uzs" = ( +/obj/machinery/door/airlock/hatch{ + name = "Secure Pen" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"uzz" = ( +/obj/structure/showcase/cyborg/old{ + dir = 8; + pixel_x = 9; + pixel_y = 2 + }, +/obj/machinery/light/directional/east, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/aisat/exterior) +"uzC" = ( +/obj/structure/tank_dispenser, +/obj/effect/turf_decal/delivery, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/command/gateway) +"uzK" = ( +/turf/closed/wall, +/area/station/medical/medbay/central) +"uzV" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/iron, +/area/station/medical/abandoned) +"uzX" = ( +/obj/machinery/flasher/portable, +/obj/machinery/camera/directional/east{ + c_tag = "Security - Secure Gear Storage" + }, +/turf/open/floor/iron/dark/side{ + dir = 5 + }, +/area/station/security/lockers) +"uzY" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva) +"uAi" = ( +/obj/effect/landmark/start/assistant, +/obj/structure/chair/comfy/brown{ + color = "#A46106"; + dir = 4 + }, +/turf/open/floor/wood, +/area/station/service/library) +"uAj" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/service/library/abandoned) +"uAl" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/vg_decals/numbers/one, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"uAq" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/item/folder/blue{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/folder/white, +/obj/item/stamp/cmo{ + pixel_y = 5 + }, +/turf/open/floor/carpet/blue, +/area/station/command/heads_quarters/cmo) +"uAr" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/security/interrogation) +"uAs" = ( +/obj/effect/spawner/random/trash/mess, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/bar) +"uAI" = ( +/obj/structure/table, +/obj/item/storage/fancy/donut_box, +/obj/machinery/light/directional/east, +/obj/structure/cable, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/corrections_officer) +"uAN" = ( +/obj/machinery/door/airlock/hatch{ + name = "MiniSat Antechamber" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/any/command/general, +/obj/effect/mapping_helpers/airlock/access/any/engineering/construction, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat_interior) +"uAR" = ( +/obj/structure/window/spawner/directional/north, +/turf/open/floor/iron/dark, +/area/station/maintenance/abandon_exam/cat) +"uAS" = ( +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/iron/stairs{ + dir = 1 + }, +/area/station/hallway/secondary/entry) +"uAV" = ( +/turf/open/floor/iron, +/area/station/commons/vacant_room/commissary) +"uBa" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/window/brigdoor/left/directional/west{ + name = "Armoury Desk"; + req_access = list("armory") + }, +/obj/machinery/door/window/brigdoor/left/directional/east{ + name = "Armoury Desk"; + req_access = list("armory") + }, +/turf/open/floor/iron/dark/textured_large, +/area/station/ai_monitored/security/armory) +"uBf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"uBi" = ( +/obj/structure/closet/cardboard, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"uBm" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes{ + dir = 10 + }, +/obj/machinery/atmospherics/components/binary/pump/on{ + name = "Gas to Cold Loop" + }, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"uBn" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/table/reinforced, +/obj/item/wrench, +/obj/item/pipe_dispenser, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/science/ordnance/storage) +"uBq" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"uBr" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 8 + }, +/obj/structure/disposalpipe/sorting/mail{ + name = "RD's Junction"; + sortType = 13 + }, +/turf/open/floor/iron/white, +/area/station/science/research) +"uBt" = ( +/obj/effect/spawner/random/trash/mess, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"uBu" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/duct, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/nt_rep) +"uBz" = ( +/obj/structure/chair, +/obj/effect/turf_decal/tile/red/half/contrasted, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/checkpoint/escape) +"uBA" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/structure/grandfatherclock, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/cmo) +"uBN" = ( +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/iron/stairs, +/area/station/command/heads_quarters/hos) +"uBP" = ( +/obj/effect/turf_decal/siding/purple/end{ + dir = 1 + }, +/turf/open/floor/glass/reinforced, +/area/station/science) +"uBR" = ( +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/light/small/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/solars/starboard/aft) +"uBS" = ( +/obj/machinery/power/terminal, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/effect/turf_decal/stripes, +/turf/open/floor/iron/dark, +/area/station/science/power_station) +"uBT" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/iron, +/area/station/engineering/atmos/pumproom) +"uCa" = ( +/turf/closed/wall/r_wall, +/area/station/maintenance/pool_maintenance) +"uCf" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"uCg" = ( +/turf/open/floor/iron/dark, +/area/station/security/power_station) +"uCj" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/construction/mining/aux_base) +"uCl" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/structure/cable, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/security/power_station) +"uCp" = ( +/obj/effect/turf_decal/stripes/box, +/obj/effect/turf_decal/stripes/red/box, +/obj/structure/cable, +/obj/machinery/firealarm/directional/north, +/obj/machinery/light/directional/north, +/turf/open/floor/iron/recharge_floor, +/area/station/science/robotics/mechbay) +"uCr" = ( +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/maintenance/abandon_exam/cat) +"uCu" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/machinery/button/door/directional/west{ + id = "Dorm8"; + name = "Dormitory Door Lock"; + normaldoorcontrol = 1; + pixel_x = 0; + pixel_y = 25; + specialfunctions = 4 + }, +/obj/structure/chair/comfy/brown{ + color = "#A46106"; + dir = 4 + }, +/turf/open/floor/wood, +/area/station/commons/dorms/room7) +"uCB" = ( +/obj/machinery/light/directional/east, +/obj/machinery/firealarm/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/security/prison/visit) +"uCC" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/duct, +/turf/open/floor/iron/grimy, +/area/station/command/heads_quarters/captain) +"uCD" = ( +/obj/structure/toilet{ + dir = 1 + }, +/obj/structure/sink/directional/east, +/obj/structure/mirror{ + pixel_x = -27 + }, +/turf/open/floor/iron/freezer, +/area/station/commons/dorms/room5) +"uCF" = ( +/obj/structure/lattice/catwalk, +/turf/open/openspace, +/area/station/maintenance/fore/upper) +"uCP" = ( +/obj/machinery/oven/range, +/turf/open/floor/iron/cafeteria, +/area/station/command/heads_quarters/nt_rep) +"uCR" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"uCW" = ( +/obj/effect/turf_decal/box/red, +/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/carbon_input{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"uCY" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/prison) +"uDb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/oil, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"uDf" = ( +/turf/closed/wall, +/area/station/hallway/secondary/construction) +"uDg" = ( +/turf/closed/wall, +/area/station/security/courtroom) +"uDj" = ( +/obj/structure/closet/secure_closet/personal, +/obj/effect/turf_decal/bot, +/obj/item/clothing/suit/apron/surgical, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/abandon_exam/cat) +"uDm" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/sorting/mail{ + dir = 4; + name = "Theatre Junction"; + sortType = 18 + }, +/turf/open/floor/iron, +/area/station/commons/dorms) +"uDy" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/turf_decal/tile/dark_blue{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"uDz" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/hop) +"uDH" = ( +/obj/structure/table/reinforced, +/obj/item/phone{ + desc = "Supposedly a direct line to Nanotrasen Central Command. It's not even plugged in."; + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/mask/cigarette/cigar/havana{ + pixel_x = 2 + }, +/obj/item/clothing/mask/cigarette/cigar{ + pixel_x = 4.5 + }, +/obj/item/clothing/mask/cigarette/cigar/cohiba{ + pixel_x = 6 + }, +/obj/effect/turf_decal/tile/yellow/full, +/turf/open/floor/iron/large, +/area/station/command/heads_quarters/ce) +"uDU" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/iron/dark, +/area/station/commons/fitness) +"uDZ" = ( +/obj/effect/landmark/carpspawn, +/turf/open/floor/glass/reinforced/airless, +/area/space/nearstation) +"uEa" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/junction{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"uEh" = ( +/obj/structure/railing/wooden_fencing{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/common/pool) +"uEi" = ( +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/common/tailoring) +"uEk" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/science/genetics) +"uEl" = ( +/obj/structure/trash_pile, +/turf/open/floor/plating, +/area/station/maintenance/port/central) +"uEo" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"uEt" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/eighties/red, +/area/station/common/arcade) +"uEy" = ( +/obj/structure/table/reinforced, +/obj/item/storage/box/chemimp{ + pixel_x = 6; + pixel_y = 7 + }, +/obj/item/storage/box/trackimp{ + pixel_x = -3; + pixel_y = 6 + }, +/obj/item/storage/lockbox/loyalty{ + pixel_y = -5 + }, +/obj/effect/turf_decal/trimline/red/corner, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 9 + }, +/turf/open/floor/iron/dark/textured_corner, +/area/station/ai_monitored/security/armory) +"uEz" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/machinery/firealarm/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/public/glass{ + name = "East RnD Wing" + }, +/turf/open/floor/iron, +/area/station/science/research) +"uEE" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"uEP" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 9 + }, +/obj/structure/railing, +/turf/closed/wall, +/area/station/security/prison/upper) +"uEV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/mess, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"uEZ" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/stalky, +/turf/open/floor/grass, +/area/station/science/research) +"uFh" = ( +/turf/open/floor/iron/white/corner{ + dir = 4 + }, +/area/station/hallway/secondary/entry) +"uFl" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable, +/turf/open/floor/catwalk_floor, +/area/station/engineering/atmos) +"uFm" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/medical/exam_room) +"uFp" = ( +/obj/structure/table, +/obj/item/pizzabox/meat, +/obj/item/pizzabox/mushroom{ + pixel_y = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/eighties, +/area/station/maintenance/abandon_arcade) +"uFs" = ( +/obj/effect/turf_decal/trimline/red/filled/corner{ + color = "#DE3A3A"; + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 6 + }, +/turf/open/floor/iron/dark/corner{ + dir = 1 + }, +/area/station/security/brig) +"uFy" = ( +/obj/machinery/door/airlock/research{ + name = "Circuit Lab" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/science/general, +/turf/open/floor/iron/white/side{ + dir = 8 + }, +/area/station/science/circuits) +"uFA" = ( +/obj/machinery/door/airlock/maintenance, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"uFC" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"uFD" = ( +/obj/structure/window/spawner/directional/south, +/obj/structure/table, +/obj/structure/bedsheetbin, +/obj/structure/cable, +/obj/effect/turf_decal/tile/blue/opposingcorners{ + dir = 8 + }, +/turf/open/floor/iron/cafeteria, +/area/station/commons/locker) +"uFG" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/machinery/firealarm/directional/east, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/checkpoint/supply) +"uFN" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "Luggagebelt" + }, +/obj/machinery/light/small/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/security/checkpoint) +"uFT" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/camera/directional/south{ + c_tag = "Leisure Hallway - Starboard"; + name = "hallway camera" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"uFY" = ( +/turf/open/floor/wood, +/area/station/service/hydroponics/garden/abandoned) +"uGa" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/effect/turf_decal/stripes, +/obj/structure/rack/shelf, +/obj/item/tank/jetpack/carbondioxide{ + pixel_x = -4 + }, +/obj/item/tank/jetpack/carbondioxide, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva/upper) +"uGc" = ( +/obj/machinery/door/airlock{ + name = "Courtroom" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/security/courtroom) +"uGd" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/rack/shelf, +/turf/open/floor/wood/large, +/area/station/security/brig) +"uGf" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"uGh" = ( +/obj/machinery/light/directional/west, +/turf/open/openspace, +/area/station/hallway/primary/upper) +"uGm" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"uGo" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"uGq" = ( +/obj/machinery/camera/directional/east{ + c_tag = "Upper Central Hallway - Upper Starboard Aft"; + name = "hallway camera" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"uGz" = ( +/obj/item/stack/sheet/cardboard, +/obj/item/storage/box/lights, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"uGE" = ( +/obj/effect/landmark/start/hangover, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_port) +"uGG" = ( +/obj/machinery/barsign{ + pixel_y = 32 + }, +/obj/machinery/restaurant_portal/bar, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"uGK" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/medical/storage) +"uGZ" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/closet, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"uHb" = ( +/obj/machinery/power/smes/engineering, +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/cargo/power_station/upper) +"uHf" = ( +/obj/machinery/light/small/broken/directional/south, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"uHo" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 6 + }, +/obj/effect/turf_decal/weather/sand{ + dir = 5 + }, +/obj/structure/flora/grass/jungle, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"uHs" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/structure/window/spawner/directional/west, +/turf/open/floor/carpet/purple, +/area/station/commons/dorms/room4) +"uHv" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/aisat/exterior) +"uHy" = ( +/obj/machinery/grill, +/obj/machinery/light_switch/directional/west, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) +"uHE" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 5 + }, +/turf/open/floor/iron/white, +/area/station/science) +"uHL" = ( +/obj/structure/chair/sofa/bench/right{ + dir = 8; + pixel_x = 5 + }, +/obj/effect/turf_decal/tile/blue/half{ + dir = 8 + }, +/turf/open/floor/iron/white/side{ + dir = 8 + }, +/area/station/medical/medbay/lobby) +"uHO" = ( +/obj/machinery/power/port_gen/pacman/pre_loaded, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"uHQ" = ( +/turf/closed/wall/rust, +/area/station/maintenance/abandon_exam/cat) +"uHR" = ( +/obj/effect/turf_decal/tile/purple/half{ + dir = 8 + }, +/obj/machinery/duct, +/turf/open/floor/iron/white/side{ + dir = 8 + }, +/area/station/science/xenobiology) +"uHU" = ( +/obj/structure/trash_pile, +/turf/open/floor/iron, +/area/station/maintenance/port/aft) +"uHY" = ( +/obj/structure/window/spawner/directional/north, +/obj/structure/window/spawner/directional/south, +/obj/structure/flora/rock/pile, +/obj/structure/flora/bush/jungle/a/style_3, +/turf/open/floor/grass, +/area/station/cargo/lobby) +"uIj" = ( +/obj/structure/chair/sofa/bench{ + dir = 8; + pixel_x = 5 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/secondary/entry) +"uIk" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 1 + }, +/turf/closed/wall/r_wall, +/area/station/maintenance/disposal/incinerator) +"uIp" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Gear Room" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/turf/open/floor/iron/dark/textured_large, +/area/station/security/lockers) +"uIq" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/science/research) +"uIu" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing{ + dir = 4 + }, +/obj/structure/chair/sofa/bench{ + dir = 8 + }, +/turf/open/floor/glass/reinforced, +/area/station/security/prison/safe) +"uID" = ( +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/night_club) +"uIM" = ( +/obj/machinery/power/smes, +/obj/structure/cable, +/obj/machinery/light_switch/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/solars/starboard/aft) +"uIV" = ( +/obj/structure/rack, +/obj/item/stack/sheet/iron/twenty, +/turf/open/floor/plating, +/area/station/maintenance/department/security/lower) +"uIX" = ( +/obj/structure/rack, +/obj/effect/spawner/random/techstorage/command_all, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) +"uJc" = ( +/obj/structure/cable, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red, +/turf/open/floor/iron/dark/small, +/area/station/security/brig) +"uJk" = ( +/obj/machinery/light/small/directional/east, +/obj/structure/tank_dispenser/oxygen, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/iron/dark, +/area/station/engineering/transit_tube) +"uJl" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 10 + }, +/turf/open/space/basic, +/area/space/nearstation) +"uJu" = ( +/obj/effect/turf_decal/vg_decals/numbers/one, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"uJv" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/table/reinforced, +/obj/item/storage/belt/utility, +/obj/item/storage/belt/utility, +/obj/item/weldingtool, +/obj/item/weldingtool, +/obj/item/clothing/head/utility/welding, +/obj/item/clothing/head/utility/welding, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva/upper) +"uJz" = ( +/obj/effect/spawner/random/trash/garbage, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_starboard) +"uJA" = ( +/obj/effect/turf_decal/bot, +/obj/structure/displaycase/labcage, +/turf/open/floor/engine, +/area/station/command/heads_quarters/rd) +"uJF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old{ + icon_state = "floor4-old" + }, +/turf/open/floor/iron/freezer, +/area/station/maintenance/department/medical/central) +"uJL" = ( +/turf/closed/wall, +/area/station/maintenance/department/science/central) +"uJO" = ( +/obj/machinery/door/poddoor{ + id = "SecJusticeChamber"; + name = "Justice Vent" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/station/security/execution/education) +"uJQ" = ( +/obj/machinery/door/airlock/hatch, +/obj/structure/barricade/wooden, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"uJT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/barricade/wooden, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch" + }, +/obj/effect/mapping_helpers/airlock/abandoned, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/firedoor, +/turf/open/floor/plating, +/area/station/maintenance/abandon_art_studio) +"uJZ" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/vending/wardrobe/viro_wardrobe, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/medical/virology/isolation) +"uKc" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"uKd" = ( +/obj/structure/showcase/cyborg/old{ + dir = 4; + pixel_x = -9; + pixel_y = 2 + }, +/obj/machinery/turretid{ + control_area = "/area/station/ai_monitored/turret_protected/ai_upload"; + icon_state = "control_stun"; + name = "AI Upload turret control"; + pixel_y = 32 + }, +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching the AI Upload."; + dir = 4; + name = "AI Upload Monitor"; + network = list("aiupload"); + pixel_x = -29 + }, +/obj/item/radio/intercom/directional/north{ + broadcasting = 1; + frequency = 1447; + name = "Private Channel"; + pixel_x = -26 + }, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai_upload_foyer) +"uKe" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/engineering/gravity_generator) +"uKh" = ( +/obj/machinery/airalarm/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/service/hydroponics/garden/abandoned) +"uKq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/maintenance/aft/upper) +"uKt" = ( +/obj/structure/table/wood, +/obj/item/clipboard, +/obj/item/toy/figure/bartender, +/obj/machinery/newscaster/directional/east, +/turf/open/floor/wood, +/area/station/hallway/secondary/service) +"uKG" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) +"uKN" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"uKU" = ( +/turf/closed/wall/r_wall, +/area/station/maintenance/rus_gambling) +"uKW" = ( +/obj/machinery/camera/directional/south{ + c_tag = "Armory - Interior" + }, +/obj/machinery/light/directional/south, +/obj/structure/rack/gunrack, +/obj/effect/turf_decal/delivery, +/obj/effect/spawner/armory_spawn/mod_lasers_big, +/obj/effect/turf_decal/trimline/red/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark, +/turf/open/floor/iron/dark/textured, +/area/station/ai_monitored/security/armory) +"uLe" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/security/upper) +"uLp" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 8 + }, +/obj/structure/flora/bush/leafy, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"uLA" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/medical/virology) +"uLD" = ( +/obj/structure/girder, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"uLE" = ( +/obj/structure/table/wood, +/obj/structure/window/spawner/directional/north, +/obj/item/paper_bin{ + pixel_y = 3 + }, +/obj/item/pen{ + pixel_y = 3 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/grimy, +/area/station/command/meeting_room/council) +"uLF" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/structure/curtain/cloth/fancy/mechanical{ + icon_state = "bounty-open"; + icon_type = "bounty"; + id = "prisonlibrarycurtain4"; + name = "curtain" + }, +/turf/open/floor/plating, +/area/station/command/heads_quarters/blueshield) +"uLP" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"uMb" = ( +/obj/machinery/ai_slipper{ + uses = 10 + }, +/obj/machinery/flasher/directional/south{ + id = "AI"; + pixel_x = 26 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai) +"uMr" = ( +/obj/structure/cable, +/obj/machinery/door/airlock/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"uMs" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"uMy" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"uMG" = ( +/obj/machinery/photocopier, +/obj/structure/extinguisher_cabinet/directional/south, +/turf/open/floor/iron/dark, +/area/station/service/library/private) +"uMJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"uMO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/carpet/red, +/area/station/service/library/abandoned) +"uMX" = ( +/turf/open/floor/iron/dark/side{ + dir = 10 + }, +/area/station/hallway/primary/central) +"uMY" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/disposaloutlet{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/disposal) +"uNf" = ( +/obj/structure/railing{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/department/engineering/atmos_aux_port) +"uNk" = ( +/obj/machinery/airalarm/directional/west, +/obj/machinery/firealarm/directional/north, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/security/interrogation) +"uNl" = ( +/turf/open/floor/iron/stairs{ + icon_state = "stairs_wood"; + icon = 'icons/obj/stairs.dmi' + }, +/area/station/common/pool) +"uNn" = ( +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/common/wrestling/arena) +"uNo" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/command/gateway) +"uNq" = ( +/obj/structure/flora/rock/pile, +/obj/structure/flora/bush/reed{ + pixel_y = 8 + }, +/turf/open/water/overlay, +/area/station/hallway/primary/central) +"uNt" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/security/prison/shower) +"uNw" = ( +/turf/open/floor/wood, +/area/station/service/lawoffice) +"uND" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/station/service/library) +"uNG" = ( +/obj/structure/table/glass, +/obj/item/experi_scanner{ + pixel_x = 5 + }, +/obj/item/experi_scanner, +/obj/item/experi_scanner{ + pixel_x = -5 + }, +/obj/effect/turf_decal/tile/purple/half{ + dir = 1 + }, +/turf/open/floor/iron/white/side{ + dir = 1 + }, +/area/station/science/research) +"uNJ" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/jungle/a/style_3, +/obj/structure/window/reinforced/shuttle, +/turf/open/floor/grass, +/area/station/common/cryopods) +"uNZ" = ( +/obj/machinery/ntnet_relay, +/turf/open/floor/circuit/telecomms/mainframe, +/area/station/tcommsat/server) +"uOa" = ( +/obj/machinery/door/airlock/hatch{ + name = "MiniSat Space Access Airlock" + }, +/obj/effect/mapping_helpers/airlock/access/any/command/general, +/obj/effect/mapping_helpers/airlock/access/any/engineering/construction, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "AIsatAirlock" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/ai_monitored/aisat/exterior) +"uOh" = ( +/obj/structure/cable, +/turf/open/floor/iron/dark/side, +/area/station/ai_monitored/command/storage/eva) +"uOq" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/wardrobe/grey, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/landmark/start/hangover/closet, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/commons/locker) +"uOx" = ( +/obj/structure/table/reinforced/rglass, +/obj/item/reagent_containers/spray/cleaner{ + pixel_x = -10; + pixel_y = 15 + }, +/obj/item/book/manual/wiki/medicine, +/obj/item/clothing/glasses/hud/health, +/obj/item/clothing/glasses/hud/health, +/obj/item/clothing/glasses/hud/health, +/obj/item/clothing/glasses/hud/health, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) +"uOA" = ( +/obj/effect/spawner/random/vending/snackvend, +/turf/open/floor/iron, +/area/station/science/ordnance/office) +"uOB" = ( +/obj/structure/chair/pew/left{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/security/prison/mess) +"uOJ" = ( +/turf/open/floor/iron/dark/side, +/area/station/service/hydroponics) +"uOP" = ( +/obj/structure/sign/poster/contraband/energy_swords/directional/south, +/turf/open/floor/grass, +/area/station/common/night_club) +"uOQ" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/flowers_yw, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "cmoshutter"; + name = "CMO Office Shutters" + }, +/turf/open/floor/grass, +/area/station/command/heads_quarters/cmo) +"uOS" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/window/brigdoor/right/directional/west{ + name = "Command Chair"; + req_access = list("command") + }, +/turf/open/floor/iron, +/area/station/command/bridge) +"uOU" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/engineering/engine_smes) +"uPe" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/station/security/range) +"uPf" = ( +/obj/machinery/status_display/ai/directional/south, +/obj/machinery/light/directional/south, +/obj/item/kirbyplants/organic/plant21, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"uPj" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/security/interrogation) +"uPp" = ( +/obj/item/stack/sheet/cardboard, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/chapel) +"uPq" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/lobby) +"uPC" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/cable, +/obj/structure/railing{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/duct, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/captain) +"uPF" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/newscaster/directional/south, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"uPL" = ( +/obj/item/kirbyplants/random, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/landmark/generic_maintenance_landmark, +/turf/open/floor/iron/dark, +/area/station/maintenance/thruster_room/central) +"uPU" = ( +/obj/effect/turf_decal/stripes/end{ + dir = 8 + }, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/obj/machinery/light/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/ai_monitored/command/storage/eva) +"uQb" = ( +/obj/structure/chair/sofa/bench/right{ + dir = 4; + pixel_x = -5 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/obj/machinery/light_switch/directional/west{ + pixel_x = -24 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"uQj" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/machinery/button/elevator{ + id = "publicElevator"; + pixel_y = 32 + }, +/obj/machinery/lift_indicator/directional/north{ + linked_elevator_id = "publicElevator" + }, +/obj/machinery/light/directional/north, +/obj/machinery/door/window/elevator/right/directional/east, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/central) +"uQl" = ( +/obj/structure/chair/wood{ + dir = 4 + }, +/obj/machinery/button/door/directional/west{ + id = "Dorm6"; + name = "Dormitory Door Lock"; + normaldoorcontrol = 1; + pixel_x = 0; + pixel_y = -25; + specialfunctions = 4 + }, +/turf/open/floor/wood, +/area/station/commons/dorms/room5) +"uQo" = ( +/obj/structure/window/reinforced/plasma/spawner/directional/east, +/obj/machinery/atmospherics/components/unary/vent_pump/siphon{ + dir = 4 + }, +/turf/open/floor/engine/vacuum, +/area/station/maintenance/department/engineering/atmos_aux_port) +"uQp" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/security/courtroom) +"uQq" = ( +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/command/secure_bunker) +"uQv" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"uQC" = ( +/obj/effect/turf_decal/stripes, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east, +/turf/open/floor/engine, +/area/station/command/secure_bunker) +"uQD" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/structure/chair/wood{ + dir = 1 + }, +/obj/machinery/light/directional/west, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/station/service/chapel/funeral) +"uQF" = ( +/turf/open/floor/iron/stairs/right{ + dir = 1 + }, +/area/station/maintenance/port/upper) +"uQM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock/public/glass{ + name = "Arcade" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/common/arcade) +"uQQ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/side, +/area/station/commons/dorms) +"uQS" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/machinery/firealarm/directional/east, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/public/glass{ + name = "Upper Science Department" + }, +/turf/open/floor/iron, +/area/station/science/research) +"uQW" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/machinery/corral_corner{ + mapping_id = "3" + }, +/obj/machinery/slime_pen_controller{ + mapping_id = "3"; + dir = 2 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"uQZ" = ( +/obj/structure/chair/stool/directional/west, +/obj/effect/landmark/start/hangover, +/turf/open/floor/glass, +/area/station/commons/dorms) +"uRr" = ( +/obj/structure/closet, +/obj/effect/turf_decal/delivery, +/obj/item/assembly/igniter, +/obj/item/assembly/igniter/condenser, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"uRs" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/sorting/mail{ + dir = 1; + name = "Hydroponics Junction"; + sortType = 21 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"uRt" = ( +/obj/structure/window/spawner/directional/east, +/obj/structure/flora/grass/jungle/b, +/turf/open/floor/grass, +/area/station/service/cafeteria) +"uRv" = ( +/turf/closed/wall/rust, +/area/station/maintenance/department/science/upper) +"uRx" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Ranch Lobby" + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 8 + }, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/duct, +/obj/effect/landmark/navigate_destination, +/turf/open/floor/iron/dark, +/area/station/common/night_club) +"uRA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"uRL" = ( +/obj/structure/table/glass, +/obj/structure/window/spawner/directional/east, +/obj/item/clothing/neck/stethoscope, +/obj/machinery/status_display/evac/directional/north, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) +"uRM" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/command/heads_quarters/hos) +"uRR" = ( +/obj/effect/turf_decal/stripes, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/machinery/teleport/station, +/turf/open/floor/circuit, +/area/station/command/gateway) +"uRT" = ( +/obj/machinery/atmospherics/components/trinary/mixer{ + dir = 8; + name = "plasma mixer" + }, +/obj/effect/turf_decal/stripes/end, +/turf/open/floor/plating/airless, +/area/station/engineering/atmos/upper) +"uSe" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/station/service/library) +"uSf" = ( +/obj/structure/girder, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"uSh" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat_interior) +"uSi" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/mob/living/basic/pet/potty, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"uSj" = ( +/obj/machinery/airalarm/directional/east, +/obj/structure/table/reinforced/rglass, +/obj/item/clipboard, +/obj/item/toy/figure/md, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) +"uSl" = ( +/obj/structure/chair/sofa/bench/right{ + dir = 8; + pixel_x = 5 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/common/locker_room_shower) +"uSr" = ( +/obj/machinery/computer/shuttle/mining{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/dark/small, +/area/station/cargo/storage) +"uSA" = ( +/obj/machinery/door/morgue{ + name = "Relic Closet"; + req_access = list("crematorium") + }, +/turf/open/floor/iron/grimy, +/area/station/service/chapel/office) +"uSE" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/white, +/area/station/science/tele_sci) +"uSI" = ( +/obj/structure/showcase/cyborg/old{ + dir = 4; + pixel_x = -9; + pixel_y = 2 + }, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/aisat/exterior) +"uSJ" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 5 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"uSK" = ( +/obj/effect/spawner/random/vending/colavend, +/obj/effect/turf_decal/siding/thinplating_new, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/entry) +"uSS" = ( +/obj/structure/window/spawner/directional/west, +/obj/structure/flora/bush/fullgrass, +/obj/structure/flora/bush/flowers_br, +/turf/open/floor/grass, +/area/station/service/cafeteria) +"uSU" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/science/ordnance) +"uSX" = ( +/obj/structure/chair/wood{ + dir = 8 + }, +/obj/effect/landmark/start/assistant, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"uSZ" = ( +/obj/machinery/conveyor{ + id = "robo1" + }, +/turf/open/floor/mineral/plastitanium, +/area/station/science/robotics/lab) +"uTd" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/commons/fitness/recreation) +"uTe" = ( +/obj/structure/window/spawner/directional/north, +/obj/structure/window/spawner/directional/south, +/obj/structure/cable, +/obj/effect/spawner/structure/electrified_grille, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_starboard) +"uTf" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_y = 3 + }, +/obj/item/pen{ + pixel_y = 3 + }, +/turf/open/floor/iron, +/area/station/maintenance/solars/port/fore) +"uTg" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 9 + }, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"uTi" = ( +/obj/effect/turf_decal/stripes, +/obj/machinery/suit_storage_unit/hos, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hos) +"uTj" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"uTp" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"uTr" = ( +/turf/closed/wall/r_wall, +/area/station/maintenance/abandon_exam/cat) +"uTu" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/item/paper/fluff{ + default_raw_text = "To the Engineers of BlueShift, we would like to inform you that the power draw at the start of your shift may be something you're not used to while working on stations. BlueShift is equipped with departmental power banks. You should NEVER connect departments into the main power net to avoid issues. These power banks are located in maintenance around their respective departments, and the head of said department may come in at their leisure. If you ever encounter issues, please have your Chief Engineer contact Central Command. Have a secure shift."; + name = "Note to Electricians" + }, +/obj/machinery/modular_computer/preset/engineering{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/engine_smes) +"uTy" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron, +/area/station/engineering/main) +"uTJ" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/bar) +"uTN" = ( +/obj/structure/closet/crate/bin, +/obj/item/cautery, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/effect/spawner/random/medical/memeorgans, +/turf/open/floor/plating, +/area/station/maintenance/abandon_surgery) +"uTQ" = ( +/obj/effect/turf_decal/trimline/blue/line{ + dir = 10 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"uTT" = ( +/obj/machinery/chem_master, +/obj/structure/window/spawner/directional/west, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/medical/pharmacy) +"uTU" = ( +/obj/machinery/smartfridge/chemistry/preloaded, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "chemistbot"; + name = "Chemistry Side Shutters" + }, +/turf/open/floor/iron/white, +/area/station/medical/pharmacy) +"uUd" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "MainSurgeryTheatre"; + name = "Surgery Theatre Privacy Shutters" + }, +/turf/open/floor/plating, +/area/station/medical/surgery/theatre) +"uUk" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron/stairs{ + dir = 1 + }, +/area/station/service/theater) +"uUl" = ( +/obj/structure/bed/roller, +/obj/effect/turf_decal/bot, +/obj/machinery/iv_drip, +/turf/open/floor/iron/dark, +/area/station/medical/medbay/central) +"uUq" = ( +/obj/structure/noticeboard/directional/east, +/obj/machinery/camera/directional/east{ + c_tag = "Security - Warden's Office" + }, +/obj/machinery/light/directional/east, +/turf/open/floor/iron/stairs{ + dir = 1 + }, +/area/station/security/warden) +"uUt" = ( +/obj/item/stack/sheet/plasmarglass{ + amount = 2 + }, +/obj/machinery/door/airlock/engineering/glass{ + name = "Transmission Laser Room" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/general, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) +"uUA" = ( +/obj/structure/trash_pile, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plating, +/area/station/maintenance/disposal) +"uUG" = ( +/obj/effect/turf_decal/trimline/purple/filled/corner{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/science/research) +"uUH" = ( +/obj/machinery/telecomms/processor/preset_three, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 6 + }, +/turf/open/floor/iron/dark/telecomms, +/area/station/tcommsat/server) +"uUQ" = ( +/obj/effect/turf_decal/trimline/red/filled/line{ + color = "#DE3A3A"; + dir = 5 + }, +/obj/item/kirbyplants/organic/plant22, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hos) +"uUX" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/power/apc/auto_name/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"uUZ" = ( +/turf/closed/wall, +/area/station/security/detectives_office/private_investigators_office) +"uVc" = ( +/obj/item/kirbyplants/random, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/eighties/red, +/area/station/common/arcade) +"uVe" = ( +/obj/machinery/light/directional/south, +/obj/structure/extinguisher_cabinet/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/obj/effect/turf_decal/tile/blue/half/contrasted, +/turf/open/floor/iron/dark/side, +/area/station/hallway/secondary/command) +"uVf" = ( +/obj/structure/table/reinforced, +/obj/item/folder{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/folder, +/turf/open/floor/iron/dark, +/area/station/science/xenobiology/control) +"uVg" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"uVh" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/cargo/office) +"uVj" = ( +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/prison) +"uVm" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/maintenance/abandon_holding_cell) +"uVo" = ( +/obj/structure/closet/cardboard, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"uVs" = ( +/mob/living/basic/sloth/paperwork, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/storage) +"uVu" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/structure/cable, +/obj/machinery/airalarm/directional/west, +/turf/open/floor/iron/dark/side{ + dir = 9 + }, +/area/station/security/corrections_officer) +"uVx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/moisture_trap, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"uVL" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/landmark/event_spawn, +/turf/open/floor/iron, +/area/station/commons/storage/art) +"uVZ" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/department/engineering/engine_aft_port) +"uWb" = ( +/obj/item/kirbyplants/random, +/obj/structure/extinguisher_cabinet/directional/west, +/obj/effect/turf_decal/trimline/purple/filled/end{ + dir = 8 + }, +/obj/machinery/light/directional/west, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"uWd" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/mining{ + name = "Mining Office" + }, +/obj/effect/mapping_helpers/airlock/access/any/supply/mining, +/turf/open/floor/iron/dark/small, +/area/station/cargo/miningoffice) +"uWe" = ( +/obj/effect/turf_decal/trimline/yellow/filled/corner{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"uWf" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/command/bridge) +"uWi" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/syringe/contraband/space_drugs, +/obj/item/reagent_containers/pill/happy{ + pixel_y = 6 + }, +/obj/item/reagent_containers/syringe/contraband/space_drugs{ + pixel_x = -3; + pixel_y = 5 + }, +/obj/structure/sign/poster/contraband/ultra/directional/north, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"uWl" = ( +/obj/machinery/door/airlock/maintenance, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/effect/mapping_helpers/airlock/abandoned, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/bar) +"uWm" = ( +/obj/item/circuit_component/airlock, +/obj/effect/decal/cleanable/blood/old{ + icon_state = "floor7-old" + }, +/turf/open/floor/plating, +/area/station/maintenance/department/security/lower) +"uWv" = ( +/turf/open/floor/iron/dark/side{ + dir = 10 + }, +/area/station/hallway/primary/port) +"uWx" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/cyan/hidden{ + dir = 8 + }, +/turf/closed/wall, +/area/station/maintenance/central) +"uWC" = ( +/turf/open/floor/carpet/blue, +/area/station/command/heads_quarters/captain) +"uWD" = ( +/turf/closed/wall/r_wall, +/area/station/science) +"uWI" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/command/gateway) +"uWL" = ( +/obj/machinery/biogenerator, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/window/spawner/directional/west, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics/garden) +"uWV" = ( +/obj/machinery/pipedispenser, +/obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ + dir = 6 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos) +"uWW" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 6 + }, +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/command/heads_quarters/rd) +"uWZ" = ( +/obj/structure/hedge, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"uXf" = ( +/obj/machinery/portable_atmospherics/canister, +/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer4{ + dir = 8 + }, +/obj/effect/turf_decal/delivery/blue, +/turf/open/floor/iron/dark, +/area/station/maintenance/department/engineering/atmos_aux_port) +"uXl" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/carpet/red, +/area/station/service/library/abandoned) +"uXm" = ( +/obj/effect/spawner/random/structure/crate, +/turf/open/floor/plating, +/area/station/science/research) +"uXn" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchenside"; + name = "Kitchen Hall Shutters" + }, +/obj/machinery/door/firedoor, +/obj/item/kitchen/fork{ + pixel_x = -2 + }, +/obj/item/kitchen/fork, +/obj/item/kitchen/fork{ + pixel_x = 2 + }, +/obj/item/kitchen/fork{ + pixel_x = -2 + }, +/obj/item/kitchen/fork, +/obj/item/kitchen/fork{ + pixel_x = 2 + }, +/turf/open/floor/iron/dark, +/area/station/service/kitchen) +"uXo" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/growing/tray, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 6 + }, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) +"uXu" = ( +/obj/structure/table, +/obj/item/stack/sheet/bone, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"uXv" = ( +/obj/machinery/door/airlock/research{ + name = "Containment Chamber" + }, +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/science/research, +/turf/open/floor/engine, +/area/station/science/explab) +"uXz" = ( +/obj/effect/turf_decal/stripes, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"uXF" = ( +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"uXJ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/common/wrestling/locker) +"uXP" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/iron/dark/small, +/area/station/cargo/storage) +"uXY" = ( +/obj/structure/railing, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) +"uYa" = ( +/obj/effect/turf_decal/siding/wood/corner, +/obj/machinery/light_switch/directional/east{ + pixel_y = 5 + }, +/obj/structure/sink/kitchen{ + dir = 8; + pixel_x = 16 + }, +/turf/open/floor/iron/dark, +/area/station/service/cafeteria) +"uYd" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/structure/closet/secure_closet/freezer/fridge/open, +/obj/machinery/button/curtain{ + id = "dormscurtain3"; + pixel_y = -27 + }, +/turf/open/floor/wood, +/area/station/commons/dorms/room4) +"uYe" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"uYj" = ( +/obj/structure/window/reinforced/fulltile, +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/flowers_yw, +/turf/open/floor/grass, +/area/station/medical/medbay/lobby) +"uYl" = ( +/obj/structure/rack/shelf, +/obj/effect/turf_decal/bot, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/cable_coil, +/turf/open/floor/iron/dark, +/area/station/maintenance/solars/port/fore) +"uYs" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister/carbon_dioxide, +/turf/open/floor/iron/dark, +/area/station/security/execution/education) +"uYB" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/item/folder/white, +/obj/item/pen, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rdgene2"; + name = "Genetics Lab Shutters" + }, +/obj/machinery/door/window/left/directional/east{ + name = "Genetics Desk"; + req_access = list("genetics") + }, +/turf/open/floor/iron/dark, +/area/station/science/genetics) +"uYD" = ( +/obj/structure/window/reinforced/fulltile, +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/flowers_pp, +/turf/open/floor/grass, +/area/station/hallway/primary/central/aft) +"uYG" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"uYH" = ( +/obj/machinery/door/airlock/external/glass, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "maintZ3-1" + }, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 1 + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/external, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"uYI" = ( +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/structure/cable, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/security/power_station) +"uYL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/service/chapel) +"uYM" = ( +/obj/machinery/door/airlock/research{ + name = "Weapons Test Range" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/science/auxlab/firing_range) +"uYQ" = ( +/obj/structure/closet/athletic_mixed, +/obj/effect/turf_decal/bot, +/obj/item/clothing/shoes/sports, +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/iron/dark, +/area/station/common/locker_room_shower) +"uYS" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"uYT" = ( +/obj/structure/toilet{ + dir = 1 + }, +/obj/structure/sink/directional/east, +/obj/structure/mirror{ + pixel_x = -27 + }, +/turf/open/floor/iron/freezer, +/area/station/commons/dorms/room3) +"uZe" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"uZg" = ( +/turf/closed/wall/r_wall, +/area/station/maintenance/department/security/greater) +"uZj" = ( +/obj/effect/turf_decal/trimline/blue/filled/corner, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"uZm" = ( +/obj/item/stack/ore/glass, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"uZo" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"uZr" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/trunk{ + dir = 2 + }, +/turf/open/floor/iron/dark/side{ + dir = 9 + }, +/area/station/command/gateway) +"uZu" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "chemistbot"; + name = "Chemistry Side Shutters" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/medical/pharmacy) +"uZA" = ( +/obj/machinery/light/directional/north, +/obj/structure/extinguisher_cabinet/directional/north, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"uZC" = ( +/turf/closed/wall/r_wall, +/area/station/engineering/transit_tube) +"uZE" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/central/fore) +"uZG" = ( +/obj/structure/table/reinforced, +/turf/open/floor/iron/dark, +/area/station/common/tailoring) +"uZH" = ( +/turf/open/floor/iron/stairs/left{ + dir = 4 + }, +/area/station/service/chapel) +"uZI" = ( +/obj/structure/sink/directional/east, +/obj/machinery/camera/directional/west{ + c_tag = " Prison - Cell 3"; + network = list("ss13","prison") + }, +/obj/effect/landmark/start/prisoner, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/security/prison/safe) +"uZK" = ( +/turf/closed/wall, +/area/station/medical/virology/isolation) +"uZR" = ( +/turf/open/floor/engine/plasma, +/area/station/engineering/atmos) +"uZU" = ( +/obj/machinery/door/airlock/freezer{ + name = "Medical Freezer" + }, +/obj/effect/mapping_helpers/airlock/access/all/medical/general, +/obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/hidden, +/turf/open/floor/iron/white, +/area/station/medical/coldroom) +"uZY" = ( +/turf/open/floor/iron/telecomms, +/area/station/tcommsat/server) +"van" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/aisat/exterior) +"vaB" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/sign/departments/botany/directional/east, +/turf/open/floor/iron/stairs/right, +/area/station/hallway/primary/central) +"vaE" = ( +/obj/machinery/light/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/line, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/prison/upper) +"vaK" = ( +/obj/structure/closet/secure_closet/security, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/security/checkpoint) +"vaL" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/cardboard, +/turf/open/floor/iron/dark, +/area/station/cargo/warehouse) +"vaM" = ( +/obj/item/kirbyplants/random, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron/dark/side{ + dir = 10 + }, +/area/station/security/corrections_officer) +"vaN" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"vaO" = ( +/obj/structure/lattice, +/obj/item/stack/ore/gold, +/turf/open/space/basic, +/area/space/nearstation) +"vaP" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"vaW" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/medical/exam_room) +"vaX" = ( +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"vbd" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/iron/dark/small, +/area/station/security/prison/upper) +"vbj" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/junction{ + dir = 2 + }, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/science/research) +"vbk" = ( +/turf/open/floor/mineral/plastitanium, +/area/station/maintenance/cult_chapel_maint) +"vbn" = ( +/obj/structure/grille, +/obj/structure/barricade/wooden, +/turf/open/floor/plating, +/area/station/service/electronic_marketing_den) +"vbq" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plating, +/area/station/maintenance/department/chapel) +"vby" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/reagent_dispensers/fueltank/large, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"vbK" = ( +/obj/structure/closet/crate/hydroponics, +/obj/item/food/grown/banana, +/obj/item/food/grown/banana, +/obj/item/food/grown/banana, +/obj/item/seeds/banana, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"vbT" = ( +/obj/structure/chair/office/light{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/station/science/ordnance/office) +"vcc" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"vce" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"vcr" = ( +/obj/structure/railing, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/stairs{ + dir = 4 + }, +/area/station/science/xenobiology) +"vcz" = ( +/obj/structure/extinguisher_cabinet/directional/south, +/obj/structure/chair/comfy/brown{ + color = "#A46106"; + dir = 8 + }, +/turf/open/floor/wood, +/area/station/service/library) +"vcA" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/machinery/modular_computer/preset/engineering{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/hfr_room) +"vcG" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/science/ordnance/office) +"vcL" = ( +/obj/effect/turf_decal/caution/stand_clear, +/obj/effect/turf_decal/bot, +/obj/machinery/door/poddoor/shutters{ + id = "evashutter"; + name = "E.V.A. Storage Shutter" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva/upper) +"vcQ" = ( +/turf/open/floor/plating, +/area/station/security/range) +"vcR" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/hallway/primary/central) +"vcW" = ( +/obj/structure/railing{ + dir = 10 + }, +/obj/structure/table/wood/fancy/royalblack, +/obj/item/toy/toy_dagger{ + desc = "Seems unusable in this state."; + name = "Dull dagger" + }, +/turf/open/floor/cult, +/area/station/maintenance/cult_chapel_maint) +"vdh" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/vg_decals/numbers/six, +/obj/machinery/door/window/brigdoor/security/cell/right/directional/east{ + name = "Cell 6" + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/brig) +"vdq" = ( +/obj/machinery/airalarm/directional/east, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 + }, +/turf/open/floor/iron/dark/herringbone, +/area/station/common/night_club/back_stage) +"vdr" = ( +/turf/open/floor/iron/stairs/medium, +/area/station/hallway/primary/central) +"vdy" = ( +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/mob/living/basic/goat/pete, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) +"vdE" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 2 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood/large, +/area/station/common/night_club) +"vdG" = ( +/obj/effect/spawner/structure/window, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/common/arcade) +"vdS" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/security/prison) +"vdT" = ( +/obj/structure/reflector/box, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/atmos_aux_port) +"vdU" = ( +/obj/structure/chair/office{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/thruster_room/central) +"vdX" = ( +/obj/item/kirbyplants/random, +/obj/machinery/light_switch/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/blue/half/contrasted, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/customs/auxiliary) +"vdZ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "brigwindows"; + name = "Brig Front Blast Door" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/security/brig) +"ved" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"veg" = ( +/obj/machinery/light/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/turf_decal/siding/thinplating_new/dark/corner{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/red/corner{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured_corner{ + dir = 8 + }, +/area/station/security/lockers) +"vek" = ( +/obj/effect/turf_decal/trimline/purple/line{ + dir = 8 + }, +/turf/open/floor/iron/white/side{ + dir = 8 + }, +/area/station/science/research) +"ves" = ( +/obj/machinery/camera/directional/east{ + c_tag = "Library Upper"; + name = "library camera" + }, +/obj/machinery/light/directional/east, +/obj/machinery/firealarm/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/service/library) +"vet" = ( +/obj/effect/mapping_helpers/airlock/access/any/supply/bit_den, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/door/airlock/mining, +/turf/open/floor/iron/smooth, +/area/station/cargo/miningdock) +"vev" = ( +/obj/structure/bed/dogbed/ian, +/mob/living/basic/pet/dog/corgi/ian, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/hop) +"veC" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ + dir = 10 + }, +/turf/open/space/basic, +/area/space/nearstation) +"veM" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/security/checkpoint) +"veP" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"veR" = ( +/obj/structure/table, +/obj/item/paper_bin/bundlenatural{ + pixel_x = 1; + pixel_y = 5 + }, +/obj/item/paper_bin/bundlenatural{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/effect/turf_decal/siding/brown{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/cargo/sorting) +"veS" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"veT" = ( +/obj/structure/sign/directions/security{ + dir = 1; + pixel_y = 8 + }, +/obj/structure/sign/directions/engineering{ + pixel_y = 2 + }, +/obj/structure/sign/directions/supply{ + pixel_y = -4 + }, +/obj/structure/sign/directions/evac{ + pixel_y = -10 + }, +/turf/closed/wall, +/area/station/maintenance/port/central) +"veU" = ( +/obj/item/kirbyplants/random, +/obj/machinery/light/directional/east, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/engineering/atmos/test_chambers) +"veW" = ( +/obj/effect/turf_decal/stripes{ + dir = 9 + }, +/obj/structure/table/glass, +/obj/item/disk/vacuum_upgrade/biomass, +/obj/item/disk/vacuum_upgrade/biomass, +/obj/item/disk/vacuum_upgrade/biomass, +/obj/item/vacuum_pack, +/obj/item/vacuum_pack, +/obj/item/vacuum_pack, +/turf/open/floor/iron, +/area/station/science/xenobiology) +"vfe" = ( +/obj/structure/sink/directional/west, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/iron/white, +/area/station/medical/break_room) +"vfi" = ( +/obj/machinery/light/small/directional/south, +/obj/machinery/corral_corner{ + mapping_id = "3" + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"vfk" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/science/explab) +"vfB" = ( +/obj/structure/lattice, +/turf/open/openspace/airless, +/area/space/nearstation) +"vfC" = ( +/obj/structure/chair/pew/right{ + dir = 8 + }, +/obj/machinery/camera/directional/north{ + c_tag = "Courtroom - Aft"; + dir = 2 + }, +/turf/open/floor/wood, +/area/station/security/courtroom) +"vfL" = ( +/obj/structure/water_source/puddle, +/obj/structure/flora/bush/reed{ + pixel_y = 5 + }, +/turf/open/floor/grass, +/area/station/security/prison/garden) +"vfN" = ( +/obj/machinery/computer/records/security, +/turf/open/floor/carpet/executive, +/area/station/command/heads_quarters/blueshield) +"vfQ" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/obj/machinery/door/airlock/hatch{ + name = "MiniSat Chamber Hallway" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/any/command/general, +/obj/effect/mapping_helpers/airlock/access/any/engineering/construction, +/turf/open/floor/engine, +/area/station/ai_monitored/turret_protected/aisat_interior) +"vfU" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/smartfridge/drying_rack, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/service/chapel) +"vfY" = ( +/obj/structure/flora/bush/jungle/b, +/turf/open/floor/grass, +/area/station/common/night_club) +"vfZ" = ( +/obj/structure/barricade/security, +/obj/effect/turf_decal/stripes, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/command/secure_bunker) +"vgi" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/medical/patients_rooms) +"vgn" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/mass_driver{ + dir = 1; + id = "ptrash" + }, +/obj/machinery/door/poddoor/preopen{ + id = "trashcompactor"; + name = "Trash Compactor" + }, +/turf/open/floor/plating/airless, +/area/station/security/prison/mess) +"vgp" = ( +/obj/machinery/porta_turret/lasertag/blue, +/obj/structure/window/reinforced/tinted/spawner/directional/east, +/obj/effect/turf_decal/tile/dark_blue/fourcorners, +/turf/open/floor/iron/dark, +/area/station/common/laser_tag) +"vgx" = ( +/turf/open/floor/wood, +/area/station/service/theater) +"vgD" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/trimline/red/filled/warning{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/line, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/brig) +"vgG" = ( +/obj/structure/trash_pile, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"vgI" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/vg_decals/numbers/two, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"vgM" = ( +/obj/structure/chair/pew/right{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/station/security/courtroom) +"vgN" = ( +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/iron/dark/corner{ + dir = 8 + }, +/area/station/hallway/primary/central) +"vgP" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/command/teleporter) +"vgV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/cafeteria, +/area/station/maintenance/abandon_diner) +"vgW" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hallup14"; + location = "hallup13" + }, +/turf/open/floor/iron/dark/side{ + dir = 10 + }, +/area/station/hallway/secondary/command) +"vgY" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/carpet, +/area/station/service/lawoffice) +"vha" = ( +/obj/machinery/light/small/directional/north, +/turf/open/openspace, +/area/station/maintenance/port/upper) +"vhb" = ( +/turf/open/floor/engine, +/area/station/command/secure_bunker) +"vhc" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/dark/line{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured_edge{ + dir = 4 + }, +/area/station/security/prison/safe) +"vhe" = ( +/obj/structure/table, +/obj/item/food/grown/banana, +/turf/open/floor/iron/dark/small, +/area/station/cargo/storage) +"vhq" = ( +/obj/machinery/door/airlock/maintenance, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"vhs" = ( +/obj/effect/spawner/random/trash/moisture_trap, +/turf/open/floor/plating, +/area/station/security/prison/upper) +"vhv" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 1 + }, +/obj/machinery/holopad, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) +"vhy" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_port) +"vhC" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/space/openspace, +/area/space) +"vhK" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/white/corner, +/area/station/hallway/secondary/entry) +"vhM" = ( +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/iron/stairs/left, +/area/station/commons/dorms) +"vhR" = ( +/obj/effect/landmark/start/atmospheric_technician, +/turf/open/floor/iron, +/area/station/engineering/atmos/test_chambers) +"vif" = ( +/obj/machinery/atmospherics/pipe/smart/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/test_chambers) +"vih" = ( +/obj/structure/table/wood, +/obj/item/book/manual/wiki/security_space_law{ + pixel_x = 1; + pixel_y = 2 + }, +/obj/item/folder/blue{ + pixel_x = 1; + pixel_y = 2 + }, +/obj/item/folder/blue, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/hop) +"vii" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"vip" = ( +/obj/machinery/button/door/directional/north{ + id = "evashutters3"; + name = "E.V.A. External Shutters"; + req_access = list("command") + }, +/obj/machinery/door/poddoor/shutters{ + id = "evashutters3"; + name = "E.V.A. Storage Shutters" + }, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"vir" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, +/turf/open/floor/plating, +/area/station/science/ordnance/burnchamber) +"vis" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/cargo/storage) +"viu" = ( +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/range) +"viv" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/circuit/red, +/area/station/science/robotics/mechbay) +"viy" = ( +/turf/closed/wall/r_wall, +/area/station/common/wrestling/lobby) +"viz" = ( +/obj/machinery/light/directional/east, +/turf/open/floor/iron, +/area/station/science/ordnance) +"viC" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/virology/isolation) +"viD" = ( +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/turf/open/floor/carpet/blue, +/area/station/command/captain_dining) +"viG" = ( +/turf/open/floor/carpet, +/area/station/security/detectives_office) +"viI" = ( +/obj/structure/table/glass, +/obj/machinery/reagentgrinder{ + desc = "Used to grind things up into raw materials and liquids."; + pixel_y = 5 + }, +/obj/item/radio/intercom/directional/north, +/obj/structure/cable, +/obj/item/storage/box/monkeycubes/mousecubes, +/obj/item/storage/box/monkeycubes/mousecubes{ + pixel_y = 4; + pixel_x = 7 + }, +/turf/open/floor/iron, +/area/station/medical/virology) +"viR" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/effect/turf_decal/stripes, +/obj/machinery/door/poddoor{ + id = "Secure Storage"; + name = "Secure Storage" + }, +/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/engineering/storage) +"viS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"viT" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/iron, +/area/station/commons/dorms) +"viU" = ( +/obj/structure/table/wood, +/obj/item/food/baguette, +/obj/item/toy/crayon/spraycan/mimecan{ + charges = 5 + }, +/obj/structure/window/reinforced/tinted/spawner/directional/north, +/turf/open/floor/iron/kitchen, +/area/station/service/theater) +"viW" = ( +/obj/structure/transit_tube/diagonal, +/turf/open/floor/iron/shuttle/evac/airless, +/area/space/nearstation) +"viX" = ( +/obj/structure/chair/office{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/security/checkpoint) +"vje" = ( +/obj/item/food/cheese/wedge, +/turf/open/floor/grass, +/area/station/maintenance/department/medical) +"vjh" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/siding/thinplating_new/dark/corner{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/red/corner{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured_corner{ + dir = 4 + }, +/area/station/security/lockers) +"vjw" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/preopen{ + id = "hosprivacy"; + name = "HoS Privacy Blast Door" + }, +/obj/effect/turf_decal/trimline/red/filled/warning{ + color = "#DE3A3A"; + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/door/airlock/hos{ + id_tag = "HoSdoor"; + name = "Head Of Security's Office" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/security/hos, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/command/heads_quarters/hos) +"vjx" = ( +/obj/structure/closet/bombcloset, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes{ + dir = 5 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) +"vjJ" = ( +/turf/closed/wall/r_wall, +/area/station/science/cytology) +"vjR" = ( +/obj/machinery/door/airlock{ + id_tag = "Toilet6"; + name = "Stall 2" + }, +/turf/open/floor/iron/cafeteria, +/area/station/commons/toilet/auxiliary) +"vjV" = ( +/obj/machinery/light_switch/directional/south, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/station/service/lawoffice) +"vjX" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/gloves/color/yellow, +/obj/item/storage/medkit/fire, +/obj/machinery/status_display/evac/directional/west, +/turf/open/floor/iron/dark, +/area/station/engineering/break_room) +"vka" = ( +/obj/structure/railing, +/obj/structure/table_frame, +/obj/effect/spawner/random/trash/mess, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"vkd" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"vke" = ( +/obj/structure/flora/bush/ferny/style_3, +/obj/structure/flora/biolumi/lamp/weaklight, +/turf/open/floor/grass, +/area/station/maintenance/port/fore) +"vkg" = ( +/obj/structure/chair, +/obj/structure/cable, +/obj/machinery/camera/directional/north{ + c_tag = " Prison - Perma office"; + dir = 6; + network = list("ss13","prison") + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/corrections_officer) +"vkm" = ( +/obj/machinery/light/directional/west, +/obj/machinery/button/door{ + desc = "A remote control-switch for secure storage."; + id = "Secure Storage"; + name = "Engineering Secure Storage"; + pixel_x = -24; + pixel_y = 5; + req_access = list("engine_equip") + }, +/obj/machinery/button/door/directional/west{ + id = "CEdoor"; + name = "Door lock"; + normaldoorcontrol = 1; + pixel_y = -6; + req_access = list("ce"); + specialfunctions = 4 + }, +/obj/machinery/button/door{ + id = "ceblast"; + name = "Lockdown Control"; + pixel_x = -36; + pixel_y = 5; + req_access = list("ce") + }, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 1 + }, +/obj/machinery/button/door{ + id = "Secure Tool"; + name = "Secure Tool storage blast doors"; + pixel_x = -36; + pixel_y = -6; + req_access = list("engine_equip") + }, +/turf/open/floor/iron/white/side, +/area/station/command/heads_quarters/ce) +"vko" = ( +/obj/structure/table, +/obj/effect/spawner/random/contraband/narcotics, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_port) +"vkr" = ( +/obj/structure/dresser, +/turf/open/floor/plating, +/area/station/maintenance/clown_chamber) +"vks" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"vkt" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/door/airlock/public/glass{ + name = "Patio" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Wardshutters"; + name = "Recovery Ward Shutters" + }, +/turf/open/floor/wood, +/area/station/medical/patients_rooms) +"vku" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/table/wood, +/obj/item/storage/photo_album/library, +/turf/open/floor/carpet, +/area/station/service/library) +"vkC" = ( +/obj/effect/spawner/random/trash/mess, +/turf/open/floor/plating, +/area/station/maintenance/abandon_wrestle) +"vkF" = ( +/obj/machinery/door/airlock/hatch{ + name = "MiniSat Transit Tube Access" + }, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/command/minisat, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/navigate_destination, +/turf/open/floor/iron, +/area/station/engineering/transit_tube) +"vkG" = ( +/obj/effect/turf_decal/stripes{ + dir = 5 + }, +/turf/open/floor/plating, +/area/station/security/range) +"vkM" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/station/maintenance/fore/upper) +"vkO" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "ExternalAirlockAtmosEngines" + }, +/turf/open/floor/plating, +/area/station/engineering/atmos/hfr_room) +"vkS" = ( +/obj/effect/turf_decal/stripes{ + dir = 5 + }, +/turf/open/floor/plating, +/area/station/cargo/miningdock) +"vkX" = ( +/obj/structure/marker_beacon/burgundy, +/turf/open/floor/iron/white/textured_large/airless, +/area/space/nearstation) +"vlc" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 1 + }, +/obj/structure/cable, +/obj/structure/disposalpipe/sorting/mail{ + dir = 8; + name = "RnD Junction"; + sortType = 12 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/science/research) +"vlo" = ( +/obj/structure/table, +/turf/open/floor/iron/dark, +/area/station/commons/dorms) +"vlu" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/iron/dark, +/area/station/common/gaskiosk) +"vlv" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/structure/chair/stool/bar/directional/north, +/turf/open/floor/iron/cafeteria, +/area/station/maintenance/abandon_diner) +"vly" = ( +/obj/effect/turf_decal/trimline/purple/filled/corner{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/science/research) +"vlA" = ( +/obj/structure/chair/sofa/bench/right, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/prison/shower) +"vlC" = ( +/obj/structure/closet/crate/freezer{ + name = "organ storage" + }, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/medical/memeorgans, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/turf/open/floor/iron/freezer, +/area/station/maintenance/abandon_kitchen_upper) +"vlD" = ( +/obj/structure/extinguisher_cabinet/directional/north, +/obj/structure/table/reinforced, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/iron/white/smooth_corner{ + dir = 8 + }, +/area/station/science/explab) +"vlO" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/common/pool) +"vlQ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/obj/effect/turf_decal/tile/green/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/medical/virology) +"vlR" = ( +/obj/item/stack/sheet/cardboard, +/turf/open/floor/plating, +/area/station/security/courtroom) +"vlW" = ( +/obj/structure/table, +/obj/item/storage/bag/tray, +/obj/item/storage/bag/tray{ + pixel_y = 4 + }, +/obj/item/clipboard, +/obj/item/pen{ + pixel_y = 3 + }, +/obj/machinery/light/directional/west, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/checker, +/area/station/hallway/secondary/service) +"vma" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/science/upper) +"vmg" = ( +/obj/effect/turf_decal/tile/red/real_red/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/common/laser_tag) +"vmj" = ( +/obj/structure/closet, +/obj/effect/turf_decal/delivery, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"vmp" = ( +/obj/machinery/camera/directional/north{ + c_tag = "Holodeck Control"; + name = "holodeck camera" + }, +/obj/machinery/light_switch/directional/east, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/machinery/newscaster/directional/north, +/turf/open/floor/iron, +/area/station/commons/fitness/recreation) +"vmr" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/dorms) +"vms" = ( +/obj/structure/aquarium, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/carpet/royalblack, +/area/station/command/heads_quarters/qm) +"vmv" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"vmy" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/space/basic, +/area/space/nearstation) +"vmz" = ( +/turf/open/misc/sandy_dirt, +/area/station/maintenance/department/medical) +"vmB" = ( +/obj/structure/cable, +/obj/machinery/light/small/red/dim/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/disposal) +"vmJ" = ( +/obj/machinery/door/airlock/maintenance, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"vmK" = ( +/obj/machinery/light/small/broken/directional/west, +/obj/structure/rack, +/obj/item/hand_labeler, +/obj/item/screwdriver, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/science/research/abandoned) +"vmO" = ( +/obj/machinery/door/poddoor/preopen{ + id = "BarBlastDoor"; + name = "Bar Blast Door" + }, +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/service/bar) +"vmP" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/button/door/directional/west{ + id = "Capoffice2"; + name = "Door lock"; + normaldoorcontrol = 1; + req_access = list("captain"); + specialfunctions = 4 + }, +/turf/open/floor/iron/grimy, +/area/station/command/heads_quarters/captain) +"vmS" = ( +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"vmY" = ( +/turf/open/floor/grass, +/area/station/hallway/primary/central/aft) +"vne" = ( +/obj/structure/chair, +/turf/open/floor/eighties/red, +/area/station/common/arcade) +"vnp" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/closet/firecloset, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"vns" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"vnC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"vnJ" = ( +/obj/structure/nestbox, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/turf/open/floor/grass, +/area/station/common/night_club) +"vnK" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hall3"; + location = "hall2" + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"vnO" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"vnS" = ( +/obj/machinery/door/airlock/maintenance, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/effect/mapping_helpers/airlock/unres, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"voa" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/closet, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"voc" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar/opposingcorners{ + dir = 1 + }, +/obj/structure/chair/stool/bar/directional/east, +/turf/open/floor/iron/cafeteria, +/area/station/hallway/primary/port) +"vod" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/effect/landmark/start/hangover, +/turf/open/floor/glass, +/area/station/commons/dorms) +"vof" = ( +/obj/docking_port/stationary{ + dir = 4; + height = 19; + name = "Deprecated Port Dock"; + shuttle_id = "whiteship_home"; + width = 55; + dwidth = 43 + }, +/turf/open/space/basic, +/area/space) +"vog" = ( +/obj/effect/turf_decal/stripes, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Xeno9"; + name = "Xenobio Pens Containment" + }, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/science/xenobiology) +"voj" = ( +/obj/structure/table, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/prison/visit) +"voo" = ( +/obj/structure/safe/floor{ + name = "glowing safe" + }, +/obj/item/book/granter/crafting_recipe/trash_cannon, +/obj/item/gun/ballistic/rifle/boltaction/pipegun/prime, +/obj/item/book/granter/crafting_recipe/maint_gun/pipegun_prime, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"vor" = ( +/turf/closed/wall/rust, +/area/station/maintenance/department/security) +"voA" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/blue/half/contrasted, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"voB" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"voC" = ( +/obj/structure/curtain/cloth/fancy/mechanical/start_closed{ + desc = "A set of curtains serving as a fancy theater backdrop. They can only be opened by a button."; + id = "theater_curtains"; + name = "Theater Curtains" + }, +/turf/open/floor/wood, +/area/station/service/theater) +"voH" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/status_display/ai/directional/north, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/hallway/primary/port) +"voN" = ( +/obj/structure/sign/warning/vacuum/external/directional/west, +/turf/closed/wall/r_wall, +/area/station/maintenance/department/security/greater) +"voQ" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Waste Disposal Control" + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/maintenance/xenobio_disposals) +"voV" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/machinery/conveyor_switch/oneway{ + dir = 8; + id = "cargodeliver"; + name = "delivery conveyor"; + pixel_x = 5 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/office) +"voW" = ( +/obj/machinery/flasher/portable, +/turf/open/floor/iron/dark/side{ + dir = 6 + }, +/area/station/security/lockers) +"voZ" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 10 + }, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) +"vpa" = ( +/obj/machinery/deepfryer, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) +"vpe" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/security/mechbay) +"vpn" = ( +/obj/structure/extinguisher_cabinet/directional/south, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/secondary/service) +"vpq" = ( +/obj/structure/table, +/obj/effect/turf_decal/trimline/red/filled/corner{ + color = "#DE3A3A" + }, +/obj/item/storage/box/deputy, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/command/heads_quarters/hos) +"vpt" = ( +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/grass, +/area/station/common/night_club/back_stage) +"vpx" = ( +/obj/machinery/firealarm/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/security/courtroom) +"vpD" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/chair/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/service/chapel/funeral) +"vpF" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/science/ordnance/storage) +"vpK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/secondary/command) +"vpO" = ( +/obj/effect/spawner/random/trash/graffiti, +/turf/closed/wall, +/area/station/maintenance/port/fore) +"vpR" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/machinery/camera/directional/east{ + network = list("ss13","xeno","rd") + }, +/turf/open/floor/iron/dark, +/area/station/science/xenobiology) +"vpS" = ( +/turf/open/floor/iron, +/area/station/hallway/secondary/service) +"vpY" = ( +/obj/structure/closet/secure_closet/personal/patient, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/medical/medbay/central) +"vqa" = ( +/turf/closed/wall, +/area/station/security/checkpoint/supply) +"vqj" = ( +/obj/effect/spawner/random/structure/crate, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"vqm" = ( +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) +"vqq" = ( +/obj/structure/closet/secure_closet/personal, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/medical/break_room) +"vqt" = ( +/obj/structure/girder, +/turf/open/floor/plating, +/area/station/maintenance/pool_maintenance) +"vqv" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/security/brig) +"vqH" = ( +/obj/machinery/growing/soil, +/turf/open/floor/grass, +/area/station/service/chapel) +"vqN" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"vqQ" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 9 + }, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/research) +"vqS" = ( +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/engine, +/area/station/command/secure_bunker) +"vqT" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/bluespace_vendor/directional/east, +/turf/open/floor/iron/white/corner{ + dir = 4 + }, +/area/station/hallway/secondary/entry) +"vqU" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/curtain/cloth/fancy/mechanical{ + icon_state = "bounty-open"; + icon_type = "bounty"; + id = "prisoncell6"; + name = "curtain" + }, +/turf/open/floor/plating, +/area/station/security/prison/safe) +"vqW" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/nt_rep) +"vqZ" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing{ + dir = 4 + }, +/turf/open/openspace, +/area/station/maintenance/aft/upper) +"vrb" = ( +/obj/structure/rack, +/obj/effect/turf_decal/delivery, +/obj/effect/spawner/random/armory/riot_helmet, +/obj/effect/turf_decal/trimline/red/line, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_edge{ + dir = 1 + }, +/area/station/ai_monitored/security/armory) +"vrd" = ( +/obj/structure/cable, +/obj/effect/turf_decal/bot_white, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/effect/turf_decal/loading_area/white{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/small, +/area/station/medical/morgue) +"vre" = ( +/obj/structure/closet/secure_closet/hop, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/hop) +"vrr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"vry" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/stairs/left{ + dir = 4 + }, +/area/station/hallway/primary/upper) +"vrE" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/department/chapel) +"vrJ" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"vrR" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"vrX" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/science/research) +"vrY" = ( +/obj/machinery/shower/directional/east, +/obj/structure/drain, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron/freezer, +/area/station/common/pool) +"vsa" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/aslyum) +"vsc" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/external, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"vsd" = ( +/obj/effect/landmark/start/cook, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) +"vsk" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/junction{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"vsl" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/public/glass{ + name = "Central Hallway" + }, +/turf/open/floor/wood, +/area/station/service/lawoffice) +"vsm" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/station/service/library/abandoned) +"vsp" = ( +/obj/machinery/power/shieldwallgen, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva/upper) +"vsv" = ( +/obj/machinery/nuclearbomb/selfdestruct, +/turf/open/floor/iron/smooth, +/area/station/ai_monitored/command/nuke_storage) +"vsE" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"vsN" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/service) +"vsS" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/chair/stool/directional/east, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"vsZ" = ( +/obj/item/stack/sheet/cardboard, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"vtb" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 6 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/science/research) +"vtc" = ( +/obj/structure/cable, +/obj/effect/landmark/event_spawn, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/railing, +/obj/machinery/door/firedoor/border_only, +/turf/open/floor/iron, +/area/station/commons/dorms) +"vte" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood/parquet, +/area/station/common/night_club) +"vti" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/abandoned, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"vtk" = ( +/obj/machinery/door/airlock/research{ + name = "Xenobiology Atmospherics Tank" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/poddoor/shutters/window/preopen{ + id = "XenoOffice"; + name = "Xenobiology Controll Room Shutters" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, +/turf/open/floor/iron/white/side{ + dir = 8 + }, +/area/station/science/xenobiology/control) +"vtm" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"vtp" = ( +/obj/effect/turf_decal/weather/sand, +/obj/structure/flora/bush/fullgrass, +/obj/structure/hedge, +/turf/open/floor/grass, +/area/station/command/heads_quarters/captain) +"vts" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/engine, +/area/station/command/secure_bunker) +"vtt" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/command/heads_quarters/captain) +"vtz" = ( +/turf/open/floor/iron/stairs/right, +/area/station/science/research) +"vtA" = ( +/obj/structure/closet/cardboard, +/obj/effect/spawner/random/maintenance/two, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"vtE" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/eva) +"vtK" = ( +/obj/effect/turf_decal/bot_white, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/command) +"vtM" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) +"vtN" = ( +/obj/structure/railing, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/junction/flip{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/duct, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood/large, +/area/station/common/night_club) +"vtS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/door/airlock/maintenance{ + name = "Abandoned Art Studio" + }, +/obj/structure/barricade/wooden, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/iron, +/area/station/service/electronic_marketing_den) +"vtW" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/structure/cable, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/commons/dorms) +"vuc" = ( +/obj/machinery/door/airlock/external{ + space_dir = 8 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "Frontleftfloor2" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/external, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"vue" = ( +/obj/structure/closet/crate/secure/weapon{ + desc = "A secure clothing crate."; + name = "formal uniform crate"; + req_access = list("armory") + }, +/obj/item/clothing/under/rank/security/officer/formal, +/obj/item/clothing/under/rank/security/officer/formal, +/obj/item/clothing/under/rank/security/officer/formal, +/obj/item/clothing/under/rank/security/officer/formal, +/obj/item/clothing/under/rank/security/officer/formal, +/obj/item/clothing/under/rank/security/officer/formal, +/obj/item/clothing/suit/jacket/officer/blue, +/obj/item/clothing/suit/jacket/officer/blue, +/obj/item/clothing/suit/jacket/officer/blue, +/obj/item/clothing/suit/jacket/officer/blue, +/obj/item/clothing/suit/jacket/officer/blue, +/obj/item/clothing/suit/jacket/officer/blue, +/obj/item/clothing/under/rank/security/warden/formal, +/obj/item/clothing/suit/jacket/warden/blue, +/obj/item/clothing/under/rank/security/head_of_security/formal, +/obj/item/clothing/suit/jacket/hos/blue, +/obj/item/clothing/head/beret/sec/navyofficer, +/obj/item/clothing/head/beret/sec/navyofficer, +/obj/item/clothing/head/beret/sec/navyofficer, +/obj/item/clothing/head/beret/sec/navyofficer, +/obj/item/clothing/head/beret/sec/navyofficer, +/obj/item/clothing/head/beret/sec/navyofficer, +/obj/item/clothing/head/beret/sec/navywarden, +/turf/open/floor/iron/dark, +/area/station/security/lockers) +"vul" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron/smooth_edge, +/area/station/cargo/miningdock) +"vun" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 8 + }, +/obj/effect/landmark/start/chemist, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"vur" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 + }, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/components/binary/valve/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron/smooth_edge{ + dir = 8 + }, +/area/station/command/secure_bunker) +"vus" = ( +/turf/open/floor/wood, +/area/station/security/courtroom) +"vuz" = ( +/obj/structure/cable, +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"vuE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"vuJ" = ( +/obj/structure/window/reinforced/fulltile, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/lavendergrass, +/obj/structure/flora/bush/flowers_yw, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"vuL" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/security) +"vuM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/port_gen/pacman/pre_loaded, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"vuO" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/security/execution/education) +"vuP" = ( +/obj/structure/chair/plastic{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"vuT" = ( +/obj/structure/closet/crate/bin, +/turf/open/floor/wood, +/area/station/medical/exam_room) +"vuW" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/medical/psychology) +"vuX" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/engineering/gravity_generator) +"vuZ" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"vvf" = ( +/turf/closed/wall, +/area/station/security/checkpoint/engineering) +"vvh" = ( +/obj/effect/turf_decal/stripes{ + dir = 9 + }, +/turf/open/floor/plating, +/area/station/cargo/miningdock) +"vvp" = ( +/obj/structure/chair/office{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron/white/smooth_large, +/area/station/command/heads_quarters/ce) +"vvr" = ( +/obj/machinery/camera/directional/west{ + c_tag = "Security Post - Medbay" + }, +/obj/machinery/airalarm/directional/west, +/obj/machinery/computer/crew{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/medical) +"vvJ" = ( +/obj/machinery/light/small/directional/north, +/obj/effect/turf_decal/tile/red/real_red/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/common/laser_tag) +"vvP" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/engineering/transit_tube) +"vvR" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/closed/wall/r_wall, +/area/station/science/ordnance/burnchamber) +"vvS" = ( +/obj/structure/rack, +/obj/item/storage/box/gloves, +/obj/item/storage/box/bodybags, +/obj/item/clothing/under/misc/burial, +/obj/item/clothing/under/misc/burial, +/obj/item/clothing/under/misc/burial, +/obj/item/clothing/under/misc/burial, +/obj/item/clothing/under/misc/burial, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/iron/dark, +/area/station/service/chapel) +"vvT" = ( +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/carpet/blue, +/area/station/command/heads_quarters/captain/private) +"vwb" = ( +/obj/structure/table/reinforced, +/obj/item/reagent_containers/cup/glass/colocup{ + pixel_x = -6; + pixel_y = 14 + }, +/obj/item/reagent_containers/cup/glass/colocup{ + pixel_x = 7; + pixel_y = 14 + }, +/obj/item/reagent_containers/cup/glass/colocup{ + pixel_x = -6; + pixel_y = 2 + }, +/obj/item/reagent_containers/cup/glass/colocup{ + pixel_x = 7; + pixel_y = 2 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/door/poddoor/shutters{ + id = "BevStand"; + name = "Beverage Stand Shutters" + }, +/turf/open/floor/iron/dark, +/area/station/common/wrestling/beverage) +"vwd" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/chair, +/obj/effect/landmark/start/assistant, +/turf/open/floor/wood, +/area/station/hallway/primary/port) +"vwe" = ( +/obj/structure/tank_holder/oxygen/red, +/turf/open/floor/circuit, +/area/station/tcommsat/computer) +"vwh" = ( +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"vwi" = ( +/obj/effect/turf_decal/stripes{ + dir = 9 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"vwt" = ( +/obj/effect/turf_decal/tile/purple, +/obj/structure/sign/departments/science/directional/south, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"vwE" = ( +/obj/structure/cable, +/obj/machinery/firealarm/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark, +/turf/open/floor/iron/dark/textured_edge, +/area/station/security/office) +"vwF" = ( +/turf/closed/wall/r_wall, +/area/station/security/corrections_officer) +"vwN" = ( +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/office) +"vwO" = ( +/obj/machinery/door/airlock/external{ + name = "Unmarked Airlock" + }, +/obj/structure/barricade/wooden/crude, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/airlock/access/all/engineering/external, +/turf/open/floor/plating, +/area/station/maintenance/department/security/lower) +"vwS" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) +"vwW" = ( +/obj/effect/landmark/event_spawn, +/obj/effect/spawner/random/trash/mess, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine, +/area/station/science/tele_sci) +"vwY" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos) +"vxa" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 4 + }, +/obj/machinery/airalarm/directional/east, +/obj/machinery/light/directional/east, +/obj/machinery/camera/directional/east{ + c_tag = "Chemistry - Center"; + name = "medbay camera"; + network = list("ss13","medbay") + }, +/obj/structure/disposalpipe/trunk/multiz/down{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"vxc" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/science) +"vxf" = ( +/obj/machinery/firealarm/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/window/brigdoor/left/directional/west{ + name = "Prisoner Transfer"; + req_access = list("security") + }, +/turf/open/floor/iron, +/area/station/security/checkpoint/escape) +"vxi" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white/side{ + dir = 4 + }, +/area/station/medical/medbay/lobby) +"vxj" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/prison) +"vxk" = ( +/obj/structure/rack/shelf, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron/white, +/area/station/medical/coldroom) +"vxm" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/maintenance/abandon_wrestle) +"vxu" = ( +/obj/effect/landmark/start/assistant, +/turf/open/floor/wood/parquet, +/area/station/common/gaskiosk) +"vxA" = ( +/obj/effect/turf_decal/trimline/red/corner, +/obj/effect/turf_decal/trimline/red/filled/warning{ + dir = 9 + }, +/turf/open/floor/iron/dark, +/area/station/security/brig) +"vxB" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/junction{ + dir = 2 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"vxD" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/door/airlock/security{ + name = "Private Interrogation" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/security/detective, +/turf/open/floor/iron/dark, +/area/station/security/detectives_office) +"vxF" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) +"vxH" = ( +/obj/structure/table/reinforced, +/obj/item/restraints/handcuffs, +/obj/item/assembly/flash/handheld, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/dark, +/area/station/security/office) +"vxL" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/medical/surgery) +"vxQ" = ( +/obj/structure/mirror{ + pixel_y = 32 + }, +/obj/structure/sink/directional/south, +/obj/structure/window/reinforced/tinted/frosted/spawner/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/freezer, +/area/station/command/heads_quarters/captain/private) +"vxT" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/item/radio/intercom/directional/north, +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/iron, +/area/station/security/checkpoint/customs/auxiliary) +"vxX" = ( +/obj/effect/landmark/start/medical_doctor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/carpet/blue, +/area/station/medical/break_room) +"vxY" = ( +/obj/structure/filingcabinet/chestdrawer/wheeled, +/obj/effect/turf_decal/bot, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/effect/turf_decal/trimline/purple/filled/line, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology/control) +"vya" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/break_room) +"vyd" = ( +/turf/closed/wall/rust, +/area/station/service/electronic_marketing_den) +"vye" = ( +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/warden) +"vyi" = ( +/obj/structure/chair/sofa/bench/left{ + dir = 8; + pixel_x = 5 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/landmark/generic_maintenance_landmark, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/common/wrestling/locker) +"vyk" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/chair/comfy/brown{ + color = "#A46106"; + dir = 4; + pixel_y = -3 + }, +/turf/open/floor/carpet/blue, +/area/station/command/heads_quarters/captain) +"vym" = ( +/obj/machinery/door/airlock/external{ + name = "Escape Pod 2" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plating, +/area/station/escapepodbay) +"vyn" = ( +/obj/structure/table/wood/fancy/royalblack, +/obj/item/stack/sheet/animalhide/monkey{ + pixel_y = 4 + }, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/cult, +/area/station/maintenance/department/science/xenobiology) +"vyo" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/vending/autodrobe, +/turf/open/floor/wood, +/area/station/security/prison/mess) +"vyq" = ( +/obj/structure/sign/warning/vacuum/external/directional/east, +/turf/open/floor/iron/smooth_corner{ + dir = 1 + }, +/area/station/engineering/atmos/hfr_room) +"vyr" = ( +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/main) +"vyB" = ( +/obj/machinery/deepfryer, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) +"vyF" = ( +/obj/structure/bed/roller{ + dir = 1 + }, +/obj/machinery/iv_drip, +/obj/item/bedsheet/medical, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 5 + }, +/turf/open/floor/iron/white, +/area/station/security/checkpoint/medical) +"vyG" = ( +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = 3 + }, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = 3 + }, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = 3 + }, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = 3 + }, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = 3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/head/utility/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/utility/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/utility/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/utility/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/utility/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/structure/closet/crate/internals, +/obj/machinery/light/broken/directional/north, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/aux_eva) +"vyI" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/bot, +/obj/structure/cable, +/obj/structure/disposalpipe/trunk{ + dir = 2 + }, +/turf/open/floor/iron/dark, +/area/station/science/xenobiology) +"vyR" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"vyT" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"vyU" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/item/trash/waffles, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless, +/area/station/maintenance/fore/upper) +"vyY" = ( +/obj/item/kirbyplants/organic/plant21, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/warden) +"vza" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ + dir = 9 + }, +/obj/structure/lattice/catwalk, +/turf/open/space/basic, +/area/space/nearstation) +"vze" = ( +/obj/machinery/door/airlock/external{ + name = "Atmospherics External Airlock"; + space_dir = 2 + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_port) +"vzf" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/tcommsat/computer) +"vzh" = ( +/turf/closed/wall, +/area/station/maintenance/department/medical/central) +"vzq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/wood, +/area/station/service/hydroponics/garden/abandoned) +"vzs" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva) +"vzx" = ( +/obj/structure/table, +/obj/item/fuel_pellet{ + pixel_x = 8 + }, +/obj/item/wrench{ + pixel_x = -4 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/drone_bay) +"vzz" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/security/lesser) +"vzC" = ( +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/catwalk_floor, +/area/station/engineering/main) +"vzG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table/reinforced, +/obj/item/stack/sheet/plasteel{ + amount = 10 + }, +/obj/item/mmi, +/obj/item/assembly/prox_sensor, +/obj/item/assembly/prox_sensor, +/turf/open/floor/plating, +/area/station/science/research/abandoned) +"vzJ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/holopad, +/turf/open/floor/iron, +/area/station/command/gateway) +"vzP" = ( +/obj/structure/table/reinforced, +/obj/machinery/status_display/ai/directional/north, +/obj/machinery/coffeemaker, +/obj/item/coffee_cartridge, +/obj/item/coffee_cartridge, +/obj/item/coffee_cartridge, +/turf/open/floor/iron, +/area/station/science/breakroom) +"vzQ" = ( +/obj/effect/decal/cleanable/oil, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/structure/rack, +/obj/machinery/camera/directional/south{ + c_tag = "Medical - Power Station"; + name = "engineering camera"; + network = list("ss13","ce") + }, +/turf/open/floor/iron/dark, +/area/station/medical/power_station) +"vzT" = ( +/obj/structure/mirror{ + pixel_y = 32 + }, +/obj/structure/sink/directional/south, +/turf/open/floor/iron/freezer, +/area/station/common/locker_room_shower) +"vzV" = ( +/turf/open/floor/circuit/green, +/area/station/ai_monitored/turret_protected/ai_upload) +"vzW" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 8 + }, +/turf/open/floor/iron/smooth, +/area/station/command/secure_bunker) +"vAi" = ( +/obj/machinery/light/small/broken/directional/south, +/turf/open/floor/grass, +/area/station/maintenance/department/medical) +"vAm" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/obj/effect/landmark/start/chief_engineer, +/turf/open/floor/iron/white/smooth_large, +/area/station/command/heads_quarters/ce) +"vAC" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/security/courtroom) +"vAE" = ( +/obj/machinery/door/airlock/external{ + space_dir = 1 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/effect/mapping_helpers/airlock/access/all/engineering/external, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"vAF" = ( +/obj/item/stack/ore/glass, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"vAH" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/lavendergrass, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"vAO" = ( +/obj/structure/closet/crate/bin, +/obj/effect/spawner/random/trash/garbage, +/obj/effect/spawner/random/trash/garbage, +/obj/effect/spawner/random/contraband/prison, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/red/corner{ + dir = 1 + }, +/turf/open/floor/iron/dark/side{ + dir = 6 + }, +/area/station/security/prison/upper) +"vAT" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/plating, +/area/station/cargo/drone_bay) +"vAV" = ( +/obj/machinery/light/small/directional/east, +/turf/open/floor/plating, +/area/station/engineering/atmos/test_chambers) +"vBa" = ( +/obj/machinery/computer/cargo/express, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"vBi" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/dorms) +"vBn" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) +"vBr" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/effect/turf_decal/trimline/red/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/prison/upper) +"vBs" = ( +/obj/effect/turf_decal/tile/red, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/office) +"vBF" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister/carbon_dioxide, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/storage) +"vBP" = ( +/obj/machinery/door/poddoor/incinerator_atmos_aux, +/turf/open/floor/engine/vacuum, +/area/station/maintenance/disposal/incinerator) +"vBX" = ( +/obj/structure/table, +/obj/item/storage/toolbox/mechanical, +/obj/item/clothing/head/utility/welding, +/obj/machinery/requests_console/directional/south{ + department = "Chemistry"; + name = "Chemistry Requests Console" + }, +/obj/effect/mapping_helpers/requests_console/assistance, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"vCc" = ( +/turf/open/floor/engine/vacuum, +/area/station/engineering/atmos/test_chambers) +"vCe" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"vCi" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/effect/spawner/random/trash/food_packaging, +/turf/open/floor/plating/reinforced{ + initial_gas_mix = "TEMP=2.7" + }, +/area/station/science/ordnance/bomb) +"vCk" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/iron/shuttle/arrivals/airless, +/area/space/nearstation) +"vCl" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/security/prison) +"vCp" = ( +/obj/item/kirbyplants/random, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/science/ordnance/office) +"vCv" = ( +/turf/closed/wall/r_wall, +/area/station/engineering/supermatter) +"vCy" = ( +/turf/closed/wall, +/area/station/tcommsat/computer) +"vCz" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"vCC" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark/small, +/area/station/security/prison/upper) +"vCM" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4; + name = "Flash coolant tank refill port" + }, +/obj/effect/turf_decal/stripes/box, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_starboard) +"vCN" = ( +/obj/effect/spawner/random/engineering/atmospherics_portable, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"vCP" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron, +/area/station/security/checkpoint/escape) +"vCV" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/docking_port/stationary/mining_home{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/cargo/miningdock) +"vCY" = ( +/obj/structure/reagent_dispensers/beerkeg, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron, +/area/station/service/bar/backroom) +"vDx" = ( +/obj/structure/table, +/obj/machinery/requests_console/directional/east{ + department = "Hydroponics"; + name = "Hydroponics Requests Console"; + pixel_x = 0; + pixel_y = -33 + }, +/obj/effect/mapping_helpers/requests_console/supplies, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 10 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/plantgenes, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"vDz" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/closet/crate/bin, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/station/maintenance/abandon_diner) +"vDA" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"vDJ" = ( +/obj/structure/closet/secure_closet/personal, +/obj/effect/turf_decal/bot, +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron, +/area/station/science/breakroom) +"vDO" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/common/cryopods) +"vDP" = ( +/obj/structure/chair/sofa/bench/left, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"vDR" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/engineering/gravity_generator) +"vDU" = ( +/obj/structure/window/green_glass_pane, +/turf/open/floor/plating, +/area/station/service/chapel) +"vDV" = ( +/obj/machinery/ai_slipper{ + uses = 10 + }, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/ai) +"vDX" = ( +/obj/effect/landmark/start/medical_doctor, +/turf/open/floor/iron/white, +/area/station/medical/surgery/theatre) +"vEd" = ( +/obj/structure/table, +/obj/effect/spawner/random/maintenance, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"vEk" = ( +/obj/effect/turf_decal/bot, +/obj/structure/tank_dispenser/oxygen, +/turf/open/floor/iron/dark, +/area/station/cargo/miningoffice) +"vEl" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless, +/area/station/maintenance/port/upper) +"vEm" = ( +/obj/machinery/computer/records/security{ + dir = 8 + }, +/obj/machinery/button/door{ + id = "brigfront"; + name = "Brig Access Control"; + pixel_x = 25; + pixel_y = -36; + req_access = list("security") + }, +/obj/machinery/button/door{ + id = "brigwindows"; + name = "Cell Window Control"; + pixel_x = 25; + pixel_y = -23; + req_access = list("security") + }, +/obj/structure/cable, +/obj/effect/turf_decal/siding/thinplating_new/dark/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/corner{ + dir = 1 + }, +/turf/open/floor/iron/dark/smooth_corner{ + dir = 1 + }, +/area/station/security/brig) +"vEq" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/hallway/secondary/command) +"vEr" = ( +/obj/effect/spawner/structure/window/reinforced/tinted, +/turf/open/floor/plating, +/area/station/medical/treatment_center) +"vEt" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/science/research) +"vEx" = ( +/obj/structure/easel, +/turf/open/floor/plating, +/area/station/maintenance/disposal) +"vEz" = ( +/obj/structure/fireplace, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/captain) +"vED" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "packageSort2" + }, +/obj/structure/disposalpipe/segment, +/obj/item/radio/intercom/directional/north, +/obj/machinery/camera/autoname/directional/north, +/turf/open/floor/iron/dark, +/area/station/cargo/sorting) +"vEE" = ( +/obj/structure/chair/office/light, +/obj/machinery/light/floor/has_bulb, +/turf/open/floor/iron, +/area/station/tcommsat/computer) +"vEF" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron/white/smooth_large, +/area/station/command/heads_quarters/ce) +"vEG" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/science/research) +"vEL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/science/genetics) +"vES" = ( +/obj/machinery/newscaster/directional/west, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/primary/port) +"vET" = ( +/obj/structure/table, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"vFb" = ( +/obj/machinery/vending/clothing{ + extended_inventory = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/entry) +"vFg" = ( +/obj/machinery/status_display/evac/directional/north, +/obj/machinery/light/directional/north, +/obj/machinery/camera/directional/north{ + c_tag = "Bridge - E.V.A. Fore"; + name = "command camera" + }, +/obj/machinery/door/window/right/directional/west{ + req_access = list("eva") + }, +/turf/open/floor/iron/stairs{ + dir = 4 + }, +/area/station/ai_monitored/command/storage/eva/upper) +"vFi" = ( +/turf/open/floor/plating, +/area/station/maintenance/department/security/lesser) +"vFj" = ( +/obj/effect/decal/cleanable/oil/streak, +/obj/item/storage/toolbox/mechanical, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"vFo" = ( +/obj/structure/decorative/shelf/crates1, +/obj/machinery/light/directional/south, +/turf/open/floor/iron, +/area/station/security/execution/transfer) +"vFr" = ( +/obj/machinery/light/floor/has_bulb, +/turf/open/floor/iron, +/area/station/engineering/atmos/test_chambers) +"vFx" = ( +/obj/structure/table/reinforced, +/obj/item/soap/nanotrasen{ + pixel_y = 7 + }, +/obj/item/soap/nanotrasen, +/obj/item/soap/nanotrasen{ + pixel_y = -6 + }, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/effect/turf_decal/siding/purple/corner{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/service/janitor) +"vFy" = ( +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes{ + dir = 5 + }, +/turf/open/floor/engine, +/area/station/science/ordnance) +"vFA" = ( +/obj/structure/table, +/obj/machinery/light/directional/south, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/commons/dorms/room8) +"vFG" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/machinery/light_switch/directional/north, +/obj/machinery/nanite_chamber, +/turf/open/floor/iron/dark/small, +/area/station/science/circuits) +"vFN" = ( +/obj/structure/cable, +/obj/effect/turf_decal/tile/yellow/half/contrasted, +/turf/open/floor/iron/white/side{ + dir = 1 + }, +/area/station/command/heads_quarters/ce) +"vFS" = ( +/obj/effect/landmark/start/assistant, +/turf/open/floor/carpet, +/area/station/service/library) +"vGd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"vGe" = ( +/obj/structure/plasticflaps/opaque, +/obj/effect/turf_decal/bot, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + location = "Kitchen" + }, +/turf/open/floor/iron/dark, +/area/station/service/kitchen/coldroom) +"vGh" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible/layer4, +/turf/open/floor/plating, +/area/station/security/prison/upper) +"vGm" = ( +/obj/structure/toilet{ + pixel_y = 10 + }, +/obj/machinery/button/door/directional/south{ + id = "Toilet2"; + name = "Lock Control"; + normaldoorcontrol = 1; + specialfunctions = 4 + }, +/obj/machinery/light/small/directional/east, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/commons/toilet/restrooms) +"vGn" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"vGu" = ( +/obj/structure/closet/secure_closet/security/sec, +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/carpet/red, +/area/station/security/lockers) +"vGv" = ( +/obj/machinery/computer/security{ + dir = 8 + }, +/obj/machinery/status_display/ai/directional/east, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/security/checkpoint/escape) +"vGy" = ( +/obj/machinery/air_sensor/oxygen_tank, +/turf/open/floor/engine/o2, +/area/station/engineering/atmos) +"vGH" = ( +/obj/machinery/defibrillator_mount/directional/north, +/obj/machinery/light/directional/north, +/obj/structure/table/optable, +/turf/open/floor/iron, +/area/station/medical/surgery) +"vGI" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/security/courtroom) +"vGL" = ( +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plating, +/area/station/maintenance/department/security/lower) +"vGR" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/science/explab) +"vGZ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/security/power_station) +"vHe" = ( +/obj/structure/table, +/obj/item/reagent_containers/cup/glass/drinkingglass{ + pixel_x = -1; + pixel_y = 4 + }, +/obj/item/reagent_containers/cup/glass/drinkingglass{ + pixel_x = 4; + pixel_y = 5 + }, +/obj/item/reagent_containers/cup/rag{ + pixel_y = 3 + }, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/service/bar) +"vHg" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command/glass{ + name = "Bridge" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "bridge-west" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/command/general, +/obj/effect/turf_decal/tile/blue/half/contrasted, +/turf/open/floor/iron/dark/side, +/area/station/command/bridge) +"vHj" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/machinery/corral_corner{ + mapping_id = "1" + }, +/obj/machinery/slime_pen_controller{ + mapping_id = "1"; + dir = 2 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"vHk" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 6 + }, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) +"vHy" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 10 + }, +/turf/open/floor/iron/dark/small, +/area/station/cargo/miningdock) +"vHA" = ( +/obj/structure/water_source/puddle, +/obj/structure/flora/bush/reed{ + pixel_y = 5 + }, +/turf/open/floor/grass, +/area/station/medical/aslyum) +"vHD" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/door/airlock/public/glass{ + name = "Central Upper Hallway" + }, +/obj/structure/sign/nanotrasen{ + pixel_x = 32 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"vHF" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"vHK" = ( +/turf/closed/wall, +/area/station/medical/morgue) +"vHM" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron/white, +/area/station/medical/cryo) +"vHQ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/dark/visible{ + dir = 1 + }, +/obj/machinery/status_display/evac/directional/north, +/turf/open/floor/iron, +/area/station/science/explab) +"vHS" = ( +/obj/structure/table, +/obj/item/clothing/gloves/latex, +/obj/item/restraints/handcuffs, +/obj/item/clothing/mask/muzzle, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/north, +/turf/open/floor/iron/freezer, +/area/station/maintenance/abandon_kitchen_upper) +"vHW" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/machinery/computer/shuttle/labor{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + color = "#DE3A3A"; + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + color = "#DE3A3A"; + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"vHX" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/central) +"vHY" = ( +/obj/machinery/atmospherics/pipe/smart/simple/violet/visible/layer2{ + dir = 10 + }, +/turf/open/space/basic, +/area/space/nearstation) +"vHZ" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/service/chapel/office) +"vIe" = ( +/obj/structure/bed, +/obj/item/bedsheet/purple, +/obj/effect/turf_decal/siding/wood, +/obj/machinery/light/small/directional/north, +/obj/effect/landmark/generic_maintenance_landmark, +/obj/effect/landmark/generic_maintenance_landmark, +/obj/effect/landmark/generic_maintenance_landmark, +/turf/open/floor/carpet/purple, +/area/station/maintenance/gamer_lair) +"vIg" = ( +/obj/structure/table/wood, +/obj/item/storage/toolbox/artistic, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/abandon_art_studio) +"vIh" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/engineering/main) +"vIi" = ( +/obj/machinery/door/airlock/maintenance, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/security/prison/upper) +"vIm" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/office) +"vIn" = ( +/obj/effect/turf_decal/trimline/red/filled/warning{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/lockers) +"vIq" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/white, +/area/station/maintenance/abandon_diner) +"vIr" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/door/firedoor, +/obj/effect/landmark/navigate_destination, +/obj/machinery/door/airlock/public/glass{ + name = "Central Hallway" + }, +/turf/open/floor/wood, +/area/station/service/lawoffice) +"vIs" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/item/trash/can, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/cargo/miningdock) +"vIy" = ( +/mob/living/basic/bot/cleanbot/autopatrol, +/obj/structure/cable, +/turf/open/floor/iron/goonplaque, +/area/station/hallway/primary/central/aft) +"vIA" = ( +/obj/machinery/button/door/directional/north{ + id = "evashutters"; + name = "E.V.A. Shutters"; + pixel_x = -24; + pixel_y = 0; + req_access = list("command") + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/camera/directional/west{ + c_tag = "Upper Central Hallway - Upper Port Bow 2"; + name = "hallway camera" + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hallup16"; + location = "hallup15" + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"vIB" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Petting Zoo" + }, +/turf/open/floor/iron/dark, +/area/station/common/night_club) +"vIF" = ( +/obj/structure/bodycontainer/morgue{ + dir = 8 + }, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/iron/dark/small, +/area/station/medical/morgue) +"vIO" = ( +/obj/structure/chair/wood{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/commons/dorms/room1) +"vIT" = ( +/obj/structure/chair/plastic{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/abandon_wrestle) +"vIU" = ( +/obj/structure/reagent_dispensers/plumbed{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"vIV" = ( +/obj/machinery/camera/autoname/directional/south, +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/hedge, +/turf/open/floor/iron/dark/herringbone, +/area/station/common/night_club) +"vJa" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"vJe" = ( +/obj/structure/curtain/bounty, +/turf/open/floor/iron/dark, +/area/station/security/prison) +"vJi" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"vJj" = ( +/obj/machinery/computer/security/qm, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/item/radio/intercom/directional/east{ + pixel_x = 25 + }, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"vJq" = ( +/obj/structure/chair/wood{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"vJv" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"vJx" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/command/gateway) +"vJz" = ( +/obj/machinery/power/shuttle_engine/huge{ + dir = 1 + }, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"vJG" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/security/lower) +"vJI" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Secure Gear Storage" + }, +/obj/effect/turf_decal/delivery/blue, +/obj/effect/mapping_helpers/airlock/access/all/security/armory, +/turf/open/floor/iron/dark, +/area/station/security/lockers) +"vJR" = ( +/obj/structure/cable, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/maintenance/starboard/fore) +"vJU" = ( +/obj/effect/turf_decal/stripes/end, +/turf/open/floor/plating/airless, +/area/station/engineering/atmos/upper) +"vJY" = ( +/obj/structure/bed/pod{ + pixel_y = 1 + }, +/obj/structure/window/spawner/directional/south, +/obj/structure/mirror/directional/east, +/turf/open/floor/carpet/black, +/area/station/service/barber) +"vKf" = ( +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/security/prison/mess) +"vKh" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/structure/hedge, +/turf/open/floor/iron/dark/herringbone, +/area/station/security/brig) +"vKl" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing, +/turf/open/floor/glass/reinforced, +/area/station/security/prison/safe) +"vKp" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Command Hallway" + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/command) +"vKI" = ( +/turf/closed/wall/r_wall, +/area/station/maintenance/abandon_wrestle) +"vKJ" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/visible, +/obj/machinery/meter, +/turf/open/floor/iron/smooth, +/area/station/engineering/atmos/pumproom) +"vKL" = ( +/obj/structure/disposalpipe/sorting/mail{ + dir = 2; + name = "Engineering Junction"; + sortType = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/engineering/break_room) +"vKN" = ( +/obj/structure/table, +/obj/item/pai_card{ + pixel_x = 6; + pixel_y = 3 + }, +/obj/item/book/manual/wiki/robotics_cyborgs{ + pixel_x = -7 + }, +/obj/item/radio/intercom/directional/east, +/obj/machinery/requests_console/directional/south{ + department = "Robotics"; + name = "Robotics Requests Console" + }, +/turf/open/floor/iron/dark, +/area/station/science/robotics) +"vKR" = ( +/obj/structure/weightmachine, +/turf/open/floor/iron/dark, +/area/station/commons/fitness) +"vKW" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 6 + }, +/turf/open/floor/iron/shuttle/evac/airless, +/area/space/nearstation) +"vLa" = ( +/obj/effect/turf_decal/vg_decals/atmos/air{ + dir = 8 + }, +/turf/open/floor/engine/air, +/area/station/engineering/atmos) +"vLe" = ( +/obj/item/wrench, +/obj/item/stack/sheet/glass{ + amount = 30 + }, +/obj/item/stack/sheet/iron{ + amount = 30 + }, +/obj/item/stack/cable_coil, +/obj/item/stack/cable_coil, +/obj/structure/closet, +/obj/effect/turf_decal/siding/wood, +/obj/machinery/camera/directional/north{ + c_tag = "Bar Backroom"; + dir = 6; + name = "service camera" + }, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/service) +"vLj" = ( +/turf/open/floor/engine/air, +/area/station/engineering/atmos) +"vLk" = ( +/obj/machinery/door/airlock{ + name = "Bedroom" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/carpet, +/area/station/commons/dorms/vacantroom) +"vLv" = ( +/turf/closed/wall/r_wall, +/area/station/engineering/atmos/test_chambers) +"vLx" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/mineral/plastitanium/red, +/area/station/science/robotics/lab) +"vLD" = ( +/obj/item/kirbyplants/organic/plant10, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/starboard) +"vLE" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/button/door{ + id = "armory"; + name = "Armory Shutters"; + pixel_x = -27; + req_access = list("armory") + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark, +/turf/open/floor/iron/dark/textured_edge, +/area/station/ai_monitored/security/armory) +"vLF" = ( +/obj/structure/chair/sofa/bench/left{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/lobby) +"vLH" = ( +/obj/effect/turf_decal/vg_decals/numbers/one{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/shuttle/evac/airless, +/area/station/solars/starboard/aft) +"vLL" = ( +/obj/effect/spawner/random/trash/moisture_trap, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/lesser) +"vLT" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 6 + }, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/closet/secure_closet/chemical{ + anchored = 1 + }, +/obj/item/radio/headset/headset_med, +/turf/open/floor/iron/white, +/area/station/medical/pharmacy) +"vLX" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/chair/sofa/bench, +/turf/open/floor/iron/dark, +/area/station/security/prison/workout) +"vLZ" = ( +/obj/structure/flora/bush/fullgrass, +/obj/structure/flora/bush/flowers_br, +/turf/open/misc/grass, +/area/station/service/barber) +"vMe" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/duct, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"vMi" = ( +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = 3 + }, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = 3 + }, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = 3 + }, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = 3 + }, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = 3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/head/utility/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/utility/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/utility/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/utility/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/utility/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/structure/closet/crate/internals, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/yellow/half/contrasted, +/turf/open/floor/iron, +/area/station/commons/storage/primary) +"vMj" = ( +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/central) +"vMk" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/wood/parquet, +/area/station/security/detectives_office) +"vMm" = ( +/obj/machinery/atmospherics/components/tank/air, +/turf/open/floor/iron/dark, +/area/station/maintenance/department/engineering/atmos_aux_port) +"vMn" = ( +/obj/structure/hedge, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/iron/shuttle/evac/airless, +/area/space/nearstation) +"vMp" = ( +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/research) +"vMy" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/effect/spawner/random/trash/garbage, +/turf/open/floor/plating, +/area/station/maintenance/disposal) +"vMA" = ( +/obj/structure/table/reinforced, +/obj/item/book/manual/wiki/engineering_hacking{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/book/manual/wiki/engineering_construction{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/book/manual/wiki/engineering_guide{ + pixel_x = -2; + pixel_y = 1 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/main) +"vMM" = ( +/obj/structure/chair/office, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/main) +"vMU" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/south, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"vMX" = ( +/obj/structure/closet, +/obj/effect/spawner/random/maintenance, +/obj/effect/turf_decal/delivery, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"vMY" = ( +/obj/machinery/airalarm/directional/west, +/obj/machinery/light_switch/directional/south, +/obj/structure/cable, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/security/execution/transfer) +"vNd" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/dorms) +"vNe" = ( +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"vNg" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/red, +/turf/open/floor/iron/dark/small, +/area/station/security/brig) +"vNh" = ( +/obj/structure/rack/shelf, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron, +/area/station/commons/dorms) +"vNi" = ( +/obj/machinery/prisongate, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/dark, +/area/station/security/prison) +"vNm" = ( +/obj/machinery/door/airlock/maintenance, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/maintenance/port/aft) +"vNp" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/secondary/command) +"vNt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/science/upper) +"vNx" = ( +/obj/structure/table_frame, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/abandon_wrestle) +"vNz" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating{ + dir = 8 + }, +/obj/structure/flora/bush/jungle/b, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"vNE" = ( +/obj/effect/turf_decal/stripes/box, +/obj/structure/tank_holder/extinguisher, +/turf/open/floor/plating, +/area/station/command/secure_bunker) +"vNL" = ( +/turf/closed/wall/r_wall, +/area/station/ai_monitored/turret_protected/ai_upload_foyer) +"vNQ" = ( +/obj/machinery/firealarm/directional/east, +/turf/open/floor/iron, +/area/station/commons/vacant_room/commissary) +"vNX" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) +"vNY" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/office) +"vNZ" = ( +/obj/effect/turf_decal/delivery/red, +/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer2{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/maintenance/department/engineering/atmos_aux_port) +"vOe" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/medical{ + name = "Surgery Theater" + }, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/medical/surgery, +/turf/open/floor/iron/white, +/area/station/medical/surgery/theatre) +"vOk" = ( +/obj/effect/spawner/random/trash/moisture_trap, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) +"vOl" = ( +/obj/structure/trash_pile, +/turf/open/floor/plating, +/area/station/maintenance/abandon_wrestle) +"vOt" = ( +/obj/item/kirbyplants/random, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/science/xenobiology) +"vOu" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/holopad, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) +"vOy" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple/opposingcorners{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/service/barber) +"vOz" = ( +/obj/structure/training_machine, +/obj/item/target, +/obj/effect/landmark/event_spawn, +/turf/open/floor/iron, +/area/station/commons/fitness) +"vOB" = ( +/obj/structure/bed/roller{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue/fourcorners, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"vOJ" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible, +/turf/open/space/basic, +/area/space/nearstation) +"vOS" = ( +/obj/structure/rack, +/obj/item/tank/internals/anesthetic, +/obj/item/clothing/mask/muzzle/breath, +/obj/item/storage/box/bodybags, +/obj/item/storage/box/gloves{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/tank/internals/anesthetic, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron, +/area/station/science/robotics) +"vOZ" = ( +/obj/structure/cable, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/hfr_room) +"vPb" = ( +/obj/structure/chair/sofa/bench{ + dir = 4; + pixel_x = -5 + }, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/obj/machinery/camera/directional/west{ + c_tag = "Science - Port"; + name = "science camera"; + network = list("ss13","rd") + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/science/research) +"vPj" = ( +/obj/machinery/power/shuttle_engine/huge{ + dir = 8 + }, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"vPn" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/brig) +"vPo" = ( +/turf/closed/wall, +/area/station/security/brig) +"vPw" = ( +/turf/open/floor/iron/stairs/right{ + dir = 4 + }, +/area/station/science/research) +"vPy" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Science Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/research, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) +"vPz" = ( +/obj/structure/cable, +/obj/machinery/status_display/ai/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/engine, +/area/station/command/secure_bunker) +"vPM" = ( +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"vQb" = ( +/turf/closed/wall, +/area/station/commons/dorms/room4) +"vQe" = ( +/obj/machinery/photocopier, +/obj/effect/turf_decal/bot, +/obj/structure/noticeboard/qm{ + pixel_y = 32 + }, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/qm) +"vQk" = ( +/obj/machinery/computer/teleporter{ + dir = 1 + }, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/command/teleporter) +"vQl" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron, +/area/station/security/prison/visit) +"vQo" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/light/directional/east, +/obj/machinery/status_display/ai/directional/east, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"vQr" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/commons/fitness/recreation) +"vQx" = ( +/turf/closed/wall/r_wall/rust, +/area/station/maintenance/department/medical) +"vQz" = ( +/mob/living/basic/chicken{ + forced_gender = "male" + }, +/turf/open/floor/grass, +/area/station/common/night_club/back_stage) +"vQA" = ( +/obj/effect/turf_decal/vg_decals/numbers/eight, +/turf/open/floor/iron/shuttle/arrivals/airless, +/area/space/nearstation) +"vQC" = ( +/obj/structure/chair/sofa/left/brown{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/wood/parquet, +/area/station/service/theater) +"vQD" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 4 + }, +/obj/structure/flora/grass/jungle, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"vQI" = ( +/turf/open/floor/iron/freezer, +/area/station/science/xenobiology) +"vQK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/maintenance, +/obj/effect/mapping_helpers/airlock/abandoned, +/turf/open/floor/plating, +/area/station/science/research/abandoned) +"vQQ" = ( +/obj/machinery/light/small/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/maintenance/thruster_room/central) +"vQR" = ( +/obj/structure/window/reinforced/tinted/spawner/directional/east, +/turf/open/floor/iron/dark, +/area/station/common/laser_tag) +"vQT" = ( +/obj/structure/rack, +/obj/item/clothing/shoes/sandal, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain/private) +"vRe" = ( +/obj/item/kirbyplants/random, +/obj/machinery/camera/directional/east{ + c_tag = "Medbay - Starboard Psych Ward"; + name = "medbay camera"; + network = list("ss13","medbay") + }, +/turf/open/floor/iron/white/textured, +/area/station/medical/aslyum) +"vRh" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"vRj" = ( +/obj/structure/wrestling_corner{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 9 + }, +/area/station/common/wrestling/arena) +"vRk" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/lobby) +"vRt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/reagent_dispensers/fueltank/large, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"vRw" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/poddoor/preopen{ + id = "executionfireblast" + }, +/obj/machinery/atmospherics/pipe/smart/simple/general/visible, +/obj/machinery/door/window/brigdoor/left/directional/north{ + name = "Justice Chamber"; + req_access = list("armory") + }, +/obj/machinery/door/window/brigdoor/left/directional/south{ + name = "Justice Chamber"; + req_access = list("armory") + }, +/turf/open/floor/iron/dark, +/area/station/security/execution/education) +"vRE" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"vRO" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/science/xenobiology/control) +"vRS" = ( +/obj/structure/chair/sofa/bench{ + dir = 8; + pixel_x = 5 + }, +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/stone, +/area/station/hallway/primary/central) +"vRV" = ( +/mob/living/basic/kiwi, +/turf/open/floor/iron, +/area/station/common/wrestling/arena) +"vRZ" = ( +/obj/machinery/newscaster/directional/south, +/obj/effect/turf_decal/delivery, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/science/ordnance) +"vSn" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/cargo/sorting) +"vSt" = ( +/obj/effect/turf_decal/loading_area, +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/pumproom) +"vSB" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/bot, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high{ + pixel_x = -7; + pixel_y = -4 + }, +/obj/item/stock_parts/cell/high{ + pixel_x = -7 + }, +/obj/item/stock_parts/cell/high{ + pixel_x = -7; + pixel_y = 4 + }, +/turf/open/floor/iron/dark, +/area/station/commons/storage/primary) +"vSD" = ( +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/secondary/command) +"vSI" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "bridgewindows"; + name = "Bridge View Blast Door" + }, +/obj/structure/curtain/cloth/fancy, +/obj/structure/cable, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Captainprivacy"; + name = "Privacy Shutters" + }, +/turf/open/floor/plating, +/area/station/command/captain_dining) +"vTd" = ( +/obj/effect/decal/cleanable/oil, +/obj/structure/cable, +/obj/effect/spawner/random/structure/steam_vent, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"vTg" = ( +/obj/effect/turf_decal/stripes, +/obj/machinery/button/door{ + id = "engsm"; + name = "Radiation Shutters Control"; + pixel_y = -24; + req_access = list("engineering") + }, +/obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible{ + dir = 1 + }, +/obj/machinery/meter, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"vTj" = ( +/obj/structure/curtain/cloth, +/turf/open/floor/iron/freezer, +/area/station/common/wrestling/locker) +"vTk" = ( +/obj/structure/hedge, +/turf/open/floor/iron/dark/herringbone, +/area/station/security/brig) +"vTm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/wood, +/area/station/maintenance/abandon_art_studio) +"vTs" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/maintenance/port/aft) +"vTy" = ( +/obj/structure/closet/toolcloset, +/turf/open/floor/plating, +/area/station/hallway/secondary/construction) +"vTA" = ( +/obj/machinery/door/poddoor/shutters{ + id = "custodialshutters"; + name = "Custodial Closet Shutters" + }, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/iron/dark, +/area/station/service/janitor) +"vTC" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/trimline/red/filled/corner, +/obj/effect/turf_decal/trimline/red/line{ + dir = 9 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark/corner, +/turf/open/floor/iron/dark/corner, +/area/station/security/brig) +"vTD" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"vTH" = ( +/obj/structure/table, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 9 + }, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/item/reagent_containers/cup/beaker/cryoxadone{ + pixel_x = -6; + pixel_y = 6 + }, +/obj/item/reagent_containers/cup/beaker/cryoxadone{ + pixel_y = 5 + }, +/obj/item/reagent_containers/dropper{ + pixel_y = -4 + }, +/obj/item/storage/pill_bottle/mannitol{ + pixel_x = 9; + pixel_y = 9 + }, +/turf/open/floor/iron/white, +/area/station/medical/cryo) +"vTK" = ( +/obj/effect/turf_decal/trimline/blue/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/prison/workout) +"vTN" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/blue/filled/corner, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"vTQ" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/engineering/atmos/office) +"vUa" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"vUe" = ( +/turf/open/floor/iron/white, +/area/station/medical/pharmacy) +"vUf" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/ce) +"vUi" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister/plasma, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/storage) +"vUj" = ( +/turf/closed/wall/r_wall, +/area/station/engineering/storage/tcomms) +"vUp" = ( +/obj/structure/chair/sofa/right/brown, +/turf/open/floor/wood, +/area/station/commons/dorms/room8) +"vUs" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"vUt" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"vUz" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/security/detectives_office) +"vUA" = ( +/obj/structure/chair/comfy/black{ + dir = 8 + }, +/obj/effect/landmark/start/captain, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/carpet/blue, +/area/station/command/heads_quarters/captain/private) +"vUC" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/security/execution/transfer) +"vUH" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"vUK" = ( +/obj/structure/table/reinforced, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high, +/turf/open/floor/iron/dark, +/area/station/engineering/main) +"vUM" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/stairs/old, +/area/station/cargo/office) +"vUW" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/external{ + name = "Escape Pod 1" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/escapepodbay) +"vUZ" = ( +/turf/open/floor/wood/parquet, +/area/station/common/tailoring) +"vVh" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/science/auxlab/firing_range) +"vVn" = ( +/obj/machinery/processor, +/turf/open/floor/iron/freezer, +/area/station/maintenance/abandon_kitchen_upper) +"vVo" = ( +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/maintenance/solars/starboard/fore) +"vVq" = ( +/obj/structure/chair/sofa/bench/left{ + dir = 4; + pixel_x = -5 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/primary/central/aft) +"vVs" = ( +/obj/structure/cable, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"vVt" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 5 + }, +/turf/open/floor/iron/shuttle/evac/airless, +/area/space/nearstation) +"vVu" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/commons/dorms) +"vVy" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white/corner, +/area/station/hallway/secondary/entry) +"vVA" = ( +/obj/effect/turf_decal/delivery/white, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/entry) +"vVB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"vVE" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"vVI" = ( +/obj/machinery/door/airlock/security{ + name = "Security Post - Science" + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/turf/open/floor/iron/white/side{ + dir = 4 + }, +/area/station/security/checkpoint/science/research) +"vVN" = ( +/obj/effect/turf_decal/caution/stand_clear, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/poddoor/shutters/window{ + id = "mechbay"; + name = "Mech Bay Shutters" + }, +/turf/open/floor/iron/dark, +/area/station/science/robotics/mechbay) +"vVT" = ( +/obj/structure/sauna_oven, +/obj/machinery/light/small/directional/east, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain/private) +"vVU" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/science/cytology) +"vVV" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/obj/machinery/airalarm/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/science/research) +"vVX" = ( +/turf/closed/wall, +/area/station/construction/mining/aux_base) +"vVY" = ( +/obj/machinery/status_display/ai/directional/east, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/aisat/hallway) +"vWa" = ( +/obj/structure/chair/wood{ + dir = 8; + name = "Defense" + }, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/wood, +/area/station/security/courtroom) +"vWi" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/light/directional/east, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"vWk" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/security/prison/upper) +"vWp" = ( +/obj/item/trash/syndi_cakes, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters{ + id = "Starboardbowmaints"; + name = "Starboard Bow Maintenance" + }, +/obj/machinery/button/door/directional/north{ + id = "Starboardbowmaints"; + name = "Shutter control"; + pixel_x = 24; + pixel_y = 0; + req_access = list("engineering","atmospherics") + }, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"vWN" = ( +/obj/structure/sign/warning/vacuum/external/directional/south, +/turf/open/floor/iron, +/area/station/engineering/atmos/test_chambers) +"vWO" = ( +/turf/closed/wall, +/area/station/common/wrestling/concessions) +"vWW" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light/directional/west, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"vXb" = ( +/obj/structure/chair/stool/directional/west, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/obj/structure/sign/poster/random/directional/east, +/obj/effect/landmark/start/shaft_miner, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) +"vXd" = ( +/turf/closed/wall, +/area/station/maintenance/department/security/greater) +"vXe" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/station/service/library) +"vXi" = ( +/turf/open/openspace, +/area/station/commons/dorms) +"vXB" = ( +/obj/structure/table/wood/fancy/royalblack, +/obj/item/toy/figure/hos{ + pixel_x = 14; + pixel_y = 15 + }, +/obj/item/toy/figure/secofficer{ + pixel_x = 5; + pixel_y = 15 + }, +/obj/item/toy/figure/wizard{ + pixel_x = 14; + pixel_y = 1 + }, +/turf/open/floor/carpet, +/area/station/service/library/lounge) +"vXK" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/grass, +/area/station/service/hydroponics/garden/abandoned) +"vXN" = ( +/obj/effect/decal/cleanable/oil/slippery, +/turf/open/floor/iron, +/area/station/maintenance/central) +"vXP" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/science/robotics) +"vXQ" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/iron/shuttle/evac/airless, +/area/space/nearstation) +"vXS" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/dorms) +"vXV" = ( +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/iron/stairs/left{ + dir = 1 + }, +/area/station/hallway/primary/central) +"vXY" = ( +/obj/item/toy/beach_ball/branded, +/obj/machinery/computer/security/telescreen/entertainment/directional/west, +/turf/open/water/overlay{ + desc = "It's a pool for swimming in!"; + icon_state = "hotspring_tile"; + name = "pool" + }, +/area/station/command/heads_quarters/captain/private) +"vYb" = ( +/obj/machinery/door/airlock/security/old{ + name = "Janitorial" + }, +/obj/effect/turf_decal/delivery/red, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/security/prison/upper) +"vYi" = ( +/obj/structure/cable, +/obj/machinery/power/emitter{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) +"vYk" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/service/lawoffice) +"vYq" = ( +/obj/machinery/light/small/broken/directional/north, +/turf/open/floor/iron, +/area/station/maintenance/port/aft) +"vYB" = ( +/obj/structure/table/wood, +/obj/item/radio/intercom/directional/east, +/obj/structure/cable, +/obj/machinery/pollution_scrubber{ + pixel_x = 7; + pixel_y = -5 + }, +/obj/machinery/camera/autoname/directional/east, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"vYF" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/security/corrections_officer) +"vYJ" = ( +/obj/machinery/camera/directional/west{ + c_tag = "Law Lobby"; + dir = 10 + }, +/obj/machinery/door/window/left/directional/south{ + name = "Law Office Front Desk" + }, +/turf/open/floor/wood, +/area/station/service/lawoffice) +"vYS" = ( +/obj/machinery/duct, +/turf/open/floor/iron/freezer, +/area/station/common/locker_room_shower) +"vYX" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white/textured, +/area/station/medical/aslyum) +"vZa" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/flora/bush/lavendergrass, +/turf/open/floor/grass, +/area/station/medical/virology/isolation) +"vZi" = ( +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/iron/white/textured, +/area/station/medical/aslyum) +"vZm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/chair, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"vZs" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/service/library/printer) +"vZt" = ( +/obj/effect/spawner/random/trash/mess, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/small, +/area/station/security/prison/upper) +"vZv" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock/public/glass{ + name = "Central Hallway" + }, +/turf/open/floor/iron/dark/side, +/area/station/hallway/secondary/command) +"vZI" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"vZK" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"vZN" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/effect/landmark/start/virologist, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/machinery/duct, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 5 + }, +/turf/open/floor/iron/white, +/area/station/medical/virology) +"vZR" = ( +/obj/structure/window/spawner/directional/south, +/obj/structure/closet/crate/trashcart/laundry, +/obj/item/soap/nanotrasen, +/obj/effect/turf_decal/tile/blue/opposingcorners{ + dir = 8 + }, +/turf/open/floor/iron/cafeteria, +/area/station/commons/locker) +"vZW" = ( +/obj/machinery/gibber, +/obj/effect/turf_decal/stripes/box, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/freezer, +/area/station/maintenance/abandon_kitchen_upper) +"vZY" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/ai_monitored/command/storage/eva) +"waa" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/service/chapel) +"wae" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/science) +"wal" = ( +/obj/structure/table, +/obj/item/toy/crayon/spraycan/lubecan, +/turf/open/floor/noslip, +/area/station/maintenance/gag_room) +"war" = ( +/mob/living/basic/garden_gnome, +/obj/structure/flora/bush/flowers_pp/style_2, +/turf/open/floor/grass, +/area/station/maintenance/port/fore) +"was" = ( +/obj/effect/turf_decal/bot, +/obj/structure/cable, +/obj/machinery/disease2/centrifuge, +/obj/item/reagent_containers/cup/beaker/vial, +/obj/item/reagent_containers/cup/beaker/vial, +/obj/item/reagent_containers/cup/beaker/vial, +/obj/item/reagent_containers/cup/beaker/vial, +/turf/open/floor/iron, +/area/station/medical/virology) +"wax" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"waD" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"waF" = ( +/obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/station/science/ordnance/burnchamber) +"waH" = ( +/obj/machinery/light/small/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"waJ" = ( +/obj/structure/table, +/obj/item/coin{ + pixel_y = 17 + }, +/obj/item/pizzabox/meat{ + pixel_y = 11 + }, +/turf/open/floor/iron, +/area/station/commons/fitness/recreation) +"waS" = ( +/obj/machinery/biogenerator, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/station/service/hydroponics/garden/abandoned) +"waY" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/shuttle/evac/airless, +/area/space/nearstation) +"waZ" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/command) +"wba" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"wbc" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/security/prison/visit) +"wbe" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "Luggagebelt" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/security/checkpoint) +"wbh" = ( +/turf/open/floor/iron/stairs/left{ + dir = 1 + }, +/area/station/hallway/primary/central/fore) +"wbq" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/station/maintenance/department/engineering/atmos_aux_port) +"wbr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/spawner/random/structure/steam_vent, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"wbt" = ( +/obj/item/organ/internal/eyes, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/iron, +/area/station/maintenance/rus_surgery) +"wbv" = ( +/obj/effect/spawner/random/trash/mess, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/eighties, +/area/station/maintenance/abandon_arcade) +"wby" = ( +/obj/structure/flora/bush/sparsegrass, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/lavendergrass, +/obj/structure/window/spawner/directional/south, +/turf/open/floor/grass, +/area/station/common/cryopods) +"wbJ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark/small, +/area/station/security/range) +"wbO" = ( +/turf/open/floor/wood, +/area/station/command/heads_quarters/blueshield) +"wbQ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/stone, +/area/station/common/wrestling/arena) +"wbV" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/science) +"wbY" = ( +/obj/structure/cable, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/pool_maintenance) +"wcf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/maintenance/aux_eva) +"wcl" = ( +/obj/structure/cable, +/obj/structure/reagent_dispensers/water_cooler, +/obj/machinery/light/directional/east, +/turf/open/floor/iron/white, +/area/station/medical/break_room) +"wcn" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/effect/turf_decal/box, +/obj/effect/turf_decal/stripes{ + dir = 6 + }, +/turf/open/floor/engine, +/area/station/science/ordnance) +"wco" = ( +/obj/structure/window/reinforced/plasma/spawner/directional/south, +/obj/machinery/power/shuttle_engine/heater{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"wcq" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"wct" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/camera/directional/east{ + c_tag = "Upper Central Hallway - Upper Port Central"; + name = "hallway camera" + }, +/obj/machinery/light/directional/east, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"wcv" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "E.V.A. Storage Maintenance" + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/command/eva, +/turf/open/floor/plating, +/area/station/maintenance/department/eva) +"wcw" = ( +/obj/machinery/door/airlock/external{ + space_dir = 2 + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "ToxinsExhaust" + }, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"wcz" = ( +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/maintenance/port/aft) +"wcA" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing{ + dir = 9 + }, +/turf/open/openspace, +/area/station/maintenance/aft/upper) +"wcB" = ( +/obj/structure/table/reinforced, +/obj/item/folder{ + pixel_y = 3 + }, +/obj/item/paper/guides/quantumpad, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/science/tele_sci) +"wcE" = ( +/obj/structure/sign/poster/official/ian/directional/north, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/hop) +"wcI" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple/layer4{ + dir = 4 + }, +/obj/machinery/air_sensor/ordnance_freezer_chamber, +/turf/open/floor/engine, +/area/station/science/ordnance/freezerchamber) +"wcJ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/engineering/gravity_generator) +"wcO" = ( +/obj/effect/landmark/event_spawn, +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/large{ + pixel_y = -10 + }, +/turf/open/floor/grass, +/area/station/science/research) +"wcZ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/circuit, +/area/station/security/mechbay) +"wdb" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/light/small/directional/north, +/turf/open/floor/plating, +/area/station/engineering/atmos) +"wdc" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"wde" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/components/trinary/mixer/flipped{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/storage) +"wdf" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/dorms) +"wdj" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"wdn" = ( +/turf/open/floor/iron/dark/corner, +/area/station/hallway/primary/central) +"wdo" = ( +/obj/structure/closet/secure_closet/security/sec, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/lockers) +"wdr" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating{ + dir = 8 + }, +/obj/effect/turf_decal/weather/sand{ + dir = 1 + }, +/obj/structure/flora/bush/grassy{ + pixel_x = 4 + }, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"wds" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/dorms) +"wdx" = ( +/obj/structure/table, +/obj/item/knife/shiv{ + pixel_x = -5; + pixel_y = 4 + }, +/obj/item/knife/shiv, +/obj/structure/sign/poster/contraband/energy_swords/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"wdz" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/hallway/primary/port) +"wdA" = ( +/obj/effect/turf_decal/delivery/red, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/window/preopen{ + id = "prisonlockdown3"; + name = "Lockdown" + }, +/obj/machinery/button/door{ + id = "prisonlockdown3"; + name = "Lockdown"; + pixel_x = 24; + req_access = list("security") + }, +/turf/open/floor/iron/dark, +/area/station/security/prison/upper) +"wdE" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/hallway/primary/central) +"wdI" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/engineering/storage/tech) +"wdL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"wdN" = ( +/obj/structure/flora/bush/jungle/b/style_2, +/obj/structure/flora/bush/flowers_br/style_3, +/obj/structure/window/fulltile, +/turf/open/floor/grass, +/area/station/hallway/primary/upper) +"wdS" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter) +"wdV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/trash/sosjerky, +/obj/effect/mapping_helpers/burnt_floor, +/obj/effect/spawner/random/structure/steam_vent, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"wdW" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/table/wood, +/obj/item/reagent_containers/cup/glass/bottle/beer{ + pixel_x = 8; + pixel_y = 1 + }, +/obj/item/storage/fancy/cigarettes/cigpack_robust{ + pixel_x = -5; + pixel_y = 5 + }, +/turf/open/floor/carpet, +/area/station/hallway/primary/port) +"wel" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible/layer4, +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"weq" = ( +/obj/structure/chair/office{ + dir = 4 + }, +/obj/effect/landmark/start/scientist, +/obj/effect/turf_decal/trimline/purple/filled/line, +/turf/open/floor/iron/white, +/area/station/science/lab) +"weu" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"wez" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/crate{ + storage_capacity = 50 + }, +/obj/item/clothing/under/color/maroon, +/obj/item/clothing/under/color/lightpurple, +/obj/item/clothing/under/color/lightbrown, +/obj/item/clothing/under/color/brown, +/obj/item/clothing/under/color/darkblue, +/obj/item/clothing/under/color/darkgreen, +/obj/item/clothing/under/color/teal, +/obj/item/clothing/under/color/jumpskirt/maroon, +/obj/item/clothing/under/color/jumpskirt/lightpurple, +/obj/item/clothing/under/color/jumpskirt/lightbrown, +/obj/item/clothing/under/color/jumpskirt/brown, +/obj/item/clothing/under/color/jumpskirt/darkblue, +/obj/item/clothing/under/color/jumpskirt/darkgreen, +/obj/item/clothing/under/color/jumpskirt/teal, +/obj/item/clothing/shoes/swagshoes, +/obj/item/clothing/under/costume/swagoutfit, +/obj/item/clothing/under/color/jumpskirt/rainbow, +/obj/item/clothing/under/color/rainbow, +/obj/item/clothing/gloves/color/rainbow, +/obj/item/clothing/shoes/sneakers/rainbow, +/obj/item/clothing/head/soft/rainbow, +/turf/open/floor/iron/dark, +/area/station/common/tailoring) +"weA" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 8 + }, +/turf/open/indestructible{ + base_icon_state = "reinf_glass"; + icon = 'icons/turf/floors/reinf_glass.dmi'; + icon_state = "reinf_glass-0"; + name = "Ultra Reinforced Glass Floor" + }, +/area/station/ai_monitored/turret_protected/aisat_interior) +"weB" = ( +/obj/structure/window/spawner/directional/west, +/obj/structure/chair/sofa/corp/right{ + color = "#DE3A3A"; + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen/diner) +"weC" = ( +/obj/machinery/door/airlock/engineering/glass{ + name = "Supermatter Coolers" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/general, +/turf/open/floor/iron, +/area/station/engineering/supermatter/room) +"weD" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/item/radio/intercom/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/checker, +/area/station/hallway/secondary/service) +"weK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/food_packaging, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/cafeteria, +/area/station/maintenance/abandon_diner) +"weL" = ( +/obj/structure/rack/shelf, +/obj/effect/turf_decal/bot, +/obj/item/wrench, +/obj/item/screwdriver, +/turf/open/floor/iron, +/area/station/commons/vacant_room/commissary) +"weN" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/station/science/research/abandoned) +"weT" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/commons/dorms) +"weU" = ( +/obj/effect/turf_decal/arrows/red, +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 8 + }, +/turf/open/floor/engine/hull, +/area/space/nearstation) +"weV" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/carpet, +/area/station/security/courtroom) +"weW" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/loading_area, +/turf/open/floor/iron/dark, +/area/station/cargo/warehouse) +"weY" = ( +/obj/machinery/light/directional/north, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/structure/closet/wardrobe/robotics_black, +/obj/item/clothing/glasses/welding, +/obj/item/storage/belt/utility, +/obj/effect/turf_decal/bot_red, +/turf/open/floor/iron/dark, +/area/station/science/robotics) +"weZ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/science/ordnance/office) +"wfb" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/window/spawner/directional/west, +/obj/structure/table/wood/fancy/green, +/turf/open/floor/carpet/green, +/area/station/commons/dorms/room2) +"wfd" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "Frontleftfloor2" + }, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 1 + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/external, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"wfp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/mess, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/firedoor, +/obj/machinery/button/door/directional/north{ + id = "Starboardbowmaints"; + name = "Shutter control"; + pixel_x = 24; + pixel_y = 0; + req_access = list("engineering","atmospherics") + }, +/obj/machinery/door/poddoor/shutters{ + id = "Starboardbowmaints"; + name = "Starboard Bow Maintenance" + }, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"wfr" = ( +/obj/effect/spawner/liquids_spawner{ + reagent_list = list(/datum/reagent/water=600) + }, +/obj/structure/flora/ocean/longseaweed, +/turf/open/misc/asteroid, +/area/station/hallway/primary/upper) +"wfs" = ( +/obj/structure/rack/shelf, +/obj/item/stack/sheet/plasteel/twenty, +/obj/effect/turf_decal/bot, +/obj/item/stack/sheet/iron/fifty, +/turf/open/floor/iron/dark, +/area/station/engineering/gravity_generator) +"wfu" = ( +/obj/structure/table/reinforced, +/obj/item/storage/box/lights/mixed{ + pixel_x = 6; + pixel_y = 11 + }, +/obj/item/storage/box/lights/mixed{ + pixel_x = 6; + pixel_y = 11 + }, +/obj/item/storage/box/mousetraps{ + pixel_x = -6; + pixel_y = 9 + }, +/obj/item/restraints/legcuffs/beartrap{ + pixel_x = 8 + }, +/obj/item/restraints/legcuffs/beartrap{ + pixel_x = 8 + }, +/obj/item/restraints/legcuffs/beartrap{ + pixel_x = 8 + }, +/obj/item/lightreplacer{ + pixel_x = -6 + }, +/obj/item/lightreplacer{ + pixel_x = -6 + }, +/obj/item/lightreplacer{ + pixel_x = -6 + }, +/obj/machinery/airalarm/directional/east, +/obj/effect/turf_decal/siding/purple{ + dir = 9 + }, +/turf/open/floor/iron/dark, +/area/station/service/janitor) +"wfv" = ( +/obj/machinery/duct, +/turf/open/floor/carpet/purple, +/area/station/command/heads_quarters/rd) +"wfE" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/stairs/medium{ + dir = 4 + }, +/area/station/service/chapel) +"wfG" = ( +/obj/structure/marker_beacon/burgundy, +/turf/open/floor/engine/hull, +/area/space/nearstation) +"wfJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/structure/sign/poster/contraband/syndicate_recruitment/directional/west, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"wfQ" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"wfW" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/light_switch/directional/west, +/obj/machinery/modular_computer/preset/engineering{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/engineering) +"wfX" = ( +/obj/machinery/door/firedoor, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/central/aft) +"wge" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/duct, +/turf/open/floor/carpet/purple, +/area/station/commons/dorms/room4) +"wgj" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 4 + }, +/obj/item/radio/intercom/directional/east, +/obj/structure/cable, +/obj/machinery/light_switch/directional/east{ + pixel_y = -12 + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology/control) +"wgo" = ( +/turf/open/floor/iron, +/area/station/cargo/lobby) +"wgp" = ( +/obj/machinery/pipedispenser/disposal, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos) +"wgs" = ( +/obj/structure/table, +/obj/machinery/microwave, +/obj/machinery/light/directional/west, +/obj/machinery/status_display/ai/directional/west, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) +"wgu" = ( +/obj/structure/table, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/security/prison_upper) +"wgv" = ( +/obj/structure/table/wood, +/obj/machinery/fax{ + fax_name = "Consultant's Office"; + name = "Consultant's Fax Machine"; + pixel_y = 3 + }, +/turf/open/floor/carpet/green, +/area/station/command/heads_quarters/nt_rep) +"wgw" = ( +/obj/structure/chair/sofa/corp/right{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/science/research) +"wgx" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/common/cryopods) +"wgA" = ( +/obj/structure/rack/shelf, +/obj/item/clothing/suit/space/eva/plasmaman, +/turf/open/floor/wood/parquet, +/area/station/common/gaskiosk) +"wgK" = ( +/turf/open/floor/glass/reinforced/airless, +/area/space/nearstation) +"wgN" = ( +/obj/structure/closet/firecloset/wall{ + pixel_y = 32 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/iron/dark, +/area/station/escapepodbay) +"wgQ" = ( +/turf/closed/wall/r_wall, +/area/station/maintenance/abandon_psych) +"wgY" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/science/research) +"wha" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/abandon_wrestle) +"whc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/moisture_trap, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"whj" = ( +/obj/machinery/light/directional/south, +/turf/open/floor/iron, +/area/station/engineering/atmos/test_chambers) +"whk" = ( +/obj/structure/window/spawner/directional/north, +/obj/machinery/growing/tray, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics/garden) +"whl" = ( +/obj/machinery/door/airlock/external{ + name = "Asteroid Exit" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/science/auxlab/firing_range) +"whn" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/directional/south, +/obj/machinery/light_switch/directional/south, +/turf/open/floor/wood, +/area/station/security/detectives_office/private_investigators_office) +"who" = ( +/obj/structure/table/reinforced, +/obj/item/clipboard, +/obj/item/toy/figure/atmos, +/obj/item/analyzer{ + pixel_x = 3 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/office) +"whq" = ( +/obj/structure/table/wood, +/obj/item/clipboard, +/obj/item/toy/figure/hop{ + pixel_y = 3 + }, +/obj/item/toy/figure/ian{ + pixel_x = -3 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/cable, +/obj/item/assembly/flash/handheld{ + pixel_x = 9 + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/hop) +"whu" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/science/upper) +"whx" = ( +/obj/effect/decal/cleanable/dirt, +/mob/living/basic/mining/hivelord, +/turf/open/misc/asteroid/airless, +/area/space/nearstation) +"whz" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/command/gateway) +"whB" = ( +/obj/item/kirbyplants/random, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/main) +"whJ" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/poddoor/preopen{ + id = "Biohazard"; + name = "Biohazard Containment Door" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/science/research) +"whU" = ( +/obj/structure/chair/sofa/bench/right, +/obj/machinery/camera/directional/north{ + c_tag = "Security - Gear Room" + }, +/obj/effect/landmark/start/security_officer, +/obj/effect/turf_decal/trimline/red/filled/line{ + color = "#DE3A3A"; + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/line, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/lockers) +"whW" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/holopad, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) +"whX" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"whY" = ( +/turf/open/floor/iron/dark/small, +/area/station/science/auxlab/firing_range) +"wie" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"wif" = ( +/obj/machinery/door/airlock{ + name = "Shower" + }, +/obj/machinery/duct, +/turf/open/floor/iron/freezer, +/area/station/commons/toilet/auxiliary) +"wij" = ( +/obj/effect/turf_decal/trimline/red/filled/corner{ + color = "#DE3A3A" + }, +/obj/structure/filingcabinet/security, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hos) +"wim" = ( +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/tcommsat/computer) +"wiu" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/wood/parquet, +/area/station/common/tailoring) +"wiF" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/effect/turf_decal/caution/stand_clear, +/obj/machinery/door/airlock/external{ + name = "External Docking Port" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/exit/departure_lounge) +"wiI" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/power/emitter, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/machinery/light/directional/west, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/engineering/storage) +"wiK" = ( +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/primary/upper) +"wiN" = ( +/obj/item/flashlight/flare/candle/infinite{ + pixel_y = -11 + }, +/turf/open/floor/material/meat, +/area/station/maintenance/department/science/xenobiology) +"wiQ" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/primary/port) +"wiT" = ( +/obj/effect/spawner/random/trash/mess, +/turf/open/floor/plating, +/area/station/maintenance/department/security/prison_upper) +"wiV" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/effect/spawner/random/maintenance/two, +/turf/open/floor/plating, +/area/station/maintenance/port/central) +"wjd" = ( +/obj/structure/cable, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/corner, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/prison/upper) +"wjj" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/qm) +"wjv" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/airalarm/directional/south, +/obj/structure/cable, +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/iron/dark/side, +/area/station/security/prison) +"wjw" = ( +/obj/structure/cable, +/obj/structure/sign/warning/vacuum/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/solars/starboard/fore) +"wjx" = ( +/obj/structure/chair/wood{ + dir = 4 + }, +/obj/structure/window/spawner/directional/west, +/obj/effect/landmark/start/assistant, +/obj/machinery/newscaster/directional/south, +/turf/open/floor/carpet, +/area/station/service/library/printer) +"wjB" = ( +/obj/machinery/light/blacklight/directional/east, +/obj/structure/trash_pile, +/turf/open/floor/iron/smooth, +/area/station/cargo/miningdock) +"wjF" = ( +/obj/structure/bed{ + dir = 1 + }, +/obj/item/bedsheet{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/security/brig) +"wjG" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/hallway/primary/port) +"wjN" = ( +/obj/effect/turf_decal/stripes, +/obj/structure/table/glass, +/obj/item/stack/sheet/mineral/plasma{ + amount = 5 + }, +/obj/item/reagent_containers/spray/cleaner{ + pixel_x = 10; + pixel_y = -1 + }, +/turf/open/floor/iron, +/area/station/science/xenobiology) +"wjR" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/command/captain_dining) +"wjY" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/pool_maintenance) +"wkc" = ( +/obj/effect/spawner/random/trash/mess, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"wks" = ( +/obj/effect/turf_decal/trimline/purple/filled/corner{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/science/research) +"wkv" = ( +/obj/effect/spawner/structure/window/reinforced/tinted, +/turf/open/floor/plating, +/area/station/medical/surgery/theatre) +"wkB" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"wkC" = ( +/obj/structure/window/spawner/directional/south, +/obj/structure/flora/bush/jungle/b, +/turf/open/floor/grass, +/area/station/service/cafeteria) +"wkE" = ( +/obj/structure/grille, +/obj/structure/barricade/wooden, +/turf/open/floor/plating, +/area/station/service/abandoned_gambling_den) +"wkF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/structure/sign/poster/contraband/random/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"wkP" = ( +/obj/effect/turf_decal/trimline/red/filled/warning{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"wkR" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/holopad, +/turf/open/floor/iron, +/area/station/construction/mining/aux_base) +"wkS" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Courtroom" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/security/court, +/turf/open/floor/carpet, +/area/station/security/courtroom) +"wkY" = ( +/obj/machinery/photocopier, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/security/interrogation) +"wkZ" = ( +/obj/structure/cable, +/obj/effect/turf_decal/stripes/white/line{ + dir = 6 + }, +/turf/open/floor/engine, +/area/station/science/ordnance) +"wla" = ( +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/door/poddoor/preopen{ + id = "gatewayblastdoors"; + name = "Seperating Blast Doors" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/command/gateway) +"wlb" = ( +/obj/structure/closet/toolcloset, +/obj/machinery/newscaster/directional/north, +/turf/open/floor/iron, +/area/station/construction/mining/aux_base) +"wlh" = ( +/obj/structure/chair/stool/directional/west, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/maintenance/department/crew_quarters/bar) +"wli" = ( +/obj/item/stack/sheet/cardboard, +/obj/machinery/light/small/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"wlj" = ( +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/ai_upload) +"wll" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/science/xenobiology) +"wlm" = ( +/obj/structure/chair/sofa/left/brown, +/obj/item/toy/plush/moth{ + name = "Moffee" + }, +/turf/open/floor/wood, +/area/station/medical/psychology) +"wln" = ( +/obj/structure/closet/cardboard, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"wlo" = ( +/obj/structure/closet/crate/goldcrate, +/obj/item/stack/spacecash/c500, +/obj/item/stack/spacecash/c500, +/obj/item/storage/bag/money/vault, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/nuke_storage) +"wlp" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hallup15"; + location = "hallup14" + }, +/obj/machinery/duct, +/turf/open/floor/iron/dark/side, +/area/station/hallway/secondary/command) +"wlt" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/iron/dark, +/area/station/maintenance/solars/port/fore) +"wlu" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/science/xenobiology/hallway) +"wlw" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/stone, +/area/station/service/forge) +"wlF" = ( +/obj/effect/turf_decal/stripes, +/obj/machinery/light/directional/south, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"wlJ" = ( +/obj/structure/bookcase/random/fiction, +/obj/item/radio/intercom/directional/north, +/obj/machinery/camera/autoname/directional/north, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain/private) +"wlK" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/security/prison/shower) +"wlL" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/command/heads_quarters/hos) +"wlM" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/test_chambers) +"wlO" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"wlQ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/firealarm/directional/north, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Central Upper Hallway" + }, +/turf/open/floor/iron, +/area/station/commons/dorms) +"wlT" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/mining{ + name = "Cargo Bay" + }, +/obj/effect/mapping_helpers/airlock/access/all/supply/general, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/sorting) +"wlU" = ( +/obj/machinery/door/airlock/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/department/security/prison_upper) +"wlW" = ( +/obj/machinery/light/directional/south, +/obj/structure/extinguisher_cabinet/directional/south, +/obj/effect/turf_decal/tile/blue/half/contrasted, +/turf/open/floor/iron/dark/side, +/area/station/hallway/secondary/command) +"wlY" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"wmh" = ( +/turf/open/floor/iron/white, +/area/station/medical/surgery) +"wmr" = ( +/obj/effect/spawner/random/trash/mess, +/turf/open/floor/plating, +/area/station/maintenance/department/science/central) +"wms" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/machinery/camera/directional/north, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"wmu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/smooth, +/area/station/cargo/power_station/upper) +"wmC" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/field/generator, +/obj/effect/turf_decal/stripes{ + dir = 9 + }, +/turf/open/floor/iron/dark/side{ + dir = 9 + }, +/area/station/engineering/storage) +"wmD" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/trimline/red/filled/warning, +/obj/effect/turf_decal/trimline/red/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/side, +/area/station/security/brig) +"wmH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/red/dim/directional/south, +/turf/open/floor/iron/smooth, +/area/station/maintenance/starboard/fore) +"wmI" = ( +/obj/structure/barricade/wooden, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"wmL" = ( +/turf/closed/wall, +/area/station/command/heads_quarters/hos) +"wmN" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/poddoor/preopen{ + id = "Biohazard"; + name = "Biohazard Containment Door" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/science) +"wmR" = ( +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/dorms) +"wmS" = ( +/obj/machinery/door/airlock/research{ + autoclose = 0; + frequency = 1449; + id_tag = "xeno_airlock_interior"; + name = "Xenobiology Lab Internal Airlock" + }, +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/purple/filled/warning, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, +/turf/open/floor/iron/white, +/area/station/science/xenobiology/hallway) +"wmV" = ( +/obj/effect/turf_decal/stripes{ + dir = 10 + }, +/obj/structure/table/glass, +/obj/item/reagent_containers/syringe, +/turf/open/floor/iron, +/area/station/science/xenobiology) +"wmX" = ( +/obj/structure/table/glass, +/turf/open/floor/wood, +/area/station/hallway/primary/central) +"wna" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Barshutters"; + name = "Bar Shutters" + }, +/obj/structure/displaycase/forsale/kitchen{ + pixel_y = 8 + }, +/turf/open/floor/iron/dark, +/area/station/service/bar) +"wne" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/effect/turf_decal/delivery, +/obj/structure/rack/gunrack, +/obj/machinery/firealarm/directional/south, +/obj/effect/spawner/armory_spawn/shotguns, +/obj/effect/turf_decal/trimline/red/line{ + dir = 5 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark, +/turf/open/floor/iron/dark/textured_corner{ + dir = 8 + }, +/area/station/ai_monitored/security/armory) +"wng" = ( +/obj/machinery/atmospherics/pipe/smart/simple/general/visible{ + dir = 6 + }, +/obj/machinery/rnd/server/master, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/circuit/telecomms, +/area/station/science/server) +"wnk" = ( +/obj/machinery/light/directional/south, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + color = "#DE3A3A" + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/side, +/area/station/security/brig) +"wno" = ( +/obj/item/stack/sheet/cardboard, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"wnq" = ( +/obj/structure/fluff/big_chain, +/obj/effect/decal/cleanable/blood/gibs/old, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/cult, +/area/station/maintenance/cult_chapel_maint) +"wnr" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/station/maintenance/aux_eva) +"wnt" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/secondary/command) +"wnv" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"wnx" = ( +/mob/living/basic/cat_butcherer, +/turf/open/floor/plating, +/area/station/maintenance/abandon_exam/cat) +"wny" = ( +/turf/open/floor/iron/stairs/left, +/area/station/hallway/primary/port) +"wnF" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron/kitchen, +/area/station/security/prison/mess) +"wnG" = ( +/turf/open/floor/iron/stairs/left{ + dir = 4 + }, +/area/station/science/research) +"wnJ" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible, +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible/layer2, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/machinery/camera/autoname/directional/west, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"wnO" = ( +/obj/effect/spawner/random/trash/mess, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"wnP" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, +/turf/closed/wall/r_wall, +/area/station/maintenance/disposal/incinerator) +"wnQ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/nt_rep) +"wnU" = ( +/obj/effect/spawner/random/trash/mess, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"wnW" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/bar) +"wnX" = ( +/obj/machinery/door/firedoor, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/primary/central/aft) +"wos" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/table, +/obj/item/stack/sheet/cardboard{ + amount = 14 + }, +/obj/item/stack/package_wrap, +/turf/open/floor/iron/dark/side{ + dir = 5 + }, +/area/station/security/prison/work) +"wot" = ( +/obj/structure/closet/crate/engineering, +/obj/structure/window/spawner/directional/east, +/obj/item/wrench, +/obj/item/clothing/gloves/color/fyellow, +/obj/item/stack/cable_coil, +/obj/item/stack/cable_coil{ + pixel_x = 2; + pixel_y = 3 + }, +/turf/open/floor/plating, +/area/station/maintenance/central) +"woL" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 10 + }, +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/command/heads_quarters/rd) +"wpe" = ( +/obj/machinery/door/poddoor/preopen{ + id = "atmoslock"; + name = "Atmospherics Lockdown Blast Door" + }, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Atmospherics Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/lesser) +"wpg" = ( +/obj/machinery/atmospherics/components/binary/crystallizer{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/iron, +/area/station/engineering/atmos/test_chambers) +"wph" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/chair/sofa/bench/right{ + dir = 8; + pixel_x = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/common/wrestling/arena) +"wpl" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 1 + }, +/obj/structure/fans/tiny, +/obj/machinery/door/airlock/bathroom{ + name = "Restroom" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron/freezer, +/area/station/command/heads_quarters/captain/private) +"wpn" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/flora/bush/sparsegrass, +/obj/structure/flora/bush/ferny, +/turf/open/floor/grass, +/area/station/science/research) +"wpo" = ( +/turf/closed/wall/r_wall, +/area/station/maintenance/department/security/lower) +"wpv" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/dark, +/area/station/maintenance/solars/starboard/fore) +"wpy" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/science/research) +"wpD" = ( +/obj/structure/table, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/security/prison/mess) +"wpF" = ( +/turf/closed/wall, +/area/station/service/library/abandoned) +"wpM" = ( +/obj/machinery/button/door/directional/north{ + id = "evashutters2"; + name = "E.V.A. Shutters"; + req_access = list("command") + }, +/obj/machinery/door/poddoor/shutters{ + id = "evashutters2"; + name = "E.V.A. Storage Shutters" + }, +/turf/open/floor/iron/dark, +/area/station/maintenance/aux_eva) +"wpT" = ( +/obj/structure/cable, +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/pool_maintenance) +"wpX" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/turf/open/floor/grass, +/area/station/common/night_club) +"wpY" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/railing, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"wqc" = ( +/obj/structure/table/glass, +/obj/item/reagent_containers/cup/beaker, +/obj/item/reagent_containers/syringe, +/obj/item/reagent_containers/dropper, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 9 + }, +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron/white, +/area/station/medical/virology) +"wqf" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/sign/poster/contraband/pwr_game/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"wqk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/aux_eva) +"wql" = ( +/obj/structure/frame/computer, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/station/service/electronic_marketing_den) +"wqm" = ( +/obj/machinery/power/port_gen/pacman, +/obj/effect/turf_decal/bot, +/obj/machinery/airalarm/directional/east, +/turf/open/floor/iron/dark, +/area/station/engineering/storage) +"wqo" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, +/obj/machinery/atmospherics/pipe/bridge_pipe/yellow/visible{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) +"wqq" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain/private) +"wqB" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/light/small/directional/north, +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"wqE" = ( +/turf/closed/wall/rust, +/area/station/maintenance/abandon_office) +"wqJ" = ( +/obj/structure/table_frame, +/turf/open/floor/plating, +/area/station/maintenance/abandon_wrestle) +"wqX" = ( +/obj/effect/turf_decal/delivery, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/exit/departure_lounge) +"wra" = ( +/obj/machinery/space_heater, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/station/maintenance/central) +"wrb" = ( +/obj/structure/table, +/obj/effect/spawner/random/contraband/narcotics, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"wrc" = ( +/obj/structure/curtain, +/obj/machinery/iv_drip, +/obj/effect/turf_decal/tile/blue/fourcorners, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"wrd" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/light/directional/east, +/obj/item/kirbyplants/random, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/port) +"wrj" = ( +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/command) +"wrq" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/machinery/button/door/directional/north{ + id = "visitation"; + name = "Visitation Shutters"; + pixel_x = 6; + req_access = list("brig") + }, +/turf/open/floor/iron, +/area/station/security/prison/visit) +"wrr" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/effect/mapping_helpers/airlock/abandoned, +/turf/open/floor/plating, +/area/station/maintenance/central) +"wrs" = ( +/obj/effect/turf_decal/siding/wood/corner, +/obj/machinery/duct, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/captain) +"wru" = ( +/obj/machinery/door/airlock/security{ + name = "Isolation Cell 2"; + id_tag = "IsolationCell_2" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/security/brig, +/turf/open/floor/iron/dark, +/area/station/security/prison/safe) +"wry" = ( +/obj/structure/window/reinforced/tinted/spawner/directional/north, +/obj/structure/grille, +/obj/structure/barricade/wooden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"wrz" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/structure/spirit_board, +/obj/effect/heretic_rune/big, +/turf/open/floor/cult, +/area/station/maintenance/cult_chapel_maint) +"wrC" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 10 + }, +/obj/machinery/newscaster/directional/south, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"wrI" = ( +/obj/effect/decal/cleanable/glass, +/obj/item/shard, +/turf/open/floor/iron/grimy, +/area/station/maintenance/starboard/fore) +"wrJ" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"wrL" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/railing, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_port) +"wrN" = ( +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/turf/open/floor/iron/dark/herringbone, +/area/station/security/brig) +"wrR" = ( +/obj/effect/decal/cleanable/glass, +/obj/structure/grille/broken, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"wrV" = ( +/obj/machinery/photocopier, +/turf/open/floor/wood, +/area/station/service/lawoffice) +"wse" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"wsf" = ( +/obj/machinery/exodrone_launcher, +/obj/effect/turf_decal/box, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plating, +/area/station/cargo/drone_bay) +"wsg" = ( +/obj/effect/turf_decal/delivery/red, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/window/preopen{ + id = "prisonlockdown3"; + name = "Lockdown" + }, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/iron/dark, +/area/station/security/prison/upper) +"wsh" = ( +/obj/item/kirbyplants/random, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/wood, +/area/station/maintenance/abandon_office) +"wsk" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/engine, +/area/station/science/ordnance) +"wsl" = ( +/turf/open/floor/wood, +/area/station/hallway/secondary/service) +"wst" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/smart/simple/violet/visible/layer2{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) +"wsu" = ( +/obj/machinery/door/airlock/wood, +/obj/effect/turf_decal/siding/wood, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/nt_rep) +"wsv" = ( +/obj/structure/hedge, +/obj/effect/turf_decal/tile/purple/half{ + dir = 8 + }, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/iron/white/side{ + dir = 8 + }, +/area/station/science/research) +"wsw" = ( +/obj/machinery/smartfridge/chemistry/preloaded{ + name = "Factory chemical storage" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "chem_lockdown"; + name = "Chemistry Shutters" + }, +/turf/open/floor/iron, +/area/station/medical/storage) +"wsy" = ( +/obj/item/spear, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/burnt_floor, +/obj/item/clothing/head/helmet/old{ + pixel_y = 9 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/security/prison/upper) +"wsF" = ( +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_port) +"wsG" = ( +/obj/effect/turf_decal/box/white{ + color = "#52B4E9" + }, +/obj/effect/turf_decal/box/white{ + color = "#52B4E9" + }, +/obj/machinery/portable_atmospherics/canister/anesthetic_mix, +/obj/structure/sign/warning/chem_diamond/directional/east, +/turf/open/floor/iron/white, +/area/station/medical/coldroom) +"wsK" = ( +/obj/structure/table/wood, +/obj/item/grenade/chem_grenade/antiweed{ + pixel_x = -5; + pixel_y = 10 + }, +/obj/item/grenade/chem_grenade/antiweed{ + pixel_x = -2; + pixel_y = 6 + }, +/obj/item/grenade/chem_grenade/glitter/white, +/obj/item/grenade/chem_grenade/cleaner{ + pixel_x = 10; + pixel_y = 4 + }, +/obj/item/grenade/chem_grenade/cleaner{ + pixel_x = 10 + }, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"wsL" = ( +/obj/structure/closet, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/disposal) +"wsR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"wsU" = ( +/obj/effect/spawner/random/engineering/tracking_beacon, +/turf/open/floor/plating/reinforced{ + initial_gas_mix = "TEMP=2.7" + }, +/area/station/science/ordnance/bomb) +"wsY" = ( +/obj/structure/table/wood/poker, +/obj/item/toy/cards/deck, +/obj/item/reagent_containers/cup/glass/bottle/vodka{ + pixel_x = 9; + pixel_y = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet, +/area/station/maintenance/rus_gambling) +"wte" = ( +/obj/structure/girder, +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"wtf" = ( +/turf/closed/wall, +/area/station/command/heads_quarters/qm) +"wtk" = ( +/obj/machinery/light/floor/has_bulb, +/turf/open/floor/iron/shuttle/evac/airless, +/area/space/nearstation) +"wto" = ( +/obj/machinery/door/airlock/engineering{ + name = "Construction Area" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/construction, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/secondary/construction) +"wtq" = ( +/obj/machinery/status_display/ai/directional/north, +/obj/machinery/light/directional/north, +/obj/structure/table/reinforced, +/obj/item/modular_computer/laptop/preset/civilian, +/turf/open/floor/iron/white/smooth_half, +/area/station/science/explab) +"wtu" = ( +/obj/structure/closet/secure_closet/engineering_personal, +/obj/machinery/newscaster/directional/north, +/obj/machinery/light/directional/north, +/obj/item/inducer, +/turf/open/floor/iron/dark, +/area/station/engineering/break_room) +"wtv" = ( +/obj/machinery/light/directional/west, +/turf/open/floor/iron, +/area/station/hallway/secondary/command) +"wtE" = ( +/turf/open/floor/iron/stairs/right, +/area/station/hallway/primary/central) +"wtH" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/effect/turf_decal/stripes, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"wtM" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/hallway/primary/port) +"wtN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/north, +/obj/structure/sign/poster/contraband/random/directional/north, +/turf/open/floor/wood, +/area/station/maintenance/abandon_office) +"wtP" = ( +/obj/machinery/door/airlock/external{ + space_dir = 8 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/external, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"wtQ" = ( +/turf/closed/wall, +/area/station/security/checkpoint/science/research) +"wtW" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/security/prison_upper) +"wtZ" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/loading_area, +/obj/structure/cable, +/obj/machinery/door/window/brigdoor/right/directional/south{ + name = "Customs Desk"; + req_access = list("command") + }, +/turf/open/floor/iron/dark/side, +/area/station/security/checkpoint/customs/auxiliary) +"wub" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 6 + }, +/obj/machinery/digital_clock/directional/north, +/obj/machinery/computer/department_orders/medical{ + dir = 2 + }, +/turf/open/floor/iron, +/area/station/medical/break_room) +"wuf" = ( +/obj/machinery/door/airlock/bathroom{ + name = "Restroom" + }, +/obj/machinery/duct, +/turf/open/floor/carpet/red, +/area/station/commons/dorms/room6) +"wui" = ( +/obj/machinery/light/directional/south, +/turf/open/floor/iron, +/area/station/service/chapel) +"wup" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/station/service/cafeteria) +"wuq" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ + dir = 5 + }, +/obj/machinery/light/directional/east, +/obj/machinery/light_switch/directional/east, +/obj/machinery/portable_atmospherics/scrubber, +/obj/machinery/camera/autoname/directional/east, +/turf/open/floor/iron, +/area/station/engineering/atmos/pumproom) +"wus" = ( +/obj/machinery/door/airlock/engineering/glass{ + name = "Engineering Escape Pod" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/engineering, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_starboard) +"wuy" = ( +/obj/machinery/door/airlock{ + id_tag = "Dorm7"; + name = "Cabin 7" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/commons/dorms/room8) +"wuC" = ( +/obj/structure/flora/bush/fullgrass, +/obj/structure/flora/bush/lavendergrass, +/turf/open/floor/grass, +/area/station/service/chapel) +"wuD" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/obj/effect/turf_decal/siding/purple{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/command/heads_quarters/rd) +"wuE" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/security/prison/upper) +"wuF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/clothing/under/rank/cargo/miner, +/turf/open/misc/asteroid/airless, +/area/space/nearstation) +"wuI" = ( +/obj/structure/table/glass, +/obj/item/petri_dish{ + pixel_x = 4; + pixel_y = 7 + }, +/obj/item/petri_dish, +/obj/item/radio/intercom/directional/east, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/science/cytology) +"wuM" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) +"wuP" = ( +/obj/structure/closet/crate, +/obj/item/clothing/gloves/color/fyellow/old, +/turf/open/floor/plating, +/area/station/maintenance/department/security) +"wuS" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"wuW" = ( +/obj/machinery/light/small/broken/directional/south, +/obj/effect/spawner/random/trash/cigbutt, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"wvd" = ( +/obj/structure/railing, +/turf/open/floor/carpet, +/area/station/service/bar/atrium) +"wve" = ( +/obj/structure/closet/crate/coffin, +/obj/effect/turf_decal/siding/wood, +/obj/effect/landmark/event_spawn, +/obj/item/radio/intercom/directional/north, +/obj/machinery/camera/autoname/directional/north, +/turf/open/floor/wood, +/area/station/service/chapel/funeral) +"wvg" = ( +/obj/structure/closet/crate/goldcrate, +/obj/item/stack/spacecash/c500, +/obj/item/stack/spacecash/c500, +/obj/item/stack/spacecash/c500, +/obj/item/stack/spacecash/c500, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/nuke_storage) +"wvi" = ( +/obj/effect/turf_decal/trimline/purple/filled/line, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"wvk" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron/freezer, +/area/station/command/heads_quarters/captain/private) +"wvm" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"wvn" = ( +/obj/structure/window/spawner/directional/east, +/obj/structure/window/spawner/directional/west, +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/flowers_yw, +/turf/open/floor/grass, +/area/station/hallway/primary/port) +"wvo" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/security/brig) +"wvt" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/item/reagent_containers/cup/bucket, +/turf/open/floor/iron, +/area/station/maintenance/fore/upper) +"wvB" = ( +/obj/effect/turf_decal/tile/red, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron/dark/corner, +/area/station/security/office) +"wvC" = ( +/obj/structure/rack, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/suit/hazardvest, +/turf/open/floor/iron, +/area/station/hallway/secondary/construction) +"wvN" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/secondary/command) +"wvS" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 6 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"wvT" = ( +/obj/structure/cable, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/components/trinary/filter/layer2, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/atmos_aux_port) +"wvV" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/cyan/visible, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/engineering/atmos/pumproom) +"wvX" = ( +/obj/structure/table/wood, +/obj/item/newspaper, +/obj/item/reagent_containers/cup/glass/coffee{ + pixel_x = -3; + pixel_y = 9 + }, +/turf/open/floor/wood, +/area/station/service/cafeteria) +"wvZ" = ( +/obj/effect/turf_decal/stripes{ + dir = 10 + }, +/turf/open/floor/plating, +/area/station/cargo/miningdock) +"www" = ( +/turf/closed/wall, +/area/station/maintenance/department/security/lesser) +"wwD" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/storage) +"wwG" = ( +/obj/machinery/door/airlock/engineering/glass{ + name = "Primary Tool Storage" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/commons/storage/primary) +"wwR" = ( +/obj/machinery/light/small/directional/south, +/obj/effect/turf_decal/tile/red/real_red/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/common/laser_tag) +"wxd" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor, +/obj/machinery/mineral/ore_redemption{ + input_dir = 4; + output_dir = 8 + }, +/turf/open/floor/plating, +/area/station/cargo/miningoffice) +"wxg" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white/corner{ + dir = 1 + }, +/area/station/hallway/secondary/entry) +"wxk" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/structure/chair/office/light, +/turf/open/floor/iron, +/area/station/science/xenobiology) +"wxt" = ( +/obj/structure/cable, +/obj/machinery/computer/cryopod/directional/north, +/turf/open/floor/iron/white/textured, +/area/station/common/cryopods) +"wxu" = ( +/obj/structure/transit_tube/curved/flipped, +/turf/open/floor/iron/shuttle/arrivals/airless, +/area/space/nearstation) +"wxw" = ( +/obj/machinery/computer/mecha, +/obj/effect/turf_decal/stripes, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/rd) +"wxH" = ( +/obj/structure/railing, +/obj/effect/spawner/random/trash/graffiti, +/turf/closed/wall/rust, +/area/station/security/prison/upper) +"wxI" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/effect/landmark/generic_maintenance_landmark, +/turf/open/floor/iron, +/area/station/maintenance/solars/port/fore) +"wxK" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 + }, +/obj/item/paper_bin{ + pixel_y = 3 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/grimy, +/area/station/ai_monitored/turret_protected/aisat_interior) +"wxW" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/bot, +/obj/item/clothing/head/cone, +/obj/item/clothing/head/cone, +/obj/item/clothing/head/cone, +/obj/item/clothing/head/cone, +/obj/item/clothing/head/cone, +/obj/machinery/status_display/ai/directional/north, +/turf/open/floor/iron/dark, +/area/station/engineering/main) +"wxY" = ( +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/commons/dorms) +"wyc" = ( +/turf/open/floor/carpet, +/area/station/service/chapel/funeral) +"wyf" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/security/brig) +"wyg" = ( +/obj/structure/table, +/obj/item/stack/spacecash/c20{ + pixel_y = 5 + }, +/obj/item/stack/spacecash/c50, +/obj/item/crowbar, +/obj/item/wirecutters, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"wyi" = ( +/obj/effect/turf_decal/stripes/red/line{ + dir = 5 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"wyn" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 9 + }, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) +"wyp" = ( +/obj/effect/decal/remains/human, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"wyq" = ( +/obj/item/kirbyplants/random, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/machinery/camera/directional/east{ + c_tag = "Courtroom - Holding area" + }, +/turf/open/floor/iron/dark, +/area/station/security/courtroom) +"wyr" = ( +/obj/machinery/status_display/evac/directional, +/turf/closed/wall, +/area/station/command/heads_quarters/captain/private) +"wyt" = ( +/obj/structure/table, +/obj/item/storage/pill_bottle/maintenance_pill/full, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_port) +"wyz" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark/small, +/area/station/security/prison/safe) +"wyA" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters{ + dir = 4; + id = "portbow_maint_shutters" + }, +/turf/open/floor/iron/grimy, +/area/station/maintenance/starboard/fore) +"wyC" = ( +/obj/machinery/door/airlock/command{ + name = "Auxiliary E.V.A. Storage" + }, +/obj/structure/barricade/wooden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/command/eva, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/aux_eva) +"wyF" = ( +/obj/machinery/power/turbine/core_rotor, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/maintenance/disposal/incinerator) +"wyJ" = ( +/obj/effect/turf_decal/trimline/white, +/obj/structure/marker_beacon/burgundy, +/turf/open/floor/iron/shuttle/evac/airless, +/area/space/nearstation) +"wyK" = ( +/obj/structure/table, +/obj/item/pizzabox/meat, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/eighties, +/area/station/maintenance/abandon_arcade) +"wyL" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/commons/dorms/room1) +"wyR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"wyS" = ( +/obj/machinery/modular_computer/preset/civilian, +/obj/machinery/button/door/directional/north{ + id = "roboticsprivacy"; + name = "Robotics Privacy Controls"; + pixel_x = 24; + req_access = list("robotics") + }, +/turf/open/floor/iron/dark, +/area/station/science/robotics) +"wyU" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hall16"; + location = "hall15" + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"wyX" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"wzb" = ( +/obj/structure/window/reinforced/plasma/spawner/directional/south, +/obj/machinery/power/shuttle_engine/heater{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_port) +"wze" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/cargo/lobby) +"wzh" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/medical{ + name = "Recovery Ward" + }, +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/medical/patients_rooms) +"wzl" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/service/chapel) +"wzm" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/security/prison_upper) +"wzn" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plating, +/area/station/maintenance/department/science/upper) +"wzw" = ( +/obj/structure/table/glass, +/obj/item/phone{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/cigbutt/cigarbutt{ + pixel_x = 5; + pixel_y = -1 + }, +/obj/item/radio/intercom/directional/east, +/obj/machinery/camera/directional/east{ + c_tag = "AI Satellite - Transit Tube"; + name = "ai camera"; + network = list("minisat"); + start_active = 1 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/transit_tube) +"wzz" = ( +/obj/machinery/door/airlock/external{ + space_dir = 8 + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "ToxinsExhaust" + }, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"wzA" = ( +/obj/effect/decal/cleanable/garbage, +/turf/open/floor/plating, +/area/station/maintenance/department/security/prison_upper) +"wzH" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/iron/dark/side, +/area/station/ai_monitored/command/storage/eva) +"wzI" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/iron/smooth, +/area/station/cargo/miningdock) +"wzP" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/iron, +/area/station/commons/fitness) +"wzW" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/atmos/pumproom) +"wzY" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/item/paper_bin{ + pixel_y = 3 + }, +/obj/item/pen{ + pixel_y = 3 + }, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"wAb" = ( +/obj/structure/cable, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/iron/stairs{ + dir = 1 + }, +/area/station/engineering/atmos/test_chambers) +"wAc" = ( +/obj/structure/table, +/obj/item/storage/belt/utility, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"wAe" = ( +/obj/structure/closet, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/spawner/random/maintenance, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"wAf" = ( +/obj/machinery/electroplater, +/turf/open/floor/wood/large, +/area/station/service/forge) +"wAg" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 6 + }, +/obj/structure/flora/bush/jungle/a/style_3, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"wAh" = ( +/obj/effect/turf_decal/bot/left, +/turf/open/floor/engine, +/area/station/engineering/atmos/hfr_room) +"wAk" = ( +/obj/machinery/door/airlock{ + name = "Theater Backstage" + }, +/obj/effect/mapping_helpers/airlock/access/all/service/theatre, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/dorms) +"wAs" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/turf/open/space/basic, +/area/space/nearstation) +"wAB" = ( +/obj/structure/table/wood/fancy/green, +/obj/item/modular_computer/laptop/preset/civilian{ + pixel_y = 7 + }, +/obj/machinery/computer/security/telescreen/entertainment/directional/north, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/nt_rep) +"wAC" = ( +/obj/structure/noticeboard/directional/east, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet, +/area/station/service/chapel/office) +"wAE" = ( +/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/cargo/drone_bay) +"wAN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"wAS" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/smooth_edge{ + dir = 8 + }, +/area/station/engineering/atmos/hfr_room) +"wAU" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/spawner/random/trash, +/obj/effect/spawner/random/trash/mess, +/obj/effect/decal/cleanable/dirt, +/obj/structure/fluff/broken_flooring, +/turf/open/floor/plating, +/area/station/science/tele_sci) +"wAY" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Central Upper Hallway" + }, +/turf/open/floor/iron, +/area/station/commons/dorms) +"wBn" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "Port to Filter" + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"wBq" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/dorms) +"wBv" = ( +/obj/structure/table/wood, +/obj/item/book/manual/wiki/security_space_law{ + pixel_x = -7; + pixel_y = 4 + }, +/obj/item/flashlight/lamp/green{ + pixel_x = 5; + pixel_y = 1 + }, +/turf/open/floor/carpet/green, +/area/station/command/heads_quarters/nt_rep) +"wBy" = ( +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/lavendergrass, +/obj/structure/flora/bush/flowers_yw, +/obj/structure/flora/bush/ferny, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/grass, +/area/station/hallway/secondary/exit/departure_lounge) +"wBB" = ( +/obj/structure/frame/computer{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/light/small/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/console_room) +"wBE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/wood, +/area/station/service/electronic_marketing_den) +"wBI" = ( +/obj/structure/chair/pew/right{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/service/barber/spa) +"wBL" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/machinery/duct, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"wBP" = ( +/obj/machinery/button/door{ + id = "lawyerprivacy"; + name = "Lawyer's Privacy Control"; + pixel_x = -1; + pixel_y = 25 + }, +/obj/structure/filingcabinet/employment, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/wood, +/area/station/service/lawoffice) +"wBX" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 5 + }, +/obj/structure/railing, +/turf/closed/wall/rust, +/area/station/cargo/miningdock) +"wCa" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/light/small/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"wCf" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/holopad, +/obj/structure/cable, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/engineering/storage/tech) +"wCi" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron/white, +/area/station/science/research) +"wCw" = ( +/obj/machinery/camera/directional/south{ + c_tag = "Courtroom - Holding Cell" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/security/courtroom) +"wCG" = ( +/obj/structure/urinal{ + pixel_y = 28 + }, +/obj/structure/window/reinforced/tinted/spawner/directional/east, +/turf/open/floor/iron/white, +/area/station/commons/toilet/restrooms) +"wCH" = ( +/obj/structure/table, +/obj/item/stack/sheet/iron/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stock_parts/matter_bin{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/stock_parts/matter_bin, +/obj/item/stock_parts/micro_laser, +/obj/item/stock_parts/capacitor, +/obj/item/stock_parts/scanning_module{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/stock_parts/scanning_module{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/stock_parts/manipulator, +/obj/item/stock_parts/manipulator, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/science/lab) +"wCL" = ( +/obj/structure/closet/l3closet/janitor, +/obj/item/grenade/chem_grenade/cleaner, +/obj/item/grenade/chem_grenade/cleaner, +/obj/item/grenade/chem_grenade/cleaner, +/obj/item/grenade/chem_grenade/cleaner, +/obj/item/grenade/chem_grenade/cleaner, +/obj/item/grenade/chem_grenade/cleaner, +/obj/item/storage/belt/janitor, +/obj/item/storage/belt/janitor, +/obj/item/clothing/shoes/galoshes/dry, +/obj/item/clothing/shoes/galoshes, +/obj/item/holosign_creator/janibarrier, +/obj/item/holosign_creator/janibarrier, +/obj/machinery/status_display/ai/directional/north, +/obj/effect/turf_decal/siding/purple{ + dir = 10 + }, +/turf/open/floor/iron/dark, +/area/station/service/janitor) +"wCN" = ( +/obj/structure/cable, +/obj/machinery/light/small/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"wCO" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron, +/area/station/command/bridge) +"wCR" = ( +/obj/machinery/computer/station_alert{ + dir = 1 + }, +/obj/machinery/light/directional/south, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/lobby) +"wCS" = ( +/obj/structure/closet/crate/wooden/toy, +/obj/machinery/light/small/directional/north, +/turf/open/floor/iron, +/area/station/service/theater) +"wCX" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/item/folder/red{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/folder/blue, +/obj/item/stamp/denied, +/obj/item/stamp, +/turf/open/floor/carpet/blue, +/area/station/service/lawoffice) +"wDa" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"wDc" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/item/paper/fluff/gateway{ + pixel_x = 9 + }, +/obj/item/paper_bin{ + pixel_y = 3 + }, +/obj/item/pen/fountain{ + pixel_y = 5 + }, +/obj/item/radio/intercom{ + dir = 8; + freerange = 1; + name = "Station Intercom (Captain)"; + pixel_y = 20 + }, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/captain/private) +"wDe" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/door/airlock/public/glass{ + name = "Central Hallway" + }, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"wDf" = ( +/obj/structure/fence/cut/large{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/structure/barricade/wooden/crude, +/obj/structure/curtain/bounty/start_closed, +/turf/open/floor/iron/dark/herringbone, +/area/station/cargo/miningdock) +"wDh" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/carpet, +/area/station/service/lawoffice) +"wDi" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/prison) +"wDj" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 5 + }, +/obj/machinery/light_switch/directional/east, +/obj/item/kirbyplants/random, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"wDk" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/science/explab) +"wDn" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 9 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/science) +"wDr" = ( +/obj/item/storage/secure/safe/directional/east, +/obj/structure/cable, +/obj/machinery/light/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/command/heads_quarters/hop) +"wDy" = ( +/obj/structure/bed, +/obj/item/bedsheet, +/obj/machinery/camera/autoname/directional/east, +/turf/open/floor/iron/dark, +/area/station/security/brig) +"wDB" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/stripes/corner, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/secondary/exit/departure_lounge) +"wDD" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/stripes{ + dir = 5 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "External Gas to Loop" + }, +/turf/open/floor/iron/dark, +/area/station/engineering/supermatter/room) +"wDJ" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start/hangover, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"wDK" = ( +/obj/structure/flora/bush/grassy, +/obj/machinery/growing/tray, +/turf/open/floor/grass, +/area/station/security/prison/garden) +"wDL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/security/detectives_office/private_investigators_office) +"wDM" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 10 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) +"wDY" = ( +/turf/closed/wall, +/area/station/service/barber/spa) +"wEf" = ( +/obj/structure/disposalpipe/sorting/mail{ + dir = 1; + name = "Bar Junction"; + sortType = 19 + }, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"wEk" = ( +/obj/effect/turf_decal/stripes/white/corner{ + dir = 8 + }, +/turf/open/floor/iron/shuttle/evac/airless, +/area/space/nearstation) +"wEl" = ( +/obj/structure/sign/poster/official/love_ian/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/command/heads_quarters/hop) +"wEn" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/binary/valve/digital/on/layer4, +/obj/machinery/atmospherics/components/binary/valve/digital/on/layer2, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"wEw" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen/diner) +"wEA" = ( +/obj/effect/turf_decal/bot, +/obj/item/beacon, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/greenglow, +/obj/item/toy/brokenradio, +/turf/open/floor/engine, +/area/station/science/tele_sci) +"wEC" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/chair/sofa/bench{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron/cafeteria, +/area/station/hallway/secondary/entry) +"wED" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/commons/dorms) +"wEG" = ( +/obj/structure/table/greyscale, +/obj/item/toy/plush/puppycat, +/turf/open/floor/mineral/titanium/tiled/white{ + name = "Padded tile" + }, +/area/station/medical/aslyum) +"wEJ" = ( +/obj/structure/closet/secure_closet/brig/genpop, +/obj/effect/turf_decal/bot, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/iron/dark, +/area/station/security/prison) +"wEM" = ( +/obj/machinery/power/shuttle_engine/heater{ + dir = 8 + }, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"wEX" = ( +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron/stairs/left{ + dir = 8 + }, +/area/station/medical/medbay/central) +"wEY" = ( +/obj/machinery/door/airlock/medical/glass{ + name = "Cryogenics" + }, +/obj/effect/mapping_helpers/airlock/access/all/medical/general, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/white, +/area/station/medical/cryo) +"wEZ" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"wFb" = ( +/obj/structure/girder, +/obj/structure/grille/broken, +/obj/structure/window/spawner/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"wFh" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/machinery/light/small/directional/east, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron/smooth_edge, +/area/station/command/secure_bunker) +"wFl" = ( +/obj/structure/plasticflaps, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=4"; + location = "Disposals" + }, +/turf/open/floor/plating, +/area/station/maintenance/disposal) +"wFq" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"wFA" = ( +/obj/machinery/holopad, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"wFH" = ( +/obj/effect/spawner/random/structure/steam_vent, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/lesser) +"wFN" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/command/bridge) +"wFW" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/machinery/conveyor{ + dir = 10; + id = "Luggagebelt" + }, +/obj/structure/sign/departments/cargo/directional/south, +/obj/machinery/light/no_nightlight/directional/south, +/turf/open/floor/plating, +/area/station/security/checkpoint/customs) +"wGa" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/machinery/door/window/left/directional/south{ + name = "Drone Bay" + }, +/turf/open/floor/plating, +/area/station/cargo/drone_bay) +"wGe" = ( +/obj/structure/closet/toolcloset, +/obj/effect/turf_decal/bot, +/obj/machinery/light/small/directional/north, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/hfr_room) +"wGh" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"wGm" = ( +/obj/effect/turf_decal/bot, +/obj/structure/rack/shelf, +/obj/item/clothing/under/suit/black_really{ + pixel_y = 9 + }, +/obj/item/clothing/under/suit/burgundy{ + pixel_x = 7; + pixel_y = 10 + }, +/obj/item/clothing/under/suit/checkered{ + pixel_x = -6; + pixel_y = -3 + }, +/obj/item/clothing/under/suit/charcoal{ + pixel_y = -3 + }, +/obj/item/clothing/under/suit/beige{ + pixel_x = 7; + pixel_y = -5 + }, +/turf/open/floor/iron/dark, +/area/station/common/tailoring) +"wGn" = ( +/obj/item/tank/internals/oxygen, +/obj/item/clothing/mask/breath, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"wGx" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/sign/poster/random/directional/south, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"wGD" = ( +/obj/structure/chair/stool/bar/directional/north, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/service/bar/atrium) +"wGE" = ( +/obj/structure/chair/stool/bar/directional/north, +/obj/effect/turf_decal/tile/bar/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/service/bar/atrium) +"wGO" = ( +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"wGQ" = ( +/obj/item/cigbutt, +/obj/effect/landmark/generic_maintenance_landmark, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"wGR" = ( +/obj/structure/punching_bag, +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/commons/fitness) +"wGZ" = ( +/obj/machinery/computer/exoscanner_control{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/iron/dark/side, +/area/station/cargo/drone_bay) +"wHf" = ( +/obj/structure/table, +/obj/item/clothing/shoes/russian, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"wHi" = ( +/obj/structure/cable, +/obj/effect/landmark/start/botanist, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"wHn" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/station/maintenance/port/upper) +"wHu" = ( +/obj/structure/drain/big, +/obj/item/soap/nanotrasen, +/obj/machinery/duct, +/turf/open/floor/iron/freezer, +/area/station/security/prison/shower) +"wHw" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/iron/dark, +/area/station/science/xenobiology) +"wHA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/item/trash/cnds, +/obj/structure/cable, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"wHB" = ( +/obj/machinery/status_display/ai/directional/north, +/turf/open/floor/iron/stairs/left{ + dir = 8 + }, +/area/station/hallway/secondary/command) +"wHF" = ( +/obj/machinery/vending/hydronutrients, +/turf/open/floor/iron/dark, +/area/station/common/night_club) +"wHI" = ( +/turf/closed/wall, +/area/station/maintenance/central) +"wHW" = ( +/obj/machinery/status_display/ai/directional/north, +/obj/structure/cable, +/obj/structure/railing, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai) +"wIe" = ( +/obj/structure/chair/sofa/bench/left{ + dir = 4; + pixel_x = -5 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/commons/dorms) +"wIg" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"wIk" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, +/obj/machinery/atmospherics/pipe/color_adapter, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) +"wIs" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/security/prison/workout) +"wIv" = ( +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/iron/large, +/area/station/ai_monitored/turret_protected/ai_upload) +"wIx" = ( +/obj/structure/cable, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/trimline/red/filled/line{ + color = "#DE3A3A" + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark, +/turf/open/floor/iron/dark/side, +/area/station/security/brig) +"wIE" = ( +/turf/open/floor/iron, +/area/station/maintenance/abandon_holding_cell) +"wIM" = ( +/obj/effect/spawner/structure/window/reinforced/tinted, +/turf/open/floor/plating, +/area/station/medical/aslyum) +"wIN" = ( +/obj/structure/chair/sofa/bench{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/filled/line, +/obj/effect/turf_decal/trimline/red/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/side, +/area/station/security/lockers) +"wIO" = ( +/obj/structure/table/wood, +/obj/structure/closet/crate/cardboard{ + pixel_y = 5 + }, +/obj/item/clothing/shoes/jackboots/timbs, +/obj/item/clothing/suit/brownfurrich/public, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/carpet/royalblack, +/area/station/command/heads_quarters/qm) +"wJa" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/structure/cable, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/machinery/light/small/directional/north, +/turf/open/floor/iron/dark, +/area/station/service/power_station) +"wJd" = ( +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/bot, +/obj/machinery/light/small/directional/east, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/engineering/atmos) +"wJe" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/obj/machinery/light/directional/east, +/obj/machinery/camera/directional/east{ + c_tag = "Medbay - Central Port"; + name = "medbay camera"; + network = list("ss13","medbay") + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"wJg" = ( +/obj/machinery/button/door/directional/west{ + id = "prison release"; + name = "Labor Camp Shuttle Lockdown"; + req_access = list("brig") + }, +/obj/structure/chair/sofa/bench/right{ + dir = 4; + pixel_x = -5 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/machinery/camera/autoname/directional/west, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"wJj" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/science/research) +"wJl" = ( +/obj/effect/spawner/random/trash/graffiti, +/turf/closed/wall, +/area/station/service/power_station) +"wJr" = ( +/obj/item/stack/sheet/cardboard, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/dorms) +"wJu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/mecha_wreckage/clarke, +/turf/open/floor/iron/recharge_floor, +/area/station/science/research/abandoned) +"wJx" = ( +/obj/structure/table/glass, +/obj/item/paper_bin{ + pixel_y = 3 + }, +/obj/item/pen{ + pixel_y = 3 + }, +/obj/machinery/light/directional/west, +/turf/open/floor/carpet, +/area/station/science/ordnance/office) +"wJB" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 5 + }, +/obj/machinery/firealarm/directional/east, +/obj/machinery/light_switch/directional/north, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/structure/table/glass, +/obj/item/stack/medical/mesh{ + pixel_x = -6 + }, +/obj/item/healthanalyzer/simple{ + pixel_y = 8 + }, +/turf/open/floor/iron/white, +/area/station/security/medical) +"wJQ" = ( +/obj/structure/chair/office{ + dir = 8 + }, +/obj/effect/landmark/start/head_of_personnel, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/hop) +"wJZ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/layer_manifold/violet/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/engineering/atmos/pumproom) +"wKa" = ( +/obj/effect/turf_decal/trimline/yellow/filled/corner{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/pharmacy) +"wKd" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/plaque/static_plaque/golden/captain{ + pixel_y = -32 + }, +/obj/machinery/modular_computer/preset/command{ + dir = 1; + pixel_y = -3 + }, +/obj/machinery/camera/directional/south{ + c_tag = "Command - Representative's Office"; + name = "command camera" + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/nt_rep) +"wKi" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"wKx" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/wood, +/area/station/medical/psychology) +"wKL" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"wKQ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/engineering/atmos/office) +"wLc" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/iron/shuttle/arrivals/airless, +/area/space/nearstation) +"wLn" = ( +/turf/open/floor/iron, +/area/station/cargo/sorting) +"wLA" = ( +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat/hallway) +"wLC" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/security/prison/workout) +"wLD" = ( +/obj/structure/table/reinforced, +/obj/effect/spawner/random/techstorage/arcade_boards, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) +"wLE" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/duct, +/turf/open/floor/carpet/orange, +/area/station/commons/dorms/room1) +"wLH" = ( +/obj/effect/landmark/start/botanist, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"wLM" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hallup4"; + location = "hallup3" + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"wLR" = ( +/obj/structure/chair/sofa/bench/left{ + dir = 4; + pixel_x = -5 + }, +/turf/open/floor/wood, +/area/station/hallway/primary/central) +"wLS" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 1; + name = "Law Junction"; + sortType = 29 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"wLV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/mess, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"wLW" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"wMa" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/science/ordnance/testlab) +"wMb" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/firecloset, +/turf/open/floor/iron, +/area/station/medical/virology) +"wMc" = ( +/obj/effect/spawner/random/structure/crate, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"wMd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes{ + dir = 9 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"wMj" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"wMo" = ( +/obj/structure/lattice/catwalk, +/turf/open/openspace, +/area/station/hallway/primary/upper) +"wMp" = ( +/obj/structure/table/rolling, +/obj/item/restraints/handcuffs/cable{ + pixel_y = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/station/maintenance/department/security/prison_upper) +"wMq" = ( +/obj/structure/window/reinforced/plasma/spawner/directional/south, +/obj/machinery/power/shuttle_engine/heater, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"wMs" = ( +/obj/structure/table/reinforced, +/obj/item/book/manual/wiki/security_space_law, +/obj/item/radio, +/obj/machinery/status_display/ai/directional/south, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/iron/dark/side, +/area/station/security/checkpoint/science/research) +"wMu" = ( +/obj/machinery/door/airlock/medical/glass{ + name = "Medbay Storage" + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/medical/general, +/turf/open/floor/iron/white, +/area/station/medical/storage) +"wMx" = ( +/turf/closed/wall/rust, +/area/station/maintenance/port/upper) +"wMy" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/station/engineering/atmos) +"wME" = ( +/obj/structure/rack, +/obj/item/reagent_containers/cup/bucket{ + pixel_x = -4 + }, +/obj/item/reagent_containers/cup/bucket{ + pixel_x = 4 + }, +/obj/item/reagent_containers/cup/bucket, +/obj/item/wirecutters, +/obj/item/shovel/spade, +/obj/item/shovel/spade, +/obj/item/cultivator, +/obj/item/cultivator, +/obj/item/storage/bag/plants, +/obj/item/storage/bag/plants, +/obj/item/secateurs, +/obj/item/secateurs, +/obj/item/plant_analyzer, +/obj/item/plant_analyzer, +/obj/machinery/firealarm/directional/north, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/security/prison/garden) +"wMN" = ( +/obj/structure/chair/sofa/bench/right{ + dir = 8; + pixel_x = 5 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/central/aft) +"wMO" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/window/brigdoor/right/directional/east{ + name = "Security Desk"; + req_access = list("security") + }, +/turf/open/floor/iron, +/area/station/security/checkpoint/escape) +"wMT" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/kitchen, +/area/station/service/theater) +"wMU" = ( +/obj/structure/window/reinforced/plasma/spawner/directional/north, +/obj/machinery/power/shuttle_engine/heater{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/station/maintenance/port/upper) +"wNn" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/item/stack/sheet/mineral/plasma{ + amount = 5 + }, +/obj/item/storage/box/monkeycubes, +/turf/open/floor/iron, +/area/station/medical/virology/isolation) +"wNp" = ( +/obj/effect/turf_decal/trimline/purple/line{ + dir = 10 + }, +/turf/open/floor/iron/white/side{ + dir = 10 + }, +/area/station/science/research) +"wNu" = ( +/obj/structure/table/glass, +/obj/structure/microscope{ + pixel_x = -16; + pixel_y = 7 + }, +/obj/item/stack/sheet/mineral/plasma{ + amount = 5 + }, +/obj/item/stack/sheet/mineral/uranium/five, +/obj/item/clipboard, +/obj/item/reagent_containers/spray/cleaner{ + pixel_x = -3; + pixel_y = 2 + }, +/obj/item/reagent_containers/dropper, +/obj/item/reagent_containers/syringe/antiviral, +/turf/open/floor/iron/white, +/area/station/medical/virology) +"wNx" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/red/line, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/security/brig) +"wNy" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 5 + }, +/obj/machinery/modular_computer/preset/cargochat/science{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/science/lab) +"wNA" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/service/chapel/office) +"wNF" = ( +/obj/structure/chair/sofa/bench/left{ + dir = 4; + pixel_x = -5 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/secondary/entry) +"wNU" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/stairs, +/area/station/common/wrestling/arena) +"wNW" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/door/firedoor, +/obj/machinery/firealarm/directional/west, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/public/glass{ + name = "Central Upper Hallway" + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"wOb" = ( +/turf/open/floor/iron/stairs/medium, +/area/station/hallway/primary/central/aft) +"wOc" = ( +/obj/structure/table/reinforced, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/cell/high, +/obj/item/controller, +/obj/item/compact_remote, +/obj/item/compact_remote, +/obj/item/multitool/circuit{ + pixel_x = -7 + }, +/obj/item/multitool/circuit, +/obj/item/multitool/circuit{ + pixel_x = 7 + }, +/obj/structure/railing/wood, +/turf/open/floor/wood/large, +/area/station/science/circuits) +"wOl" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Custodial Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/service/janitor, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/checker, +/area/station/maintenance/department/crew_quarters/bar) +"wOq" = ( +/obj/machinery/duct, +/obj/machinery/light/floor/has_bulb, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"wOB" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"wOH" = ( +/obj/effect/turf_decal/stripes, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/security/execution/transfer) +"wOR" = ( +/obj/structure/cable, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Medbay Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/medical/general, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"wOW" = ( +/obj/machinery/vending/clothing, +/obj/effect/turf_decal/bot, +/obj/machinery/light/directional/east, +/turf/open/floor/iron, +/area/station/commons/locker) +"wOZ" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/service/library/printer) +"wPb" = ( +/obj/structure/table/reinforced, +/obj/item/phone{ + desc = "Supposedly a direct line to Nanotrasen Central Command. It's not even plugged in."; + pixel_x = -5; + pixel_y = 6 + }, +/obj/item/paper_bin{ + pixel_x = 7 + }, +/obj/item/pen{ + pixel_x = 7 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/button/polarizer{ + id = "interro"; + pixel_x = -6; + pixel_y = -4 + }, +/turf/open/floor/iron/dark, +/area/station/security/interrogation) +"wPc" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"wPf" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/obj/machinery/vending/wallmed/directional/east, +/obj/machinery/camera/directional/east{ + c_tag = "Medbay - Waiting Room"; + name = "medbay camera"; + network = list("ss13","medbay") + }, +/obj/machinery/light/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) +"wPg" = ( +/obj/machinery/door/airlock/maintenance, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"wPy" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/camera/directional/east{ + c_tag = "Central Hallway - Starboard Fore Central"; + name = "hallway camera" + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"wPA" = ( +/obj/machinery/suit_storage_unit/mining/eva, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/qm) +"wPG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/garbage, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"wPO" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/airalarm/directional/south, +/obj/machinery/light/small/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/maintenance/solars/port/fore) +"wPS" = ( +/turf/closed/wall/r_wall, +/area/station/security/prison/shower) +"wPU" = ( +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"wPZ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/lesser) +"wQf" = ( +/obj/machinery/camera/preset/ordnance{ + dir = 5 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/reinforced{ + initial_gas_mix = "TEMP=2.7" + }, +/area/station/science/ordnance/bomb) +"wQh" = ( +/obj/machinery/door/airlock/research{ + name = "Containment Chamber" + }, +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/access/all/science/research, +/turf/open/floor/engine, +/area/station/science/explab) +"wQi" = ( +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ + dir = 4 + }, +/obj/structure/chair/sofa/bench/right{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/dark/corner{ + dir = 8 + }, +/area/station/maintenance/department/engineering/engine_aft_starboard) +"wQm" = ( +/obj/structure/closet/secure_closet/medical1, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 5 + }, +/obj/machinery/camera/directional/east{ + c_tag = "Medbay - Storage"; + name = "medbay camera"; + network = list("ss13","medbay") + }, +/obj/machinery/requests_console/directional/north{ + department = "Medbay"; + name = "Medbay Requests Console"; + pixel_x = 27; + pixel_y = 0 + }, +/obj/effect/mapping_helpers/requests_console/assistance, +/turf/open/floor/iron/white, +/area/station/medical/storage) +"wQs" = ( +/obj/machinery/power/port_gen/pacman/pre_loaded, +/turf/open/floor/plating, +/area/station/maintenance/department/security/lesser) +"wQt" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/effect/landmark/start/hangover, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/bar) +"wQu" = ( +/obj/structure/closet, +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"wQC" = ( +/obj/machinery/door/airlock/atmos/glass{ + name = "Atmospherics Test Chambers" + }, +/obj/structure/fans/tiny, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/turf/open/floor/engine/vacuum, +/area/station/engineering/atmos/test_chambers) +"wQE" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/service/hydroponics/garden/abandoned) +"wQH" = ( +/obj/effect/turf_decal/stripes{ + dir = 6 + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 6 + }, +/turf/open/floor/engine, +/area/station/command/heads_quarters/rd) +"wQI" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/transit_tube/horizontal, +/turf/open/floor/plating, +/area/station/engineering/transit_tube) +"wQK" = ( +/obj/effect/turf_decal/delivery/red, +/obj/machinery/door/airlock/security/old{ + glass = 1; + name = "Cafeteria" + }, +/obj/machinery/door/firedoor, +/obj/machinery/firealarm/directional/south, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "prison-mess-hall" + }, +/turf/open/floor/iron/dark, +/area/station/security/prison/mess) +"wQL" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Medbay Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/medical/morgue, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"wQN" = ( +/obj/structure/table/wood, +/obj/machinery/light/directional/east, +/obj/effect/spawner/random/entertainment/musical_instrument, +/turf/open/floor/plating, +/area/station/service/theater/abandoned) +"wQO" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/power/emitter, +/turf/open/floor/iron, +/area/station/engineering/storage) +"wQP" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/turf_decal/trimline/red/filled/warning{ + color = "#DE3A3A"; + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/line, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/brig) +"wQS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/ladder, +/obj/structure/sign/poster/contraband/random/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"wQY" = ( +/obj/structure/fluff/metalpole{ + dir = 4 + }, +/obj/structure/fluff/metalpole{ + dir = 8 + }, +/turf/open/space/basic, +/area/space/nearstation) +"wRj" = ( +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/stone, +/area/station/hallway/primary/central) +"wRu" = ( +/obj/machinery/door/airlock/research{ + name = "Research Division Access" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/unres, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "rnd-enterance" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/effect/mapping_helpers/airlock/access/all/science/general, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/science/research) +"wRG" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/service/abandoned_gambling_den) +"wRH" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/access/all/engineering/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/xenobio_disposals) +"wRI" = ( +/obj/structure/flora/bush/sparsegrass, +/obj/structure/flora/bush/lavendergrass, +/obj/structure/window/spawner/directional/south, +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/light/small/directional/west, +/turf/open/floor/grass, +/area/station/service/chapel) +"wRL" = ( +/obj/structure/closet/crate/large, +/turf/open/floor/iron/dark/small, +/area/station/cargo/miningdock) +"wRM" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/stairs/medium{ + dir = 8 + }, +/area/station/hallway/secondary/command) +"wRQ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/hallway/primary/port) +"wRR" = ( +/obj/item/kirbyplants/random, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/red/line{ + dir = 6 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_corner{ + dir = 1 + }, +/area/station/security/office) +"wRU" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/library/upper) +"wRZ" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/wardrobe/green, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/landmark/start/hangover/closet, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/commons/locker) +"wSc" = ( +/obj/structure/flora/bush/grassy, +/obj/structure/flora/ocean/seaweed, +/turf/open/water/overlay, +/area/station/hallway/primary/central) +"wSe" = ( +/turf/closed/wall, +/area/station/common/wrestling/lobby) +"wSf" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/catwalk_floor, +/area/station/engineering/atmos) +"wSi" = ( +/obj/structure/cable, +/obj/effect/spawner/random/structure/steam_vent, +/turf/open/floor/plating, +/area/station/maintenance/department/science/upper) +"wSj" = ( +/obj/machinery/power/shuttle_engine/propulsion, +/obj/structure/fluff/big_chain{ + pixel_y = 30 + }, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"wSn" = ( +/obj/structure/closet{ + name = "security locker" + }, +/obj/item/clothing/gloves/color/black, +/obj/item/clothing/shoes/jackboots, +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"wSE" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/dark/side, +/area/station/hallway/secondary/exit) +"wSO" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 1 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/starboard) +"wSP" = ( +/obj/item/trash/candy, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"wSQ" = ( +/obj/structure/chair/wood, +/obj/machinery/airalarm/directional/east, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"wSR" = ( +/obj/machinery/teleport/hub, +/obj/effect/turf_decal/delivery, +/turf/open/floor/iron/dark, +/area/station/command/teleporter) +"wSU" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{ + dir = 1 + }, +/obj/machinery/light_switch/directional/east, +/obj/machinery/light/small/directional/east, +/turf/open/floor/iron/dark, +/area/station/science/server) +"wTh" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/lobby) +"wTj" = ( +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ + dir = 1 + }, +/obj/structure/filingcabinet/chestdrawer, +/mob/living/basic/parrot/poly, +/obj/machinery/light_switch/directional/north, +/turf/open/floor/iron/white/corner, +/area/station/command/heads_quarters/ce) +"wTl" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/duct, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured_edge{ + dir = 4 + }, +/area/station/common/night_club) +"wTm" = ( +/obj/structure/fans/tiny/forcefield, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/machinery/door/poddoor/preopen{ + id = "shuttleblast1"; + name = "Shuttle Bay Blast Door" + }, +/turf/open/floor/plating, +/area/station/cargo/power_station/upper) +"wTq" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/science/ordnance) +"wTr" = ( +/obj/machinery/camera/directional/east{ + c_tag = "Leisure Hallway - Lower Aft"; + name = "hallway camera" + }, +/obj/machinery/newscaster/directional/east, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/port) +"wTv" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/door/airlock/public/glass{ + name = "Public Gym" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/sign/gym/right{ + pixel_y = 32 + }, +/obj/effect/landmark/navigate_destination, +/turf/open/floor/wood, +/area/station/commons/fitness) +"wTE" = ( +/obj/effect/turf_decal/tile/blue/half{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue/half{ + dir = 4 + }, +/turf/open/floor/iron/dark/smooth_large/airless, +/area/space/nearstation) +"wTF" = ( +/turf/open/floor/wood, +/area/station/common/wrestling/lobby) +"wTG" = ( +/obj/effect/spawner/random/trash/grille_or_waste, +/obj/machinery/light/small/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"wTL" = ( +/obj/structure/easel, +/obj/item/canvas/twentythree_nineteen, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"wTQ" = ( +/obj/structure/shipping_container/donk_co{ + layer = 4.6 + }, +/turf/open/floor/iron/dark/small, +/area/station/cargo/miningdock) +"wTR" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/station/maintenance/central) +"wTS" = ( +/obj/structure/chair/office/light{ + dir = 4; + pixel_y = 3 + }, +/obj/structure/window/spawner/directional/south, +/turf/open/floor/carpet/black, +/area/station/service/barber) +"wTW" = ( +/obj/structure/cable, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/maintenance/department/engineering/atmos_aux_port) +"wUb" = ( +/obj/structure/cable, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/secondary/command) +"wUn" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"wUs" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/obj/machinery/light/directional/north, +/turf/open/floor/iron, +/area/station/commons/dorms) +"wUv" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/carpet/royalblack, +/area/station/command/heads_quarters/qm) +"wUw" = ( +/obj/effect/spawner/random/structure/crate, +/obj/structure/grille/broken, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"wUF" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/wood, +/area/station/security/prison/rec) +"wUK" = ( +/obj/machinery/space_heater, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plating, +/area/station/maintenance/department/science/ordnance_maint) +"wUP" = ( +/obj/item/kirbyplants/random, +/obj/machinery/light_switch/directional/east, +/turf/open/floor/wood, +/area/station/security/prison/rec) +"wUX" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/item/soap/nanotrasen, +/obj/item/storage/box/mousetraps, +/turf/open/floor/iron/dark/side, +/area/station/hallway/primary/port) +"wVe" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 4 + }, +/obj/structure/flora/bush/pale, +/obj/structure/flora/rock/pile, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"wVn" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron/kitchen, +/area/station/security/prison/mess) +"wVq" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating/dark, +/turf/open/floor/grass, +/area/station/common/night_club) +"wVs" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/hallway/secondary/command) +"wVz" = ( +/obj/item/stack/sheet/cardboard, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"wVD" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood/large, +/area/station/science/circuits) +"wVE" = ( +/obj/structure/window/reinforced/plasma/spawner/directional/south, +/obj/machinery/power/shuttle_engine/heater, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"wVO" = ( +/obj/machinery/computer/cargo, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"wVT" = ( +/obj/machinery/power/apc/auto_name/directional/east, +/obj/machinery/airalarm/directional/west, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/command/heads_quarters/hop) +"wVW" = ( +/obj/structure/window/spawner/directional/south, +/obj/structure/flora/bush/fullgrass, +/obj/structure/flora/tree/jungle/small, +/obj/machinery/door/firedoor/border_only, +/turf/open/floor/grass, +/area/station/medical/patients_rooms) +"wVX" = ( +/obj/effect/spawner/random/trash/mess, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_port) +"wWd" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/service/theater) +"wWi" = ( +/obj/machinery/power/shuttle_engine/heater{ + dir = 4 + }, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"wWj" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron, +/area/station/security/execution/transfer) +"wWk" = ( +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/machinery/airalarm/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) +"wWm" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark/corner, +/turf/open/floor/plating, +/area/station/security/range) +"wWy" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/cargo/storage) +"wWz" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 9 + }, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/iron/white, +/area/station/science/research) +"wWB" = ( +/obj/effect/turf_decal/bot_red, +/obj/item/robot_suit, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/mineral/plastitanium, +/area/station/science/robotics/lab) +"wWH" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/spawner/random/structure/crate, +/obj/machinery/light/directional/south, +/turf/open/floor/iron/dark/herringbone, +/area/station/cargo/storage) +"wWM" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/status_display/evac/directional/north, +/turf/open/floor/iron/dark/side, +/area/station/maintenance/department/engineering/engine_aft_starboard) +"wWZ" = ( +/obj/structure/hedge, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/turf/open/floor/wood, +/area/station/service/cafeteria) +"wXc" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command/glass{ + name = "Bridge Access" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "bridge-enterance-west" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/command/general, +/obj/machinery/duct, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/command) +"wXj" = ( +/obj/structure/trash_pile, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/service/hydroponics/garden/abandoned) +"wXk" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron/white, +/area/station/science) +"wXm" = ( +/obj/structure/chair/plastic{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"wXn" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron/dark/small, +/area/station/medical/morgue) +"wXw" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) +"wXy" = ( +/obj/machinery/computer/rdconsole, +/obj/effect/turf_decal/tile/purple/half/contrasted, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"wXK" = ( +/obj/effect/turf_decal/siding/thinplating/light{ + dir = 8 + }, +/obj/structure/curtain, +/turf/open/floor/iron/white, +/area/station/medical/patients_rooms) +"wXO" = ( +/obj/effect/turf_decal/stripes{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/circuit, +/area/station/command/gateway) +"wYd" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/security/detectives_office) +"wYj" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/incident_display/delam/directional/north, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"wYk" = ( +/obj/structure/closet/crate/hydroponics, +/obj/item/shovel/spade, +/obj/item/secateurs, +/obj/item/cultivator, +/obj/item/hatchet, +/obj/item/reagent_containers/cup/bottle/nutrient/ez, +/obj/item/reagent_containers/cup/bottle/nutrient/ez, +/obj/item/seeds/watermelon, +/obj/item/seeds/tower, +/obj/item/seeds/pumpkin, +/obj/structure/window/spawner/directional/south, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics/garden) +"wYl" = ( +/obj/effect/turf_decal/stripes/end{ + dir = 1 + }, +/obj/structure/ladder, +/turf/open/floor/iron/shuttle/arrivals/airless, +/area/space/nearstation) +"wYo" = ( +/obj/structure/table, +/obj/item/stack/sheet/iron/fifty, +/obj/item/stack/sheet/iron/fifty, +/obj/item/construction/plumbing, +/obj/item/construction/plumbing, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/obj/structure/sign/departments/chemistry/directional/north, +/obj/machinery/light/directional/north, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"wYw" = ( +/obj/item/kirbyplants/random, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/station/security/detectives_office/private_investigators_office) +"wYy" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/simple/violet/visible/layer2{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) +"wYz" = ( +/obj/effect/spawner/random/structure/steam_vent, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/bar) +"wYH" = ( +/turf/closed/wall, +/area/station/common/tailoring) +"wYJ" = ( +/obj/structure/window/reinforced/plasma/spawner/directional/north, +/obj/machinery/power/shuttle_engine/heater{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/station/maintenance/port/upper) +"wYK" = ( +/obj/structure/table/glass, +/obj/item/paper_bin{ + pixel_y = 3 + }, +/obj/item/pen{ + pixel_y = 3 + }, +/obj/effect/turf_decal/siding/purple{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/command/heads_quarters/rd) +"wYO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/fluff/big_chain{ + pixel_y = 30 + }, +/obj/machinery/power/shuttle_engine/propulsion, +/turf/open/floor/iron/smooth, +/area/station/cargo/power_station/upper) +"wYQ" = ( +/obj/structure/closet/cardboard, +/obj/effect/spawner/random/maintenance, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"wYS" = ( +/obj/machinery/computer/records/security, +/obj/structure/noticeboard/directional/north, +/turf/open/floor/carpet, +/area/station/security/detectives_office) +"wYV" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/table/optable, +/turf/open/floor/iron, +/area/station/medical/surgery/theatre) +"wYZ" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/machinery/door/window/left/directional/south{ + name = "Fitness Ring" + }, +/turf/open/floor/iron/stairs{ + dir = 1 + }, +/area/station/commons/fitness) +"wZc" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/security/office) +"wZd" = ( +/obj/effect/spawner/random/trash/mess, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"wZg" = ( +/obj/structure/table, +/obj/machinery/microwave{ + pixel_y = 8 + }, +/obj/machinery/button/curtain{ + id = "dormscurtain8"; + pixel_x = 25 + }, +/turf/open/floor/wood, +/area/station/commons/dorms/room7) +"wZm" = ( +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) +"wZr" = ( +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics Maintenance" + }, +/obj/machinery/atmospherics/components/binary/pump/layer4{ + name = "Airmix Reserve to Distribution" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/security/prison/upper) +"wZt" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/obj/machinery/newscaster/directional/east, +/obj/machinery/camera/directional/east{ + c_tag = "Medbay - Fore Port"; + name = "medbay camera"; + network = list("ss13","medbay") + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"wZu" = ( +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/central/aft) +"wZx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet, +/obj/effect/spawner/random/trash/garbage, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"wZF" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 6 + }, +/obj/machinery/duct, +/turf/open/floor/iron/smooth_edge{ + dir = 4 + }, +/area/station/maintenance/disposal/incinerator) +"wZG" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/chair/comfy{ + color = "#596479"; + dir = 8 + }, +/turf/open/floor/carpet/green, +/area/station/command/heads_quarters/nt_rep) +"wZQ" = ( +/turf/closed/wall, +/area/station/service/kitchen/coldroom) +"wZS" = ( +/obj/machinery/telecomms/server/presets/science, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 6 + }, +/turf/open/floor/iron/white/telecomms, +/area/station/tcommsat/server) +"wZT" = ( +/obj/effect/turf_decal/tile/dark_blue/anticorner/contrasted{ + dir = 4 + }, +/obj/machinery/button/door/directional/east{ + name = "Security Mech Garage Door Controls"; + id = "SecMech"; + req_access = list("security") + }, +/obj/machinery/recharge_station, +/turf/open/floor/iron/dark, +/area/station/security/mechbay) +"wZW" = ( +/obj/structure/cable, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/hallway/secondary/command) +"xah" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, +/obj/structure/chair/office{ + dir = 8 + }, +/obj/effect/landmark/start/roboticist, +/turf/open/floor/iron/dark, +/area/station/science/robotics/lab) +"xai" = ( +/turf/closed/wall/r_wall, +/area/station/command/heads_quarters/hop) +"xam" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/access/all/engineering/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "ToxinsExhaust" + }, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"xas" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/condiment/saltshaker{ + pixel_x = -3 + }, +/obj/item/reagent_containers/condiment/peppermill{ + pixel_x = 3 + }, +/obj/effect/turf_decal/tile/bar/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/security/prison/mess) +"xaw" = ( +/obj/structure/statue/gold/ce, +/turf/open/floor/iron, +/area/station/engineering/main) +"xax" = ( +/obj/structure/chair/plastic{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/abandon_wrestle) +"xaz" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/effect/spawner/random/decoration/carpet, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"xaB" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/door/airlock/public/glass{ + name = "Central Hallway" + }, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"xaC" = ( +/obj/structure/chair/sofa/bench/left, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/prison/shower) +"xaK" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/burnt_floor, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"xaN" = ( +/obj/machinery/conveyor_switch/oneway{ + id = "mining"; + dir = 1 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/smooth, +/area/station/cargo/miningdock) +"xaU" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/station/service/lawoffice) +"xbb" = ( +/obj/effect/turf_decal/bot, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/station/maintenance/department/eva) +"xbd" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/science/ordnance) +"xbi" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/service/barber) +"xbl" = ( +/obj/effect/turf_decal/vg_decals/atmos/mix{ + dir = 8 + }, +/turf/open/floor/engine/vacuum, +/area/station/engineering/atmos) +"xbm" = ( +/turf/open/floor/iron/dark/corner{ + dir = 8 + }, +/area/station/hallway/primary/central) +"xbu" = ( +/obj/effect/spawner/random/trash/graffiti, +/turf/closed/wall, +/area/station/maintenance/disposal) +"xbB" = ( +/turf/closed/wall/r_wall, +/area/station/maintenance/department/medical/central) +"xbC" = ( +/obj/structure/flippedtable, +/obj/machinery/light/broken/directional/north, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/wood, +/area/station/commons/dorms/vacantroom) +"xbG" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white/side{ + dir = 4 + }, +/area/station/medical/medbay/lobby) +"xbH" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hallup17"; + location = "hallup16" + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"xbP" = ( +/obj/structure/closet/secure_closet/brig{ + id = "Cell 6"; + name = "Cell 6 Locker" + }, +/obj/machinery/light/small/directional/west, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/security/brig) +"xbR" = ( +/turf/open/floor/material/meat, +/area/station/maintenance/department/science/xenobiology) +"xbX" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/east, +/obj/structure/window/spawner/directional/south, +/obj/structure/window/spawner/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"xcb" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/machinery/airalarm/directional/south, +/obj/machinery/light/small/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/maintenance/solars/starboard/fore) +"xcn" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"xcz" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/service/chapel) +"xcE" = ( +/obj/effect/turf_decal/stripes/end{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/multiz/supply/visible/layer4{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/multiz/scrubbers/visible/layer2{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"xcI" = ( +/obj/effect/decal/cleanable/blood/gibs/old, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/east, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"xcJ" = ( +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"xcK" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"xcL" = ( +/obj/effect/spawner/structure/window/reinforced/tinted, +/turf/open/floor/plating, +/area/station/medical/surgery) +"xcN" = ( +/obj/structure/ore_box, +/obj/machinery/light/small/broken/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"xcO" = ( +/obj/machinery/atmospherics/components/tank/plasma, +/obj/machinery/light/directional/east, +/obj/machinery/atmospherics/pipe/bridge_pipe/supply/hidden{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/test_chambers) +"xcP" = ( +/obj/machinery/duct, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/test_chambers) +"xcT" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"xcU" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/ai_monitored/turret_protected/aisat_interior) +"xda" = ( +/obj/structure/closet/crate/freezer{ + name = "limb storage" + }, +/obj/item/organ/internal/liver, +/obj/item/bodypart/leg/left/lizard, +/turf/open/floor/plating, +/area/station/maintenance/rus_surgery) +"xdh" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/command) +"xdk" = ( +/obj/item/kirbyplants/random, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"xdl" = ( +/obj/machinery/photocopier, +/obj/item/storage/secure/safe/directional/east, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/carpet/blue, +/area/station/command/heads_quarters/captain/private) +"xdt" = ( +/obj/structure/table, +/obj/item/storage/box/drinkingglasses{ + pixel_x = 4; + pixel_y = 5 + }, +/obj/item/reagent_containers/cup/glass/shaker{ + pixel_x = -2; + pixel_y = 3 + }, +/turf/open/floor/iron/dark, +/area/station/service/cafeteria) +"xdu" = ( +/turf/open/floor/iron/stairs/medium{ + dir = 8 + }, +/area/station/hallway/primary/upper) +"xdB" = ( +/obj/structure/table/reinforced, +/obj/item/folder/blue, +/obj/item/pen/blue, +/turf/open/floor/iron/dark, +/area/station/tcommsat/computer) +"xdC" = ( +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted, +/obj/structure/chair/sofa/bench/left{ + dir = 8 + }, +/obj/machinery/light/small/directional/east, +/turf/open/floor/iron/dark/corner{ + dir = 1 + }, +/area/station/maintenance/department/engineering/engine_aft_starboard) +"xdG" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/cyan/visible, +/turf/closed/wall/r_wall, +/area/station/engineering/atmos) +"xdH" = ( +/obj/structure/rack/shelf, +/obj/effect/turf_decal/bot, +/obj/item/storage/toolbox/electrical, +/turf/open/floor/iron/dark, +/area/station/maintenance/solars/starboard/fore) +"xdL" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/junction/flip{ + dir = 2 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"xdR" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "executionfireblast" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/security/execution/education) +"xdU" = ( +/turf/open/floor/iron, +/area/station/cargo/warehouse) +"xej" = ( +/obj/structure/table, +/obj/item/retractor, +/obj/item/hemostat{ + pixel_x = -9; + pixel_y = -2 + }, +/obj/item/cautery{ + pixel_x = -5; + pixel_y = 3 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 9 + }, +/obj/item/reagent_containers/spray/cleaner{ + pixel_x = 14; + pixel_y = -1 + }, +/turf/open/floor/iron/white, +/area/station/science/robotics) +"xep" = ( +/obj/effect/turf_decal/trimline/purple/filled/line, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/plumbing/ooze_compressor, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"xeq" = ( +/turf/open/floor/iron/smooth_edge{ + dir = 8 + }, +/area/station/engineering/atmos/hfr_room) +"xer" = ( +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/grass, +/area/station/common/night_club) +"xey" = ( +/obj/machinery/light/directional/south, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/circuit, +/area/station/command/gateway) +"xeE" = ( +/obj/item/trash/syndi_cakes, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"xeQ" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Teleporter Maintenance" + }, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/command/teleporter, +/turf/open/floor/plating, +/area/station/maintenance/department/eva) +"xeS" = ( +/obj/machinery/door/airlock/hatch{ + name = "MiniSat Foyer" + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/any/command/general, +/obj/effect/mapping_helpers/airlock/access/any/engineering/construction, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat_interior) +"xeY" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/cargo/warehouse) +"xeZ" = ( +/obj/item/food/cheese/wheel, +/obj/machinery/light/small/directional/south, +/turf/open/misc/sandy_dirt, +/area/station/maintenance/department/medical) +"xfa" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/aisat/exterior) +"xfb" = ( +/obj/effect/spawner/random/trash/graffiti, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"xfe" = ( +/obj/structure/chair/pew/left, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain/private) +"xfg" = ( +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"xfj" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/science/research) +"xfl" = ( +/obj/structure/table/glass, +/obj/machinery/airalarm/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/item/storage/box/donkpockets{ + pixel_y = 11 + }, +/obj/item/storage/dice, +/turf/open/floor/iron/white, +/area/station/medical/break_room) +"xfA" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/growing/tray, +/turf/open/floor/iron/dark, +/area/station/common/night_club/changing_room) +"xfB" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/station/maintenance/department/security/prison_upper) +"xfK" = ( +/obj/item/kirbyplants/random, +/obj/structure/extinguisher_cabinet/directional/north, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured, +/area/station/common/cryopods) +"xfL" = ( +/obj/machinery/vending/games, +/obj/machinery/airalarm/directional/west, +/turf/open/floor/wood, +/area/station/security/prison/rec) +"xfP" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/dark/visible{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/supermatter/room) +"xfT" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/oxygen_input, +/turf/open/floor/engine/o2, +/area/station/engineering/atmos) +"xga" = ( +/obj/machinery/conveyor/inverted{ + dir = 5; + id = "garbage" + }, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/disposal) +"xgb" = ( +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/item/rcd_ammo/large, +/obj/item/rcd_ammo/large, +/obj/item/rcd_ammo/large, +/obj/item/rcd_ammo/large, +/obj/item/construction/rcd, +/obj/item/construction/rcd, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva/upper) +"xgg" = ( +/obj/structure/closet/secure_closet/medical3, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/medical/break_room) +"xgi" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/service/cafeteria) +"xgr" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/landmark/start/assistant, +/turf/open/floor/iron, +/area/station/commons/fitness/recreation) +"xgs" = ( +/obj/structure/railing, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/iron/stairs/medium{ + dir = 8 + }, +/area/station/engineering/atmos/test_chambers) +"xgv" = ( +/obj/structure/cable, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/commons/dorms) +"xgx" = ( +/obj/structure/fans/tiny/forcefield{ + dir = 8 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/plating, +/area/station/cargo/storage) +"xgE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/commons/dorms/vacantroom) +"xgH" = ( +/obj/item/cultivator/rake, +/obj/effect/landmark/blobstart, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"xgI" = ( +/turf/closed/wall, +/area/station/science/power_station) +"xgN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"xgR" = ( +/obj/machinery/door/airlock/hatch{ + name = "MiniSat Access" + }, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/command/minisat, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/engineering/transit_tube) +"xgS" = ( +/obj/machinery/computer/records/security, +/obj/machinery/light/directional/north, +/obj/machinery/status_display/evac/directional/north, +/obj/effect/turf_decal/stripes/blue/line{ + dir = 5 + }, +/turf/open/floor/iron/dark, +/area/station/security/office) +"xhc" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/newscaster/directional/west, +/obj/structure/cable, +/obj/machinery/light/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/dorms) +"xhd" = ( +/obj/structure/chair/sofa/bench/right{ + dir = 8; + pixel_x = 5 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/central) +"xhe" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/obj/machinery/door/airlock/public/glass{ + name = "Dormitory Hallway" + }, +/obj/effect/landmark/navigate_destination, +/turf/open/floor/iron, +/area/station/commons/dorms) +"xhm" = ( +/obj/effect/decal/cleanable/oil/streak, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/maintenance/solars/starboard/fore) +"xhn" = ( +/obj/machinery/door/poddoor/preopen{ + id = "XenoOffice"; + name = "Xenobiology Lockdown Blast Doors" + }, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Toxins Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"xht" = ( +/turf/closed/wall, +/area/station/science) +"xhv" = ( +/obj/structure/table, +/obj/item/clothing/gloves/botanic_leather{ + pixel_y = -3 + }, +/obj/item/clothing/suit/apron/overalls{ + pixel_x = -4; + pixel_y = 2 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"xhw" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"xhE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"xhZ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"xic" = ( +/obj/structure/table/wood/fancy/blue, +/obj/item/reagent_containers/cup/glass/trophy/bronze_cup{ + name = "3rd place prize for captain ''measure up'' contest"; + pixel_y = 8 + }, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/captain) +"xig" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/storage) +"xih" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/obj/machinery/door/window/left/directional/west, +/turf/open/floor/iron/dark, +/area/station/security/execution/education) +"xii" = ( +/obj/item/trash/energybar, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"xil" = ( +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/primary/port) +"xim" = ( +/turf/open/floor/plating/rust, +/area/station/maintenance/department/science/xenobiology) +"xit" = ( +/obj/structure/rack, +/obj/item/reagent_containers/cup/glass/coffee_cup, +/obj/item/reagent_containers/cup/glass/coffee_cup, +/obj/item/reagent_containers/cup/glass/coffee_cup, +/obj/item/reagent_containers/cup/glass/coffee_cup, +/obj/item/reagent_containers/cup/glass/coffee_cup, +/obj/item/reagent_containers/cup/glass/coffee_cup, +/obj/item/storage/box/drinkingglasses, +/turf/open/floor/iron, +/area/station/service/bar/backroom) +"xiB" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/abandon_art_studio) +"xiC" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/department/security/upper) +"xiD" = ( +/obj/structure/rack, +/obj/effect/turf_decal/delivery, +/obj/machinery/light/directional/north, +/obj/structure/extinguisher_cabinet/directional/north, +/obj/effect/spawner/random/armory/bulletproof_helmet, +/obj/effect/turf_decal/trimline/red/line, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_edge{ + dir = 1 + }, +/area/station/ai_monitored/security/armory) +"xiE" = ( +/obj/effect/decal/cleanable/glass, +/obj/item/shard, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"xiF" = ( +/obj/structure/bonfire, +/obj/item/reagent_containers/cup/glass/bottle/juice/orangejuice{ + desc = "For the weary spacemen on their quest to rekindle the first plasma fire."; + name = "Carton of Estus" + }, +/obj/item/melee/moonlight_greatsword, +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, +/turf/open/floor/plating, +/area/station/engineering/atmos/hfr_room) +"xiN" = ( +/obj/structure/chair/sofa/right/brown, +/turf/open/floor/carpet, +/area/station/medical/patients_rooms) +"xiO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/effect/landmark/start/hangover, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"xiW" = ( +/obj/machinery/telecomms/broadcaster/preset_right, +/turf/open/floor/circuit/telecomms/mainframe, +/area/station/tcommsat/server) +"xjl" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/carpet, +/area/station/medical/psychology) +"xjt" = ( +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/item/screwdriver{ + pixel_y = 6 + }, +/obj/item/screwdriver{ + pixel_y = 6 + }, +/obj/item/screwdriver{ + pixel_y = 6 + }, +/obj/item/wirecutters, +/obj/item/wirecutters, +/obj/item/wirecutters, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva/upper) +"xjw" = ( +/obj/effect/turf_decal/tile/blue, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"xjD" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/pdapainter/research, +/turf/open/floor/wood, +/area/station/command/heads_quarters/rd) +"xjF" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Cargo Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/supply/general, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/bar) +"xjV" = ( +/obj/structure/window/spawner/directional/east, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/shower/directional/north, +/obj/structure/drain, +/obj/effect/turf_decal/trimline/blue/end{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark/textured_large, +/area/station/service/barber) +"xjY" = ( +/turf/closed/wall/r_wall, +/area/station/maintenance/port/aft) +"xkb" = ( +/obj/machinery/door/airlock/external{ + name = "Escape Pod 1" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plating, +/area/station/escapepodbay) +"xkc" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 1 + }, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/obj/structure/cable, +/obj/machinery/door/airlock/security{ + name = "Security Mechbay" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/security/mechbay) +"xkf" = ( +/obj/machinery/door/airlock/wood{ + name = "Sauna" + }, +/obj/structure/fans/tiny, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/common/pool/sauna) +"xkm" = ( +/obj/structure/table/reinforced/rglass, +/obj/structure/mirror/directional/west, +/obj/machinery/light/directional/west, +/obj/item/scissors, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/prison) +"xko" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/effect/landmark/generic_maintenance_landmark, +/turf/open/floor/wood, +/area/station/security/detectives_office/private_investigators_office) +"xkv" = ( +/obj/effect/spawner/random/trash/mess, +/turf/open/floor/plating, +/area/station/maintenance/department/security) +"xky" = ( +/obj/structure/chair/sofa/bench/left{ + dir = 8; + pixel_x = 5 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/secondary/command) +"xkz" = ( +/obj/structure/chair, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/turf_decal/tile/red/half/contrasted, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/checkpoint/escape) +"xkA" = ( +/obj/structure/table, +/obj/machinery/light/directional/south, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/commons/dorms/room4) +"xkC" = ( +/obj/structure/girder, +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/dorms) +"xkD" = ( +/obj/structure/chair/sofa/corp/left{ + dir = 8; + pixel_x = 7 + }, +/turf/open/floor/carpet, +/area/station/service/lawoffice) +"xkG" = ( +/obj/effect/spawner/random/structure/crate, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/layer1, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"xkR" = ( +/obj/item/radio/intercom/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/engineering/engine_smes) +"xkU" = ( +/obj/machinery/scanner_gate, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/siding/wood, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/common/wrestling/lobby) +"xkY" = ( +/obj/machinery/door/poddoor/preopen{ + id = "atmoslock"; + name = "Atmospherics Lockdown Blast Door" + }, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Atmospherics Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/lesser) +"xkZ" = ( +/obj/effect/spawner/liquids_spawner, +/turf/open/floor/lowered/iron/pool/cobble/corner{ + dir = 4 + }, +/area/station/common/pool) +"xla" = ( +/obj/structure/table/reinforced/rglass, +/obj/structure/window/spawner/directional/west, +/obj/structure/curtain/cloth, +/obj/item/clothing/gloves/latex, +/obj/item/clothing/gloves/latex, +/turf/open/floor/carpet/black, +/area/station/service/barber) +"xlb" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/turf/open/floor/plating, +/area/station/maintenance/department/security/greater) +"xli" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"xlq" = ( +/obj/structure/chair/stool/directional/west, +/obj/machinery/light/small/red/dim/directional/west, +/obj/structure/cable, +/obj/machinery/mineral/stacking_unit_console{ + pixel_x = -32 + }, +/turf/open/floor/plating, +/area/station/maintenance/disposal) +"xlt" = ( +/obj/structure/cable, +/turf/open/floor/plating/airless, +/area/station/maintenance/eva_shed/port) +"xlA" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/chair/office/light, +/turf/open/floor/iron/white, +/area/station/medical/virology) +"xlI" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/service/bar) +"xlK" = ( +/obj/structure/flora/bush/leafy, +/obj/machinery/light/directional/south, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"xlN" = ( +/obj/machinery/duct, +/turf/open/floor/carpet, +/area/station/service/chapel) +"xlP" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/curtain/bounty, +/turf/open/floor/plating, +/area/station/hallway/primary/port) +"xlU" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/science/ordnance/freezerchamber) +"xlW" = ( +/obj/structure/chair/comfy/black{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"xml" = ( +/obj/item/trash/pistachios, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/landmark/generic_maintenance_landmark, +/turf/open/floor/carpet, +/area/station/maintenance/abandon_office) +"xmo" = ( +/obj/machinery/teleport/station, +/obj/effect/turf_decal/bot, +/obj/machinery/camera/directional/south{ + c_tag = "Command - Teleporter"; + name = "command camera" + }, +/turf/open/floor/iron/dark, +/area/station/command/teleporter) +"xmA" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/iron/dark/corner{ + dir = 8 + }, +/area/station/commons/fitness/recreation) +"xmB" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless, +/area/station/maintenance/fore/upper) +"xmD" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/holopad, +/obj/effect/landmark/event_spawn, +/turf/open/floor/iron, +/area/station/ai_monitored/command/storage/eva) +"xmE" = ( +/obj/item/kirbyplants/organic/plant22, +/obj/effect/turf_decal/trimline/red/filled/line{ + color = "#DE3A3A" + }, +/turf/open/floor/iron, +/area/station/command/heads_quarters/hos) +"xmO" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/command/bridge) +"xmR" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/trunk{ + dir = 2 + }, +/obj/structure/sign/painting/large/library_private{ + pixel_y = 28 + }, +/turf/open/floor/iron/dark, +/area/station/service/library/private) +"xne" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"xni" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/camera/directional/south, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"xnj" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured_large, +/area/station/security/lockers) +"xnp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Gas to Filter" + }, +/obj/machinery/camera/autoname/directional/west, +/turf/open/floor/engine, +/area/station/engineering/supermatter) +"xnt" = ( +/obj/structure/grille, +/obj/structure/barricade/wooden/crude, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"xnw" = ( +/obj/structure/drain, +/obj/structure/curtain/cloth, +/obj/machinery/shower/directional/south, +/turf/open/floor/iron/freezer, +/area/station/commons/dorms/room1) +"xny" = ( +/obj/machinery/light/small/directional/east, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"xnC" = ( +/obj/structure/railing{ + dir = 8 + }, +/turf/open/space/basic, +/area/space) +"xnF" = ( +/obj/structure/table/glass, +/obj/machinery/reagentgrinder{ + pixel_y = 4 + }, +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/service/hydroponics) +"xnG" = ( +/obj/effect/landmark/start/quartermaster, +/turf/open/floor/carpet/royalblack, +/area/station/command/heads_quarters/qm) +"xnK" = ( +/mob/living/carbon/human/species/monkey/punpun, +/obj/machinery/holopad, +/obj/effect/turf_decal/tile/bar/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/service/bar) +"xnM" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/commons/dorms) +"xnZ" = ( +/obj/effect/turf_decal/bot_white/left, +/turf/open/floor/iron/dark, +/area/station/command/gateway) +"xoe" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/flowers_br, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/curtain/cloth/fancy/mechanical{ + icon_state = "bounty-open"; + icon_type = "bounty"; + id = "prisonlibrarycurtain3"; + name = "curtain" + }, +/turf/open/floor/grass, +/area/station/command/heads_quarters/nt_rep) +"xon" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/light/small/broken/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/central) +"xos" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{ + dir = 6 + }, +/turf/open/floor/iron, +/area/station/engineering/engine_smes) +"xot" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/science/robotics) +"xoy" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"xoC" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/dorms) +"xoD" = ( +/obj/structure/sink/directional/east{ + reclaim_rate = 5 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/service/barber) +"xoK" = ( +/obj/effect/turf_decal/bot, +/obj/effect/spawner/random/vending/snackvend, +/turf/open/floor/iron/dark, +/area/station/common/arcade) +"xoL" = ( +/obj/effect/landmark/start/medical_doctor, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 5 + }, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) +"xoO" = ( +/obj/effect/turf_decal/delivery, +/turf/open/floor/iron/dark, +/area/station/science/xenobiology) +"xoQ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/command/bridge) +"xoT" = ( +/obj/effect/spawner/random/structure/chair_flipped, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/white, +/area/station/science/tele_sci) +"xph" = ( +/obj/structure/closet/secure_closet/engineering_personal, +/obj/machinery/light/directional/south, +/obj/item/inducer, +/turf/open/floor/iron/dark, +/area/station/engineering/break_room) +"xpn" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/stool/bar/directional/north, +/turf/open/floor/carpet, +/area/station/maintenance/rus_gambling) +"xpq" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) +"xpr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/light/small/directional/north, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"xpt" = ( +/obj/structure/chair/sofa/right/brown{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/station/common/wrestling/lobby) +"xpv" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 4; + id = "qmprivacy"; + name = "Quartermaster's Privacy Shutters" + }, +/obj/structure/disposalpipe/trunk/multiz{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/command/heads_quarters/qm) +"xpx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/moisture_trap, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"xpA" = ( +/obj/machinery/light/small/directional/east, +/obj/structure/closet/crate{ + name = "disposal supplies" + }, +/obj/item/bodybag{ + pixel_y = 8 + }, +/obj/item/shovel, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/contraband/random/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"xpB" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/science/explab) +"xpM" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"xpY" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ + dir = 1; + external_pressure_bound = 120; + name = "server vent" + }, +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/circuit/telecomms, +/area/station/science/server) +"xpZ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"xqc" = ( +/obj/machinery/door/airlock/engineering{ + name = "Telecommunications" + }, +/obj/machinery/door/firedoor, +/obj/effect/landmark/navigate_destination, +/obj/effect/mapping_helpers/airlock/access/all/engineering/construction, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/tcommsat/computer) +"xqe" = ( +/obj/machinery/door/airlock/research{ + name = "Telescience Test Chamber" + }, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine, +/area/station/science/tele_sci) +"xqh" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/bar) +"xqj" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron/white, +/area/station/science/research) +"xqo" = ( +/turf/closed/wall/r_wall, +/area/station/maintenance/solars/starboard/fore) +"xqu" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/holopad, +/turf/open/floor/iron/white, +/area/station/science/genetics) +"xqy" = ( +/obj/structure/table, +/obj/item/storage/bag/tray, +/obj/item/clothing/suit/apron/chef, +/obj/item/knife/plastic, +/obj/item/kitchen/rollingpin, +/turf/open/floor/iron/kitchen, +/area/station/security/prison/mess) +"xqJ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/carpet, +/area/station/security/courtroom) +"xqK" = ( +/obj/structure/chair/sofa/bench/right{ + dir = 4; + pixel_x = -5 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/secondary/entry) +"xqS" = ( +/obj/effect/turf_decal/stripes, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"xqZ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/dark/small, +/area/station/security/brig) +"xrk" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"xrl" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/maintenance, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/service/abandoned_gambling_den) +"xrx" = ( +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/obj/structure/chair/stool/directional/north, +/obj/machinery/camera/directional/east, +/turf/open/floor/iron, +/area/station/engineering/break_room) +"xrz" = ( +/obj/machinery/door/airlock/maintenance, +/obj/effect/mapping_helpers/airlock/abandoned, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"xrB" = ( +/obj/structure/sign/poster/contraband/lizard/directional/east, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 6 + }, +/turf/open/floor/iron/dark/herringbone, +/area/station/common/night_club/back_stage) +"xrD" = ( +/obj/effect/turf_decal/trimline/green/filled/line, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"xrF" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/security/prison/upper) +"xrI" = ( +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/medical/storage) +"xrJ" = ( +/obj/structure/flora/bush/lavendergrass, +/obj/structure/flora/bush/fullgrass/style_2, +/obj/structure/flora/biolumi/flower/weaklight, +/turf/open/floor/grass, +/area/station/maintenance/port/fore) +"xrL" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/generic, +/obj/structure/flora/bush/flowers_pp, +/turf/open/floor/grass, +/area/station/science/research) +"xrM" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/service/lawoffice) +"xrO" = ( +/turf/open/floor/iron/dark/side, +/area/station/security/prison/workout) +"xrT" = ( +/obj/structure/curtain/cloth/fancy, +/turf/open/floor/wood/large, +/area/station/service/theater/abandoned) +"xrV" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/department/chapel) +"xrW" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/service/abandoned_gambling_den) +"xsa" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"xsi" = ( +/obj/machinery/door/airlock{ + name = "Locker Room" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/commons/dorms) +"xsk" = ( +/obj/machinery/light/directional/north, +/obj/machinery/duct, +/turf/open/floor/iron/white/textured, +/area/station/medical/aslyum) +"xsm" = ( +/obj/structure/sink/directional/west, +/obj/machinery/camera/directional/east{ + c_tag = " Prison - Cell 5"; + network = list("ss13","prison") + }, +/obj/effect/landmark/start/prisoner, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/security/prison/safe) +"xsn" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/dorms) +"xso" = ( +/obj/effect/turf_decal/bot_white/left, +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/nuke_storage) +"xsq" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron, +/area/station/cargo/sorting) +"xsu" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/machinery/disposal/delivery_chute{ + dir = 4 + }, +/obj/structure/plasticflaps, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/machinery/door/window/right/directional/east{ + req_access = list("cargo"); + name = "Medbay Deliveries" + }, +/turf/open/floor/iron/dark, +/area/station/cargo/sorting) +"xsC" = ( +/obj/item/stack/ore/iron, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"xsD" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/security/courtroom) +"xsE" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/cup/glass/bottle/whiskey{ + pixel_x = -9; + pixel_y = 10 + }, +/obj/item/clothing/accessory/badge/holo/detective, +/obj/item/reagent_containers/cup/glass/drinkingglass/shotglass{ + pixel_x = 5; + pixel_y = 4 + }, +/obj/item/reagent_containers/cup/glass/drinkingglass/shotglass, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/carpet, +/area/station/security/detectives_office) +"xsG" = ( +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/station/service/bar/atrium) +"xsI" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/ordnance_freezer_chamber_input{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/science/ordnance/freezerchamber) +"xsM" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/table, +/obj/item/reagent_containers/cup/bottle/multiver{ + pixel_x = -5; + pixel_y = 6 + }, +/obj/item/reagent_containers/cup/bottle/formaldehyde{ + pixel_y = 2 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 9 + }, +/obj/structure/sign/departments/chemistry/pharmacy/directional/north, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"xsV" = ( +/turf/open/floor/iron/white/smooth_half{ + dir = 8 + }, +/area/station/science/explab) +"xtd" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"xtf" = ( +/obj/machinery/button/curtain{ + id = "prisoncell5"; + pixel_y = 21 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/structure/bed{ + dir = 4 + }, +/obj/item/bedsheet/orange{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/security/prison/safe) +"xti" = ( +/turf/closed/wall, +/area/station/cargo/sorting) +"xtj" = ( +/obj/structure/chair/wood{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/machinery/button/curtain{ + id = "dormscurtain6"; + pixel_x = 25 + }, +/turf/open/floor/wood, +/area/station/commons/dorms/room5) +"xtn" = ( +/obj/machinery/door/airlock/grunge{ + name = "Funeral Hall" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/service/chapel/funeral) +"xtB" = ( +/obj/structure/chair/pew/left{ + dir = 1; + name = "Jury" + }, +/turf/open/floor/wood, +/area/station/security/courtroom) +"xtG" = ( +/obj/structure/table/reinforced/rglass, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/security/prison/upper) +"xtI" = ( +/obj/structure/flora/tree/jungle/small, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"xtL" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/chair/sofa/bench/right{ + dir = 4 + }, +/obj/effect/landmark/start/assistant, +/obj/effect/turf_decal/tile/blue/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron/cafeteria, +/area/station/hallway/secondary/entry) +"xtM" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/common/pool) +"xtP" = ( +/obj/effect/turf_decal/trimline/purple/filled/line, +/obj/structure/cable, +/obj/machinery/camera/directional/south{ + c_tag = "Science - Center"; + name = "science camera"; + network = list("ss13","rd") + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/science/research) +"xtQ" = ( +/obj/structure/cable, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/commons/toilet/restrooms) +"xtR" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"xtT" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/storage) +"xtV" = ( +/obj/effect/spawner/liquids_spawner{ + reagent_list = list(/datum/reagent/water=600) + }, +/turf/open/misc/asteroid, +/area/station/hallway/primary/upper) +"xtX" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/external, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"xub" = ( +/obj/structure/rack, +/obj/item/fuel_pellet, +/obj/item/fuel_pellet, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating/airless, +/area/station/maintenance/port/upper) +"xue" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/structure/sign/poster/contraband/random/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"xuh" = ( +/obj/item/kirbyplants/random, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/secondary/exit/departure_lounge) +"xui" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/item/extinguisher{ + pixel_y = 3 + }, +/obj/item/extinguisher, +/turf/open/floor/iron/white/side, +/area/station/science/xenobiology) +"xul" = ( +/obj/effect/turf_decal/trimline/blue/corner, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"xum" = ( +/obj/structure/table/reinforced, +/obj/item/folder/red, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/obj/machinery/camera/directional/south{ + c_tag = "Security Post - Science"; + network = list("ss13","rd") + }, +/obj/machinery/light/directional/south, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/item/paper_bin{ + pixel_y = 3 + }, +/obj/item/pen{ + pixel_y = 3 + }, +/turf/open/floor/iron/dark/side, +/area/station/security/checkpoint/science/research) +"xuo" = ( +/obj/effect/landmark/start/captain, +/turf/open/floor/carpet/blue, +/area/station/command/heads_quarters/captain/private) +"xup" = ( +/obj/effect/turf_decal/trimline/purple/filled/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/white, +/area/station/science/lab) +"xuI" = ( +/obj/machinery/door/airlock/engineering/glass{ + name = "Server Room" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "tcomms-internal" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/construction, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/tcommsat/computer) +"xuJ" = ( +/turf/open/floor/iron, +/area/station/maintenance/department/engineering/engine_aft_port) +"xuM" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/maintenance/central) +"xuN" = ( +/obj/structure/closet/secure_closet/brig, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/effect/turf_decal/trimline/red/filled/line{ + color = "#DE3A3A"; + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/line, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/brig) +"xuR" = ( +/obj/structure/filingcabinet/security, +/obj/machinery/camera/directional/east{ + c_tag = "Security - Departures Starboard" + }, +/obj/machinery/light_switch/directional/east, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/security/checkpoint/escape) +"xuV" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/red/opposingcorners, +/turf/open/floor/iron, +/area/station/security/execution/transfer) +"xuX" = ( +/obj/machinery/computer/shuttle/mining, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"xva" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=hallup1"; + location = "hallup40" + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"xvc" = ( +/obj/effect/spawner/random/trash/moisture_trap, +/turf/open/floor/plating, +/area/station/maintenance/port/central) +"xve" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"xvf" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/command/bridge) +"xvh" = ( +/obj/structure/closet/crate/freezer{ + name = "organ storage" + }, +/obj/item/organ/internal/heart, +/obj/item/organ/internal/eyes/fly, +/obj/item/organ/internal/liver, +/obj/effect/decal/cleanable/dirt, +/obj/structure/window/spawner/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"xvn" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"xvo" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron/dark/side{ + dir = 9 + }, +/area/station/security/prison/upper) +"xvy" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai) +"xvC" = ( +/turf/open/floor/stone, +/area/station/common/wrestling/arena) +"xvI" = ( +/obj/structure/table/reinforced, +/obj/item/storage/medkit/fire{ + pixel_y = 3 + }, +/obj/item/storage/medkit/o2, +/obj/item/storage/medkit/brute{ + pixel_y = -3 + }, +/obj/item/storage/medkit/toxin{ + pixel_y = -6 + }, +/obj/item/storage/medkit/surgery{ + pixel_y = -9 + }, +/turf/open/floor/iron/smooth_edge{ + dir = 1 + }, +/area/station/command/secure_bunker) +"xvM" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/chair/sofa/bench/right{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/port) +"xvP" = ( +/obj/structure/transit_tube/curved/flipped{ + dir = 8 + }, +/turf/open/floor/iron/shuttle/arrivals/airless, +/area/space/nearstation) +"xvQ" = ( +/obj/item/crowbar, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/science/research/abandoned) +"xvR" = ( +/obj/effect/turf_decal/stripes/white/corner, +/turf/open/floor/iron/shuttle/evac/airless, +/area/space/nearstation) +"xwa" = ( +/turf/open/floor/carpet, +/area/station/medical/psychology) +"xwd" = ( +/obj/machinery/door/airlock/grunge{ + name = "Chapel Hall" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/dark/side, +/area/station/service/chapel) +"xwo" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"xwA" = ( +/obj/effect/turf_decal/bot_white, +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/iron/dark/small, +/area/station/maintenance/starboard/fore) +"xwD" = ( +/turf/open/floor/plating, +/area/station/maintenance/department/science/central) +"xwF" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral/half/contrasted, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"xwJ" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/extinguisher_cabinet/directional/east, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 + }, +/turf/open/floor/iron/dark/herringbone, +/area/station/common/night_club/back_stage) +"xwK" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/security/checkpoint/customs) +"xwM" = ( +/obj/machinery/door/window/brigdoor/right/directional/north{ + name = "Shooting Range"; + req_access = list("security") + }, +/turf/open/floor/iron/dark/herringbone, +/area/station/security/range) +"xwP" = ( +/obj/structure/chair, +/turf/open/floor/iron/dark, +/area/station/medical/surgery/theatre) +"xwQ" = ( +/obj/item/soap/nanotrasen, +/obj/effect/landmark/blobstart, +/obj/machinery/duct, +/turf/open/floor/iron/freezer, +/area/station/commons/toilet/restrooms) +"xwR" = ( +/obj/structure/lattice, +/obj/structure/billboard/azik, +/turf/open/space/openspace, +/area/space/nearstation) +"xxf" = ( +/obj/effect/spawner/structure/window/reinforced/tinted, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "rdrnd"; + name = "Research and Development Shutters" + }, +/turf/open/floor/plating, +/area/station/science/lab) +"xxh" = ( +/obj/machinery/light/floor/has_bulb, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/tcommsat/computer) +"xxl" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"xxn" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/security/power_station) +"xxp" = ( +/turf/closed/wall/rust, +/area/station/maintenance/library/lower) +"xxz" = ( +/obj/machinery/computer/cryopod{ + dir = 1; + pixel_y = -30 + }, +/obj/machinery/light/directional/south, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/security/prison/upper) +"xxH" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/dorms) +"xxN" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/flora/bush/jungle/b, +/turf/open/floor/grass, +/area/station/science/research) +"xxO" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"xxP" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/machinery/duct, +/obj/structure/hoop/minigame{ + dir = 8; + pixel_x = 6 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/commons/fitness) +"xxQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/girder/displaced, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"xxS" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"xxT" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/engineering/break_room) +"xxW" = ( +/obj/effect/turf_decal/stripes/white/line, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/obj/effect/turf_decal/caution/stand_clear/blue, +/obj/machinery/door/poddoor/shutters/window/preopen{ + id = "Psychward1"; + name = "Cell Door 1" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/medical/aslyum) +"xya" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/iron/shuttle/arrivals/airless, +/area/space/nearstation) +"xyf" = ( +/obj/structure/table, +/obj/item/wrench, +/obj/item/screwdriver{ + pixel_y = 5 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"xyi" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, +/turf/open/floor/iron, +/area/station/engineering/atmos/test_chambers) +"xyx" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance, +/obj/effect/mapping_helpers/airlock/abandoned, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"xyI" = ( +/obj/structure/lattice, +/turf/open/openspace, +/area/station/maintenance/aft/upper) +"xyS" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/obj/machinery/light/directional/north, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron/white, +/area/station/science/research) +"xyT" = ( +/obj/machinery/photocopier, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/abandon_art_studio) +"xyU" = ( +/obj/effect/turf_decal/stripes, +/obj/machinery/camera/motion/directional/west{ + c_tag = "Armoury - Exterior"; + dir = 1 + }, +/obj/structure/railing, +/obj/structure/ladder, +/turf/open/floor/plating/airless, +/area/station/maintenance/department/security/greater) +"xzh" = ( +/obj/structure/sign/warning/vacuum/external/directional/west, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"xzt" = ( +/obj/effect/turf_decal/bot, +/obj/structure/reagent_dispensers/plumbed, +/turf/open/floor/plating, +/area/station/maintenance/department/eva) +"xzu" = ( +/obj/machinery/light/directional/south, +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"xzv" = ( +/obj/structure/window/spawner/directional/east, +/obj/structure/flora/bush/jungle/b, +/turf/open/floor/grass, +/area/station/hallway/primary/central/aft) +"xzz" = ( +/obj/machinery/light/floor/has_bulb, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/secondary/exit) +"xzA" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 1 + }, +/obj/effect/turf_decal/delivery, +/obj/structure/window/spawner/directional/south, +/turf/open/floor/iron, +/area/station/medical/cryo) +"xzF" = ( +/turf/open/floor/iron/stairs/left{ + dir = 8 + }, +/area/station/security/prison/upper) +"xzG" = ( +/obj/effect/landmark/start/medical_doctor, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 6 + }, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) +"xzH" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat_interior) +"xzM" = ( +/obj/effect/turf_decal/trimline/purple/filled/corner{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/science) +"xzO" = ( +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"xAb" = ( +/obj/machinery/computer/security, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/purple/anticorner/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/security/corrections_officer) +"xAg" = ( +/obj/structure/fence{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/turf/open/floor/iron/dark/herringbone, +/area/station/cargo/storage) +"xAh" = ( +/obj/structure/table/reinforced, +/obj/item/storage/box/donkpockets{ + pixel_y = 6 + }, +/turf/open/floor/iron/dark/corner{ + dir = 4 + }, +/area/station/command/gateway) +"xAl" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/science/research) +"xAz" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen/diner) +"xAA" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/medical/storage) +"xAB" = ( +/obj/machinery/button/door{ + id = "xeno9"; + name = "Top Shutters Containment Control"; + pixel_y = -30; + req_access = list("xenobiology") + }, +/obj/effect/turf_decal/trimline/purple/filled/line, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/junction{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"xAH" = ( +/obj/structure/railing{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/command/gateway) +"xAL" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/structure/cable, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/corner, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/prison) +"xAU" = ( +/obj/effect/turf_decal/stripes, +/obj/machinery/light/directional/south, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"xAV" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/filled/warning{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/red/corner{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 5 + }, +/area/station/security/brig) +"xBb" = ( +/obj/machinery/atmospherics/pipe/smart/simple/violet/visible{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/pumproom) +"xBd" = ( +/obj/structure/sign/warning/pods/directional/east, +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"xBh" = ( +/obj/structure/table, +/turf/open/floor/plating, +/area/station/maintenance/department/security/prison_upper) +"xBs" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/end{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos) +"xBy" = ( +/obj/structure/water_source/puddle, +/obj/structure/flora/bush/reed{ + pixel_y = 8 + }, +/turf/open/floor/grass, +/area/station/service/chapel) +"xBz" = ( +/obj/machinery/light/small/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"xBA" = ( +/obj/structure/chair/sofa/corp/left{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/captain) +"xBC" = ( +/obj/structure/chair/stool/directional/east, +/turf/open/floor/eighties, +/area/station/maintenance/abandon_arcade) +"xBF" = ( +/obj/machinery/air_sensor/plasma_tank, +/turf/open/floor/engine/plasma, +/area/station/engineering/atmos) +"xBG" = ( +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"xBJ" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/pool_maintenance) +"xBK" = ( +/obj/machinery/door/airlock/engineering{ + name = "Medical Power Station" + }, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/any/medical/cmo, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/medical/power_station) +"xBL" = ( +/obj/effect/spawner/structure/window, +/obj/structure/curtain/cloth/fancy/mechanical{ + icon_state = "bounty-open"; + icon_type = "bounty"; + id = "prisonlibrarycurtain"; + name = "curtain" + }, +/turf/open/floor/plating, +/area/station/security/prison/rec) +"xBQ" = ( +/obj/effect/turf_decal/stripes{ + dir = 5 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 10 + }, +/turf/open/floor/iron/dark, +/area/station/science/robotics/lab) +"xBR" = ( +/obj/structure/table, +/obj/machinery/light/directional/south, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/commons/dorms/room3) +"xBX" = ( +/obj/structure/table/reinforced, +/obj/item/stock_parts/matter_bin/adv, +/obj/item/stock_parts/matter_bin/adv, +/obj/item/stock_parts/matter_bin/adv, +/obj/item/stock_parts/matter_bin/adv, +/obj/item/stock_parts/capacitor/adv, +/obj/item/stock_parts/capacitor/adv, +/obj/machinery/status_display/evac/directional/south, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) +"xBZ" = ( +/obj/machinery/computer/arcade/orion_trail{ + desc = "For gamers only. Casuals need not apply."; + icon_screen = "library"; + icon_state = "oldcomp"; + name = "Gamer Computer" + }, +/obj/structure/sign/poster/contraband/lusty_xenomorph/directional/west, +/obj/item/toy/katana{ + desc = "As seen in your favourite Japanese cartoon."; + name = "anime katana" + }, +/obj/structure/table/wood, +/obj/item/reagent_containers/cup/soda_cans/monkey_energy{ + pixel_x = 13 + }, +/obj/effect/turf_decal/siding/wood, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/turf/open/floor/carpet/purple, +/area/station/maintenance/gamer_lair) +"xCf" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/carpet/blue, +/area/station/command/heads_quarters/cmo) +"xCl" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/medical/medbay/central) +"xCn" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Departures Lounge" + }, +/obj/effect/turf_decal/tile/red{ + color = "#DE3A3A"; + dir = 8 + }, +/turf/open/floor/iron/white/corner{ + dir = 1 + }, +/area/station/hallway/secondary/exit/departure_lounge) +"xCo" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"xCp" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/stone, +/area/station/service/forge) +"xCs" = ( +/obj/machinery/holopad, +/turf/open/floor/wood, +/area/station/security/detectives_office) +"xCt" = ( +/obj/structure/bookcase/random/fiction, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/newscaster/directional/east, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/cmo) +"xCx" = ( +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/secondary/exit) +"xCP" = ( +/obj/structure/chair/office{ + dir = 4 + }, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/iron/dark, +/area/station/security/detectives_office) +"xCQ" = ( +/turf/closed/wall, +/area/station/engineering/main) +"xCU" = ( +/obj/machinery/power/solar_control{ + id = "foreport"; + name = "Port Bow Solar Control" + }, +/obj/effect/turf_decal/bot, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/maintenance/solars/port/fore) +"xCY" = ( +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"xCZ" = ( +/obj/machinery/door/airlock/maintenance, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/iron/grimy, +/area/station/maintenance/starboard/fore) +"xDb" = ( +/obj/structure/table/reinforced, +/obj/item/pai_card, +/obj/machinery/status_display/ai/directional/north, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) +"xDc" = ( +/obj/machinery/ticket_machine/directional/north, +/obj/effect/turf_decal/loading_area/white{ + dir = 8 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "hopline"; + name = "Queue Shutters" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/command) +"xDl" = ( +/obj/structure/table/reinforced, +/obj/item/assembly/igniter{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/assembly/igniter, +/obj/item/assembly/igniter{ + pixel_x = -6; + pixel_y = -6 + }, +/obj/item/analyzer{ + pixel_x = 4; + pixel_y = -9 + }, +/obj/item/pipe_dispenser{ + pixel_y = -16 + }, +/obj/machinery/status_display/evac/directional/west, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) +"xDq" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/box, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/lobby) +"xDx" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/junction{ + dir = 8 + }, +/turf/open/floor/iron/dark/small, +/area/station/security/brig) +"xDy" = ( +/obj/effect/turf_decal/siding/blue, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/machinery/light/directional/west, +/obj/machinery/duct, +/turf/open/floor/iron/freezer, +/area/station/command/heads_quarters/captain/private) +"xDH" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/public/glass{ + name = "Central Hallway" + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) +"xDM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/brown/visible{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"xDN" = ( +/obj/machinery/power/shuttle_engine/heater{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"xDT" = ( +/obj/structure/chair/wood{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/service/bar/atrium) +"xDY" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/iron/dark/small, +/area/station/maintenance/starboard/fore) +"xEd" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/obj/structure/lattice/catwalk, +/turf/open/space/basic, +/area/space/nearstation) +"xEe" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Engineering Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/general, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_starboard) +"xEf" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 6 + }, +/obj/machinery/light_switch/directional/south, +/obj/machinery/light/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) +"xEg" = ( +/obj/machinery/camera/directional/east{ + c_tag = "Library Lower"; + name = "library camera" + }, +/obj/machinery/light/directional/east, +/obj/machinery/light_switch/directional/east{ + pixel_x = 34 + }, +/turf/open/floor/wood, +/area/station/service/library) +"xEi" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/random/directional/south, +/turf/open/floor/iron, +/area/station/hallway/secondary/construction) +"xEr" = ( +/obj/structure/table/reinforced, +/obj/item/book/manual/wiki/telescience, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/purple/filled/corner{ + dir = 8 + }, +/obj/machinery/firealarm/directional/north, +/obj/effect/spawner/random/maintenance, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/white, +/area/station/science/tele_sci) +"xEA" = ( +/obj/machinery/camera/directional/south{ + c_tag = "Prison - Visitation (Prisoner)"; + network = list("ss13","prison") + }, +/obj/machinery/status_display/evac/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/security/prison/visit) +"xEB" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/closet/crate, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating/airless, +/area/station/maintenance/port/upper) +"xEE" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron/dark/side, +/area/station/hallway/secondary/command) +"xEM" = ( +/obj/structure/sink/directional/east{ + reclaim_rate = 5 + }, +/turf/open/floor/iron/kitchen, +/area/station/security/prison/mess) +"xEN" = ( +/obj/structure/closet/secure_closet/freezer/fridge, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) +"xEP" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/science/research) +"xEQ" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"xEV" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/closet, +/obj/effect/spawner/random/maintenance/three, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"xEX" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/curtain/cloth/fancy/mechanical{ + icon_state = "bounty-open"; + icon_type = "bounty"; + id = "dormscurtain2"; + name = "curtain" + }, +/turf/open/floor/plating, +/area/station/commons/dorms/room2) +"xFd" = ( +/obj/structure/railing, +/obj/structure/chair/plastic{ + dir = 4; + layer = 2.7 + }, +/turf/open/floor/iron/dark/side, +/area/station/hallway/primary/upper) +"xFe" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/light/directional/west, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) +"xFq" = ( +/turf/closed/wall/r_wall, +/area/station/science/lab) +"xFw" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/maintenance/solars/port/fore) +"xFB" = ( +/obj/structure/chair/wood{ + dir = 4 + }, +/obj/structure/window/spawner/directional/west, +/turf/open/floor/carpet, +/area/station/service/library/printer) +"xFC" = ( +/obj/machinery/growing/soil, +/obj/machinery/button/door/directional/north{ + id = "ChapelGardain"; + name = "Inner Garden Shutters" + }, +/turf/open/floor/grass, +/area/station/service/chapel) +"xFG" = ( +/obj/structure/cable, +/obj/effect/turf_decal/tile/blue/half/contrasted, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/command) +"xFJ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/railing{ + dir = 4 + }, +/obj/structure/table/wood/fancy/green, +/obj/structure/statue/bronze/marx{ + pixel_y = 10 + }, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/nt_rep) +"xFO" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/security/interrogation) +"xFQ" = ( +/obj/structure/table/wood, +/obj/item/folder/yellow{ + pixel_x = 3; + pixel_y = 6 + }, +/obj/item/folder/red{ + pixel_x = 1; + pixel_y = 3 + }, +/obj/item/folder/blue, +/obj/item/pen, +/turf/open/floor/carpet, +/area/station/command/meeting_room/council) +"xFT" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/red/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark, +/turf/open/floor/iron/dark/side{ + dir = 6 + }, +/area/station/security/brig) +"xFU" = ( +/obj/effect/turf_decal/trimline/red/filled/warning{ + color = "#DE3A3A" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/command/heads_quarters/hos) +"xGb" = ( +/obj/structure/table, +/obj/item/paper/crumpled, +/obj/item/reagent_containers/cup/glass/coffee{ + pixel_y = -15 + }, +/obj/item/toy/crayon, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"xGf" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/iron, +/area/station/commons/fitness) +"xGg" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/science/research) +"xGq" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/commons/dorms) +"xGF" = ( +/obj/structure/table/wood/poker, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/station/service/abandoned_gambling_den) +"xGL" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/mineral/plastitanium, +/area/station/science/robotics/lab) +"xGO" = ( +/obj/structure/window/spawner/directional/north, +/obj/structure/closet/crate/freezer, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/dark/side{ + dir = 5 + }, +/area/station/service/hydroponics) +"xGQ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command/glass{ + name = "Bridge" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "bridge-east" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/effect/mapping_helpers/airlock/access/all/command/general, +/turf/open/floor/iron/dark/side, +/area/station/command/bridge) +"xHd" = ( +/mob/living/basic/chicken/brown{ + forced_gender = "male" + }, +/turf/open/floor/grass, +/area/station/common/night_club) +"xHh" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"xHs" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/simple/supply/hidden, +/turf/open/floor/iron, +/area/station/maintenance/department/engineering/atmos_aux_port) +"xHy" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/iron/white/corner{ + dir = 4 + }, +/area/station/hallway/secondary/entry) +"xHD" = ( +/obj/machinery/door/airlock/silver{ + name = "Changing Room" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/iron/dark, +/area/station/security/prison/shower) +"xHF" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/status_display/evac/directional/east, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/commons/dorms) +"xHG" = ( +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/primary/port) +"xHN" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/machinery/computer/order_console/mining, +/turf/open/floor/iron/dark/small, +/area/station/cargo/miningoffice) +"xHP" = ( +/turf/open/floor/circuit/green, +/area/station/science/xenobiology) +"xHQ" = ( +/obj/structure/table/reinforced, +/obj/item/assembly/signaler{ + pixel_y = 8 + }, +/obj/item/assembly/signaler{ + pixel_x = 6; + pixel_y = 5 + }, +/obj/item/assembly/signaler{ + pixel_x = -8; + pixel_y = 5 + }, +/obj/item/assembly/signaler{ + pixel_x = -2; + pixel_y = -2 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) +"xHT" = ( +/turf/closed/wall, +/area/station/maintenance/rus_surgery) +"xHU" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/maintenance/solars/starboard/fore) +"xHX" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/status_display/evac/directional/east, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/hallway/secondary/command) +"xIa" = ( +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"xIb" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/small, +/area/station/security/prison/upper) +"xIf" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/machinery/computer/shuttle/mining/common{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"xIt" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/heat_exchanging/junction, +/turf/open/space/basic, +/area/space/nearstation) +"xIw" = ( +/obj/structure/closet/crate/bin, +/turf/open/floor/wood, +/area/station/medical/patients_rooms) +"xIy" = ( +/obj/item/radio/intercom/directional/north, +/obj/structure/closet, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/disposal) +"xIB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/mopbucket, +/turf/open/floor/iron, +/area/station/maintenance/department/medical/central) +"xIE" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/office) +"xII" = ( +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron/stairs{ + dir = 8 + }, +/area/station/commons/fitness/recreation) +"xIL" = ( +/obj/machinery/computer/communications{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/structure/sign/calendar/directional/south, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/captain/private) +"xIQ" = ( +/turf/closed/wall, +/area/station/service/electronic_marketing_den) +"xIV" = ( +/obj/machinery/light/directional/east, +/turf/open/floor/wood, +/area/station/hallway/primary/port) +"xIX" = ( +/obj/machinery/light/directional/north, +/turf/open/floor/iron/white/textured, +/area/station/medical/aslyum) +"xJg" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/stairs/right{ + dir = 8 + }, +/area/station/hallway/primary/upper) +"xJi" = ( +/obj/structure/extinguisher_cabinet/directional/west, +/obj/structure/disposalpipe/segment, +/obj/machinery/camera/autoname/directional/west, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/primary/port) +"xJn" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/ai_monitored/security/armory) +"xJo" = ( +/obj/structure/closet/l3closet/scientist, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/obj/machinery/camera/directional/east{ + c_tag = "Science - Research Division Access"; + dir = 8; + name = "science camera"; + network = list("ss13","rd") + }, +/obj/machinery/light/small/directional/west, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/science/research) +"xJs" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/security/execution/transfer) +"xJv" = ( +/obj/item/cigbutt, +/obj/machinery/portable_atmospherics/scrubber, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"xJH" = ( +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"xJN" = ( +/obj/structure/closet/toolcloset, +/obj/effect/turf_decal/bot, +/obj/machinery/light/small/directional/north, +/obj/machinery/camera/autoname/directional/west, +/turf/open/floor/iron/dark, +/area/station/engineering/gravity_generator) +"xJP" = ( +/obj/structure/chair/office{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/security/detectives_office) +"xJW" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/turf/open/floor/iron/shuttle/evac/airless, +/area/space/nearstation) +"xJY" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/wood/parquet, +/area/station/common/night_club) +"xKc" = ( +/obj/structure/table_frame, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"xKd" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/rack/gunrack, +/turf/open/floor/wood/large, +/area/station/security/brig) +"xKe" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/station/maintenance/department/engineering/atmos_aux_port) +"xKf" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/security/checkpoint) +"xKh" = ( +/obj/machinery/power/port_gen/pacman/pre_loaded, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"xKi" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"xKj" = ( +/obj/machinery/computer/security/telescreen/entertainment/directional/west, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/wood/parquet, +/area/station/command/gateway) +"xKr" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_y = 3 + }, +/obj/item/pen{ + pixel_y = 3 + }, +/turf/open/floor/iron, +/area/station/commons/fitness/recreation) +"xKu" = ( +/obj/structure/rack/shelf, +/obj/effect/turf_decal/bot, +/obj/item/flashlight{ + pixel_x = 1; + pixel_y = 5 + }, +/obj/item/flashlight, +/obj/item/radio{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/radio, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/science/tele_sci) +"xKw" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/door/airlock/service{ + name = "Kitchen" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/navigate_destination, +/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, +/obj/machinery/duct, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) +"xKz" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/maintenance/rus_gambling) +"xKH" = ( +/obj/machinery/cassette/mailbox, +/turf/open/floor/wood, +/area/station/service/library) +"xKK" = ( +/obj/effect/turf_decal/stripes{ + dir = 5 + }, +/obj/machinery/atmospherics/components/tank/oxygen, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/storage) +"xKN" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 6 + }, +/turf/open/floor/iron/white, +/area/station/science) +"xKP" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/commons/dorms/room8) +"xKQ" = ( +/turf/closed/wall, +/area/station/hallway/secondary/exit/departure_lounge) +"xKR" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood/large, +/area/station/science/circuits) +"xKX" = ( +/obj/effect/turf_decal/caution/stand_clear, +/obj/machinery/door/poddoor/shutters/window{ + id = "mechbay"; + name = "Mech Bay Shutters" + }, +/turf/open/floor/iron/dark, +/area/station/science/robotics/mechbay) +"xLd" = ( +/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/engineering/main) +"xLf" = ( +/obj/structure/hedge, +/obj/effect/turf_decal/tile/purple/half{ + dir = 1 + }, +/obj/machinery/light/directional/west, +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/iron/white/side{ + dir = 1 + }, +/area/station/science/research) +"xLg" = ( +/obj/effect/spawner/liquids_spawner{ + reagent_list = list(/datum/reagent/water=600) + }, +/obj/structure/flora/rock/pile/jungle/style_3, +/obj/structure/flora/ocean/coral, +/obj/machinery/light/directional/south, +/turf/open/misc/asteroid, +/area/station/hallway/primary/upper) +"xLh" = ( +/obj/structure/table/wood/fancy/green, +/obj/item/flashlight/lamp/green{ + pixel_x = 5; + pixel_y = 16 + }, +/obj/item/paper_bin{ + pixel_y = 3 + }, +/obj/item/pen/fountain{ + pixel_y = 5 + }, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/nt_rep) +"xLj" = ( +/obj/machinery/biogenerator, +/obj/item/reagent_containers/cup/beaker{ + pixel_x = 8; + pixel_y = 2 + }, +/obj/item/reagent_containers/cup/beaker/large, +/obj/item/reagent_containers/cup/beaker/large, +/turf/open/floor/iron/dark/textured_edge, +/area/station/security/prison/garden) +"xLo" = ( +/obj/structure/sign/painting/large/library{ + pixel_y = -36 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/service/library) +"xLp" = ( +/obj/machinery/light/small/directional/south, +/obj/structure/table, +/turf/open/floor/iron/dark, +/area/station/security/prison/safe) +"xLw" = ( +/obj/effect/spawner/random/structure/crate, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"xLB" = ( +/obj/structure/window/spawner/directional/west, +/obj/structure/window/spawner/directional/south, +/obj/structure/window/spawner/directional/north, +/obj/structure/flora/bush/fullgrass, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/flowers_pp, +/turf/open/floor/grass, +/area/station/cargo/lobby) +"xLV" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"xMg" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/camera/autoname/directional/west, +/turf/open/floor/iron, +/area/station/commons/dorms) +"xMj" = ( +/obj/structure/railing/wooden_fencing{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/turf/open/floor/wood, +/area/station/common/pool) +"xMr" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/purple/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/service/barber) +"xMs" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"xMw" = ( +/obj/effect/decal/cleanable/oil, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless, +/area/station/maintenance/port/upper) +"xMy" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) +"xME" = ( +/obj/machinery/power/port_gen/pacman/pre_loaded, +/turf/open/floor/plating, +/area/station/maintenance/port/central) +"xMH" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) +"xMM" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/machinery/computer/rdservercontrol, +/obj/effect/turf_decal/tile/purple/half/contrasted, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"xMP" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/hidden, +/turf/open/floor/engine, +/area/station/science/ordnance/burnchamber) +"xMQ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/storage/tech) +"xMS" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Central Upper Hallway" + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"xMY" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron/freezer, +/area/station/command/heads_quarters/captain/private) +"xNa" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white/corner{ + dir = 8 + }, +/area/station/hallway/secondary/entry) +"xNg" = ( +/obj/machinery/power/port_gen/pacman/pre_loaded, +/obj/machinery/light/small/directional/north, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_port) +"xNh" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/item/electronics/firelock, +/obj/item/electronics/firelock, +/obj/item/electronics/firelock, +/obj/item/electronics/firelock, +/obj/item/electronics/firelock, +/obj/item/electronics/airlock, +/obj/item/electronics/airlock, +/obj/item/electronics/airlock, +/obj/item/electronics/airlock, +/obj/item/electronics/airlock, +/obj/item/electronics/apc, +/obj/item/electronics/apc, +/obj/item/electronics/firealarm, +/obj/item/electronics/firealarm, +/obj/item/electronics/airalarm, +/obj/item/electronics/airalarm, +/obj/machinery/light/directional/north, +/turf/open/floor/iron, +/area/station/engineering/storage/tech) +"xNm" = ( +/obj/machinery/light/floor/has_bulb, +/obj/effect/turf_decal/bot_white, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"xNy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/liquids_spawner, +/obj/item/paper/fluff{ + default_raw_text = "im in a well cuz of you i fell you pushed me down"; + name = "soaked paper" + }, +/turf/open/floor/lowered/iron/pool/cobble, +/area/station/maintenance/department/engineering/engine_aft_port) +"xNA" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/closed/wall/r_wall, +/area/station/science/ordnance/burnchamber) +"xNB" = ( +/obj/structure/table, +/obj/machinery/microwave{ + pixel_y = 8 + }, +/obj/machinery/button/door/directional/west{ + id = "Dorm3"; + name = "Dormitory Door Lock"; + normaldoorcontrol = 1; + specialfunctions = 4 + }, +/turf/open/floor/wood, +/area/station/commons/dorms/room4) +"xND" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate{ + icon_state = "crateopen" + }, +/obj/effect/spawner/random/contraband/narcotics, +/obj/item/clothing/mask/gas, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"xNG" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/plating, +/area/station/hallway/secondary/construction) +"xNK" = ( +/obj/machinery/door/airlock/freezer{ + name = "Freezer" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/abandon_kitchen_upper) +"xNM" = ( +/obj/machinery/status_display/evac, +/turf/closed/wall, +/area/station/hallway/secondary/entry) +"xNT" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 5 + }, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"xNV" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/station/service/abandoned_gambling_den) +"xNW" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/iron/dark, +/area/station/service/chapel/office) +"xOi" = ( +/obj/structure/grille, +/obj/structure/window/spawner/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/atmos_aux_port) +"xOj" = ( +/obj/item/radio/intercom/directional/east, +/turf/open/floor/iron/dark/side{ + dir = 6 + }, +/area/station/service/hydroponics) +"xOl" = ( +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/medical/aslyum) +"xOp" = ( +/obj/structure/table, +/obj/item/stock_parts/subspace/transmitter, +/obj/item/stock_parts/subspace/transmitter, +/obj/item/stock_parts/subspace/transmitter, +/obj/item/stock_parts/subspace/treatment, +/obj/item/stock_parts/subspace/treatment, +/obj/item/stock_parts/subspace/treatment, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tcomms) +"xOq" = ( +/obj/machinery/portable_atmospherics/canister/nitrogen, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/security/lower) +"xOu" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable, +/turf/open/space/basic, +/area/space/nearstation) +"xOw" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/medical/psychology) +"xOx" = ( +/obj/machinery/light/small/broken/directional/north, +/obj/structure/cable, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"xOy" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/cargo/office) +"xOE" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/radiation, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/hfr_room) +"xOQ" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 4 + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron/white, +/area/station/science/research) +"xOV" = ( +/obj/item/stack/sheet/cardboard, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"xOZ" = ( +/obj/machinery/modular_computer/preset/id{ + dir = 1 + }, +/obj/structure/window/spawner/directional/south, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/command/heads_quarters/hop) +"xPb" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/science/ordnance) +"xPd" = ( +/turf/closed/wall, +/area/station/commons/dorms/room7) +"xPg" = ( +/obj/effect/turf_decal/bot, +/obj/vehicle/ridden/wheelchair{ + dir = 4 + }, +/obj/machinery/light/directional/west, +/turf/open/floor/iron, +/area/station/medical/medbay/central) +"xPj" = ( +/obj/structure/table/reinforced, +/obj/item/radio/intercom/directional/east, +/obj/item/clothing/gloves/color/yellow, +/turf/open/floor/iron/dark, +/area/station/engineering/storage) +"xPk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"xPl" = ( +/obj/structure/table/reinforced, +/obj/item/folder, +/obj/item/folder/yellow, +/obj/item/pen, +/obj/machinery/door/firedoor, +/obj/machinery/door/window/right/directional/north{ + name = "Cargo Desk"; + req_access = list("cargo") + }, +/turf/open/floor/iron/dark, +/area/station/cargo/office) +"xPn" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/computer/cargo/request{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown, +/obj/structure/railing, +/turf/open/floor/iron, +/area/station/cargo/lobby) +"xPp" = ( +/turf/closed/wall, +/area/station/maintenance/disposal/incinerator) +"xPu" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/generic, +/obj/structure/flora/bush/flowers_pp, +/obj/machinery/door/firedoor/border_only, +/turf/open/floor/grass, +/area/station/security/prison/garden) +"xPx" = ( +/obj/effect/turf_decal/trimline/purple/filled/line, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron/white, +/area/station/science/research) +"xPz" = ( +/obj/structure/table/wood, +/obj/item/storage/crayons, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/abandon_art_studio) +"xPO" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/tcommsat/computer) +"xQa" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/structure/sign/poster/random/directional/east, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/dorms) +"xQq" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/cargo/warehouse) +"xQu" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/engineering/main) +"xQw" = ( +/turf/closed/wall/r_wall, +/area/station/maintenance/port/upper) +"xQC" = ( +/obj/structure/table/glass, +/obj/item/reagent_containers/condiment/saltshaker{ + pixel_x = -8; + pixel_y = 5 + }, +/obj/item/reagent_containers/condiment/peppermill{ + pixel_x = -8 + }, +/obj/machinery/light/directional/east, +/obj/machinery/newscaster/directional/east, +/turf/open/floor/wood, +/area/station/hallway/primary/central) +"xQR" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/machinery/newscaster/directional/west, +/turf/open/floor/iron/dark/corner{ + dir = 8 + }, +/area/station/security/interrogation) +"xQS" = ( +/obj/machinery/light_switch/directional/south, +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/circuit, +/area/station/ai_monitored/command/nuke_storage) +"xQY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/aux_eva) +"xRa" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/layer_manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/science/xenobiology/control) +"xRc" = ( +/obj/machinery/door/poddoor/preopen{ + id = "WestLockdown1"; + name = "West Bridge Blast Door" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/command/gateway) +"xRi" = ( +/obj/machinery/plumbing/ooze_sucker{ + mapping_id = "6" + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"xRw" = ( +/obj/effect/turf_decal/bot, +/obj/structure/reagent_dispensers/wall/peppertank/directional/north, +/obj/structure/closet/secure_closet/security/med, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/medical) +"xRH" = ( +/obj/structure/chair/office{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/security/checkpoint/customs) +"xRL" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/window/spawner/directional/east, +/obj/structure/dresser, +/obj/machinery/digital_clock/directional/south, +/turf/open/floor/carpet/black, +/area/station/commons/dorms/room5) +"xRO" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"xRR" = ( +/obj/machinery/teleport/station, +/obj/effect/turf_decal/stripes/blue/line, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/light/directional/north, +/turf/open/floor/iron/dark/textured_large, +/area/station/ai_monitored/turret_protected/aisat_interior) +"xRV" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/effect/spawner/random/trash/grime, +/turf/open/floor/plating/reinforced{ + initial_gas_mix = "TEMP=2.7" + }, +/area/station/science/ordnance/bomb) +"xSa" = ( +/obj/machinery/duct, +/turf/open/floor/carpet/purple, +/area/station/science/breakroom) +"xSc" = ( +/obj/machinery/oven/range, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/contraband/cannabis, +/turf/open/floor/iron/cafeteria, +/area/station/maintenance/department/medical/central) +"xSe" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/station/command/meeting_room/council) +"xSh" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"xSk" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/iron/smooth_corner{ + dir = 4 + }, +/area/station/command/secure_bunker) +"xSD" = ( +/obj/structure/table, +/obj/item/paper/pamphlet/gateway, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/command/gateway) +"xSK" = ( +/turf/open/floor/iron/white/side{ + dir = 4 + }, +/area/station/hallway/secondary/entry) +"xSN" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/yellow/visible{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/engineering/atmos) +"xSR" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 9 + }, +/turf/open/indestructible{ + base_icon_state = "reinf_glass"; + icon = 'icons/turf/floors/reinf_glass.dmi'; + icon_state = "reinf_glass-0"; + name = "Ultra Reinforced Glass Floor" + }, +/area/station/ai_monitored/turret_protected/aisat_interior) +"xSZ" = ( +/obj/structure/table/wood, +/obj/item/storage/briefcase, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/station/maintenance/abandon_office) +"xTh" = ( +/obj/effect/spawner/random/trash/mess, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/security/lesser) +"xTk" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron, +/area/station/science/explab) +"xTn" = ( +/obj/structure/chair/pew/right{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood, +/obj/effect/landmark/start/hangover, +/turf/open/floor/wood, +/area/station/security/courtroom) +"xTq" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/caution/stand_clear, +/obj/machinery/door/poddoor/preopen{ + id = "Biohazard"; + name = "Biohazard Containment Door" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/science/research) +"xTr" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/construction/mining/aux_base) +"xTt" = ( +/obj/structure/cable, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/security/office) +"xTA" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/medical/exam_room) +"xTE" = ( +/obj/machinery/newscaster/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/commons/toilet/restrooms) +"xTK" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/chair/sofa/bench/left{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/port) +"xTP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/department/science/upper) +"xTT" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/oil/streak, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/airless, +/area/station/maintenance/fore/upper) +"xTU" = ( +/obj/effect/spawner/random/trash/mess, +/turf/open/floor/plating, +/area/station/maintenance/port/central) +"xTW" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"xUb" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/stone, +/area/station/common/wrestling/arena) +"xUd" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/junction, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"xUe" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"xUl" = ( +/obj/structure/closet/cardboard, +/obj/effect/spawner/random/maintenance/two, +/turf/open/floor/plating, +/area/station/maintenance/department/chapel) +"xUx" = ( +/obj/structure/closet/crate/hydroponics, +/obj/machinery/light/directional/west, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/iron/checker, +/area/station/hallway/secondary/service) +"xUA" = ( +/obj/structure/window/spawner/directional/east, +/obj/structure/window/spawner/directional/north, +/obj/structure/table/reinforced, +/obj/item/binoculars, +/turf/open/floor/iron/dark, +/area/station/engineering/transit_tube) +"xUF" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/medical/patients_rooms) +"xUL" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/junction{ + dir = 1 + }, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"xUM" = ( +/obj/effect/turf_decal/stripes/box, +/obj/machinery/processor{ + pixel_y = 12 + }, +/obj/structure/table, +/turf/open/floor/iron/dark, +/area/station/security/prison/mess) +"xUR" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"xUU" = ( +/obj/structure/noticeboard/directional/west{ + dir = 4 + }, +/obj/machinery/light/directional/west, +/turf/open/floor/iron/dark, +/area/station/service/cafeteria) +"xUX" = ( +/turf/closed/wall, +/area/station/maintenance/abandon_office) +"xUY" = ( +/obj/effect/turf_decal/tile/blue/half/contrasted, +/turf/open/floor/iron/dark/side, +/area/station/hallway/secondary/command) +"xUZ" = ( +/obj/effect/spawner/random/trash/mess, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"xVb" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 6 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"xVe" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/trash/energybar, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"xVi" = ( +/obj/machinery/duct, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"xVo" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/light/directional/north, +/turf/open/floor/iron/dark, +/area/station/tcommsat/computer) +"xVt" = ( +/obj/structure/chair/plastic, +/obj/structure/cable, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/red/corner, +/turf/open/floor/iron/dark/side{ + dir = 9 + }, +/area/station/security/brig) +"xVv" = ( +/obj/structure/flora/bush/jungle, +/turf/open/floor/grass, +/area/station/hallway/primary/central/aft) +"xVz" = ( +/obj/effect/spawner/liquids_spawner{ + reagent_list = list(/datum/reagent/water=600) + }, +/obj/structure/flora/rock/style_3, +/turf/open/misc/asteroid, +/area/station/hallway/primary/upper) +"xVF" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/sign/poster/random/directional/north, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/commons/dorms) +"xVG" = ( +/obj/effect/turf_decal/stripes{ + dir = 6 + }, +/obj/structure/closet/secure_closet/hos, +/obj/structure/window/spawner/directional/east, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hos) +"xVI" = ( +/obj/structure/cable, +/obj/machinery/door/airlock/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"xVJ" = ( +/obj/machinery/camera/directional/west{ + c_tag = "Leisure Area - Lasertag Blue Fore"; + name = "hallway camera" + }, +/turf/open/floor/iron/dark, +/area/station/common/laser_tag) +"xVT" = ( +/obj/machinery/light/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/command/bridge) +"xVV" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"xWd" = ( +/obj/structure/table, +/obj/item/hand_labeler, +/obj/item/camera, +/obj/item/camera_film, +/obj/item/storage/crayons, +/obj/item/storage/crayons, +/obj/item/storage/crayons, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/iron, +/area/station/commons/storage/art) +"xWf" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/wood, +/area/station/common/wrestling/lobby) +"xWm" = ( +/obj/machinery/door/airlock/maintenance, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/effect/mapping_helpers/airlock/unres, +/turf/open/floor/iron, +/area/station/maintenance/department/engineering/engine_aft_port) +"xWn" = ( +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) +"xWp" = ( +/turf/closed/wall/rust, +/area/station/maintenance/abandon_wrestle) +"xWq" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/commons/fitness) +"xWt" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) +"xWy" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/commons/dorms) +"xWA" = ( +/obj/structure/flora/rock, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"xWE" = ( +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/item/stock_parts/micro_laser/high, +/obj/item/stock_parts/micro_laser/high, +/obj/item/stock_parts/manipulator/nano, +/obj/item/stock_parts/manipulator/nano, +/obj/item/stock_parts/matter_bin/adv, +/obj/item/stock_parts/matter_bin/adv, +/obj/item/stock_parts/capacitor/adv, +/obj/item/stock_parts/capacitor/adv, +/obj/item/stock_parts/scanning_module/adv, +/obj/item/stock_parts/scanning_module/adv, +/obj/item/storage/part_replacer, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva/upper) +"xWL" = ( +/obj/item/clothing/gloves/latex, +/obj/item/clothing/suit/apron/surgical, +/obj/item/clothing/mask/surgical, +/obj/structure/table/reinforced, +/obj/item/radio/intercom/directional/west, +/obj/machinery/light_switch/directional/west{ + pixel_y = -8 + }, +/obj/machinery/light/directional/west, +/turf/open/floor/iron, +/area/station/medical/surgery/theatre) +"xWT" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron/smooth_large, +/area/station/command/secure_bunker) +"xWZ" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/ferny, +/turf/open/floor/grass, +/area/station/medical/aslyum) +"xXl" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/table, +/obj/item/stack/cable_coil{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/stack/cable_coil, +/obj/item/grenade/chem_grenade, +/obj/item/grenade/chem_grenade, +/obj/item/grenade/chem_grenade, +/obj/item/screwdriver{ + pixel_y = -8 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/medical/pharmacy) +"xXo" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/thinplating_new/dark, +/obj/effect/turf_decal/trimline/red/line, +/turf/open/floor/iron/dark/smooth_edge{ + dir = 1 + }, +/area/station/security/brig) +"xXp" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_port) +"xXt" = ( +/obj/structure/rack, +/obj/effect/spawner/random/maintenance/three, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"xXu" = ( +/obj/structure/rack, +/obj/item/storage/medkit/regular, +/obj/item/storage/medkit/regular, +/obj/item/clothing/mask/gas/explorer, +/obj/item/clothing/mask/gas/explorer, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/command/gateway) +"xXv" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/item/shard, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/station/maintenance/abandon_exam/cat) +"xXw" = ( +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/prison/workout) +"xXC" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"xXG" = ( +/obj/structure/table, +/obj/item/stack/medical/mesh, +/obj/item/stack/medical/gauze, +/obj/item/stack/medical/suture, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/obj/machinery/status_display/evac/directional/east, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) +"xXJ" = ( +/turf/open/floor/iron/smooth_large, +/area/station/cargo/miningdock) +"xXP" = ( +/obj/structure/window/spawner/directional/west, +/obj/structure/window/spawner/directional/north, +/obj/structure/flora/bush/large, +/turf/open/floor/grass, +/area/station/service/cafeteria) +"xXU" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron, +/area/station/engineering/transit_tube) +"xYc" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron, +/area/station/science/explab) +"xYf" = ( +/obj/structure/closet/l3closet/security, +/obj/item/clothing/suit/bio_suit/security, +/obj/item/clothing/suit/bio_suit/security, +/obj/item/clothing/suit/bio_suit/security, +/obj/item/clothing/head/bio_hood/security, +/obj/item/clothing/head/bio_hood/security, +/obj/item/clothing/head/bio_hood/security, +/obj/machinery/light/directional/west, +/obj/machinery/newscaster/directional/west, +/obj/machinery/camera/autoname/directional/west, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/lockers) +"xYg" = ( +/turf/open/floor/iron/grimy, +/area/station/maintenance/starboard/fore) +"xYh" = ( +/obj/machinery/gulag_item_reclaimer{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/machinery/camera/directional/east{ + c_tag = "Security - Prisoner Labor Transfer Dock" + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) +"xYm" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/window/spawner/directional/east, +/obj/structure/closet/secure_closet/personal/cabinet, +/turf/open/floor/carpet, +/area/station/commons/dorms/room7) +"xYq" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/structure/table/wood, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"xYs" = ( +/obj/structure/table/wood, +/obj/item/toy/foamfinger{ + pixel_y = 5 + }, +/turf/open/floor/carpet, +/area/station/common/wrestling/lobby) +"xYu" = ( +/turf/open/floor/plating/airless, +/area/station/maintenance/eva_shed/starboard) +"xYB" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron, +/area/station/engineering/main) +"xYH" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"xYK" = ( +/obj/effect/turf_decal/stripes/end, +/obj/structure/railing, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"xYL" = ( +/obj/machinery/atmospherics/pipe/smart/simple/pink/visible{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"xYP" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"xYQ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron, +/area/station/commons/dorms) +"xYR" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"xYZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/safe{ + name = "gilded safe" + }, +/obj/item/wheelchair/gold, +/turf/open/floor/iron/dark, +/area/station/maintenance/department/security/prison_upper) +"xZc" = ( +/obj/machinery/door/airlock/external{ + space_dir = 4 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/external, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"xZd" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) +"xZi" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"xZo" = ( +/obj/structure/table/reinforced, +/obj/item/mmi, +/obj/item/mmi, +/obj/item/bodypart/chest/robot, +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/iron/dark, +/area/station/engineering/storage/tech) +"xZs" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Engineering Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/general, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_port) +"xZu" = ( +/obj/machinery/computer/security/telescreen/entertainment/directional/west, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/wood, +/area/station/command/heads_quarters/blueshield) +"xZz" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/item/toy/plush/plasmamanplushie, +/turf/open/floor/iron/dark, +/area/station/common/gaskiosk) +"xZB" = ( +/obj/effect/spawner/random/trash/mess, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"xZC" = ( +/obj/machinery/light/small/directional/north, +/obj/structure/sign/poster/contraband/kudzu/directional/north, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"xZF" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/service/electronic_marketing_den) +"xZH" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/engineering/main) +"xZO" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/main) +"xZR" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/engineering/main) +"xZS" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/status_display/ai/directional/south, +/obj/machinery/light/directional/south, +/turf/open/floor/iron/dark, +/area/station/science/auxlab/firing_range) +"xZT" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) +"yaa" = ( +/obj/effect/landmark/start/cyborg, +/turf/open/floor/mineral/plastitanium, +/area/station/science/robotics/lab) +"yad" = ( +/obj/structure/flora/bush/fullgrass, +/obj/structure/beebox, +/turf/open/floor/grass, +/area/station/service/hydroponics) +"yae" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/emcloset, +/turf/open/floor/iron/dark, +/area/station/maintenance/solars/port/fore) +"yag" = ( +/obj/structure/window/spawner/directional/west, +/obj/structure/chair/sofa/corp/right{ + color = "#DE3A3A"; + dir = 4 + }, +/obj/machinery/status_display/ai/directional/south, +/obj/machinery/light/directional/south, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen/diner) +"yaj" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/engineering/break_room) +"yal" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/medical/surgery/theatre) +"yap" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer4{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister/air, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/airalarm/directional/south, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat_interior) +"yat" = ( +/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{ + dir = 9 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/engineering/main) +"yau" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/cult, +/area/station/maintenance/cult_chapel_maint) +"yaw" = ( +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/flowers_br, +/obj/structure/window/spawner/directional/north, +/turf/open/floor/grass, +/area/station/commons/dorms) +"yax" = ( +/obj/effect/spawner/random/trash/mess, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/engine, +/area/station/science/tele_sci) +"yay" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/landmark/start/hangover/closet, +/turf/open/floor/iron, +/area/station/commons/dorms) +"yaB" = ( +/obj/machinery/light/directional/east, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/iron/smooth_corner{ + dir = 8 + }, +/area/station/command/secure_bunker) +"yaE" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"yaH" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Abandoned Holding Cells" + }, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/abandon_holding_cell) +"yaI" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/nt_rep) +"yaJ" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Science Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/research, +/turf/open/floor/plating, +/area/station/maintenance/department/science/central) +"yaR" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/airalarm/directional/north, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"yaT" = ( +/obj/machinery/atmospherics/pipe/smart/simple/general/visible{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/station/engineering/supermatter) +"yaZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/food_packaging, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"ybd" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/security/prison/work) +"ybh" = ( +/obj/structure/window/spawner/directional/north, +/turf/open/floor/grass, +/area/station/service/cafeteria) +"ybj" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/hallway/secondary/command) +"ybq" = ( +/obj/item/kirbyplants/random, +/obj/structure/extinguisher_cabinet/directional/south, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain) +"ybu" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/structure/filingcabinet/medical, +/obj/machinery/light/directional/north, +/obj/machinery/button/door/directional/north{ + id = "CMOdoor"; + name = "Door Lock"; + normaldoorcontrol = 1; + pixel_x = -7; + pixel_y = 25; + req_access = list("cmo"); + specialfunctions = 4 + }, +/obj/machinery/button/door/directional/south{ + id = "cmoshutter"; + name = "CMO Office Shutters"; + pixel_x = 7; + pixel_y = 25; + req_access = list("cmo") + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/cmo) +"ybw" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/table/reinforced, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/cell/high, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva) +"ybB" = ( +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/machinery/power/port_gen/pacman, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light/directional/east, +/obj/machinery/status_display/ai/directional/east, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat_interior) +"ybS" = ( +/obj/machinery/door/airlock/maintenance, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/central) +"ybT" = ( +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"ybV" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/table/reinforced, +/obj/machinery/recharger, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint) +"ybY" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/common/laser_tag) +"yca" = ( +/obj/structure/chair, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"yce" = ( +/obj/structure/chair/plastic{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/broken/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"yci" = ( +/obj/item/radio/intercom/directional/south, +/obj/machinery/camera/directional/south{ + c_tag = "Atmospherics - Hypertorus Fusion Reactor Chamber Aft" + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/hfr_room) +"ycl" = ( +/obj/effect/turf_decal/trimline/red/filled/line{ + color = "#DE3A3A"; + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hos) +"ycn" = ( +/obj/structure/tank_holder/extinguisher{ + pixel_y = 8 + }, +/obj/machinery/light_switch/directional/east, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/ai_monitored/command/storage/eva) +"ycs" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/commons/vacant_room/commissary) +"ycv" = ( +/obj/item/reagent_containers/pill/maintenance, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/maintenance/port/aft) +"ycA" = ( +/obj/machinery/mineral/stacking_machine{ + input_dir = 1 + }, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/disposal) +"ycI" = ( +/obj/machinery/light/small/directional/north, +/obj/machinery/duct, +/turf/open/floor/iron/freezer, +/area/station/commons/toilet/auxiliary) +"ycQ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/airalarm/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/commons/dorms) +"ycW" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/engineering/atmos/upper) +"yda" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green{ + pixel_y = 2 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet, +/area/station/maintenance/abandon_psych) +"yde" = ( +/obj/effect/spawner/random/trash/garbage, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/bar) +"ydi" = ( +/obj/machinery/bluespace_vendor/directional/north, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/hallway/secondary/command) +"ydn" = ( +/obj/machinery/door/airlock/medical/glass{ + name = "Medbay Desk" + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/medical/general, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"ydp" = ( +/obj/structure/frame/computer{ + dir = 8 + }, +/obj/item/radio/intercom/directional/east, +/obj/machinery/light/broken/directional/east, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/white, +/area/station/science/tele_sci) +"yds" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/hallway/secondary/service) +"ydt" = ( +/obj/structure/closet/emcloset/wall{ + pixel_y = 32 + }, +/obj/structure/rack, +/obj/item/wrench, +/obj/item/crowbar/large, +/obj/item/screwdriver{ + pixel_y = 7 + }, +/obj/item/wirecutters{ + pixel_y = -4 + }, +/obj/item/stack/cable_coil, +/turf/open/floor/iron/smooth, +/area/station/maintenance/starboard/fore) +"ydz" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/wood/large, +/area/station/common/night_club) +"ydD" = ( +/obj/machinery/light_switch/directional/south, +/obj/machinery/light/directional/south, +/obj/structure/cable, +/obj/effect/turf_decal/tile/blue/half/contrasted, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/command) +"ydE" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/sign/picture_frame/showroom/three{ + pixel_x = -8; + pixel_y = 32 + }, +/obj/structure/sign/picture_frame/showroom/four{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/iron/dark, +/area/station/command/meeting_room/council) +"ydF" = ( +/obj/structure/chair/sofa/corp/left{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/science/research) +"ydH" = ( +/obj/structure/cable, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"ydK" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/machinery/camera/autoname/directional/north, +/turf/open/floor/engine, +/area/station/ai_monitored/turret_protected/aisat/hallway) +"ydM" = ( +/obj/structure/trash_pile, +/turf/open/floor/plating, +/area/station/maintenance/department/science/lower) +"ydN" = ( +/obj/effect/landmark/generic_maintenance_landmark, +/obj/structure/sign/poster/contraband/random/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) +"ydO" = ( +/obj/machinery/door/airlock{ + name = "Harvest Chamber" + }, +/turf/open/floor/plating, +/area/station/maintenance/rus_surgery) +"ydU" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/white, +/area/station/science/research) +"ydV" = ( +/obj/effect/mapping_helpers/airlock/abandoned, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/maintenance{ + name = "Abandoned Art Studio" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/maintenance/abandon_art_studio) +"ydW" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/commons/storage/primary) +"ydY" = ( +/obj/effect/spawner/random/trash/mess, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/abandon_arcade) +"yer" = ( +/obj/structure/cable, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/engine_aft_starboard) +"yeu" = ( +/obj/structure/table/wood, +/obj/structure/window/spawner/directional/south, +/obj/item/food/poppypretzel{ + pixel_y = 11 + }, +/obj/item/food/poppypretzel{ + pixel_y = 6 + }, +/obj/item/food/poppypretzel{ + pixel_y = 1 + }, +/turf/open/floor/iron/dark, +/area/station/service/cafeteria) +"yey" = ( +/obj/effect/spawner/random/vending/snackvend, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/starboard) +"yez" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/security/prison) +"yeC" = ( +/obj/structure/table, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/item/storage/box/donkpockets/donkpocketberry, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/security/prison/mess) +"yeF" = ( +/obj/item/weldingtool, +/obj/structure/cable, +/turf/open/floor/iron/smooth, +/area/station/cargo/power_station/upper) +"yeG" = ( +/obj/item/storage/backpack/blueshield, +/obj/item/storage/backpack/duffelbag/blueshield, +/obj/item/storage/backpack/satchel/blueshield, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/item/clothing/neck/mantle/bsmantle, +/obj/machinery/duct, +/turf/open/floor/carpet/executive, +/area/station/command/heads_quarters/blueshield) +"yeH" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/stairs/right, +/area/station/hallway/primary/central) +"yeN" = ( +/obj/effect/spawner/random/entertainment/arcade, +/turf/open/floor/iron/dark, +/area/station/security/prison/mess) +"yeQ" = ( +/obj/machinery/duct, +/turf/open/floor/iron/cafeteria, +/area/station/commons/toilet/auxiliary) +"yfh" = ( +/obj/structure/table/wood/fancy, +/obj/item/flashlight/lantern{ + pixel_y = 7 + }, +/turf/open/floor/carpet, +/area/station/service/chapel) +"yfi" = ( +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood/large, +/area/station/science/auxlab/firing_range) +"yfv" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/trash_pile, +/turf/open/floor/iron/dark/small, +/area/station/cargo/storage) +"yfw" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/red/filled/line{ + color = "#DE3A3A" + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/side, +/area/station/security/brig) +"yfy" = ( +/obj/machinery/light/small/directional/west, +/obj/machinery/duct, +/turf/open/floor/iron/freezer, +/area/station/commons/dorms/room5) +"yfB" = ( +/obj/machinery/newscaster/directional/north, +/turf/open/floor/wood, +/area/station/service/library) +"yfE" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/security/detectives_office) +"yfF" = ( +/obj/effect/turf_decal/bot_white, +/obj/machinery/scanner_gate, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/arrows/white{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/entry) +"yfG" = ( +/obj/effect/turf_decal/stripes{ + dir = 6 + }, +/turf/open/floor/plating, +/area/station/security/range) +"yfK" = ( +/turf/open/floor/plating, +/area/station/hallway/primary/port) +"yfR" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/violet/visible{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/pumproom) +"yfU" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/security/execution/transfer) +"yfV" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron/stairs, +/area/station/maintenance/abandon_holding_cell) +"yfW" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/effect/landmark/generic_maintenance_landmark, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/stone, +/area/station/common/wrestling/arena) +"yfZ" = ( +/obj/item/chair/stool/bar{ + pixel_y = -8 + }, +/obj/effect/decal/cleanable/vomit/old, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/cafeteria, +/area/station/maintenance/abandon_diner) +"yga" = ( +/obj/structure/curtain/bounty, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock{ + name = "Ranch" + }, +/obj/effect/mapping_helpers/airlock/access/all/service/hydroponics, +/turf/open/floor/iron/stairs, +/area/station/common/night_club) +"yge" = ( +/obj/structure/chair/pew/left{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain/private) +"ygf" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/door/airlock/maintenance, +/obj/structure/barricade/wooden/crude, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"ygl" = ( +/obj/machinery/light/directional/west, +/obj/machinery/camera/autoname/directional/west, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/brig) +"ygn" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"ygo" = ( +/obj/structure/flora/bush/sparsegrass{ + pixel_x = 7; + pixel_y = 3 + }, +/obj/machinery/growing/tray, +/turf/open/floor/grass, +/area/station/security/prison/garden) +"ygq" = ( +/obj/structure/table, +/obj/item/storage/toolbox/electrical{ + pixel_y = 12 + }, +/obj/item/electronics/airalarm{ + pixel_x = -5; + pixel_y = -5 + }, +/obj/item/electronics/firealarm{ + pixel_x = 5; + pixel_y = -5 + }, +/obj/item/electronics/firealarm{ + pixel_x = 5 + }, +/obj/item/electronics/airalarm{ + pixel_x = -5; + pixel_y = -5 + }, +/obj/item/stack/sheet/plasteel/fifty, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/test_chambers) +"ygx" = ( +/obj/structure/window/spawner/directional/south, +/obj/machinery/modular_computer/preset/cargochat/service{ + dir = 1 + }, +/turf/open/floor/iron/dark/side, +/area/station/hallway/secondary/service) +"ygF" = ( +/obj/structure/window/reinforced/fulltile, +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/flowers_pp, +/obj/structure/flora/bush/sunny, +/turf/open/floor/grass, +/area/station/command/heads_quarters/hos) +"ygG" = ( +/obj/effect/turf_decal/bot, +/obj/structure/bed/roller, +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/item/radio/intercom/directional/south, +/obj/machinery/camera/directional/south, +/turf/open/floor/iron/white, +/area/station/command/gateway) +"ygI" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/window/preopen{ + id = "ArrivalsEntry"; + name = "Free Acces Shutters" + }, +/obj/effect/turf_decal/siding/thinplating_new, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 1 + }, +/obj/effect/landmark/navigate_destination, +/obj/machinery/door/airlock/public/glass{ + name = "Arrivals" + }, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/entry) +"ygL" = ( +/obj/effect/spawner/random/trash/moisture_trap, +/turf/open/floor/iron, +/area/station/maintenance/port/aft) +"ygS" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/carpet, +/area/station/service/chapel) +"ygT" = ( +/obj/effect/turf_decal/trimline/blue/corner{ + dir = 4 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/iron, +/area/station/commons/fitness) +"ygW" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"ygX" = ( +/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/lobby) +"ygY" = ( +/turf/closed/wall, +/area/station/maintenance/solars/starboard/fore) +"yha" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/smooth, +/area/station/cargo/power_station/upper) +"yhf" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/upper) +"yhm" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/commons/storage/primary) +"yhp" = ( +/turf/closed/wall/rust, +/area/station/maintenance/rus_gambling) +"yhr" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/landmark/start/assistant, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/commons/fitness) +"yht" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/iron/dark, +/area/station/security/prison/workout) +"yhu" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/machinery/computer/station_alert{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/command/bridge) +"yhv" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) +"yhA" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/structure/window/reinforced/tinted/spawner/directional/east, +/obj/item/stack/sheet/iron/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/mineral/plasma{ + amount = 20 + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat_interior) +"yhH" = ( +/obj/effect/spawner/random/trash/grille_or_waste, +/turf/open/floor/plating, +/area/station/maintenance/department/chapel) +"yhI" = ( +/obj/structure/chair/sofa/corp/left{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/customs/auxiliary) +"yhL" = ( +/obj/effect/turf_decal/trimline/yellow/filled/corner, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) +"yhM" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/maintenance/abandon_art_studio) +"yhS" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"yhW" = ( +/obj/effect/turf_decal/bot_white, +/obj/effect/turf_decal/caution/stand_clear/white, +/turf/open/floor/iron/dark/smooth_large/airless, +/area/space/nearstation) +"yhY" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/wood/parquet, +/area/station/common/gaskiosk) +"yic" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/medical/surgery) +"yif" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/window/left/directional/south{ + name = "Service Deliveries"; + req_access = list("service") + }, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/service) +"yig" = ( +/obj/effect/decal/cleanable/oil, +/obj/effect/decal/cleanable/dirt, +/mob/living/basic/spider/growing/spiderling, +/turf/open/floor/iron/cafeteria, +/area/station/maintenance/department/medical/central) +"yij" = ( +/obj/machinery/photocopier, +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/iron/dark/side{ + dir = 9 + }, +/area/station/engineering/lobby) +"yio" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/medical/aslyum) +"yir" = ( +/obj/item/stack/sheet/cardboard, +/obj/item/storage/box/lights, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/science/auxlab/firing_range) +"yiy" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/iron/dark/small, +/area/station/security/prison/upper) +"yiA" = ( +/obj/machinery/computer/slot_machine, +/turf/open/floor/plating, +/area/station/service/abandoned_gambling_den) +"yiC" = ( +/obj/structure/table/reinforced, +/obj/item/folder/blue{ + pixel_y = 2 + }, +/obj/item/pen, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/grimy, +/area/station/ai_monitored/turret_protected/aisat_interior) +"yiD" = ( +/obj/effect/turf_decal/trimline/green/filled/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/green/filled/corner, +/turf/open/floor/iron/white, +/area/station/medical/virology) +"yiE" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/security/power_station) +"yiI" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/command/captain_dining) +"yiJ" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/dark/corner{ + dir = 8 + }, +/area/station/hallway/primary/port) +"yiK" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/security/medical) +"yiM" = ( +/obj/machinery/light/directional/east, +/obj/structure/flora/bush/grassy, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/grass, +/area/station/hallway/primary/central) +"yiP" = ( +/obj/structure/chair/sofa/bench/left{ + dir = 1 + }, +/obj/effect/landmark/start/security_officer, +/obj/effect/turf_decal/trimline/red/filled/line, +/obj/effect/turf_decal/trimline/red/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/side, +/area/station/security/lockers) +"yiQ" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/transit_tube/curved, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/aisat/exterior) +"yiR" = ( +/obj/structure/table, +/obj/item/storage/crayons{ + pixel_y = 9 + }, +/obj/item/toy/crayon/spraycan{ + pixel_x = -6; + pixel_y = 9 + }, +/obj/item/chisel{ + pixel_x = 4; + pixel_y = 3 + }, +/obj/machinery/camera/directional/north{ + c_tag = " Prison - Library"; + network = list("ss13","prison") + }, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/north, +/turf/open/floor/wood, +/area/station/security/prison/rec) +"yiT" = ( +/obj/structure/extinguisher_cabinet, +/turf/closed/wall, +/area/station/hallway/secondary/entry) +"yiV" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/main) +"yja" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/carpet, +/area/station/security/courtroom) +"yjp" = ( +/obj/structure/grille, +/turf/open/floor/plating, +/area/station/maintenance/department/engineering/atmos_aux_port) +"yjr" = ( +/obj/machinery/door/airlock/maintenance, +/obj/effect/mapping_helpers/airlock/abandoned, +/turf/open/floor/plating, +/area/station/maintenance/fore/upper) +"yjD" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/science/ordnance) +"yjE" = ( +/turf/closed/wall, +/area/station/maintenance/thruster_room/central) +"yjL" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/growing/tray, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) +"yjN" = ( +/obj/effect/turf_decal/tile/dark_blue/half/contrasted{ + dir = 1 + }, +/obj/machinery/computer/mech_bay_power_console, +/turf/open/floor/iron/dark, +/area/station/security/mechbay) +"yjO" = ( +/obj/structure/rack, +/obj/effect/spawner/random/maintenance/two, +/turf/open/floor/plating, +/area/station/maintenance/central) +"yjY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/grille_or_waste, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"ykd" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron/smooth_edge, +/area/station/cargo/miningdock) +"ykp" = ( +/obj/machinery/ai_slipper{ + uses = 10 + }, +/obj/effect/turf_decal/bot_white, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat_interior) +"yky" = ( +/obj/item/assembly/shock_kit, +/obj/structure/rack, +/obj/machinery/light/small/directional/north, +/turf/open/floor/engine, +/area/station/maintenance/department/science/xenobiology) +"ykA" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/effect/spawner/random/maintenance/two, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"ykE" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 2 + }, +/turf/open/floor/wood, +/area/station/security/detectives_office) +"ykG" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/machinery/light/small/directional/east, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/structure/closet/secure_closet/brig{ + id = "Cell 3"; + name = "Cell 3 Locker" + }, +/turf/open/floor/iron/dark, +/area/station/security/brig) +"ykH" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/flora/grass/jungle, +/obj/structure/flora/bush/grassy, +/obj/structure/flora/bush/flowers_br, +/obj/machinery/door/firedoor/border_only, +/turf/open/floor/grass, +/area/station/security/prison/garden) +"ykI" = ( +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/dorms) +"ykL" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"ykR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/port/upper) +"ykW" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/security/warden) +"yla" = ( +/obj/machinery/door/airlock/external/glass{ + name = "Turbine Airlock" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) +"ylb" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/carpet, +/area/station/service/chapel/funeral) +"yld" = ( +/obj/machinery/door/airlock/grunge{ + name = "Chapel Morgue" + }, +/obj/effect/mapping_helpers/airlock/access/all/service/crematorium, +/turf/open/floor/iron/dark, +/area/station/service/chapel/funeral) +"ylg" = ( +/obj/item/stack/cable_coil/five, +/obj/item/wirecutters{ + pixel_x = -5; + pixel_y = -9 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/security/lower) +"ylh" = ( +/turf/open/floor/iron/smooth, +/area/station/engineering/atmos/hfr_room) +"ylj" = ( +/obj/machinery/light/directional/north, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/sign/departments/security/directional/north, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"yln" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/machinery/camera/autoname/directional/north, +/turf/open/floor/circuit, +/area/station/command/gateway) +"ylq" = ( +/obj/structure/chair/office{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/security/interrogation) +"ylw" = ( +/obj/structure/bookcase/manuals/engineering, +/turf/open/floor/wood, +/area/station/command/meeting_room/council) +"yly" = ( +/obj/machinery/computer/security{ + dir = 1 + }, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron/dark/side, +/area/station/security/checkpoint/customs/auxiliary) +"ylz" = ( +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark/corner{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/security/brig) +"ylX" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) +"ymb" = ( +/obj/effect/turf_decal/trimline/red/filled/warning{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/line, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/security/prison/upper) +"ymf" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Mix Outlet Pump" + }, +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/engineering/atmos/pumproom) +"ymh" = ( +/obj/item/stack/sheet/cardboard, +/obj/item/storage/box/lights/mixed, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/aft/upper) + +(1,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(2,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(3,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(4,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(5,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(6,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(7,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(8,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(9,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(10,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(11,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(12,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(13,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(14,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(15,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(16,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(17,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(18,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(19,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(20,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(21,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(22,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(23,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(24,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(25,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(26,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(27,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(28,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(29,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(30,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(31,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(32,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(33,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(34,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(35,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(36,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(37,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(38,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(39,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(40,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(41,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(42,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(43,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(44,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(45,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(46,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(47,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(48,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(49,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(50,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(51,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(52,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(53,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(54,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(55,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(56,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(57,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(58,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(59,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(60,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(61,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(62,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(63,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(64,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(65,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +lxx +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(66,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +dTd +stH +dTd +qHM +nKo +fZI +fZI +fZI +nKo +rtK +nKo +lzr +nKo +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(67,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +nSU +nSU +nSU +nSU +nSU +fZI +fZI +fZI +fZI +fZI +fZI +fZI +dTd +gRQ +dTd +iEZ +nKo +fZI +fZI +fZI +nKo +sbr +nKo +sbr +nKo +fZI +fZI +fZI +fZI +fZI +fZI +fZI +lZm +utO +utO +utO +lZm +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(68,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +rgD +fti +fti +fti +rgD +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +bOg +bOg +bOg +bOg +bOg +pEA +pEA +pEA +nSU +abB +pmh +fzU +nSU +iTQ +fZI +fZI +fZI +fZI +fZI +fZI +dTd +gRQ +dTd +iEZ +nKo +nKo +nKo +nKo +nKo +sbr +nKo +sbr +nKo +fZI +fZI +fZI +fZI +fZI +fZI +lZm +lZm +xda +lZO +lSb +utO +nrT +nrT +nrT +bsG +bsG +bsG +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(69,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +viy +nuo +nuo +nuo +viy +khq +khq +khq +fZI +fZI +fZI +fZI +khq +khq +khq +qIs +jqz +jqz +jqz +rgD +fti +fti +fti +rgD +rgD +rgD +vvJ +kHq +kHq +rgD +rgD +juK +juK +juK +juK +juK +juK +juK +juK +juK +bOg +xfA +mTK +xfA +mjj +ghs +fnx +vQz +mKV +rAx +bbr +kUD +kzk +iTQ +iTQ +iTQ +iTQ +oDz +oDz +dTd +dTd +iZi +cFU +rEg +nKo +cOE +iqG +wDB +nKo +bAV +xKQ +wiF +nKo +nKo +szo +sgq +sgq +sgq +szo +lZm +wbt +eow +bxz +gaK +utO +fZI +xJH +fZI +rUF +mQV +fZI +itJ +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(70,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +viy +rdR +xYs +kQT +wSe +cnb +jfj +khq +vQr +vQr +vQr +vQr +khq +eMA +eUh +pCR +mML +dJo +rqb +eCb +qoj +gMP +lBn +eCb +vgp +xVJ +vQR +rJf +vQR +oWY +kgt +eqf +uqL +rwS +nnB +oBx +eqf +bqE +bqE +bqE +mjj +xfA +lOL +xfA +mjj +mcz +vpt +lfi +qoo +gwm +bbr +rsZ +hsI +gXE +fId +fvy +rrD +cFU +nJd +dri +ewR +jJx +dTd +hFQ +wqX +clK +gXL +imA +hUF +hFQ +wqX +hFQ +wqX +ecd +szo +epc +yhI +cMs +szo +nYW +omm +xHT +hTS +xHT +lZm +mQV +mQV +mQV +iBx +mQV +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(71,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +viy +hzF +ght +xpt +sYM +jPM +bET +rce +xKr +jyx +mKG +uuz +oRd +mJE +jPM +rkL +vne +mND +eJt +kcI +axq +qLh +fDP +eCb +laC +cTG +cTG +uzi +cyV +nyq +nyq +eqf +oUO +opJ +ttf +lvd +rmf +vYS +vYS +vYS +mjj +bMd +tJG +bMd +mjj +bBW +jiE +xwJ +gJL +vdq +xrB +rsZ +sNT +qpl +uID +kuh +kuh +oeZ +mIV +aNT +xkz +ncH +dTd +vUa +vUa +fbg +gyf +aVI +dXV +sdu +sdu +gWc +vUa +bPG +oZS +mWL +sjq +gFV +szo +ydO +xHT +xHT +nXP +bbz +uKU +mQV +mQV +mQV +kSt +mQV +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(72,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +viy +viy +viy +gXH +mOb +mDc +cky +cuH +mSI +ifq +jPR +lSI +xgr +fIF +lSI +mSI +cuH +lrs +lUD +rZO +oUA +peh +tYu +mzP +hMH +mmS +dBH +cFm +eCb +fHc +eCb +rmB +nyq +eqf +bRp +dcJ +qxs +uYQ +eqf +vzT +iGE +enN +mjj +gmc +tJL +fLX +mjj +fwy +pjV +pjV +pjV +pjV +pjV +qZG +ghs +gXE +kuh +bnM +pQK +cFU +bjx +pwb +uBz +cTO +dTd +idW +gXL +kIB +aqO +muU +fZE +kIB +aqO +jMZ +gXL +gXL +oZS +swO +rlQ +cSd +szo +odo +bRh +xpn +xKz +nJv +uKU +gla +gFS +gFS +xjY +xjY +bsG +bsG +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(73,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +nuo +tUP +dYe +aeg +dSN +cRS +sYM +imb +pmP +hNj +jPM +pmP +bET +jPM +hdY +pmP +oIJ +rkL +siD +dEa +oUA +kcI +cNU +mzP +lAY +eCb +ivB +tVr +mrY +ybY +nyq +nyq +nyq +eqf +iSV +mLq +dwo +tIb +fVW +vYS +vYS +vYS +mjj +tFx +heZ +rwZ +itY +rqN +cUE +wHF +tNM +kiZ +gXE +gXE +gXE +gXE +kuh +cFU +cFU +cFU +cwE +hro +oGo +vxf +cFU +cFU +use +qcX +xKQ +mCT +fZE +qcX +xKQ +cYT +gXL +gXL +oZS +sto +sjq +vdX +szo +khB +wsY +xpn +sCE +oHL +mqQ +lxj +qEt +vPM +jtq +tfY +mQV +fZI +itJ +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(74,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +bsG +eRp +eRp +wrR +bsG +fZI +fZI +fZI +fZI +fZI +bsG +cXn +pmH +bsG +nYs +fZI +fZI +fZI +fZI +bsG +bsG +rvj +qxb +bsG +tNz +vuc +tNz +tNz +tNz +tNz +tNz +tNz +fZI +fZI +fZI +fZI +fZI +nuo +fGf +gOi +wTF +oAY +pvv +wSe +rgK +sxJ +aOh +pmP +pev +waJ +pmP +pJR +pGQ +cDu +pCR +gGB +dEa +rRk +eCb +tlr +bKy +eAU +eCb +img +rmz +syt +ijZ +syt +gPs +det +eqf +cNZ +uSl +bOj +cGw +eqf +dBI +dBI +dBI +mjj +qvG +scy +bIT +muk +nNI +osQ +eht +lOh +eht +tzz +hcY +nJT +ost +kuh +cFU +qny +ine +bjx +oyN +nlR +ueo +ekl +dTd +gXL +kIB +wBy +muU +fZE +kIB +wBy +jMZ +loS +lwJ +szo +apa +iMB +dnK +szo +bDK +bDK +pqn +itP +tIi +mqQ +voo +wyp +vPM +daD +eqS +mQV +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(75,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +bsG +lvM +hKO +tYr +wpo +wpo +wpo +wpo +cLz +cLz +wpo +qaR +tme +bsG +xJH +fZI +bsG +bsG +bsG +bsG +sJq +hKO +tYr +hLg +tNz +eKa +tNz +kwD +oTk +ewx +dFg +tNz +tNz +tNz +fZI +fZI +fZI +nuo +klh +xkU +jnJ +plN +xWf +wSe +vQr +vQr +vQr +oSQ +vQr +vQr +oSQ +vQr +vQr +vQr +pCR +rkL +dEa +vdG +eCb +eCb +bkZ +eCb +eCb +eCb +eCb +vmg +vmg +wwR +eCb +eCb +eqf +kji +eqf +eqf +eqf +eqf +eqf +eqf +eqf +mjj +mjj +mjj +mjj +mjj +sXR +cUE +hxV +ckL +dao +gXE +gXE +gXE +gXE +eAV +cFU +knN +mOI +rNY +hCU +nFN +sCB +bCi +stz +hKt +hKf +xKQ +hoC +lZM +ero +xKQ +qqT +loS +gkx +szo +oZS +gXF +aqt +szo +vPM +pND +uiy +jNH +qCN +mqQ +vPM +vPM +vPM +xDN +rus +mQV +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(76,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +bsG +bsG +qfL +exN +bsG +bsG +iwF +xUe +lbK +mjG +ogS +oKp +vGL +ltN +hyp +cLz +lbK +lBQ +tYr +fZI +fZI +oOg +jlt +tYr +hfg +exN +tYr +xUe +hKO +aVO +hXk +wfd +kbf +cXk +cZH +kbf +kbf +eKa +tNz +fZI +fZI +fZI +npu +gBT +lzE +lzE +shI +lzE +lzE +uyC +uyC +uyC +uyC +uyC +uyC +uyC +uyC +uyC +uyC +nMN +aAU +dEa +uVc +ewE +xoK +uEt +oKY +iKV +mWh +pCR +pBo +pBo +pBo +pBo +gQe +vKR +nxw +phP +quu +pBo +gBH +mnh +opY +cUE +vfY +cAw +qgM +lIO +qCg +foV +xHd +eyJ +atu +uoN +qnd +upX +oLW +nuT +eYl +cFU +pSC +avX +rNY +lif +rqn +rNY +sTg +dTd +hKt +kIB +aqO +muU +fZE +kIB +aqO +jMZ +lls +psQ +aiU +qDn +qDn +oOG +szo +oMg +pVz +ali +yhp +pqn +uKU +vip +brr +brr +xjY +xjY +xjY +xjY +xjY +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(77,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +iKs +iKs +iKs +iKs +tYr +cyE +mQV +mQV +fZI +vaO +mQV +mjG +xOq +xOq +ltN +pzi +uIV +cLz +qoz +sya +fZI +fZI +sOS +nMa +wPG +xUe +tYr +dlS +tYr +rKn +rKn +tNz +tNz +tNz +pyw +mWp +kbf +okZ +uvu +aiN +npu +lct +lct +lct +npu +hrl +lzE +ubD +rYr +ncB +lzE +uyC +uyC +uyC +uyC +uyC +uyC +uyC +uyC +uyC +uyC +nMN +aAU +jJJ +iXJ +dEa +dEa +uEt +bQL +luT +ihY +pCR +aUf +tdQ +jcj +pBo +gZF +sQS +hIV +gZF +sQS +pBo +wGR +fli +nxH +cUE +aTU +lIF +rid +sbw +kWu +kCJ +tyh +rlI +bDR +sYE +tyh +upX +jLi +jFp +gct +cFU +cFU +cFU +tIo +nZM +wMO +nZM +cFU +cFU +qvj +qcX +xKQ +mCT +fZE +qcX +xKQ +cYT +aau +oeS +oZS +rTv +okr +yly +szo +vPM +oxL +oxL +fJf +fJf +pVz +fJf +fJf +fJf +fjA +pVz +pVz +fJf +jYt +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(78,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +iKs +iKs +pXm +egv +iKs +iKs +xsC +sJq +fZI +fZI +svq +uZm +mjG +eQT +eQT +frJ +frJ +pPb +cLz +sJq +eCP +nin +xJH +exN +hfg +klp +jlt +rKn +eKa +eKa +rKn +kXs +uGZ +lgb +iOq +fGc +wVz +kbf +uEo +uvu +snH +jKn +oHs +oHs +oHs +plR +jae +lzE +cAB +jhZ +qCV +lzE +chl +uyC +uyC +uyC +uyC +lpv +uyC +uyC +uyC +uyC +nMN +aAU +suO +kgy +jJJ +siD +uEt +nCD +nqJ +nfE +pCR +nfr +mDo +mDo +fVd +bYx +mDo +hIV +mDo +wzP +hgC +sLr +tHx +eCq +cUE +hTO +ruY +jjm +sbw +kXd +kCJ +xer +wVq +atu +iVq +rqa +upX +ufV +exX +gct +xoD +cFU +lcj +qGT +oDH +gDF +bfA +dTd +idW +hKt +kIB +wBy +muU +fZE +kIB +wBy +jMZ +aau +oeS +wtZ +deY +exJ +fws +szo +vPM +umi +vPM +usR +usR +hIa +wpM +cef +sUj +usR +usR +usR +umi +jYt +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(79,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +iKs +iKs +pXm +pXm +tNu +hDW +iKs +uqb +brq +hfg +xUe +bLL +bLL +mjG +cLz +mjG +iDw +mjG +cLz +mjG +hfg +fZI +fZI +mQV +hfg +hfg +hfg +hfg +rKn +kbf +eKa +uYe +eKa +bnL +rYT +ctM +rYT +rYT +ctM +lus +uvu +jlE +jKn +eZR +dWC +uoq +plR +jae +lzE +jTV +jhZ +ntM +lzE +uyC +uyC +uyC +uyC +uyC +uyC +uyC +uyC +uyC +uyC +pCR +aAU +siD +hMu +jJJ +siD +lUD +lUD +lUD +lUD +pCR +oib +xWq +xWq +xWq +xWq +xWq +hIV +pZJ +pZJ +dwx +tnj +qGC +lNO +cUE +mRm +jWg +kiR +fZs +kXd +kCJ +hUh +lZw +atu +wpX +rxQ +upX +nyB +heh +aMl +asH +cFU +kNR +cLd +vCP +lpe +mLd +oHB +wPU +hKt +kfF +mZA +vZK +iFx +iFx +ckH +prL +gOz +oeS +oZS +bio +okr +qSv +szo +vPM +oxL +ufs +pRk +mVI +wnr +wqk +esc +gmr +qSd +oeB +usR +pVz +jYt +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(80,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +iKs +egv +hDW +qYy +jLo +egv +iKs +fVE +sJq +wGn +exN +bLL +oKj +vJG +bLL +bLL +ltN +bLL +mQV +jlt +brq +fZI +lZN +tYr +tYr +tYr +fZI +xJH +eom +eKa +eKa +rKn +eKa +rYT +saC +mWp +pdZ +uvu +pWF +uvu +uvu +jlE +uwU +uoq +oHs +uoq +plR +jae +lzE +lzE +lzE +uwW +lzE +uyC +uyC +lpv +uyC +uyC +uyC +uyC +lpv +uyC +bnW +pCR +jtc +siD +kHB +kYk +siD +fUU +nZq +fWB +lUD +pCR +sAG +sKq +mDo +dAN +xGf +xGf +omg +xGf +yhr +hgC +odb +jjG +taP +cUE +pbS +nTC +jWg +cUE +vdE +vtN +tyh +bDW +bDR +amm +uOP +upX +toP +toP +upX +heV +cFU +bfq +vGv +qZA +xuR +tiD +dTd +hyx +xYH +oil +psQ +fdW +gXL +met +xuh +meu +lcv +eRo +szo +vxT +jwV +mPv +szo +iRz +oxL +lTc +pRk +iTI +xQY +aMR +qcx +iik +wnr +nuR +hIa +lfe +xjY +xjY +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(81,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +iKs +hDW +whx +hDW +wuF +nGs +iKs +vAF +xUe +xsC +tYr +bLL +ltN +iPd +oKj +frJ +ltN +bLL +gUL +mQV +fZI +xJH +sOS +tYr +sJq +tYr +sJq +xJH +fZI +sJq +mQV +mWp +dHc +rYT +lWz +eKa +kXs +uvu +hHe +wNU +pGM +kOd +kOd +kOd +kOd +kLQ +kLQ +kLQ +hRv +cEr +nVd +sbQ +uvu +uyC +uyC +uyC +uyC +uyC +uyC +uyC +uyC +uyC +uyC +pCR +rkL +rkL +rkL +myQ +uQM +pCR +pCR +pCR +pBa +pCR +wTv +pBo +mDo +wYZ +uDU +uDU +uDU +uDU +uDU +pBo +hJm +gGC +dPc +cUE +avj +dku +pXP +eJY +edQ +kCJ +tyh +eyJ +atu +vnJ +hUh +upX +fPu +dRu +mJX +fiv +cFU +cFU +cFU +cFU +cFU +cFU +cFU +xKQ +nKo +kYj +sJk +fbe +tMB +xKQ +vUH +xKQ +xKQ +xKQ +szo +szo +szo +szo +szo +wcz +pVz +tfO +pRk +oeB +itv +ajc +dgN +ezC +wnr +koc +jfa +iSC +htS +xjY +jYt +jYt +jYt +xjY +jYt +jYt +jYt +xjY +xjY +bsG +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(82,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +iKs +hDW +hDW +egv +iKs +iKs +iKs +mjE +mjE +mjE +mjE +mjE +mjE +gLI +mjE +ltN +cDn +cDn +mjG +mzw +mjG +nVr +jlt +tYr +hfg +hfg +tYr +tYr +mQV +rKn +rKn +mWp +mWp +rYT +cXk +eKa +cHp +hjt +kbs +qVZ +wbQ +mRP +vRj +pkM +aaU +pkM +iXh +cor +yfW +gqN +gqN +sKL +pMR +sbk +uyC +uyC +uyC +lpv +uyC +uyC +uyC +uyC +uyC +xlP +vwd +oXF +uoJ +euQ +moz +gAw +oZQ +hUD +tef +kPo +tef +hgC +hgC +hgC +gZF +jod +tpG +sjj +gZF +hgC +mDo +fTl +mDo +cUE +qVi +nzX +vIB +cUE +bEW +ptO +oeQ +twI +hAp +rCe +vIV +upX +hmn +rjq +kEr +pvb +upX +iqb +oQc +ijM +qCy +dXo +wAf +xKQ +qUu +gyf +tRC +gXL +oLE +xKQ +bYC +iSC +iSC +eXy +iEH +gaE +lmm +usG +gtd +vPM +oxL +uHU +usR +usR +vyG +aMR +haN +nXz +kfR +usR +usR +oxL +pYM +awQ +htQ +htQ +oMg +dlp +aPS +aPS +kZg +kZg +wMq +mQV +stn +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(83,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +iKs +iKs +iKs +iKs +iKs +fZI +exN +mjE +bba +hLH +euE +bba +hHM +chC +mjE +ltN +ltN +fNe +tzi +hQE +vwO +jlt +rvP +vAF +hfg +qum +exN +nqO +dHU +miT +rKn +lWz +rKn +laf +kbf +mjK +uvu +uvu +tJx +jcf +wbQ +mMG +mcF +uNn +dLk +dLk +bgu +lRB +krK +fuK +dVs +sbQ +pMR +uyC +uyC +uyC +uyC +uyC +uyC +uyC +uyC +uyC +uyC +xlP +nxm +oZQ +mrH +leT +wtM +oZQ +cRV +oWc +rNy +wRQ +rNy +rNy +cRV +hgC +gZF +sHU +vOz +fqi +gZF +hgC +lwo +jTD +iim +cUE +aLS +hbk +rib +yga +nef +cTk +jrG +bya +tAL +vte +oJz +upX +pFS +iPK +lQA +xMr +oyh +gJC +kvS +tyO +qCy +lGU +oDK +xKQ +rii +gXL +tRC +jiF +qcc +xKQ +dlp +oOQ +fJf +iSC +mgk +pVz +pVz +oxL +vNm +pVz +oxL +vPM +usG +usR +ixD +pfI +wcf +gmr +kje +hIa +jSR +pVz +cRx +hal +uUZ +qiv +uUZ +qMb +qMb +syp +uUZ +lKJ +wMq +mQV +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(84,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +bsG +bsG +fZI +sJq +mjE +euE +inc +rUv +euE +hLH +chC +mjE +ylg +frJ +uWm +mjG +fVV +mjG +mQV +map +aXM +aXM +aXM +aXM +aXM +laf +laf +uMr +rYT +rYT +ctM +kbK +kKZ +uvu +jAu +glL +jcf +wbQ +oea +mcF +dLk +lna +vRV +bgu +cor +xvC +dfB +aKt +baI +uvu +uyC +uyC +uyC +uyC +uyC +uyC +uyC +uyC +uyC +uyC +xlP +oZQ +oZQ +dDS +lnp +udW +oZQ +oCU +oWc +iYA +bUD +udW +tef +hnV +hgC +lsi +tga +tHx +awq +gZF +hgC +mDo +fTl +mDo +cUE +spj +kOD +qUp +cUE +ydz +txP +xJY +mgO +hmh +qSk +sYd +upX +pgJ +bjS +tTn +eNq +vOy +qaA +aUj +qaA +qCy +anW +xCp +xKQ +xKQ +xCn +ogW +dhv +xKQ +xKQ +jxy +eqS +eqS +uDf +adi +uDf +sVC +uDf +uDf +uDf +uDf +uDf +uDf +uDf +pRk +pRk +wyC +pRk +pRk +hIa +kMm +iSC +eyt +hal +qJc +wDL +eAj +pmg +bNQ +lad +uUZ +vmJ +eqS +xjY +xjY +xjY +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(85,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +bsG +bsG +mjE +mjE +iIe +iIe +iIe +iIe +iIe +moF +mjE +mjE +mjE +mjE +mjE +mjE +mjE +bbm +aXM +ltX +uCg +fpW +jhT +kAe +laf +hHH +rKn +pdZ +gkl +kbf +sZM +eKa +uvu +uvu +epN +phO +wbQ +mMG +mcF +dLk +bLE +uNn +bgu +lRB +krK +mPX +piq +jUM +nfL +nfL +nfL +nfL +ach +vQr +vQr +ach +bgA +iLN +iLN +iLN +aiS +tFo +qnb +fOT +ueE +oZQ +tJn +oWc +ivV +wvn +hqo +tef +wdz +hgC +nxs +gZF +gZF +gZF +nxs +pBo +atW +fqd +ygT +cUE +jqx +wTl +qfK +pnW +nVy +sQa +hDL +cfj +hBk +mFs +lJk +upX +iiT +gPE +cSX +urH +cie +dEb +pww +fwh +qCy +qhK +wlw +bKD +huQ +dSg +oXz +feR +iLN +wse +dCV +per +rSX +uDf +wvC +pYk +tyB +gwf +trC +pOJ +gwf +fWT +fWT +uDf +uHU +aPS +buC +kZg +oJH +eqS +ygL +fJf +ycv +qMb +sup +cEy +qdk +ivh +cDz +clL +uUZ +kZg +ima +vPM +umd +xjY +bsG +bsG +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(86,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +bng +rfs +euE +euE +euE +euE +euE +iHC +iRJ +skk +euE +hce +sAN +euE +gKk +bbm +dfX +uCl +uYI +uYI +hqR +aXM +eKa +tPT +rKn +tcI +tcI +kbf +qBq +ufv +hHH +hjt +fKz +dmA +xUb +tEb +gha +iSt +ckf +iSt +rhM +cor +oAC +gqN +gqN +sdK +nfL +jGu +lOp +nfL +xII +fNr +jhW +crX +bgA +qzb +bcY +iLN +hRa +mOX +dGM +cqq +lJh +mOX +hRa +fes +jxD +hqa +myV +jTz +mBE +pBo +pBo +hgC +hgC +hgC +pBo +pBo +iIZ +xxP +fdD +cUE +mDQ +uRx +mDQ +cUE +cUE +cUE +cUE +mDQ +mDQ +mDQ +cUE +upX +mUu +mUu +mUu +mat +upX +mUu +mUu +mUu +qCy +oub +dwq +oDw +irJ +phI +oXz +feR +bzM +kCu +dCV +sxM +rSX +uDf +vTy +fWT +fWT +gwf +gwf +fWT +fWT +glt +pOJ +sVC +vTs +buC +jpx +pZt +uRA +kml +sIH +saM +jFf +qMb +uns +gib +bga +nLn +qjL +nEA +uUZ +phu +aPS +jtq +jtq +hKw +mQV +mQV +itJ +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(87,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +bng +euE +faw +euE +euE +cQf +euE +iHC +euE +euE +euE +euE +sAN +euE +euE +bbm +jVT +cBY +acB +gFE +jQD +aXM +kbf +tPT +rKn +wMc +mWp +cXk +qBq +eKa +lWz +uvu +fKz +qfp +pYQ +xvC +xvC +xvC +xvC +xvC +krK +hSd +eEO +rBU +kih +hFf +bVi +rnT +nRZ +dSR +nTj +ojG +xmA +kmg +bgA +gtx +wny +gYX +dQn +iWV +cNB +dnj +yiJ +qei +qei +wiQ +kjL +pnV +dgM +aAk +qei +kfW +qei +qei +qei +qei +xJi +qQs +qei +uqH +qei +eDl +qei +oYg +loR +vES +xil +xil +cPK +xil +xil +xil +xil +iel +xil +iHj +xil +qSy +rvy +xil +xil +xil +xil +xil +mWt +xil +cho +phI +oXz +feR +uso +unv +dCV +sFd +rSX +uDf +lGD +gwf +pOJ +gwf +fWT +fWT +jvX +pOJ +gwf +uDf +wAN +fhe +enl +kZg +ell +eqS +eXy +oxL +dFt +qMb +jEU +cEy +xko +jRz +whn +uUZ +uUZ +vPM +kZg +eqS +eqS +eqS +mQV +mQV +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(88,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +bng +euE +euE +euE +qdQ +euE +eTL +iHC +xNm +iHC +iHC +iHC +mQE +iHC +pYt +bbm +bmN +nct +aeP +sgz +qwg +aXM +kbf +rKn +rKn +rKn +vpO +stW +dCQ +dCQ +dCQ +dCQ +sJb +dCQ +dCQ +gUo +rlW +sAW +cSO +cSO +eWz +gUo +gqN +gqN +uvu +cYF +nfL +sQw +lmQ +nfL +vmp +hdY +bog +rAA +bgA +gtx +fKP +qYv +eIV +unv +unv +cGH +jEg +jEg +jEg +qku +qku +lmV +qku +qku +qku +iuy +qku +qku +qku +gve +gve +qku +qku +hKi +hKi +hKi +hKi +aPw +nFJ +lRv +bTP +wKi +sjT +bTP +bTP +bTP +wKi +fhU +fhU +fhU +fhU +vxB +fhU +fhU +eHi +fhU +bTP +bTP +lxA +bTP +bTP +hWl +iDM +cGH +rci +uAl +xzu +iLN +iLN +uDf +uDf +gwf +pOJ +nuL +gwf +pOJ +fWT +xEi +uDf +uDf +jYH +eqS +nhQ +nhQ +nhQ +nhQ +nhQ +evS +hPY +uUZ +bXe +qtO +wYw +nXM +oYU +hal +dZq +vPM +eXy +xDN +xDN +jxA +mQV +mQV +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(89,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +bng +euE +euE +inc +euE +euE +euE +euE +euE +fri +wSj +euE +sAN +euE +iHC +bbm +oRy +igP +xxn +yiE +vGZ +cnf +dfG +sMM +kKC +cSK +kTw +kTw +dCQ +dPl +jHm +mUF +uXJ +mQR +dCQ +lSk +wph +sAW +eiG +fGY +eWz +lSk +gqN +tjw +iaz +fUp +nfL +vwb +hFo +nfL +bgA +uTd +sTB +uTd +bgA +gtx +sNd +kxO +bcG +etL +gSi +jZP +etL +etL +etL +leg +oke +gve +rAN +kxO +kxO +hjV +kxO +kxO +kxO +aNO +eCK +kxO +kxO +kxO +kxO +kxO +cHn +uhs +kxO +kxO +kxO +kxO +hjV +cvn +srJ +ieG +bvM +fhl +hgM +oXX +apW +wTr +bwY +kxO +ieG +kSS +kxO +kxO +hHJ +kxO +olW +qYv +oXz +qYv +ykL +iVR +kRo +jpo +pjC +yfK +uDf +dLd +tyB +tyB +byN +jeu +gwf +gwf +uDf +pIp +jgk +pUc +nhQ +htr +ebA +xOp +nhQ +flJ +mGD +hal +hal +uUZ +uUZ +uUZ +uUZ +uUZ +eqS +vYq +aPS +eqS +hDr +hDr +eVv +eVv +eVv +bsG +bsG +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(90,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +bng +qxT +euE +euE +euE +faw +euE +euE +nOQ +euE +euE +cgu +sAN +euE +iHC +bbm +bbm +bbm +bbm +bbm +bbm +aXM +ctM +mWp +lqH +gnb +tcI +kJs +vti +lJg +iiE +lJg +lJg +aEX +dCQ +gUo +qSO +cSO +cSO +sAW +eWz +gUo +uvu +unK +wdW +jLy +iVe +glX +glX +sLx +axy +guy +kms +enx +iLN +iLN +gIp +rNl +rNl +rNl +aUy +kdl +uWL +ndg +kdl +aUy +rje +gve +edY +ffH +nCh +wYH +rfP +rfP +rfP +wYH +lAg +wYH +rfP +rfP +rfP +wYH +iLN +kNe +iLN +iLN +mng +qZN +tLL +tLL +tLL +vrE +tLL +tLL +tLL +tLL +tLL +tLL +tLL +tLL +ecR +bsb +bsb +bsb +bsb +bsb +kLq +phI +oXz +feR +bzM +vHF +dCV +fmG +yfK +tKM +uDf +tFG +tyB +pOJ +hLJ +tyB +fWT +nKx +uDf +mmV +kTo +hQi +dma +bpg +sFl +sNs +nhQ +gWk +cZm +eqS +lBy +eKq +slb +eqS +phu +phu +vPM +kZg +phu +vnS +xuJ +hgo +wVX +sAe +pDz +mQV +fZI +itJ +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(91,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +mjE +mjE +kzx +doG +doG +eTH +iNB +feJ +faw +mhN +bdt +mhN +hZI +hZI +jLj +glU +eDx +grX +vFo +hZI +mfh +mjE +cXk +rYT +mWp +lgb +eKa +oTk +mWp +dCQ +fIC +qMv +vyi +pIJ +cpl +moh +hrl +hrl +hrl +hrl +hrl +hrl +hrl +hXO +oWc +rNy +rNy +oZQ +oZQ +oZQ +oZQ +lyZ +jce +qYv +lQo +xil +xil +xil +xil +xil +uWv +whk +tve +dhP +eRe +cXf +qqu +ctA +qbj +edY +iCw +irA +rfP +qxa +vUZ +rCH +qoW +axi +byu +fAH +vUZ +crs +wYH +eeA +omt +sge +iLN +eYV +eYV +eYV +vbq +tdU +pob +guN +iBv +guN +guN +guN +guN +ucl +xrV +hUN +xvM +sSE +xTK +wrd +fTz +eVf +gPk +iDM +feR +iLN +yaR +xwF +jWL +yfK +tKX +uDf +sNP +pOJ +pOJ +npR +fWT +tyB +gwf +uDf +pLD +kTo +exp +nhQ +qBc +gMl +fRw +nhQ +dYS +vns +pVG +uUX +wEn +iCJ +eqS +iRz +aPS +oMg +phu +aFf +gtd +rXP +rXP +hvs +hDr +hDr +mQV +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(92,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +oql +rGh +jHK +aIF +iFX +smY +ejd +doG +doG +mhN +ciS +wOH +odg +dVC +iHC +glU +euE +euE +euE +rme +euE +iQb +tcI +mzK +rKn +wfQ +eKa +mWp +tNN +dCQ +dCQ +dCQ +dCQ +vTj +dCQ +dCQ +opb +uvu +uvu +lct +lct +lct +uvu +uvu +oZQ +wRQ +oZQ +xIV +oZQ +oZQ +oZQ +lyZ +jce +qYv +qYv +neM +neM +neM +qYv +qYv +edY +ktu +nHR +dKz +rJZ +rJZ +iWe +sci +qbj +edY +iCw +bUD +rfP +lRk +iZQ +bSN +rQt +jkZ +rpr +wiu +iZQ +tMM +wYH +ptl +oom +ola +iLN +hhq +dPW +eYV +qZH +bUm +oxI +eyK +tvB +tvB +tvB +tvB +tvB +taR +tvB +hyA +iEz +iEz +iEz +hyA +jIX +nSj +phI +waD +sEW +iLN +jQA +jQA +jQA +jQA +jQA +uDf +cMm +gwf +gwf +pOJ +pOJ +gwf +gwf +uDf +pLD +kTo +duq +nhQ +vUj +vUj +vUj +vUj +ofE +jOi +jOi +jOi +jOi +jOi +jOi +jOi +jOi +jOi +jOi +jOi +hDr +rXP +csv +kmr +dNq +wzb +mQV +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(93,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +oql +qIZ +jHK +miw +sRx +mIY +ejd +msT +msT +mhN +rdz +ixK +uqK +hZI +mfE +glU +euE +euE +euE +rme +euE +iQb +tcI +ctM +vpO +kbf +kbf +kbf +kbf +wno +pOh +tcI +dCQ +cRG +dFs +dCQ +laf +rKn +fZI +fZI +fZI +fZI +fZI +wjG +voc +gyc +voc +iLN +egb +jQG +bOX +iLN +uez +kxO +kxO +kxO +kxO +kxO +oXX +kxO +bnj +aGL +mRa +fZe +qwP +fVX +wYk +ctA +qbj +edY +iCw +sLQ +rfP +oKr +vUZ +hcn +oyE +aJl +tUC +feu +bnk +aZG +wYH +siK +fAX +wUX +iLN +fro +irq +eYV +xxp +yhH +tLL +eyK +tvB +pUD +iyX +nWb +jbX +hTM +vHZ +hyA +hyF +rlC +vfU +hyA +hyA +hyA +lvY +oXz +feR +qCP +jQA +eod +tsU +ryf +fEx +uDf +pOJ +gwf +tyB +gXe +gwf +gwf +rUD +uDf +pLD +kTo +exp +dNC +ofE +qlU +hcO +qlU +nds +fQT +llL +nah +fZK +bNr +oCb +bNr +nPq +nrS +fyN +jOi +dPP +qBS +csv +hDr +hDr +eVv +eVv +bsG +bsG +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(94,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +mjE +mjE +occ +msT +msT +wWj +lMz +jpA +euE +mhN +mHe +mhN +hZI +hZI +aSL +sBh +eDx +lgZ +ewk +hZI +sGa +mjE +wMc +rYT +xyx +eKa +rKn +rKn +rKn +rKn +rKn +kbf +dCQ +hsZ +hsZ +dCQ +laf +rKn +rKn +rMc +rMc +rMc +rKn +vWO +rKC +hsF +aDM +rKn +rKn +rKn +rKn +rKn +lDq +iLN +iLN +iLN +iLN +iLN +iLN +iLN +iLN +aUy +aUy +pSI +aUy +aUy +aUy +voH +qku +ufk +aKq +aKq +wYH +wYH +pAm +wYH +sQf +uZG +saV +wYH +rFH +wYH +wYH +iLN +iLN +iLN +iLN +rCO +uwO +uwO +pPR +eyK +eyK +lXp +tvB +ktA +qml +qjQ +sKn +gdP +cNw +nBJ +etQ +obc +rdr +wRI +tHz +iEz +phI +oXz +tej +gcU +lmf +mFM +mjN +jQA +jQA +uDf +fWT +xNG +sDm +hGX +hGX +ntn +hiz +wto +cWI +vtm +plF +cEY +ofE +xVo +fOt +vzf +nds +dzT +eOB +fgo +uUH +bNr +mKm +bNr +lFv +pKj +bNr +jOi +jOi +dom +oZp +hDr +hvs +sAe +pDz +mQV +fZI +itJ +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(95,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +cHs +rfs +euE +euE +euE +euE +oyI +euE +euE +euE +euE +hce +mKJ +euE +sBh +mhN +mhN +mhN +hZI +hZI +mjE +rKn +pEk +mWp +lWz +rKn +grf +vke +nbK +rKn +lbu +dCQ +dCQ +dCQ +dCQ +fbq +lWz +okZ +lcd +lcd +lcd +rKn +daW +nHb +mAJ +syy +fWA +xSh +lWz +fGc +hSW +srd +xUZ +nRq +beS +beS +hGU +dOX +okZ +eKa +khO +eBw +eBw +lWz +ggF +rKn +jFN +ebi +nJc +aKq +iXC +aVJ +dha +rqt +wYH +cbs +ghm +nDt +wez +uEi +wYH +qBK +gRX +gRX +eJF +efJ +snu +pPR +snu +snu +iEg +qVu +eyK +tvB +ktA +lRo +bPM +bQP +kGM +obQ +eXC +pXh +xBy +eOv +rQh +uYL +iEz +phI +oXz +feR +kcQ +jQA +tRV +bWu +vjR +dxR +uDf +gwf +oYb +gwf +jgr +fWT +oZx +smO +uDf +syX +vaX +uYG +ofL +ofE +vwe +rvf +deS +him +jbn +bNr +bNr +bNr +bNr +bNr +bNr +bNr +bNr +bNr +uak +jOi +dom +xuJ +uVZ +dom +hDr +hDr +mQV +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(96,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +cHs +euE +faw +euE +euE +euE +oyI +inc +euE +euE +euE +euE +mKJ +euE +sBh +mhN +jYd +dQz +lWM +uzh +mjE +iNU +rYT +rtp +ofH +rKn +dIs +oMQ +kqa +iPq +tcI +kbf +wno +kbf +kbf +aQk +hHH +rKn +eKa +tZj +eKa +rKn +iER +tzX +tKu +erV +rKn +kJB +srr +xaK +lsl +lre +kFn +vyT +urm +vyT +vyT +vyT +vyT +uBt +wPc +gbQ +doD +gbQ +rsi +rKn +eUf +xHG +luN +aKq +jYl +qhS +aKq +aKq +aKq +wGm +dSq +wYH +dwI +lXK +wYH +mIe +mVT +vXB +lZH +efJ +klZ +sOV +tEN +snu +xUl +qxV +eyK +tvB +ktA +uuo +qcB +lsD +gPh +fFo +rbi +wuC +nUG +hBP +bxf +uYL +iEz +phI +oXz +uPF +jQA +jQA +jQA +cHq +jQA +jQA +vVX +vVX +vVX +kzS +vVX +vVX +vVX +vVX +vVX +dCa +kfm +exp +ofE +ofE +nds +lTz +nds +vCy +dYL +vCy +aqZ +jPT +nds +nds +nds +nds +nds +bNr +rLf +jOi +cKl +hNP +rXP +hvs +dNq +wzb +mQV +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(97,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +cHs +euE +euE +euE +qdQ +euE +uwI +euE +qdQ +euE +euE +inc +mKJ +euE +sHr +hZI +oih +ghV +gly +ulK +mjE +qaa +rYT +eKa +lCn +rKn +war +nbK +tNz +tNz +tNz +tNz +tNz +tNz +tNz +aQk +fbq +fbq +laf +fbq +fbq +rKn +bXl +iHJ +hOe +eWD +iGF +iGF +iGF +iGF +uDg +uDg +uDg +uDg +uDg +uDg +uDg +uDg +uDg +uDg +uDg +uDg +uDg +okZ +aJL +rKn +hQg +uWZ +qTT +aKq +dkP +dfe +lBH +lBH +jtm +uEi +uEi +onV +uEi +uEi +wYH +jmJ +nvm +pNh +lZH +efJ +seI +wOZ +bBY +snu +snu +snu +bdW +tvB +sPU +wAC +hNh +sxc +cFO +qkz +hyA +xFC +vqH +vqH +hyA +fFB +hyA +phI +oXz +lGl +jQA +ycI +wif +yeQ +dKA +mIR +mIR +mIR +nNN +mIR +mIR +mIR +mIR +mIR +vVX +fOr +kfm +exp +ofE +grm +wim +wim +tLu +nds +pFN +vCy +nds +nds +nds +gZw +jsT +xdB +nds +bNr +ani +jOi +hDr +hDr +lHh +hDr +eVv +eVv +bsG +bsG +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(98,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +cHs +euE +euE +euE +euE +inc +oyI +euE +faw +euE +euE +euE +mKJ +euE +bYs +kKk +jHK +fvF +oWD +dnO +mjE +rYi +rYT +rKn +rKn +rKn +plI +nWK +tNz +mBw +geL +jEw +rZq +tUd +tNz +ggF +wMc +mWp +xKc +plz +laf +rKn +rKn +lCI +rKn +rKn +iGF +hUs +cTm +ttj +uDg +mOB +qbq +vus +ceh +vus +tay +vus +kMk +vus +mDC +xtB +uDg +wqB +gHT +iVV +wcq +aZx +jSE +iKJ +lBH +lBH +aKq +aKq +aKq +wYH +lOb +lOb +lOb +pWa +lOb +eiM +ukF +ukF +ocy +efJ +kQJ +qQf +jHP +vZs +lSx +snu +bdW +tvB +tvB +tvB +tvB +eHB +tvB +udY +hyA +tms +tms +tms +hyA +tJV +hyA +deD +oXz +feR +jQA +kcg +jQA +oqr +vVX +mIR +mIR +mIR +mIR +mIR +mIR +mIR +mIR +mIR +vVX +pLD +vaX +jjt +xqc +oqU +xPO +nud +nud +xuI +xxh +jas +pFN +pFN +jas +pFN +vEE +tzO +nds +tku +dbY +jOi +dcS +jZa +uVZ +vko +sAe +pDz +mQV +fZI +itJ +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(99,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +cHs +qxT +euE +piH +euE +euE +oyI +euE +kWs +piH +euE +cgu +mKJ +euE +sBh +hZI +aSZ +reQ +eKF +gPp +mjE +ofH +laf +hXY +etj +rKn +xrJ +ejO +tNz +yjN +vpe +tUj +uut +eGr +cZT +fAw +fAw +fAw +fAw +fAw +tEK +rKn +jAp +mQP +oNl +lEA +iGF +wCw +dhS +vGI +pPO +dhS +cIA +uQp +arQ +ocx +aXX +pgi +nMD +vus +mDC +aDd +uDg +uGZ +cXk +rKn +vUs +qku +uFT +aKq +aKq +iIJ +aKq +wBP +ocY +mcR +lOb +rpW +oZY +tzF +wRU +qbD +coo +coo +eXx +kZi +oCd +oCd +gJt +ueY +dfK +ovI +eyK +tvB +cos +uSA +tmP +wNA +tvB +kci +jSI +tBp +aCY +yfh +fQX +nMc +hyA +att +oXz +feR +jQA +jQA +jQA +oof +vVX +mIR +mIR +mIR +mIR +mIR +mIR +mIR +mIR +mIR +vVX +pLD +kfm +exp +ofE +qti +nkO +kzG +lyY +nds +dpT +vCy +nds +nds +nds +iBL +szl +fBZ +nds +aju +uak +jOi +dcS +xuJ +uVZ +wyt +hDr +hDr +mQV +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(100,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +mcS +hQc +mjE +hZI +mhN +hZI +uuZ +hZI +bsN +hZI +qrh +hZI +mhN +hZI +hZI +inl +cyc +hZI +mjE +pSi +pSi +pSi +mjE +wVz +rYT +rKn +rKn +rKn +rKn +rKn +tNz +mmu +tUj +vpe +wcZ +hpF +cZT +bbn +dqw +eBG +dkT +fAw +laf +rKn +lHI +qBq +rtp +lWz +iGF +kZZ +vGI +jUk +uDg +ozQ +sAD +vAC +vAC +pfZ +lox +mth +vAC +vAC +brZ +pzr +uDg +uDg +uDg +uDg +cRg +gve +jwJ +kro +mUP +bWr +ndw +fHr +fHr +rJj +lOb +lOb +wRU +lOb +lOb +efJ +hZC +dWv +hAn +efJ +euJ +pZA +oTH +oyK +aGq +snu +eyK +tvB +tvB +tvB +tys +iZn +tvB +kci +xlN +gpp +nvE +gpp +gpp +sPk +vDU +phI +oXz +feR +aSV +eqS +aXP +fGy +vVX +mIR +mIR +mIR +mIR +mIR +mIR +mIR +mIR +mIR +vVX +pLD +kfm +exp +ofE +ieR +fJD +rHO +mnG +vCy +xuI +vCy +uNZ +eHw +nds +nds +nds +nds +nds +aju +mOt +jOi +dcS +rXP +dom +vhy +dNq +wzb +mQV +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(101,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +mcS +brg +gBn +ebG +dwK +mgt +iHC +mhN +vUC +mhN +iHC +xYh +aHZ +hZI +qBh +phD +aCT +vMY +mjE +mhN +mhN +mhN +mjE +laf +dAg +hXY +mjK +kbf +eKa +eKa +tNz +bop +dTy +fYr +kxe +dyS +xkc +aey +gTF +xFO +uAr +fAw +laf +kUo +lHI +qBq +wfQ +hXY +iGF +jQu +pPO +jQu +uDg +aJG +jzr +xqJ +xqJ +xqJ +xqJ +tGb +weV +weV +mOJ +fcP +uDg +jBr +dJL +jQu +dGz +qku +jwJ +kro +eAm +mso +nGO +ojs +ePk +fav +uuF +ncN +tIH +gux +ewA +qlY +qlY +qlY +qlY +qlY +sPz +tWx +mQI +xFB +wjx +snu +eyK +edD +gZx +kvs +pJy +xNW +tvB +waa +uYL +cvi +sGN +cvi +ckv +lKd +vDU +phI +oXz +feR +nsW +eqS +sVV +vPM +ivS +mIR +iAg +mIR +mIR +tCm +mIR +mIR +iAg +mIR +vVX +pLD +kfm +rJm +ofE +tDi +tHn +ozL +sXU +nds +gRV +aju +aju +aju +aju +aju +aju +aju +aju +aju +uak +jOi +dcS +iCV +hDr +hDr +eVv +eVv +eVv +eVv +eVv +bsG +bsG +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(102,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +mcS +aSr +mcS +ebG +vDP +peU +iCC +mhN +yfU +mhN +fJP +hZI +gAV +hZI +pBb +oDh +kow +pps +mhN +xVt +cFu +poD +hGf +pRF +fAy +rKn +rKn +kif +tPT +ufv +tNz +wZT +bAo +bAo +bAo +lHT +cZT +lSs +qDO +uro +uro +fAw +xKh +rKn +lHI +laf +laf +laf +swt +hel +vGI +tle +gxg +fcP +fcP +fcP +fcP +fcP +yja +bHc +fcP +fcP +fcP +fcP +hmP +vus +uQp +pEq +vRE +qku +jwJ +kro +wrV +bWr +buS +mFJ +wCX +jfO +uuF +ncN +tIH +lfV +dKB +qlY +iBm +qPn +oBv +qlY +amB +qYC +mQI +rWB +pzF +snu +eyK +tvB +tvB +gNG +tvB +aCb +tvB +oPW +hoT +qon +aBl +hhb +csC +uZH +vDU +phI +oXz +xni +kTb +kTb +kTb +pxU +vVX +mIR +mIR +mIR +mIR +mIR +mIR +mIR +mIR +mIR +vVX +pLD +qwX +exp +ofE +aFb +tHn +pEp +pPc +nds +llL +pLM +kOM +mDi +bNr +xiW +bNr +cIq +ixU +bNr +jOi +jOi +hDr +hvs +rXP +xWm +xuJ +jZa +gpv +sAe +pDz +mQV +fZI +itJ +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(103,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +mcS +als +dkM +ebG +hZI +mEr +hZI +hZI +nJe +hZI +mhN +hZI +osb +hZI +pPF +oBL +hxO +tMz +mjE +cYq +saz +nnK +hGf +rYT +mjK +wMc +rKn +tNz +tNz +cue +tNz +cZT +hAz +nDO +hAz +fAw +fAw +fAw +bnX +fAw +fAw +fAw +iGF +iGF +msS +iGF +iGF +iGF +iGF +djK +bNM +inS +uDg +uDg +oQH +cFj +oZa +fcP +sXv +tGb +dsW +qqZ +fPr +uDg +uDg +iYl +hgY +jQu +dGz +qku +jwJ +kro +boE +hMW +tpg +vYk +nWa +qzV +uuF +ncN +tIH +tIH +oHU +qlY +sJE +jzJ +gyX +qlY +tbS +oMk +mQI +pmD +bhb +snu +eyK +tvB +gep +obq +tvB +kvW +tvB +iXl +imm +hfI +hfI +ckv +bTk +dnG +eAB +mHa +oXz +feR +lkU +xWd +anz +sHL +vVX +mIR +mIR +mIR +mIR +mIR +mIR +mIR +mIR +mIR +vVX +pLD +kfm +gAL +ofE +emG +csp +buW +nnE +nds +uZY +llL +fOl +wZS +bNr +pjA +bNr +gsQ +shY +fyN +jOi +trk +hDr +hgo +bKg +hDr +gMI +wrL +xNy +hDr +hDr +mQV +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(104,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +hjL +uLe +fDq +ebG +iRb +xJs +jMz +sIh +vUC +hZI +uda +wJg +cFI +mhN +phD +kYo +lMR +oUI +mjE +dsA +nwj +pAF +hGf +rYT +wno +kbf +thg +tNz +kcW +cAi +bVB +yiK +ipO +eSi +qgJ +fAw +uNk +pre +qDO +xQR +wkY +fAw +ptr +fLL +fyt +fuY +tle +tle +tan +hel +dxa +mDZ +jBj +uDg +vWa +onO +rQp +fcP +fcP +tGb +gvb +lHb +quo +uDg +sFm +rAr +vpx +uDg +dGz +qku +jwJ +kro +bGM +ssr +kSh +uNw +ucO +xrM +uuF +ead +cGK +pyh +kWy +qlY +qfV +jbI +pKb +qlY +snu +gbw +niU +gbw +snu +snu +eyK +tvB +hpj +hud +tvB +oxU +tvB +uhq +aMw +gEE +mJD +gEE +seh +kLj +vDU +phI +oXz +qJo +eMM +mEf +uVL +lQa +vVX +mIR +mIR +mIR +mIR +mIR +mIR +mIR +mIR +mIR +vVX +mmV +kfm +exp +ofE +ofE +ofE +ofE +ofE +ofE +jOi +jOi +jOi +jOi +jOi +jOi +jOi +jOi +jOi +jOi +jOi +hgo +aNX +uVZ +lli +hDr +jZk +hvs +rFD +dNq +wzb +mQV +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(105,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +hjL +btQ +iuU +lzN +akv +qby +jvQ +qnt +jvQ +iuT +jvQ +qnt +xuV +bPE +aCT +hef +rdj +srD +mhN +cYq +nwj +nnK +hGf +rYT +kbf +cXk +kbf +tNz +piE +sAv +sTA +fxE +enO +vNg +dMN +tUg +tzJ +ylq +cOM +fzJ +jOn +fAw +pzy +trQ +trQ +trQ +trQ +trQ +trQ +wyq +oPe +fmR +nel +rMA +vus +vus +scO +fcP +fcP +tGb +bJz +vus +vus +uDg +mfJ +ccx +pgK +uDg +dRK +qku +cST +lAZ +lAZ +dYd +lAZ +sXk +jgg +sXk +uuF +rsz +ckT +iFl +llv +qlY +xmR +noU +mQH +qlY +xKH +gZm +tKi +uAi +uuF +mCr +eyK +tvB +asu +jQZ +tvB +mJC +jMj +hOx +ygS +ygS +gxY +gEE +gEE +ntJ +vDU +phI +vaN +feR +lkU +nTR +qUP +fUt +vVX +mIR +mIR +mIR +mIR +pkA +mIR +mIR +mIR +mIR +vVX +iFM +kfm +oWx +eiP +xXp +igH +hvs +uVZ +uVZ +pYH +dom +qBS +rXP +rXP +uVZ +uVZ +mxa +rUl +hDr +uVZ +bbj +pLo +uVZ +oBa +hDr +hDr +xuJ +hDr +rha +eVv +eVv +eVv +bsG +bsG +bsG +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(106,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +hjL +lhI +iuU +mcS +mjE +mjE +rIX +rnl +bUp +hZI +obJ +eLF +fgg +mhN +fHM +qlC +qlC +mXO +pKX +wQP +asc +nnK +hGf +uTp +hGf +hGf +nLa +hGf +wJB +aiV +ewr +yiK +aEA +qTW +sXy +fAw +juQ +wPb +qUm +udU +eya +fAw +pzy +trQ +nfC +xsE +gVr +ayV +mxi +uDg +uDg +uDg +bLj +uDg +aTD +aTD +aTD +wkS +aTD +mWa +aTD +aTD +aTD +uDg +gIc +obS +pgK +uDg +dGz +qku +ofm +lAZ +tiZ +uNw +vYJ +qUR +nRk +eNd +uuF +rxl +sMu +iFl +xLo +qlY +dAo +mNk +uMG +qlY +sKr +khn +tKi +oyo +uuF +byj +eyK +tvB +tvB +tvB +tvB +hyA +hyA +fZC +bzv +cFh +mly +sSq +fZC +bzv +vDU +wlO +ixY +mqO +kTb +kTb +pxU +kTb +vVX +vVX +iaI +cvH +cvH +iQT +cvH +cvH +cvH +vVX +vVX +dCa +kfm +exp +eTl +eTl +eTl +eTl +eTl +eTl +hKV +hKV +hKV +hKV +hKV +xZs +eVv +bBZ +rXP +mfR +rXP +rXP +qVr +rXP +olj +hDr +xNg +xuJ +wsF +uVZ +uVZ +sAe +pDz +mQV +mQV +itJ +fZI +fZI +fZI +fZI +sbZ +sbZ +sbZ +fZI +sbZ +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(107,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +mcS +ptx +bbi +nZp +mjE +mjE +mjE +mjE +mjE +mjE +mjE +mjE +mjE +mjE +mjE +mjE +mjE +mjE +mjE +kts +lTN +nnK +hGf +mZP +hGf +piO +cyK +hGf +bii +bii +bii +bii +kTK +pvr +qnr +fAw +fAw +iQV +iQV +iQV +fAw +fAw +tBM +trQ +esP +fIj +qhB +ceI +mxi +sFP +uDg +pPM +pGe +uDg +jNN +kMy +vgM +fcP +tGb +tGb +gOI +kMy +vfC +uDg +uDg +uDg +nyW +uDg +qkm +qku +jwJ +fgv +wrV +snl +hPp +ovs +xaU +gMp +uuF +sNK +ckT +iFl +llv +qlY +qlY +tnJ +qlY +qlY +eQZ +gZm +tKi +vcz +uuF +tGx +eyK +hyA +vvS +mbo +faJ +pqF +hyA +iGg +gEE +sSq +acE +cFh +gEE +bse +eAB +jma +ixY +pTW +eqS +usG +vPM +xBz +vVX +wlb +hey +qsW +hey +hey +hey +sWo +hey +ook +eVe +pLD +kfm +exp +kKN +mxE +wfW +phZ +tcz +eTl +hUn +vjX +jyn +jWd +meh +lvJ +lzd +ipv +aox +hDr +jZk +jha +lzd +lzd +lzd +lzd +lzd +csv +hDr +dom +dXP +hDr +hDr +mQV +mQV +fZI +fZI +fZI +fZI +fZI +fZI +xJH +fZI +fZI +sbZ +sbZ +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(108,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +mcS +mcS +iuU +gJe +lJt +svJ +thr +cya +thr +csy +vcQ +vcQ +fOE +viu +aCu +oUh +dQI +aVB +ipZ +etk +asc +oci +euj +eAn +mrc +fOy +kdE +ckZ +tbW +tbW +qZQ +nqK +uFs +qTW +sXy +tTp +pfl +fmC +rGB +fmC +oCs +fAw +pzy +trQ +mfI +vMk +rGT +cyL +mxi +gVo +uDg +srj +lnn +fov +vus +asY +dbj +xqJ +tGb +weV +dAm +ngJ +vus +uDg +cEe +uEl +gma +pjw +dGz +qku +sLT +fgv +amb +usC +cua +tka +nRk +gEu +uuF +aKE +ckT +egd +uif +kty +kqE +uND +lkV +dYp +sHp +uSe +hpb +lcE +vrE +bdW +uPp +hyA +dlA +qEQ +qEQ +wui +hyA +hYu +ayO +sSq +mly +cFh +hYu +bzv +vDU +wlO +ixY +mqO +eqS +eqS +eqS +vPM +vVX +pVA +jyG +xTr +xTr +wkR +xTr +pbb +pbb +jyG +oqn +pLD +kfm +oWx +kKN +jQH +cLc +cMt +sKA +aAS +bKr +bKr +lvJ +lvJ +lvJ +lvJ +lzd +lzd +lzd +lzd +lzd +lzd +lzd +gON +foz +sHR +lzd +lzd +lzd +uGE +dom +dNq +wzb +mQV +mQV +fZI +fZI +fZI +fZI +sbZ +fZI +xJH +fZI +fZI +fZI +xJH +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(109,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +mcS +xiC +gJe +lJt +gMZ +qGr +uPe +thr +sen +ilg +thr +lKw +wbJ +hll +qyT +qyT +hkb +lTN +asc +asc +asc +tEl +asc +asc +asc +lTN +xqZ +asc +asc +eTY +rDT +gny +uJc +wmD +iHl +chO +mky +bhk +uPj +kvQ +tMD +pzy +trQ +iYN +qyn +tYx +aHy +mxi +prv +lnn +vlR +lnn +uDg +sZc +oug +xTn +fcP +bHc +fcP +gOI +oug +eDQ +uDg +nlZ +bnr +bnr +rkc +cKH +qku +jwJ +fgv +nwS +vgY +vgY +wDh +goQ +vjV +uuF +nHh +nHh +nHh +uif +kPr +hfR +gqp +iGV +mSO +sME +sJy +sJy +sJy +uuF +bdW +bdW +hXp +gva +gva +gva +gva +cgS +sYe +mJD +nSk +gxY +gEE +gEE +rcY +vDU +wlO +ixY +mqO +dvx +cse +eqS +vPM +vVX +nyD +sXZ +dAT +qHx +eCU +fIw +onL +uCj +aKr +oqn +pLD +kfm +exp +kKN +jbR +oeL +cMt +srs +vvf +aiC +jCu +rtN +mQU +vya +aiC +lzd +lKz +jcQ +moY +qhV +mWj +vkm +jIc +jIc +jIc +cun +ljM +lzd +hvs +rXP +eVv +eVv +eVv +eVv +eVv +eVv +eVv +fZI +sbZ +fZI +jJU +jJU +sBq +jJU +jJU +jJU +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(110,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +mcS +mcS +mcS +lJt +vkG +vcQ +yfG +lpL +gjE +lGO +wWm +hvH +kZc +nyf +aua +mdj +aVB +nGS +nGS +jCZ +nGS +nUM +nGS +nGS +nGS +elg +nlg +ksV +nGS +oqw +nqK +iPk +pvr +sXy +tTp +fYK +arB +eTI +pLd +fYK +fAw +rMy +trQ +mxi +mxi +mxi +nbm +mxi +mxi +aLo +mxi +aLo +mxi +mxi +trQ +jAk +fcP +bHc +fcP +mrn +uDg +uDg +uDg +biE +bnr +eUb +pjw +jVP +qku +wGx +lAZ +fnY +xkD +fCU +omD +clP +xkD +uuF +oFJ +lAP +imH +uif +svR +vku +tME +bwE +rhA +sME +hfR +vFS +axI +uuF +eyK +aGy +hyA +hMy +nzB +rXb +nhP +hyA +hYu +knt +gEE +mly +gEE +olH +bzv +vDU +adT +kQO +fhQ +tNx +tgq +eqS +pxU +vVX +vVX +cvH +vVX +vVX +cvH +vVX +vVX +esV +vVX +vVX +kCf +kfm +bnx +eTl +nal +vvf +gSZ +vvf +vvf +wtu +cHc +gcY +spI +pxT +xph +lzd +qhV +pXv +qhV +qhV +pgV +ouR +kQt +dVq +shu +pIQ +rsq +lzd +bwl +uVZ +hvs +hvs +xuJ +dom +jkA +pYH +vze +fZI +xJH +xJH +jJU +iqJ +pXu +nVu +hEL +jJU +fZI +sbZ +sbZ +sbZ +sbZ +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(111,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +lJt +hiY +hiY +hiY +lJt +lJt +lJt +pNi +xwM +sjd +lJt +lJt +lJt +lJt +hGf +hGf +hGf +hGf +hGf +gdj +lBJ +lBJ +gdj +ueB +gdj +lBJ +lBJ +gdj +cYq +pvr +sXy +fAw +fAw +fAw +fAw +fAw +fAw +fAw +kNY +mxi +hep +ykE +tNq +pHD +qWO +iie +huI +mxi +oar +sKs +axw +trQ +uDg +aEc +uGc +jQu +uDg +uDg +qpK +nxc +gma +xTU +nTM +pjw +lSf +eRy +ube +lAZ +fgv +fgv +vIr +vsl +fgv +fgv +uuF +qbW +qbW +qbW +uif +aaK +fwc +vXe +jxq +bGF +egp +oSI +oSI +oSI +uuF +eyK +qDx +bRE +bRE +yld +bRE +bRE +bRE +bRE +bRE +dSO +wfE +iqX +rPt +hyA +hyA +iLI +sdU +tuQ +qmz +abU +uEE +nyg +hLl +nyg +nyg +nyg +nyg +nyg +nyg +nyg +tzA +dwD +uEE +pdL +oEb +plF +maz +yij +ltF +hxd +dIW +owf +rCC +uom +gcY +spI +odj +rCC +lzd +ltc +ukI +bRe +qhV +wTj +jmk +uDH +bqH +dFZ +fhB +kLf +lzd +bFX +bFX +bFX +bFX +bFX +qBd +jrA +jrA +jrA +jrA +jrA +fZI +jJU +rDJ +eFF +pxv +bki +jJU +fZI +fZI +xJH +fZI +sbZ +sbZ +sbZ +sbZ +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(112,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +xJH +fZI +fZI +fZI +gko +oBA +gko +gko +gko +kqg +gko +hoG +gdj +cWs +pfO +csH +aJo +xYf +fom +csH +eGB +aAF +wdo +vIn +wdo +aAF +rHI +gdj +cYq +pvr +pLJ +myC +vFi +vFi +vFi +kWH +xTh +diF +fMm +qDQ +ovW +ovW +vUz +wYd +mqm +yfE +huI +miO +oar +sbm +xCP +trQ +qAW +hur +uQp +aGF +grq +uDg +xvc +gma +kOW +pjw +pjw +pjw +sZb +lUG +sCe +cYn +kqX +bJU +rNa +qzC +wLR +nQw +uuF +mMu +lAP +imH +uif +kMG +hfR +bpC +sSv +kMG +gZm +hfR +lAP +axI +uuF +eyK +lVm +bRE +hxq +pUX +jvm +uQD +kfJ +obz +xtn +xcz +gva +qEQ +wzl +nzB +qGD +sdU +lvT +iUK +ylX +kTo +ujB +kTo +kTo +kTo +qnR +qnR +qnR +qnR +qnR +uvF +qnR +kTo +ujB +qnR +hHI +wEZ +hvm +lVP +hxd +iLS +wCR +owf +rCC +cHc +gcY +spI +pxT +rCC +lzd +amk +arJ +nvr +loN +kyB +vEF +vvp +vAm +nTB +jIc +vFN +bEq +trE +oHS +dVc +oyw +bgi +dmu +jrA +aar +cgs +aar +jrA +nrT +jJU +eFF +eFF +eFF +adl +jJU +fZI +fZI +xJH +fZI +fZI +xJH +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(113,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +jLZ +fZI +swW +fZI +fZI +fZI +eqV +vuL +fku +fku +urF +rkY +xkv +jKm +gdj +vue +fyD +vJI +oBe +krt +kze +hVd +ovR +ixq +uyj +fvu +tLc +vjh +rqR +sCR +izc +bAw +wnk +hGf +hGf +hGf +hGf +wQs +tso +odQ +sxa +mxi +ucP +viG +hcf +ffy +oeN +bbE +oeN +vxD +fag +sSz +hha +trQ +avg +sPS +sQv +aMg +hvv +uDg +xME +gma +gma +pjw +cvt +dje +qkp +lUG +tRP +jQX +tRQ +kUx +rNa +qzC +plH +mVs +uuF +hXi +hXi +hXi +uif +kMG +hfR +vXe +sSv +kMG +gZm +pAY +pAY +pAY +uuF +eyK +dpj +bRE +rJL +wyc +jqf +pSh +gLn +nbq +bRE +eHx +ego +qEQ +wzl +nzB +tnI +niu +sdU +qMs +pvK +mHJ +uTj +amx +amx +amx +qVG +pzo +kvt +bkw +ail +wGh +slp +amx +uTj +xMs +lwf +tAS +maz +sBG +iji +syJ +ioW +owf +aiC +jzj +fmM +lBB +xxT +aiC +lzd +bJd +vUf +bUi +qhV +doA +qAa +lIg +ivl +iZG +bYN +aJv +lzd +hIe +uOU +uOU +uOU +bgi +dmu +jrA +aar +aar +aar +jrA +fZI +jJU +eFF +eFF +eFF +adl +jJU +jrA +jrA +jrA +jrA +bsG +bsG +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(114,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +swW +swW +fZI +fZI +fZI +eqV +vuL +jpv +hoG +vor +vor +qoX +qoX +gdj +qYP +fyD +csH +bZh +krt +rhk +csH +whU +cxv +vGu +vGu +vGu +dMX +yiP +lBJ +xuN +pvr +sXy +nqK +lqx +unA +hGf +chS +tso +bws +jYr +mxi +wYS +aSu +ijo +ieu +xCs +tqG +fpy +miO +oar +hQo +xJP +trQ +jst +rOx +uQp +scO +tle +hEI +gma +gma +wiV +pjw +fsx +vdr +qkp +oGp +tRP +jQX +ceX +pYe +rNa +qzC +fTv +ceX +uuF +yfB +gZm +gZm +ves +mgF +fSq +bKo +oGG +gZm +xEg +gZm +gZm +fCB +uuF +bdW +cGN +bRE +wve +wyc +fnL +nQA +nQA +hCi +bRE +fqx +ego +qEQ +xwd +nzB +kgf +tBb +brN +squ +jcl +lzu +rMr +rMr +rMr +rMr +ruB +rMr +rMr +rMr +rMr +jkk +wHI +wHI +cgc +fWI +kfm +tAS +rZZ +nay +niD +uPq +onP +owf +owf +owf +nOq +owf +owf +owf +lzd +eSZ +saO +aGR +qhV +nUx +oxs +oxs +hhy +oxs +oxs +hvn +lzd +xkR +ujF +ujF +ujF +lel +eeo +jrA +pXO +aar +rgJ +jrA +nuU +jJU +sSc +qSA +hCc +tYW +qBd +eFZ +vdT +eFZ +hIY +aML +stn +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(115,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +swW +fZI +fZI +fZI +fZI +gko +pLc +fku +dQY +qoX +dcR +fku +lPq +gdj +mfw +umJ +csH +kgk +krt +mMA +csH +eec +rhV +nLC +nLC +nLC +bCL +wIN +lBJ +ljh +pvr +qmI +ahd +vqv +pvj +hGf +ssK +tso +vFi +jhS +mxi +obU +lHW +lZv +awo +tez +juG +iWl +mxi +oar +gxb +smV +trQ +xsD +xsD +bao +xsD +xsD +uDg +boQ +gma +ovg +pjw +uoB +fuo +qkp +lUG +tRP +jQX +ceX +vAH +fec +mqK +hPE +ceX +uuF +jQg +dkS +kmI +uuF +mdt +nYR +mdt +tQn +mdt +uuF +iLR +mTE +kmI +uuF +bdW +aeQ +bRE +mwI +pUX +lvF +udb +oOJ +pUX +bRE +uqr +hfI +ukE +wzl +nzB +tnI +gEx +kfm +iZZ +knM +iZZ +rMr +rSY +bNL +qRz +tik +gxw +jRB +gqy +rMr +ajD +bFd +qys +mvk +fWI +kfm +nQm +rZZ +rZZ +obn +rZZ +rZZ +jAa +tNi +lWk +aWp +enh +bTb +djE +pCp +ikr +ikr +ikr +pCp +oxs +oxs +xaw +col +lZl +oxs +oxs +lzd +gDp +gBb +tQJ +tQJ +bFX +ulF +jrA +wbq +lkO +wbq +jrA +sBq +jJU +jJU +uUt +jJU +jJU +qBd +fpY +qBd +eFZ +hIY +aML +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(116,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +swW +fZI +xJH +fZI +fZI +fZI +fZI +gko +ubh +fku +elx +vor +dFf +iRf +wuP +gdj +uzX +voW +csH +smA +krt +jQR +csH +lYE +veg +cdY +xnj +ohb +tvI +ddx +lBJ +fuZ +pvr +sXy +nqK +eQu +uvf +hGf +kXY +tso +www +www +trQ +keh +keh +keh +trQ +keh +gMG +keh +iqi +trQ +trQ +trQ +trQ +qAE +cqn +bFO +raF +uMX +cYn +cYn +hEI +pjw +veT +rIJ +mwX +iDe +lUG +fwD +cYn +byC +pya +pya +iXF +pya +pya +sMl +mdt +mdt +mdt +uuF +sIv +usv +fec +tpe +nyM +uuF +mdt +mdt +mdt +uuF +bdW +lmY +bRE +fgO +wyc +ifU +jRJ +vpD +ylb +bRE +eaR +evT +okl +wzl +nzB +kgf +gEx +kfm +iZZ +wHI +iYE +rMr +xDb +sDx +sDx +wdI +sDx +sDx +xBX +rMr +eoG +pwR +eIm +uWx +uqE +hHI +cZx +nEN +nyP +eit +dSK +maz +lvJ +lvJ +pAv +aWp +lvJ +sDl +lvJ +pzm +nXx +sjf +hvV +pzm +ewO +iGA +xYB +ttV +mFy +pCQ +nkV +etW +mqD +xos +duy +qgC +oEG +nff +eMc +ljV +oBJ +xYR +laU +nih +alZ +xVb +jVV +uBm +bad +hZa +cEz +qBd +eFZ +tcS +lXI +jrA +jrA +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(117,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +swW +xJH +xJH +xJH +xJH +xJH +dvq +dvq +dvq +dvq +dvq +dvq +dvq +dvq +dvq +gdj +gdj +gdj +gdj +lBJ +oMG +lBJ +gdj +gdj +gdj +gnD +ihD +nWZ +gdj +gdj +gdj +cWh +mJm +jZK +hGf +vdZ +vdZ +hGf +www +vzz +www +fKc +tyH +tyH +tyH +tyH +mvl +tyH +gaA +tyH +csj +uiE +ceg +mOg +knY +mME +ntd +qGV +ntd +rJC +bhV +sot +fTN +cQY +knY +fTN +fTN +bfQ +lUG +oET +kss +icm +icm +icm +qML +icm +tHK +rBS +tHK +tHK +tHK +cVK +tHK +tRP +tHK +eYp +tHK +oPo +hVM +mid +hlR +rdL +vrE +tLL +bRE +knf +oBd +bRE +bRE +bRE +bRE +bRE +wzl +ngG +wzl +eAB +lip +jdx +rur +scG +nlN +wHI +qAu +rMr +bzj +sDx +fiN +htq +kXm +sDx +kGL +rMr +xon +ujn +nvv +lzy +uqE +kTo +hHI +osZ +jGw +olg +dgq +gAW +iGe +oQI +vKL +yaj +iGe +iGe +oQI +eeX +bcy +bcy +fGR +hdE +mWf +mWf +euM +jom +pKx +pKx +pKx +ooF +ozm +jWA +bFX +fkp +bFX +wvS +hjN +cjl +hjN +kLV +kLV +kLV +kLV +oJC +rqS +psI +sBq +ddo +fSw +qBd +eFZ +eFZ +eFZ +bWo +qGL +xJH +xJH +xJH +kqI +eiq +kqI +eiq +kqI +eiq +kqI +eiq +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(118,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +swW +swW +fZI +fZI +xJH +fZI +fZI +ugq +iOn +fMx +twz +odP +cqG +pwr +lAL +dDl +nOi +bIW +tUy +cEp +tPF +wZc +jct +jIn +nKm +gdj +thV +ozz +pHS +gdj +ctK +jDU +uxA +pvr +msQ +hlp +vxA +sqV +rCE +sjH +tOv +weu +rWO +gfr +krU +uKc +rWQ +rWQ +ajK +gfk +gpJ +qOJ +uYS +ryK +ryK +ryK +vnK +lUG +tyX +tyX +oUd +yeH +lcJ +tyX +tyX +tyX +tyX +tyX +kpz +tyX +dLI +iPj +vce +vce +vce +wLS +gpM +gpM +gpM +gpM +gpM +gpM +gpM +gpM +fMq +ggl +bPi +gpM +gpM +fbt +bsk +gne +xaB +aHo +gLe +ofn +lKx +lKx +lKx +ejo +iIu +dQf +oPG +lKx +ciZ +lKx +lKx +lKx +lKx +nVl +oEw +xZT +wHI +baQ +rMr +wLD +sDx +fiN +htq +kXm +sDx +twp +rMr +ckC +xuM +xuM +gkY +jiS +oqz +nFl +mze +nPr +kgD +oeA +maz +gKc +iFu +fSk +oSc +dXZ +mWY +iUW +pzm +gWC +axH +tmB +pzm +dXb +dXb +mFy +fVb +mFy +vMA +vUK +etW +hNB +uTu +jJU +muV +eih +lwb +nwH +epU +vWi +mmz +mmz +mmz +vWi +lvh +ibA +qFc +jDp +bdJ +dsS +qBd +qBd +qBd +fpY +qBd +jJU +jJU +jJU +nrT +uJl +tPg +gnB +tPg +gnB +tPg +gnB +tPg +eiq +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(119,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +swW +fZI +jLZ +fZI +xJH +fZI +fZI +ugq +pAz +nRW +oMU +jVH +ibf +nLG +nLG +sPq +nOi +otk +vwN +ajQ +vwN +vIm +xIE +fWi +dXy +gdj +gdj +uIp +gdj +gdj +phG +pJb +fqK +pxe +yfw +tWS +wNx +oTJ +tWS +ehR +rWO +rWO +npr +gvm +rWO +gef +mVb +ahg +oZC +xfg +mVb +ofs +nUa +cNY +cNY +cNY +kfD +xXP +toN +jdh +dLM +gyL +iur +rWg +uBq +uBq +uBq +eSE +sNJ +sNJ +sNJ +mDq +cNY +cNY +pqz +cNY +cNY +cNY +cNY +auK +pqz +cNY +cNY +cNY +cNY +cNY +cNY +vQo +cNY +cpc +lpi +gpM +iuq +rpn +rpn +fPo +elO +rpn +rpn +rpn +rpn +rpn +tUS +elO +iWu +tzE +ejt +tzE +tzE +tzE +tyE +uXF +iYE +qAu +rMr +kmb +rYf +qqM +wCf +bSz +xMQ +hDd +rMr +nTN +wHI +wHI +uzo +gnI +sCA +gnI +uzo +uzo +uzo +qCU +uzo +hKV +bXG +dUS +xrx +eXl +mER +ooP +oJg +teE +jPK +kUZ +oJg +sVS +kgO +uTy +fVb +iEm +xCQ +xCQ +bgi +jza +bgi +jJU +jIh +eFF +wnv +lnX +gUk +vCv +jok +qVl +cYg +vCv +cBs +kem +xAU +qBd +nff +cmD +sZC +rhi +wnJ +rhi +oeM +szD +fWn +cpm +nrT +lQg +tPg +gnB +tPg +gnB +tPg +gnB +gnB +oWJ +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(120,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +swW +fZI +fZI +fZI +xJH +fZI +ugq +ugq +iFg +nGg +pRx +gJq +ibf +iqN +iqN +fIv +nOi +ceT +ceT +pwH +ugJ +nWI +txk +rXr +cWr +nOi +nkY +ueq +vwE +rTc +gBd +xDx +vTC +bhN +qhq +rsX +lze +jPv +hhx +tUK +ush +cbm +ush +tyu +mVb +uxI +gpr +dew +aRk +cWG +mVb +pKh +pKh +xgi +xgi +xgi +pKh +ybh +qFH +wkC +dnF +pIj +wWZ +cYn +prp +nBY +arv +cYn +tbx +gJY +rkv +vuJ +tNj +cOf +vNz +mfP +oua +gMk +wdr +lNn +pao +tNj +tNj +mfP +ajv +gMk +dif +cYn +sNJ +bCd +pyj +wdn +cIO +wMN +elh +lXO +fPk +jjf +wMN +elh +aIH +kvH +wfX +wZu +gmw +nVl +gVe +xcJ +clx +uXF +uXF +kAY +wHI +qAu +rMr +rhW +sDx +flR +lmH +kXl +sDx +eeY +rMr +eBZ +tWE +tWE +uzo +czR +eIS +who +tjC +fHR +cyS +coi +cpY +uzo +uzo +hMm +hMm +hMm +hMm +hMm +hMm +hMm +hMm +hMm +hMm +hMm +xCQ +iqB +mBR +mdI +jYQ +xCQ +hDU +bOR +mFy +lqS +gbc +eLg +hDH +lYA +lTH +vCv +eSU +pKG +qax +vCv +fgM +bEz +psI +lHD +cBs +sqo +eeo +sqo +eeo +jiC +hCp +jJU +jJU +jJU +nrT +uJl +tPg +gnB +tPg +gnB +tPg +gnB +gnB +eiq +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(121,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +swW +fZI +fZI +swW +xJH +fZI +ugq +dts +jHk +jHk +jHk +oBt +ptc +jVH +hiV +vpq +kmU +fWi +mbm +lNG +pty +qIA +hka +rXr +bry +nOi +sbx +cJI +fre +nOi +hYF +fcw +eOS +vKh +nqK +hGf +vdZ +vdZ +hGf +mhM +dRs +dew +ylj +keK +mVb +taN +dew +dew +pKh +xgi +ueI +pKh +jUT +yeu +jeL +syv +lWi +nzh +uRt +czt +cug +bBd +ugw +rsg +cCk +aVH +wSc +foE +sYK +wdE +ajU +ker +xCY +sYz +sbF +hHr +aMQ +qjx +tMT +qGv +wVe +vQD +dwN +cqm +twB +aMQ +sYL +cYn +uQj +muW +yhm +yhm +sCX +kRM +eOd +sCX +jNE +sCX +yhm +yhm +sCX +sCX +nLR +nLR +uYD +tWi +gVe +uXF +rqA +owZ +lTo +puc +wHI +pBp +rMr +xNh +sDx +flR +lmH +kXl +sDx +isJ +rMr +eBZ +vMj +pBp +uzo +aFW +nvM +nvM +nvM +wKQ +wKQ +mMT +npj +rxX +pHH +hMm +cZa +rxG +oeK +deu +wmC +gkh +wiI +eOe +oYq +hMm +wxW +mFy +xLd +mFy +mHA +xCQ +jpq +puj +lZl +ced +ced +mNE +ank +vCv +vCv +qdV +lKU +lKU +nyU +vCv +qWA +xYL +nqY +qBd +mNE +frp +frp +frp +frp +frp +utD +isy +mnJ +iqH +xUd +wAs +tPg +gnB +tPg +gnB +tPg +gnB +tPg +oWJ +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(122,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +swW +fZI +fZI +swW +fZI +fZI +ugq +jHk +uoo +cWT +pXK +gMR +eRk +eAJ +hiV +tgl +fHh +oUB +mUe +oXP +iia +onB +vxH +qQZ +hng +hVN +wRR +pQC +mSx +hVN +aGj +bmV +blx +vTk +nqK +eXN +mHF +tDN +vdZ +uZE +bkP +nYb +pzJ +eHO +xfg +glc +wbh +fNf +pKh +qyN +dro +xUU +dro +jwI +njq +git +pmF +boN +oFX +nqM +rjB +bBd +bOT +wRj +lOW +oiQ +qTb +vXV +lsV +hLQ +iJS +xWA +rzJ +hXb +fPv +gKY +qjx +baD +oPB +eMP +qjx +qjx +qjx +uHo +qjx +qjx +rYx +vcR +cWl +hgU +yhm +qeU +jLA +fdH +eZB +niO +dwi +lkp +fAB +mhV +pjz +sCX +eUx +hPq +bTF +nVl +gxd +uXF +jze +hza +crI +rqj +wHI +vMj +rMr +hEv +sDx +sDx +cWX +sDx +sDx +bjl +rMr +eBZ +iCD +qAu +tBw +gFX +nvM +sLm +sWO +nqT +sYX +pTx +oTC +lqp +cMX +hMm +kIk +brK +dSd +jWB +spE +aQw +wQO +mem +nZh +nXL +mFy +ufx +yat +oCh +mFy +bIL +rvZ +svL +mFy +mlC +ced +mNE +kxK +qvO +xnp +ufO +qHg +qHg +qHg +vCv +eiO +kXw +dUl +qBd +wms +frp +frp +frp +frp +nPk +nwH +psI +tjK +hLZ +xJH +xJH +cTR +oWJ +cTR +oWJ +cTR +oWJ +tTV +nrT +nrT +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(123,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +swW +xJH +xJH +swW +fZI +fZI +ugq +mbg +sjx +dqS +lRD +eEZ +nHB +jpR +seG +xFU +vjw +hmi +rvO +ibo +kgh +hjh +bpv +jnd +bap +hVo +sEv +cJI +tkN +oSr +gBr +pxL +wIx +mXM +nJA +xXo +oSe +aqM +qFL +iXf +bkP +fPl +eOH +ilB +cOb +glc +ptf +fNf +pKh +bZC +tvk +dro +gHH +rig +kbZ +nRo +tpd +rye +wup +wup +jKx +bBd +bOT +gCJ +gCJ +gCJ +dGC +bGm +lsV +rNa +iJS +qIJ +jIp +wAg +qjx +qjx +aMQ +qjx +cZl +qjx +qjx +loX +qjx +aMQ +qjx +npL +xlK +vcR +tli +duF +sCX +fuR +dyt +iQX +bJS +vSB +dkN +hNX +fAB +nZe +hVH +sCX +eUx +wOb +bTF +uJu +vIy +rsU +dev +vmY +gzD +ssm +vHX +qAu +rMr +xZo +fwv +tBT +dkY +tBT +avr +fON +rMr +qTH +pmS +pmS +pmS +vTQ +ieX +vTQ +cuf +avB +pSR +tCd +nKD +vNY +cAV +aQd +qYI +qYI +qYI +aTK +dBv +dhK +rjX +aNU +ubU +viR +rua +nCP +eTU +jxk +fwE +ngI +fwE +xZO +vMM +fBH +ced +mNE +jbe +nxi +tBq +kQu +hlw +mdF +qax +pTu +gwF +dBF +oHG +sBq +bVn +bPf +aUe +gEe +aUe +gEe +nwH +psI +tjK +hLZ +xJH +hfg +hfg +hfg +hfg +hfg +hfg +hfg +tTV +pkX +nrT +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(124,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +swW +fZI +fZI +swW +fZI +fZI +ugq +jHk +efd +jCr +dSH +kac +lZg +ctw +kir +xmE +kmU +mFh +iIi +kAm +gJT +gJT +nJx +nNY +wvB +hVN +gUa +ghg +cAy +hVN +eFi +pzl +blx +vTk +nqK +ceV +oPK +vEm +vdZ +nXQ +bkP +pEe +ibm +eHO +xfg +glc +dYM +ctC +pKh +xdt +kDo +uYa +orV +fCD +oDl +rjv +ifn +sfO +wvX +kBW +fcK +bBd +bOT +ohC +kyu +vRS +ril +bZG +lsV +hLQ +iJS +lhg +rpz +qjx +qjx +npL +mJN +tTB +axu +nJk +qjx +qjx +qjx +efr +qjx +rPE +nkh +vcR +cWl +hgU +yhm +cNE +dZQ +gyG +gyG +dDH +oOZ +lgi +ydW +vMi +blV +sCX +eUx +gKn +bTF +nVl +gVe +lKx +ajn +clW +xVv +dJB +wHI +qAu +rMr +dvB +dvB +ojJ +pxh +ojJ +dvB +dvB +rMr +eBZ +pmS +vSt +sZV +kzQ +cUA +bJh +vTQ +nqT +sVZ +agb +hwl +kNX +jbE +hMm +dTI +dTI +sdG +mcC +gdn +gdn +qWm +qWm +tTX +nXL +vyr +tGz +ugM +iqP +mFy +bIL +dhU +vIh +fwE +qaZ +ced +mNE +vTg +qva +lGp +yaT +hbt +wdS +wdS +vCv +cqa +qfz +hoI +qBd +wms +frp +frp +frp +frp +frp +nwH +psI +tjK +hLZ +xJH +xJH +kqI +eiq +kqI +eiq +kqI +eiq +tTV +nrT +nrT +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(125,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +swW +fZI +fZI +swW +xJH +fZI +ugq +uUQ +jHk +jHk +iuN +ygF +eRZ +uBN +kir +avI +kmU +mFh +cMd +kAh +ugJ +qpm +nMS +lHi +dlN +gkm +gkm +uBa +gkm +gkm +abJ +fcw +blx +coR +nqK +hGf +vdZ +vdZ +hGf +aik +iMU +dew +hSR +keK +eSY +bWi +dew +dew +pKh +xgi +bkv +pKh +cmC +dXE +mvZ +nBO +iqh +mCb +uSS +cxa +gyP +bBd +ugw +qZu +dIv +qCZ +oqD +dIv +hJh +fec +agy +yiM +pKi +qjx +cYh +xCY +xtI +umz +ptt +jQp +srS +uLp +mGG +pKi +qjx +aMQ +lDp +cYn +hEP +qON +yhm +yhm +sCX +fdf +aZR +sCX +wwG +sCX +yhm +yhm +sCX +sCX +nLR +nLR +qgn +tWi +gVe +lKx +npm +kDx +xzv +ooN +wHI +qAu +wHI +fZI +ojJ +crR +cWX +uIX +ojJ +fZI +wHI +gqX +pmS +lLD +inZ +aYU +tmp +sAc +cuf +inF +cuf +vTQ +vTQ +cuf +bex +hMm +gji +mjw +gbf +sSK +oLA +lsQ +tUT +jOV +lTd +hMm +nZg +mFy +fIc +mFy +fnp +xCQ +dKw +iSX +whB +ced +ced +mNE +rZj +vCv +vCv +tfg +bNv +bNv +jry +vCv +qWA +xYL +dsn +qBd +mNE +frp +nPk +frp +frp +frp +epU +dUl +sBs +pdH +xIt +wAs +tPg +gnB +tPg +gnB +tPg +gnB +tPg +eiq +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(126,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +swW +fZI +fZI +fZI +xJH +fZI +ugq +ugq +wij +ycl +sjk +jJl +uvG +tdv +tdv +cnP +nOi +xTt +xTt +kRU +ugJ +reA +sgW +lHi +toZ +gkm +qBu +gOG +vLE +jwR +ayM +fcw +cxl +fOy +svX +ygl +tbW +eeQ +rsG +wkP +xfg +mVt +xfg +keK +eSY +bZr +lKM +dew +lDF +rqD +bYQ +pKh +pKh +xgi +xgi +xgi +pKh +ybh +qFH +brC +raJ +dCU +eja +cYn +tls +uNq +prp +cYn +jpF +qwf +dji +mfP +pVg +paL +pwk +lNn +cyM +nFc +eIR +vuJ +jSd +oZi +jSd +lNn +dNI +paL +cwp +cYn +cqn +mYL +qaV +xbm +lbn +vVq +gdN +aVN +asA +rQc +qnH +gdN +hNc +jaB +wnX +euw +dUf +nVl +gVe +nVl +iPI +lKx +lKx +sVj +wHI +qAu +liN +fZI +ojJ +rIc +cWX +fDk +ojJ +fZI +liN +eBZ +pmS +jGa +onF +sdZ +keT +pjy +cDI +bkc +lpr +uhE +wgp +uWV +dBG +hMm +hMm +hMm +hMm +hMm +hMm +xPj +slI +wqm +hMm +hMm +xCQ +jUQ +cbv +mdI +cpf +xCQ +hqC +xZR +fwE +jMm +vwi +pTG +uMy +dZa +stB +vCv +kTl +omT +eEt +vCv +cVI +udE +psI +lHD +mNE +eeo +eeo +eeo +vYi +eeo +wlF +jJU +jJU +jJU +nrT +lQg +tPg +gnB +tPg +gnB +tPg +gnB +gnB +oWJ +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(127,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +swW +fZI +fZI +fZI +xJH +fZI +fZI +ugq +taZ +tqo +qCv +uBN +uvG +lUm +lUm +lUm +nOi +xgS +rHu +rnz +rHu +jiA +jiA +oFP +iXV +gkm +kAc +rNT +iem +faI +vgD +qRI +jVv +jVv +jVv +fMc +jVv +eBp +bjt +cnv +npr +rWO +rWO +qrd +rWO +mei +eSY +nZu +eSY +lXL +lXL +gzt +nAV +tHK +tHK +tHK +vWW +bks +sBj +dbZ +dLE +jkT +xKi +peV +kgE +kgE +kgE +vgN +cqn +cqn +cqn +nWA +tHK +tHK +tHK +tHK +tHK +tHK +tHK +aTT +tHK +tHK +tHK +dPX +tHK +tHK +tHK +mRh +dPX +uiE +diO +mUL +akl +elO +xUL +elO +sKc +vDA +vDA +vDA +vDA +vDA +oBI +sWF +vDA +bNm +wyU +fYJ +fpD +fpD +tGu +lKx +iYE +qAu +liN +xJH +dvB +dvB +lga +dvB +dvB +xJH +liN +eBZ +cqk +buG +kYe +nWo +cId +pbm +nQJ +wzW +rCR +jKf +jDj +gjr +fFW +llg +ccF +bVP +iRO +ptU +hMm +hMm +hMm +hMm +hMm +sVS +gNT +uTy +pwX +iEm +xCQ +xCQ +qBd +eAf +cin +jJU +fKO +iPA +wFq +wDD +oMr +vCv +kez +dem +dHY +vCv +qWA +xYL +xAU +qBd +gbc +jzs +rBB +jzs +jzs +jzs +dUl +szD +elR +cpm +nrT +uJl +tPg +gnB +tPg +gnB +tPg +gnB +gnB +eiq +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(128,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +swW +swW +fZI +fZI +xJH +fZI +fZI +ugq +cub +twq +sUg +pZy +kQl +icv +pvB +jXa +nOi +rxV +lCR +dOk +hBq +vBs +hBq +rCT +twQ +gkm +sqn +rNT +krl +jwR +xAV +cIf +ylz +nGS +nGS +iPk +cFp +iAj +rsG +apl +hda +hda +xfg +ofd +sHV +iXS +rWQ +rWQ +rWQ +bdf +rWQ +qqb +tyX +ryK +ryK +ryK +kQp +lUG +tyX +lUG +cnU +dmC +ktK +uRs +gpM +gpM +sRD +gpM +gpM +ctc +gpM +iPj +gpM +gpM +gpM +gpM +jKU +gpM +gpM +gpM +gpM +lkl +vce +gpM +gpM +gpM +gWR +gpM +gpM +iTp +mLj +sjh +wDe +tRX +aRB +fdR +tRX +tRX +tRX +qMK +tRX +tRX +pBr +tRX +tRX +tRX +hiU +tRX +uXF +nVl +cku +vrR +wHI +qAu +wHI +fZI +fZI +dvB +ojJ +dvB +fZI +fZI +wHI +qmP +pmS +taK +reG +jhX +oky +yfR +oky +eYP +oxX +qdj +jqa +hIj +lQB +xDM +fyk +mhJ +gky +vwY +reu +qvM +sBt +qkW +sBt +dXb +dXb +mFy +vzC +xZH +yiV +eNi +hLZ +kib +hrj +jJU +grh +hiy +gEa +ehm +eZF +kHg +nih +usf +usf +pGX +cuA +xYL +psI +jJU +qBd +qBd +qBd +qBd +qBd +fpY +qBd +jJU +jJU +jJU +nrT +lQg +tPg +gnB +tPg +gnB +tPg +gnB +tPg +oWJ +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(129,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +swW +xJH +xJH +xJH +xJH +xJH +dvq +dvq +dvq +nTw +dvq +dvq +dvq +dvq +dvq +nOi +nOi +nOi +iLd +nOi +nOi +nOi +gkm +gkm +gkm +ntH +sOu +wne +gkm +eIM +iTA +bqq +xKd +uGd +rpA +cFp +cEo +hGf +vdZ +vdZ +vdZ +fVH +fia +gda +qDP +upv +cKC +qcz +oWB +dYN +pic +jkR +jkR +jkR +fkN +mMM +ntd +uEa +ntd +fte +vaB +rVE +bPP +cNY +wPy +bPP +cNY +icm +xli +cil +tPe +cNY +cNY +cNY +cNY +bPP +cNY +lET +cNY +cNY +skS +nUa +pqz +hRD +jMy +cNY +qtb +pZn +xhd +lFz +dIF +hWz +uwm +rej +uwm +sjA +uwm +sjA +uwm +uwm +uwm +sjA +uwm +sjA +uwm +guK +uwm +daC +dKK +gLv +nyh +wHI +qAu +wHI +wHI +fZI +xJH +fZI +xJH +fZI +wHI +wHI +qmP +qhe +vKJ +eWR +ehZ +mdy +mnw +aTe +ooG +wvV +mIx +jMW +qce +csn +qfd +rgW +mhJ +icR +stQ +jVt +hSj +ewZ +oMZ +rvo +iwq +jVp +jVp +ttV +xQu +xQu +xQu +bcV +oZK +hrj +jJU +weC +jJU +eLg +wFq +xtd +hVF +xtd +xtd +xtd +xtd +ryb +dSf +psI +fpY +eFZ +ipQ +eFZ +eFZ +eFZ +eFZ +fyn +qGL +xJH +xJH +xJH +cTR +oWJ +cTR +oWJ +cTR +oWJ +cTR +oWJ +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(130,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +swW +fZI +xJH +fZI +fZI +fZI +fZI +dvq +uTi +wlL +rJO +dvq +abA +khX +msf +ljF +msf +vRh +vRh +uZg +ltq +ltq +gkm +uEy +sbH +hLn +aQr +bMr +kXe +cwS +iTA +oIz +mMN +hzp +dsF +dNW +jUO +wrN +nha +fVN +vdZ +vdZ +vdZ +vdZ +hGf +dVy +dVy +dVy +qev +dVy +gSl +fRf +gqM +qGc +mHE +haD +inQ +csS +inQ +qDH +mHE +kAG +uer +lCe +gSl +lRu +qni +xve +icm +avK +cYn +ohs +tCJ +iwG +bWU +aXb +hqN +rta +nfz +nfz +cfn +nfz +nfz +ftj +mVk +mVk +mVk +vmO +vmO +vmO +mVk +mVk +uGG +rMm +xDT +fYG +vET +ifR +jMU +lJK +kMz +ako +ngk +mZE +sEz +fvE +dGH +uwm +kyD +pEc +uGo +cHT +joN +pZb +wHI +wHI +liN +liN +liN +wHI +wHI +jxs +eBZ +tBw +jTZ +fIi +xBb +hBL +aHN +eyO +mEg +bTt +eCi +stR +rew +lQB +hIj +xBs +mhJ +lIn +aAj +mFw +fun +sBt +wJd +sBt +hPQ +cDQ +mFy +xQu +mFy +jdg +aMJ +hLZ +kDg +gBR +gBR +lIS +wIk +dto +osE +jzs +hNZ +jzs +lzn +jzs +jzs +vVE +dLQ +dUl +jrA +xOi +yjp +eFZ +eFZ +tcS +jrA +jrA +jrA +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(131,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +swW +fZI +fZI +fZI +fZI +dvq +xVG +uRM +pvc +dvq +wmL +wmL +msf +opt +qBG +gHM +uZg +uZg +xJH +xJH +xJn +eUa +rNT +rNT +nbW +eTe +gkm +iLK +oUS +iLK +ykW +ykW +ykW +ugO +xFT +kZp +dMw +ykG +lRG +rfX +lRG +wjF +hGf +ekE +vIU +vIU +ggP +vIU +mHE +kDi +yjL +yjL +anb +uuw +dqZ +owN +tyT +fgC +anb +msF +cTa +slG +mHE +jgJ +odO +kCk +icm +aqj +qJZ +eno +fWo +rNa +wmX +ruT +rJW +nfz +esh +ufG +xAz +jZJ +nge +rZM +wna +dgv +kGp +mQS +nYP +pWi +fIb +mVk +bLn +rFI +bVt +rlZ +qJJ +cUu +jMU +pgb +nCn +oAu +vET +hPM +kSn +utK +tEs +chG +jYj +lWK +ktl +wHI +qHq +gkN +joN +pxX +gag +dsM +bDV +tKB +mFp +bDV +nzZ +mQa +uBT +wuq +ymf +sWH +elz +usI +nLh +pqc +nbC +wel +wel +stY +cdE +wBn +pki +xLV +ixb +sRV +bOv +aPt +aPt +aPt +rgS +gpz +gpz +aDt +gpz +gpz +rcB +jJU +bui +hAI +rAD +pOM +jJU +jJU +jrA +jrA +kmy +jrA +jrA +sBq +jrA +jrA +rEd +jrA +jrA +ffu +eFZ +eFZ +eFZ +hIY +aML +stn +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(132,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +swW +swW +fZI +fZI +fZI +fuh +ijw +nrd +nTX +gcy +ixQ +wmL +vwh +pHB +pHB +gHM +uZg +xyU +nrT +nrT +xJn +bqj +pzw +mrb +fRD +uKW +gkm +bkG +lnC +bvD +vye +esl +ykW +ykW +qsl +vPn +dmz +vPo +tNE +ykG +tNE +tuv +hGf +bMH +sEF +guW +qyi +eyF +dsT +gLj +wLH +cbG +leo +nmh +gLQ +bBI +xnF +epa +lHt +auS +gtP +vDx +mHE +fsx +vdr +kCk +onf +aqj +nND +rNa +rNa +rNa +lia +ruT +bRK +nfz +rxp +eWJ +xAz +ohH +nge +qIv +dSV +llz +lky +qcm +lky +nKI +jsX +jRe +wGD +qdr +vJq +hED +vET +kAN +jMU +pgb +xlW +jLJ +rBy +dGT +dUq +utK +cRy +uwm +kyD +swd +oqe +iWN +iWN +iWN +iWN +iWN +iWN +asw +iWN +iWN +lqC +vXN +eTz +pmS +pmS +uho +wJZ +abj +rwM +uho +pmS +pmS +iqf +pcl +fHF +kpV +qwu +fOZ +bwm +iqx +tZB +jIl +sia +khH +mAB +fFq +wPZ +gpz +xJN +vuX +igR +gpz +ikn +jJU +xfP +pXc +pXc +eZU +jJU +vCM +jrA +aar +ugH +aar +jrA +nrT +jrA +aar +dFr +aar +jrA +ffu +eFZ +rbL +eFZ +hIY +aML +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(133,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +swW +fZI +fZI +fZI +fuh +lBD +dvZ +luf +dvq +fuB +wmL +vtA +iek +ddT +gHM +uZg +uZg +xJH +xJH +xJn +cBC +rNT +rNT +nbW +pOl +xJn +vyY +nUD +cUz +ovE +esl +sRd +ykW +qak +cVu +qak +iEG +boP +vPo +hMB +vPo +hGf +sXE +ocl +gax +iTo +dVy +mHE +qtd +rUt +rUt +oBu +rgh +nhR +niE +vJv +kLr +hdb +syh +wFA +qkG +mHE +rBZ +wtE +hCn +djG +ohg +sxu +xQC +bmn +fec +fec +usv +eLC +nfz +tId +mSP +xAz +bQF +mzh +olk +dSV +nIX +nKI +fsa +dTP +vHe +jKM +lme +wGE +rpj +wEf +fRV +aVg +aVg +aVg +fRV +aVg +aVg +fRV +aVg +aVg +fTe +sek +fRN +kyD +jRa +sNz +suE +jfh +tBc +tvu +qyq +cCX +ycs +eaU +iWN +aMe +qAu +wot +tHY +kYI +cBx +pNw +bnG +rjS +lHd +nuU +sBt +qhR +aXD +aXD +sBt +jnb +xSN +bdh +sBt +sVm +sBt +uis +aPt +mro +vLL +rgg +gpz +gpz +rZl +gpz +gpz +ikn +jJU +nKc +nKc +nKc +jhC +jJU +mFI +jrA +aar +aar +aar +jrA +fZI +jrA +aar +iFA +aar +jrA +jrA +jrA +jrA +jrA +jrA +bsG +bsG +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(134,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +xJH +fZI +fZI +fZI +dvq +dvq +dvq +dvq +dvq +wmL +wmL +vXd +aHd +qmW +gHM +qhC +uZg +vMn +vMn +gkm +oOP +nzR +aLr +nbW +tZD +qpZ +vye +mVF +fWt +ksn +pSY +ljt +aYl +qak +qak +qak +wvo +qak +chT +qak +gQp +qub +kgl +gEV +uyp +hDp +dVy +ucQ +qpu +rDq +lRj +qBg +rDq +lRj +wba +rDq +lRj +hdb +rDq +cSp +ntA +mHE +mHE +mHE +gpA +gpA +gpA +gpA +gpA +gpA +uXn +eqb +cOH +gpA +gpA +tIy +dos +xAz +jED +nge +sVk +oXm +eFf +nIX +sFF +aWA +lIu +xlI +oPM +pPx +kkb +iYT +vcc +ksa +rBo +gzC +gFA +gzC +euI +vsS +vsS +aVg +aVg +uSX +sjA +vkd +swd +sNz +suE +uzl +biW +kBo +iWN +iWN +dol +iWN +iWN +iWN +qAu +kFQ +tHY +wst +sBt +hWB +mui +wMy +sBt +xJH +twj +tGf +dZc +kqy +kqy +rjS +wqo +gPt +sBt +wdb +sBt +cUf +aPt +wFH +gpz +gpz +gpz +sqT +qKA +fhD +gpz +ikn +eWt +eWt +eWt +eWt +xEe +eWt +byi +mhp +tdu +hUy +aar +jrA +xJH +jrA +aar +hUy +aar +jrA +fZI +fZI +fZI +xJH +fZI +fZI +xJH +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(135,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +uZg +uZg +uZg +uZg +uZg +opt +vbK +hwd +qmW +vXd +lhQ +iAt +vXd +vXd +nFX +bII +uZg +dcj +dcj +gkm +gkm +gkm +kIL +gKv +oGF +xJn +fyg +pTX +ueJ +mDz +esl +mUr +ykW +wvo +cVu +qak +rcC +kHO +vPo +vdh +vPo +hGf +gBM +xpM +fqP +ocl +dVy +qxf +okI +qbb +hrr +eOU +qbb +hrr +eNn +qbb +hrr +cfN +qbb +nwm +xrD +jYG +kxD +gNv +eHX +xEN +qYk +wgs +nYX +uHy +gWE +gWE +mNS +nQh +gpA +mrD +bsq +tRj +ulQ +weB +ftj +eSN +eSN +eSN +qJH +ccK +jeT +gMj +oli +wGE +kYW +utK +pgb +utK +lZY +fSC +xsG +lGV +mst +pBK +noz +pgb +lJK +pgb +uwm +kyD +swd +sNz +suE +qQn +bSr +weL +gsG +iWN +flM +uck +cXR +iWN +qAu +cKR +tHY +nIO +sBt +dSi +kQh +mRe +sBt +nuU +sBt +sBt +iEy +sBt +sBt +tch +nfg +xJH +sBt +eGk +sBt +boH +aPt +mro +gpz +pIn +pIn +pIn +vDR +uoF +gpz +ikn +aXj +mvq +mvq +uTe +aXj +aXj +aXj +jrA +jrA +jrA +jrA +jrA +fZI +jrA +jrA +jrA +jrA +jrA +fZI +fZI +fZI +xJH +fZI +sbZ +sbZ +sbZ +sbZ +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(136,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +uZg +ger +uZg +uZg +qBR +cmo +ovx +bKS +obI +lfG +meM +eMI +cOc +cmo +hYd +ibi +qHU +bUc +gHM +vXd +tVW +den +uXu +mRN +gkm +nQF +mCa +tel +gkm +oPc +bTy +uUq +vye +esl +ykW +ykW +dKZ +nuj +omJ +vPo +rVq +kHM +rVq +xbP +hGf +dVy +pnE +dVy +xxl +dVy +sFi +okI +eDK +uXo +qBg +eDK +uXo +uSi +eDK +uXo +hdb +eDK +lSY +nAE +jyy +uOJ +jOu +gom +gWE +gWE +gWE +gWE +gWE +gWE +hod +mFb +gpA +gpA +cfy +bsq +lxu +jJK +lGe +ftj +xit +lNc +eSN +lXC +lrK +xnK +bkN +aev +pPx +kYW +mRf +mGI +fSM +kak +bRA +aYB +wvd +qtY +jZm +pBK +pgb +eKB +eKB +uwm +jvZ +pEc +cwD +iWN +uAV +uAV +uAV +lmE +iWN +qSo +gdq +hPg +iWN +qAu +qAu +tHY +nIO +sBt +eer +xbl +eer +sBt +nuU +sBt +vLj +qhN +vLj +sBt +tch +dXH +lTC +eEX +pWs +nUY +wSf +aPt +mro +gpz +ajp +nUn +nWi +dKQ +ana +gpz +ikn +uJz +cgE +tkn +hjI +kxR +ucs +kxR +bml +elm +nAr +fZI +xJH +fZI +xJH +fZI +fZI +fZI +xJH +fZI +fZI +sbZ +sbZ +sbZ +sbZ +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(137,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +iqz +xJH +xJH +uZg +uZg +uZg +uZg +lfG +mUy +voN +lfG +lfG +leS +veS +obI +cmo +lcw +pHB +vXd +vXd +vXd +vXd +gHM +wTL +gHM +xlb +lWh +lWh +fze +uex +gkm +xiD +mCa +uyZ +gkm +iLK +swj +iLK +ykW +ykW +ykW +sum +vqv +sum +ien +pJB +rXk +eQE +rXk +wDy +hGf +sfn +tHq +mrV +ocl +dVy +mHE +uZA +xHh +xHh +jqP +rhm +rhm +lmz +ulk +ulk +owF +oIT +esS +qAt +xGO +xOj +dGN +gwc +kLy +vsd +kcP +tWO +gWE +vyB +vpa +mNS +qkB +aIV +iCi +gWF +nGi +prV +bqM +ftj +kzy +avw +qmB +rum +eum +iKD +tib +nIn +bbu +hJw +wSQ +vYB +eIA +bKX +hgj +toQ +pjW +kzt +ceC +lyV +pgb +lkP +tQT +uwm +fEy +swd +sNz +sMR +vNQ +kwV +tkj +nBi +iWN +stP +akS +cNO +iWN +pUW +vMj +tHY +nIO +sBt +eer +eer +eer +sBt +nuU +sBt +nrB +vLa +vLj +sBt +tch +dXH +aXB +nuU +iBs +maA +wSf +aPt +mro +gpz +cek +uKe +agc +jve +aVp +gpz +cpv +sUL +wus +hwi +eWt +eWt +eWt +eWt +eWt +eWt +eWt +fZI +sbZ +fZI +xJH +fZI +fZI +sbZ +sbZ +sbZ +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(138,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +dcj +waH +dcj +lWh +lWh +aEk +fBV +lcw +cmo +bKS +obI +kpG +oMF +lfG +ncg +vXd +iYW +bUc +gHM +gHM +fsG +vXd +aEQ +lWh +lWh +krG +gkm +vrb +cvD +joA +gkm +bIY +fbI +iLK +cPw +rvL +sum +vqv +pbC +sum +wyf +abl +hGf +hGf +hGf +hGf +hGf +gGl +ocl +hiS +aSc +xoy +mHE +fUV +fUV +fUV +mHE +hzW +aPZ +vMe +ngr +hzW +mHE +mHE +oNX +mHE +mHE +mHE +mHE +gpA +tmr +fur +jZr +tWO +vsd +icG +jdO +gpX +oaG +bZN +cTZ +wEw +nGi +niI +ufG +ftj +vCY +cfb +eSN +lck +lky +mVk +mVk +mVk +ueR +aky +aky +aky +tQk +aky +aky +hmV +vqa +vqa +vqa +vqa +vqa +vqa +sjA +sjA +kyD +swd +lzF +iWN +iWN +fnv +fnv +iWN +iWN +nIZ +nIZ +nIZ +iWN +wHI +qAu +tHY +wst +sBt +sBt +sBt +sBt +sBt +xJH +sBt +vLj +ryM +vLj +sBt +tch +dXH +aXB +nuU +lOf +lTE +wSf +aPt +mro +gpz +ral +sIN +eVk +mGy +wcJ +gpz +yer +sUL +aQp +oKi +hwi +kxR +hwi +fZI +fZI +fZI +fZI +fZI +sbZ +sbZ +sbZ +sbZ +sbZ +sbZ +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(139,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +pru +fZI +fZI +fZI +ois +gbF +cmo +jbA +gHM +aEQ +dcj +gHM +aHd +lfG +vXd +qQQ +qQQ +vXd +mXd +vXd +vXd +gHM +nOp +cLU +cLU +cLU +cLU +cLU +mLP +lWh +pLl +gkm +gkm +gkm +gkm +gkm +sak +tif +iLK +ike +oaq +wvo +qak +qEW +hGf +hGf +hGf +hGf +qlI +bJg +pHU +dVy +mrV +jCc +dVy +jsd +ykA +mHE +gsj +hDY +yad +fUV +aIS +ofT +kUO +geY +tHQ +mHE +tpc +hZO +cCE +aCP +qAB +nSS +mHE +wZQ +wZQ +wZQ +wZQ +pzN +cPA +jdO +mNS +pGi +bZN +fgJ +kvR +nGi +keZ +mSP +ftj +loE +gWj +eSN +mVk +gGO +mVk +kVb +gIS +gIS +aky +qcV +fYP +kAE +qtM +adw +hmV +hHn +jrw +afL +sCJ +ofN +jnW +lLV +lmi +jYj +vsk +nFR +sNz +sNz +sNz +sNz +sNz +pSa +rfv +bTx +rfv +vLD +wHI +qAu +tHY +vHY +ujw +nrT +nrT +nrT +xJH +nuU +sBt +sBt +fnE +sBt +sBt +tch +nfg +fSo +luR +jvV +cgU +akL +aPt +mro +gpz +rPQ +nRx +jny +tlR +jTQ +gpz +yer +sUL +wWM +bDD +kkO +kxR +ddv +egR +fZI +fZI +fZI +rjb +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(140,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +dcj +ifT +dcj +fBV +fPj +dcj +nwc +gHM +bUc +pyp +gHM +ddP +gHM +gHM +gHM +fBV +gHM +qmW +cLU +fRk +uxV +uYs +cLU +bIr +caW +lWh +fBz +etR +ewH +jYm +fBz +guH +koJ +iLK +ukv +sKo +ncn +aea +ncn +hco +vrJ +vrJ +oAv +whX +xny +iYx +udI +udI +cAL +dVy +lyz +gBM +mHE +gzI +mDj +sND +glD +mqN +mqN +wHi +qPh +uZe +pmr +alt +qPh +alt +laX +okJ +ugB +mHE +lGz +tFN +jne +wZQ +kMT +laD +lYH +gpX +pGi +bZN +cTZ +nGY +nGi +prV +ldL +ftj +eSN +aUO +tAt +gIS +gIS +eBe +yde +azk +azk +aky +rVF +euG +wUv +xnG +bLF +hmV +roO +sNu +lDc +lFy +ogZ +jnW +aPB +rtj +fsk +wkB +iJV +htV +htV +htV +htV +htV +jXA +jXA +sov +fsk +qXp +wHI +ybS +tHY +xJH +pfD +ugd +lIR +lIR +lIR +ugd +lIR +kWI +hOw +kWI +lIR +sQH +qPO +txl +pLX +sCF +sZd +bXY +xkY +mro +gpz +nRx +jgd +tmW +ass +pHT +gpz +yer +sUL +wQi +xdC +hwi +kxR +hwi +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(141,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +iqz +xJH +xJH +xJH +uZg +uZg +uZg +uZg +tbY +uZg +uZg +dcj +dcj +dcj +uZg +uZg +uZg +uZg +uZg +cLU +cLU +cLU +cLU +cLU +hWG +okt +chB +cLU +cLU +cLU +qlm +fBz +qGZ +nCt +vdS +fBz +iLK +iLK +iLK +tGg +gZf +tGg +fBz +rlG +fBz +fBz +fBz +ltC +jte +jte +lnJ +jte +jte +ygn +ugS +oNI +hbn +mHE +etr +mqi +goG +fUV +oKN +fAR +qVa +bmD +fqR +mHE +hwb +ofS +fuX +kUO +dVN +cim +mHE +oWP +evQ +hoH +dnu +ssB +nGQ +blB +mNS +aFV +bZN +hbv +esd +nGi +dyI +yag +ftj +mkM +wsl +tAt +gIS +aky +aky +aky +aky +vQe +fQf +lor +pOz +wIO +euG +kpP +hmV +knm +oQD +mRY +uFG +cJh +jnW +koK +jJF +fsk +fsk +aBG +fsk +fsk +qKN +qKN +kwo +iHf +fsk +pEc +sNz +yey +wHI +qAu +tHY +nuU +tch +sBt +sBt +sBt +sBt +xJH +owp +kZx +aop +kZx +kZx +xEd +vza +nrT +iUk +ycW +cgU +wSf +aPt +mro +gpz +jny +nRx +rPQ +fvc +wfs +gpz +lry +vLv +vLv +vLv +vLv +vLv +vLv +vLv +vLv +vLv +vLv +vLv +mAZ +mAZ +mAZ +vLv +vLv +vLv +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(142,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +xJH +xOu +lcD +xnC +xnC +xnC +gJW +cEh +fZI +fZI +xJH +gOy +uJO +gHt +mcE +nQK +vRw +jsH +usE +qeT +ktT +cLU +nJY +pQr +uCY +rZC +spR +mzV +vxj +ssh +dDf +chV +plQ +qHK +pVI +chV +nhb +ukA +nMV +fBz +iwe +ogh +ixJ +nsz +ojp +jte +sfS +mrV +hOE +jAj +mHE +mHE +tmI +mHE +mHE +mHE +mHE +haK +mHE +mHE +mHE +mHE +mHE +mHE +mYD +mHE +qYE +mHE +fht +gAH +lkJ +wZQ +lJa +kMu +blB +mBt +gpA +gpA +oMw +lbZ +pbw +keZ +eWJ +nfz +eTy +aTu +npf +hfr +aky +nqb +wPA +wtf +bZp +qBm +uoz +sJC +lUP +vms +aky +hmV +vqa +vqa +rgk +vqa +vqa +vqa +cVz +oRP +gnP +gnP +qcC +gnP +gnP +oRP +cVz +cVz +cVz +kyD +pEc +sNz +wHI +wHI +qAu +tHY +nuU +khh +sBt +gJP +odJ +sBt +xJH +cqE +xJH +pnL +xJH +sBt +sBt +sBt +sBt +iUk +nuU +dTf +wSf +aPt +wpe +gpz +gpz +gpz +gpz +gpz +gpz +gpz +nBu +bPS +puT +puT +ldC +kdO +sQQ +sQQ +raw +sQQ +qEo +nek +skL +neF +vCc +lbC +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(143,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +xJH +ggY +xJH +fZI +fZI +fZI +nrT +cEh +fZI +fZI +xJH +nrT +uJO +vuO +hbG +usM +xdR +ghM +ciT +ciT +jfR +rVN +lBj +mHx +mHx +mHx +cLP +juD +mYn +eWy +rZz +hZz +mgu +rSs +pUq +chV +kas +bvl +qNF +fBz +wJa +oNH +oUt +dWg +bSB +lnJ +ygn +fwA +rpO +lyz +dVy +bJg +nYU +irC +dVy +jEk +pUr +lZC +gKN +nQf +dVy +nBR +cEL +xUx +toB +tSU +vpn +pdU +hAL +vdy +lYy +wZQ +kzi +ord +eVV +ljZ +bOK +fyO +nsg +cMM +pep +nvp +jAZ +ftj +fsS +oQw +tAt +oUr +qJm +lIx +wjj +sXp +qBm +dcg +mYB +sSS +fQZ +kDN +aky +bHe +gSu +gSA +mUT +jtP +pnN +cgP +hAO +iAU +ygX +lbB +roM +lbB +tID +pnM +cmW +pwF +cVz +vkd +pEc +sNz +wHI +fZh +pqq +tHY +xJH +tyk +swy +jal +nfj +ehn +dVm +tES +xJH +aiP +dVD +xdG +pWL +egM +sBt +nog +nuU +pfq +wSf +vLv +fkL +qmT +xcP +isg +jXB +qeW +xcP +hZm +cnV +sQQ +sQQ +sQQ +sQQ +sQQ +sQQ +sQQ +sQQ +sQQ +sQQ +mAZ +vCc +vCc +vCc +lbC +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(144,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +xJH +xOu +xJH +fZI +fZI +fZI +tci +cEh +fZI +fZI +xJH +gOy +uJO +hYI +lYJ +drB +xdR +qxc +usE +jqG +mKX +cLU +jUg +wDi +rwX +sxI +dnD +dnD +ouK +ilY +tlT +chV +tMc +tax +aoI +chV +kas +qwc +ltK +fBz +mne +qzO +qzO +bxx +bzC +lnJ +xhw +xhw +rpJ +aKh +dVy +xXt +nYU +hQP +dVy +jRi +jRl +lZC +bma +afi +dVy +yif +ouH +ouH +wXw +iNf +cjx +pdU +wZQ +wZQ +vGe +wZQ +gpA +gpA +xKw +gpA +gpA +gpA +ftj +thB +ftj +ftj +ftj +ftj +iru +cRO +tAt +eye +aky +csR +jxu +wtf +jhN +psk +lWD +axk +bru +mCi +ldP +vUM +mvF +foY +uVh +rzg +dDD +uiv +ptu +iSr +hkt +rxy +xDq +wTh +nak +lbB +lbB +tID +oRP +kyD +pEc +oqe +wHI +pbt +qAu +liN +nuU +khh +sBt +bJT +jss +sBt +xJH +cqE +xJH +pnL +xJH +mui +cLk +bLI +swy +eGd +sBt +sBt +akL +vLv +fZH +lZe +mTU +cuE +vhR +uxW +wlM +sQQ +biL +sQQ +lmd +lmd +lmd +xgs +lmd +lmd +lmd +sQQ +qEo +nek +skL +npC +vCc +lbC +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(145,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +bsG +bsG +gfW +bsG +bsG +fZI +fZI +tci +eAw +eAw +eAw +eAw +eAw +cLU +cLU +cLU +cLU +cLU +jPr +xih +rRU +cLU +cLU +cLU +cwO +eKU +eKU +eKU +fBz +fBz +fBz +fBz +fBz +chV +pai +chV +fBz +vCl +yez +rbJ +fBz +jId +erj +cHP +bOO +aVm +kub +iGb +dVy +nSu +dXq +dVy +qlI +nUQ +rpO +dVy +pBD +hjv +hZq +lBq +kDW +dVy +qst +sxA +bym +lvb +szn +eQp +xDH +hZB +hZB +hZB +hZB +hZB +xFe +uly +quJ +hZB +kNq +eKp +cCY +vlW +tOE +tAE +kNq +hZB +gvR +eGI +kVb +aky +aky +aky +aky +jVR +tsB +tsB +xpv +jVR +aky +aky +fOp +pYr +cZV +pEN +cUX +pnN +lhN +wgo +oLj +jzh +vLF +xLB +tAX +aWM +kaN +wgo +nzc +gnP +kyD +pEc +sNz +wHI +vMj +qAu +liN +nuU +tch +sBt +sBt +sBt +sBt +xJH +fCh +aZA +nQt +dcu +qdO +pWL +qug +sBt +jvL +urM +dLw +wSf +oCM +gzG +hYS +onq +dbE +sQQ +dbE +onq +sQQ +biL +sQQ +lmd +vFr +sQQ +sQQ +eeE +vFr +lmd +sQQ +nmM +vLv +vLv +wQC +vLv +vLv +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(146,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +bsG +bsG +xOx +mQV +bsG +mef +nvJ +dCS +eAw +lMl +mIw +hWj +tKm +vyo +mxg +bnQ +eAw +cLU +fcM +gDi +deq +cLU +wrq +gzr +oqu +knV +eoX +eKU +sMb +fBz +jSV +jSV +hbD +cuh +rhp +oiU +fBz +ePN +nCO +joM +fBz +jte +wJl +jte +lnJ +jte +jte +bJg +mrV +hxZ +aKh +dVy +dVy +tdK +dVy +dVy +dVy +hxZ +dVy +xCZ +dVy +dVy +sLI +hZB +hZB +tnW +whW +xWt +mjy +cdM +uly +uly +uly +cdM +uly +uly +uoP +tRc +jPQ +jBI +weD +jBI +jBI +jBI +jPQ +pLY +pjJ +tAt +tIv +wlh +hvw +odz +smr +hhw +kpq +boG +gFK +xsu +suZ +xti +sut +lNl +tCC +usq +uuH +pnN +rcq +wgo +oLj +jUF +sxb +uHY +tAX +kaN +kaN +wgo +nzc +gnP +kyD +pEc +sNz +iYE +qAu +qAu +liN +nuU +khh +sBt +xBF +ekm +sBt +xJH +cqE +nuU +pnL +xJH +sBt +sBt +sBt +sBt +wYy +maA +iox +wSf +gkT +puX +lZe +sQQ +sQQ +sQQ +sQQ +sQQ +sQQ +biL +sQQ +lmd +nyl +xyi +epH +fLS +sQQ +lmd +sQQ +sQQ +sQQ +gkT +onq +gkT +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(147,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +bsG +jnf +mQV +bsG +mef +nvJ +dCS +eAw +tPV +tKm +tKm +tKm +cmI +pXM +oEU +eAw +cLU +cLU +cLU +cLU +cLU +gEp +jWU +voj +tim +tim +eKU +fRu +vJe +uVj +lmI +lmI +lmI +mHx +mHx +ojW +udR +utC +lfI +fBz +qjr +sCM +qlI +iRo +dVy +mVv +eUp +dVy +xkG +gBk +tJe +tJe +vaP +dVy +ojm +dVy +wrI +iwu +air +dVy +jcN +vpS +jDW +fLo +yhv +rPi +kLH +hMP +hAd +aeM +pdU +pdU +pgz +pdU +pdU +pdU +tAt +tAt +tAt +tAt +fcQ +tAt +tAt +tAt +tAt +oFB +tAt +hLA +ibK +xti +nFv +idV +ocS +bWe +ivU +ogq +dSI +eEF +xti +pnS +lNl +mcl +usq +uvM +xPl +iVl +wgo +afC +jUF +ejf +kQL +tAX +kaN +aWM +wgo +nzc +gnP +kyD +pEc +lzF +wHI +qAu +qAu +tHY +xJH +ssj +swy +psE +iBp +ehn +rFk +uRT +nuU +pnL +nuU +xJH +nuU +nuU +xJH +wYy +maA +sdV +uFl +jzt +sLj +cnV +biL +hJL +hjp +bNO +biL +biL +biL +sQQ +qhu +sQQ +sQQ +wpg +pET +vhR +hAJ +sQQ +sQQ +sQQ +kPx +onq +gkT +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(148,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +bsG +oek +bsG +bsG +fZI +fZI +tci +eAw +eAw +eAw +emt +ozu +kcM +ctJ +tum +pjl +otQ +caC +xJH +xJH +eKU +eBx +jTO +keD +sHg +ojn +eKU +fBz +fBz +qpU +sWd +wEJ +fPm +rSs +boS +fBz +fBz +fBz +fBz +fBz +gaz +xgN +hEu +hEu +nYQ +aBp +tVI +wUn +pqU +scJ +mvM +uyp +xgH +xnt +tVI +wUn +bvI +ayD +esA +dVy +olo +vpS +ygx +jNj +ikD +lqT +aCf +hMP +hAd +nYM +qIW +ooc +tqh +kqf +umm +lDB +wQt +xqh +xqh +fZJ +rTB +rTB +rOe +rTB +wYz +ePt +qdF +dlG +iXL +hvw +vED +dlo +xsq +vSn +bBn +wLn +pYc +byx +czQ +rXx +xOy +lPf +usq +eBf +pnN +xPn +qLC +vRk +fXc +qLC +qLC +enB +lms +pEo +wgo +nzc +oRP +kyD +pEc +sNz +wHI +qAu +qAu +liN +nuU +khh +sBt +eNx +uZR +sBt +xJH +cqE +nuU +pnL +xJH +sBt +sBt +sBt +sBt +wYy +mqy +nBm +gXC +gkT +lez +lZe +biL +sQQ +sQQ +sQQ +sQQ +sQQ +biL +sQQ +lmd +tKQ +oki +end +rgd +lUF +lmd +sQQ +sQQ +sQQ +gkT +cdu +gkT +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(149,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +xJH +xOu +xJH +fZI +fZI +fZI +nrT +vmy +nrT +caC +eZn +xas +sSP +sSI +sSP +tRe +eZn +caC +xOu +xOu +wbc +fVS +heP +evJ +jTj +jZN +eKU +sMb +fBz +nCJ +nCJ +qRV +biV +rSs +wjv +fBz +cpw +xkm +jXV +fBz +pxu +hEu +rES +hPR +dVy +hEu +erl +mrV +qWn +kHG +ocN +dVy +mrV +dVy +mrV +dVy +ifi +mYf +xYg +dVy +pdU +trG +pdU +pdU +pdU +pdU +pdU +pdU +hAd +nYM +qIW +ooc +hYX +nlI +hFC +pdU +akW +cmQ +cmQ +cmQ +cmQ +cmQ +dBr +cmQ +cmQ +uWl +tAt +jVo +uTJ +xti +txJ +sFt +wLn +qKF +mgp +veR +qEU +hXH +kgd +teT +dyJ +voV +lef +hHv +rqC +bSf +sBw +tvl +cVz +tgR +kCI +sQO +cVz +wze +jio +wze +cVz +aKz +wpY +iGH +wHI +apw +qAu +liN +nuU +tch +sBt +sBt +sBt +sBt +xJH +cqE +nuU +veC +cqd +xdG +tCY +oSz +sBt +jvL +sBt +sBt +ngB +vLv +qdC +lZe +biL +sQQ +sQQ +ovY +sQQ +sQQ +hYG +sQQ +lmd +vFr +sQQ +sQQ +sQQ +vFr +lmd +sQQ +sQQ +whj +tCe +vLv +vLv +gJW +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(150,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +xJH +xJH +xOu +xJH +xJH +fZI +fZI +fZI +fZI +gOy +caC +iRq +gRe +fgj +sSP +sSI +uOB +fdU +caC +xJH +xJH +eKU +vQl +bzk +uCB +tTy +xEA +eKU +fRu +vJe +uVj +lmI +lmI +dUF +mHx +mHx +pir +jxr +tNa +tSR +fBz +mrV +vGn +dVy +mrV +jBX +hEu +qlI +jBX +iEr +uhc +xhZ +adm +wfJ +jGU +jpr +dVy +wyA +wyA +aqk +dVy +qlI +tVI +tVI +tVI +dcL +tVI +tVI +pdU +hAd +nYM +qIW +vLe +eRE +qLy +yds +tlJ +pra +cmQ +wsf +vAT +tPm +kjF +fYo +mAf +cmQ +wnW +rTB +rTB +kHF +xti +uen +tOg +wLn +nZH +pvW +bXK +rhX +nxW +czQ +qvv +iYm +cbL +mTQ +mTQ +nup +iVN +sBw +tix +cVz +euy +dMa +ijC +seM +rWM +wxd +rWM +seM +oun +gRq +kAi +wHI +ptW +qAu +liN +nuU +khh +sBt +dtC +sGo +sBt +xJH +cqE +nuU +nrT +xJH +mui +nXN +xfT +swy +mMc +nuU +cgU +mdG +vLv +jWh +lZe +biL +sQQ +sQQ +sQQ +sQQ +sQQ +hYG +sQQ +lmd +lmd +lmd +lfK +lmd +lmd +lmd +sQQ +sQQ +sQQ +bWF +aBf +hOt +nrT +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(151,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +xJH +fZI +xOu +fZI +xJH +fZI +fZI +fZI +fZI +gOy +caC +yeN +sSI +dtJ +pMb +txW +sSI +sSP +qvK +bCQ +hYs +qvK +agO +kpo +qvK +wbc +hCX +eKU +fBz +fBz +jSV +jSV +hbD +eMK +qUg +qdm +fBz +joC +fbS +uwC +fBz +qgy +hEu +kqd +mrV +xne +iBZ +qfW +dVy +xZC +mgG +ctS +wdL +iCd +diA +wyg +sOy +lBq +jYW +tvb +hbZ +mrV +mrV +mPS +uyp +mrV +ugS +tVI +pdU +hAd +nWm +pdU +pdU +fxa +uud +uKt +pdU +pra +dBr +iON +fwI +vzx +nzp +lsO +wGZ +cmQ +ofM +rmI +lYe +sPe +xjF +kdg +qwW +bfR +bfR +bfR +bfR +ses +hId +xti +sEL +pnN +rqC +pnN +pnN +rqC +tgR +tgR +tgR +cVz +hXM +oML +jEs +seM +ews +rcr +ews +seM +aKz +wpY +iGH +wHI +cmy +cEv +tHY +xJH +fqD +swy +oDV +dCk +ehn +dyP +csV +aZA +aZA +dLt +qdO +tCY +vGy +sBt +jvL +nuU +cgU +aqf +vLv +cyC +veU +cnV +ygq +eof +wlM +sQQ +sQQ +hYG +sQQ +sQQ +des +sQQ +sQQ +sQQ +sQQ +sQQ +sQQ +sQQ +vWN +vLv +vAV +vLv +tci +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(152,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +xJH +fZI +xOu +fZI +xJH +fZI +fZI +eAw +num +eAw +eAw +kgI +gmi +ppj +upg +djy +pQZ +kkC +qvK +xLj +aSz +qvK +wDK +wDK +hZE +dwO +sUe +pRI +fLW +fLW +fLW +fLW +fLW +bxW +chV +vNi +fBz +cIP +cIP +cIP +fBz +fHz +uMJ +hEu +vGn +hEu +xgN +xEV +mrV +lBq +nSD +xhv +tCi +tgb +gjd +ctf +hdS +fRA +xPk +rDy +ivW +aaN +rSw +sSZ +jYW +jGU +mrV +pvk +oOr +dbC +dcY +vsN +pdU +pdU +pdU +pdU +pdU +uAs +cmQ +cvR +wGa +wAE +dbr +jdz +cmQ +cmQ +eFn +eFn +eFn +dSW +xti +xti +czQ +wlT +qIc +gxA +pnB +rSj +czQ +xti +aIY +mVS +ilS +mgM +aNt +bYj +mys +kAV +xXJ +seM +ctP +ofb +uef +fXO +oGO +oGO +lqN +seM +jlb +pEc +sNz +wHI +iDd +qAu +tHY +nuU +khh +sBt +bjM +dyA +sBt +xJH +nrT +xJH +nrT +xJH +sBt +sBt +sBt +sBt +wYy +xJH +xJH +nrT +vLv +vLv +vLv +cnV +sQQ +sQQ +sQQ +sQQ +vif +hnh +oDe +sQQ +fth +vwS +vwS +fth +sQQ +sQQ +sQQ +sQQ +vLv +vLv +vLv +vLv +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(153,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +xJH +xJH +xOu +xJH +xJH +fZI +fZI +qrf +vgn +gdD +jGT +omY +wpD +yeC +hgH +qSs +bHY +qZM +hUo +jEz +eCw +kkM +fzZ +qGh +aFR +pWt +dHq +rtH +hCF +sOD +upE +mVi +fLW +cdU +xAL +rFW +fBz +qHR +tVI +jqr +qtE +mlk +vnp +uRr +dVy +ykA +tVI +mxq +dVy +ssv +ssv +mrV +guu +eRd +oNt +qpP +gSU +fbG +qYg +apE +udH +hDT +rCi +lSU +hSi +hgl +dVy +suP +pdU +btP +cWP +sWA +sWA +nEk +rCv +dpO +sWA +fFl +cmQ +cmQ +cmQ +cmQ +cmQ +hpd +cmQ +tmY +iYD +hRq +eFn +gsY +oTl +sAs +ipg +oTl +rsR +rsR +rsR +psw +ipg +sAs +aIY +oTl +kPg +mgM +vhe +bYj +ame +tdb +hjn +kFd +fkI +rcg +oVX +hlC +mDn +deA +hyY +gLt +gxT +pEc +cwD +wHI +wTR +qAu +tHY +nuU +tch +sBt +sBt +sBt +sBt +xJH +nrT +xJH +nrT +nuU +gSg +jco +jco +jco +qVI +nuU +nuU +nuU +nuU +nuU +fth +fYp +euL +ecj +tHX +aSG +xcO +nZT +tQx +wAb +bmP +laI +aCo +vwS +sQQ +byz +eGO +vLv +vLv +fZI +fZI +xJH +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(154,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +xJH +xJH +xOu +xJH +xJH +fZI +fZI +eAw +num +eAw +eAw +xEM +iIy +ruF +jLG +aUg +rFN +ojS +hZE +aiu +tcf +cfv +ygo +rvW +ykH +pWt +oyy +rtH +hCF +wos +sCo +ybd +fLW +bQp +pSF +gSL +fBz +kXG +jPh +tVI +cLX +cLX +cLX +cLX +cLX +cLX +cLX +cLX +cLX +cLX +cLX +cLX +cLX +mrV +uWi +wXm +eyb +aaN +jYW +aHS +bJg +inn +xcI +pxi +xvh +xpx +wry +rGn +pdU +gEJ +nYM +vpS +vTA +hDA +adt +tzv +wOl +lRh +lYe +oEv +npQ +cuq +mgX +qsD +ibR +xeY +pGr +pGr +jNf +xtT +oTl +oTl +oTl +uVs +oTl +aSo +pkD +llc +oTl +dod +aIY +oTl +bLW +kPg +kPg +grb +sdi +sdi +tDm +seM +tPj +htc +nvt +sDt +fKL +phX +jqg +seM +lrj +pEc +sNz +wHI +wra +qAu +liN +liN +upT +jco +jco +jco +jco +jco +vOJ +jco +vOJ +jco +sNY +nuU +nuU +nuU +wst +nuU +nuU +nuU +nuU +nuU +fth +hGY +xPp +oYP +fey +fth +cWa +fth +jQq +fth +fth +slR +cIK +vwS +sQQ +vLv +vLv +vLv +fZI +fZI +sbZ +sbZ +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(155,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +xJH +fZI +xOu +fZI +xJH +fZI +fZI +fZI +gOy +caC +oyB +tva +jJm +ruF +aob +peT +pFh +lLr +uyP +kut +nWR +eNX +vfL +oSo +hZE +fqM +sIg +geu +fLW +sOD +upE +lwp +fLW +bxW +chV +vNi +fBz +jxo +jxo +jxo +cLX +rKX +rHQ +brO +cLX +ahT +dfr +brO +cLX +xtf +uZI +brO +cLX +dVy +dVy +mrV +mrV +wdx +twV +aHS +rtr +exv +exv +exv +rtr +pdU +pdU +pdU +pdU +nyj +dcY +hZB +bCg +pqP +gYo +iFU +sWA +wFl +xbu +aBF +eWl +eWl +eFn +tOi +oBw +qlt +erB +xdU +qnw +kxz +oTl +mXK +ipg +ipg +ipg +mhf +ipg +ipg +ipg +mXK +aIY +fAn +ilS +qpy +owq +ilS +gsx +iBc +orx +rWM +osS +osS +osS +rBX +hyY +lMH +hGt +seM +kyD +pEc +sNz +wHI +wHI +qAu +pUW +liN +liN +nuU +xJH +nuU +nuU +nuU +xJH +nuU +xJH +nuU +nuU +nuU +nuU +nuU +iOk +hMe +hMe +hMe +hMe +txl +haM +fRn +eLw +eLa +ezv +oGL +tIN +qiq +gWv +aZz +fth +yla +fth +fth +vLv +vLv +fZI +xJH +fZI +sbZ +sbZ +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(156,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +xJH +fZI +xOu +fZI +xJH +fZI +fZI +fZI +gOy +caC +pKc +jmN +aad +jDr +tKm +tKm +iwl +wQK +hZE +wME +qJF +obs +qrD +bjv +lCu +pWt +jUN +rtH +hCF +wos +sCo +kIH +lkS +icN +wjd +sYB +hmu +aYN +eEq +lWL +cLX +tXC +sSp +xLp +cLX +tXC +asF +xLp +cLX +tXC +bXA +xLp +cLX +tVI +tVI +tVI +dVy +bYK +dWN +sQX +exv +yiA +xNV +fMz +rtr +oAT +gfI +ekr +pdU +mFT +nYM +vpS +mKz +hWs +hDA +kNV +sWA +dyT +fZg +etc +mTp +dUA +eFn +iCf +azF +xQq +xQq +qsD +mPa +ccb +rNv +wWy +wWy +wWy +wWy +eJz +nCZ +nCZ +nCZ +nCZ +cUZ +rNv +nsv +htF +jDE +coP +fIG +fIG +ykd +rWM +osS +osS +osS +dSx +xZd +qxI +pvX +suc +kyD +pbn +mhl +wSO +wHI +qAu +qAu +qAu +liN +nuU +mQV +mQV +mQV +nuU +xJH +nuU +xJH +nuU +nuU +nuU +nuU +nuU +xJH +nuU +nuU +nuU +nuU +nrT +vwS +pqj +mJK +uxO +tBG +tJX +nGk +agE +nii +pDq +bUB +wyF +diI +aFn +fZI +fZI +fZI +xJH +xJH +sbZ +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(157,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +xJH +xJH +xOu +xJH +xJH +fZI +fZI +fZI +iDa +caC +fZT +wnF +xqy +hwT +xUM +tKm +nUH +jcg +hZE +bpN +fIr +pXe +pnj +iUM +xPu +pWt +jUN +rtH +hCF +lIC +jYJ +kIH +lkS +qgb +sof +gXf +hmu +aYN +qUa +nnC +cLX +gRa +lQH +gRa +cLX +cuV +lQH +cuV +cLX +fmu +lQH +fmu +cLX +cLX +hPR +tVI +dVy +gPP +pfY +baE +exv +inq +xNV +dek +rtr +dUW +uKG +mFT +kws +mFT +vtM +sWA +sWA +hlM +hDA +hwj +sWA +aAf +jUp +uUA +uMY +fAl +eWl +dIK +eFn +pMQ +eGW +nKK +eFn +rIC +oTl +mXK +ipg +ipg +ipg +sNw +ipg +ipg +ipg +mXK +gsY +oTl +jWJ +sdF +mgL +ktY +aOT +qLQ +mMw +xHN +jRG +qRN +jRG +xWn +dxQ +lhf +qDq +suc +kyD +pEc +sNz +gUA +wHI +iYE +wHI +vMj +tHY +nuU +nuU +nuU +xJH +nuU +xJH +xJH +xJH +nuU +nuU +nuU +nuU +nuU +xJH +xJH +xJH +xJH +xJH +nrT +vwS +oKJ +wZF +akk +eZI +wnP +ojg +uIk +hDq +pDq +fth +jQq +fth +fth +fZI +fZI +sbZ +sbZ +xJH +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(158,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +xJH +xOu +xJH +fZI +fZI +fZI +fZI +ksM +caC +ucK +wnF +wnF +wVn +hss +aef +nUH +jcg +hZE +luD +dmS +hZE +oUs +qjb +hZE +pWt +kUy +gkk +fLW +hCF +cwm +fLW +fLW +tcM +nVB +pWT +lSv +lSv +sqS +fsn +aor +vhc +eWi +vhc +hfm +vhc +eWi +vhc +vhc +vhc +eWi +pwW +blR +cLX +cLX +cLX +cLX +jGU +hEu +baE +wkE +yiA +iqA +jTd +rtr +dij +gbC +kcZ +pdU +hAd +wuM +mGW +onG +dYj +joF +hrO +sWA +xIy +jUp +nPo +rGs +lyW +xlq +nsi +eFn +xdU +xdU +fuQ +eFn +eFn +hpq +eEC +spS +spS +spS +cBh +wwD +wwD +wwD +wwD +fkA +asX +ilS +sdF +mgL +gXZ +auv +faG +vul +rWM +lnW +vEk +lnW +pjI +nvt +vXb +qVE +suc +kyD +pEc +sNz +mSE +wHI +qAu +wHI +wrr +tHY +liN +liN +liN +tHY +nuU +xJH +nuU +xJH +nuU +nuU +nuU +nuU +nuU +xJH +nrT +nrT +nrT +xJH +nuU +fth +vwS +oFH +vwS +fth +fth +sJU +fth +vBP +fth +fth +fZI +fZI +fZI +fZI +fZI +sbZ +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(159,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +tfU +tfU +luA +tfU +tfU +kAl +kAl +kAl +tfU +eAw +qbd +emF +saS +dJp +nPa +tKm +xvo +eir +eir +eir +eir +eir +eir +rcw +wsg +aqa +jUN +hdl +rmr +rmr +sYa +dBq +vBr +lXx +sUe +sst +grD +dBq +jbr +eid +nPi +jRc +ixe +lrG +jxo +oYT +uIu +cCd +jxo +qUF +ixe +qvR +rba +wru +eOY +rGF +cLX +amN +smo +aHS +rtr +kBw +xrW +kBw +rtr +rtr +rtr +pdU +pdU +mFT +bMc +sWA +wCL +okG +rAq +qut +sWA +vmB +jUp +vEx +apo +xga +cfS +ycA +eFn +sIq +gjC +xdU +aTo +eFn +fYL +oHu +udT +dRI +plW +jDh +jNc +dMx +hxW +fVT +oTl +uSr +kGC +sdF +mgL +ktY +ktY +ktY +iTs +seM +rWM +rWM +rWM +seM +uWd +seM +seM +seM +cOq +pEc +sNz +wHI +wHI +eCk +iKp +qAu +baQ +qAu +qAu +yjO +tHY +nuU +xJH +nuU +xJH +nuU +nuU +nuU +nuU +nuU +xJH +fgR +fIA +vJU +xJH +nuU +aCz +wGe +vOZ +ePc +tPK +xiF +bEM +pmG +xJH +nrT +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(160,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +tfU +tfU +sFU +rdi +lYI +tfU +ieT +mTO +bcd +buE +eAw +tKm +gle +tKm +tKm +tKm +tKm +rFh +mfN +eIU +eIU +eIU +eIU +vWk +iEp +pWk +klV +yiy +eKt +auR +eKt +vbd +jBC +auR +vbd +vbd +eKt +auR +jBC +rbq +wyz +nPi +vKl +bAO +bAO +rEj +bAO +bAO +bAO +rEj +bAO +bAO +pOK +trz +cLX +jxo +jxo +cLX +icX +wsK +oeI +rtr +tyb +jgV +rnY +jUt +wRG +lln +pdU +aJU +mFT +vpS +sWA +aHz +iLD +wfu +vFx +sWA +jUp +eWl +jSY +kSC +trl +sMx +sMX +eFn +weW +vaL +xdU +kMF +eFn +lov +pMw +bJC +bQX +qfc +qWS +uXP +eJa +axj +txz +oTl +tpI +kGC +sCu +lVQ +xaN +sHB +cve +ktY +ukT +bNR +iBc +mvD +tON +cNn +kxo +rdt +sZm +kyD +pEc +sNz +iYE +baQ +qAu +wHI +wHI +wHI +sfe +qtw +jjq +tHY +tHY +qet +qet +qet +tHY +tHY +liN +aCz +aCz +aCz +ubH +ubH +ubH +aCz +aCz +aCz +aCz +tRm +aCz +aCz +aCz +aCz +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(161,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +tfU +tfU +tfU +qsO +tfU +tfU +rKG +hcM +piQ +pWA +eAw +fhV +vKf +tKm +mJa +mJa +dda +fOj +kmG +kmG +qgZ +kmG +kmG +kmG +fdu +wdA +ymb +hYo +rFr +jcV +jcV +jcV +jJA +kVN +iQi +nQe +fdm +kVN +jJA +tHo +jZq +iYU +jRc +oAM +dbb +jxo +dtc +qFE +jUy +jxo +qyr +oAM +qvR +evB +jHd +rlA +imR +cLX +guu +baE +nuu +xrl +lNR +tfP +sBd +kYN +eGR +jbo +pdU +dLl +mFT +vpS +sWA +sWA +sWA +sWA +sWA +sWA +fAl +eFp +guo +mqR +txp +sMx +gpn +eFn +qIm +qyM +xdU +aTo +eFn +qvW +eym +kGC +gaG +aYi +kGC +aYi +bka +kGC +kGC +sej +kGC +ilS +ewv +lVQ +ktY +bDS +shS +ktY +djJ +djJ +ktY +wTQ +pXg +txY +dJV +oww +leG +kyD +pEc +twc +wHI +wHI +ufr +acx +oJr +acx +acx +orY +nqv +kwN +fBD +nqv +bcb +pbt +oxB +pHL +hhr +hBg +dyO +oux +wAS +wAS +wAS +hwU +xeq +kmK +ssz +hVp +qXZ +dgF +aCz +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(162,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +tfU +nIF +uwX +rdi +uvA +wlU +hcM +aOU +xfB +mYG +eAw +oAZ +siV +tKm +jfW +lWC +lWC +vYb +jaK +jGp +jGp +xBL +xBL +xBL +jGp +jGp +aZo +jGf +rtH +nes +nes +nes +vwF +vwF +xzF +pWV +eLK +lSv +lSv +noo +dyM +tex +ljX +shq +ljX +ljX +ljX +rHj +ljX +sKb +ljX +acS +hhE +snh +cLX +cLX +cLX +cLX +dVy +nCW +dVy +rtr +iTN +nli +sBd +kfl +iTN +sfw +pdU +ceG +mFT +vpS +dsK +jUp +jUp +jUp +jUp +mou +jUp +ctp +mPs +ocA +pbG +ejr +wsL +eql +iEu +iEu +iEu +eql +eFn +kGC +kGC +kGC +mAN +hvU +pWU +hvU +sEm +kGC +mpJ +qht +wWH +xAg +sCu +lVQ +ktY +ryA +jvp +ktY +ryA +jvp +ktY +ryA +mYd +txY +dJV +oww +bti +kyD +pEc +nAs +acx +oJr +fxV +bDA +bDA +bDA +bDA +bDA +juF +juF +juF +juF +gjl +nqv +cDM +tHY +tHY +aCz +cIm +ylh +ylh +ylh +ylh +ylh +ylh +qLp +lcB +hux +nuy +iZM +aCz +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(163,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +lkt +qXA +usU +mGL +wiT +hui +wMp +lDb +fOR +tfU +eAw +tKm +tKm +tKm +mJa +lWC +raG +nTK +aVv +jGp +ngQ +jdy +kGe +sVR +xfL +xBL +aZo +hYo +rtH +nes +qCL +oDC +afr +vwF +nes +oqT +nes +vwF +nPz +qHB +gRj +cLX +vqU +spb +vqU +cLX +aSm +spb +aSm +cLX +kpS +spb +kpS +cLX +cLX +qgy +hRu +dVy +xgN +baE +dzs +rtr +ddd +toR +fMp +tpx +tfe +rtr +rtr +jXN +dGZ +jXN +jXN +kyb +gPZ +ocA +ocA +ocA +nfn +nfn +nfn +ocA +usy +ncp +nfn +ocA +pxb +pxb +pxb +eql +hup +yfv +eeU +kGC +gaG +aYi +kGC +aYi +bka +kGC +jbh +jbh +aFx +eiY +sdF +lVQ +ktY +djJ +djJ +ktY +wRL +jRs +ktY +djJ +djJ +txY +dJV +oww +kgv +kyD +pEc +gAc +ipC +bDA +eZL +bDA +iTX +srq +dIq +bDA +peF +dHN +qOu +juF +juF +juF +mIg +aCz +rdq +pzk +ylh +lfM +lnM +nsN +lnM +oLq +ylh +qLp +ubH +vcA +nuy +mJQ +aCz +aCz +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(164,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +lkt +qDV +wtW +wgu +xBh +hui +fpm +aOU +hcM +tfU +jnr +mZZ +fnG +lWC +mJa +lWC +fKw +nOf +qMm +jGp +yiR +kOs +muY +pRs +bns +sUs +gWf +hYo +rtH +nes +arP +pda +nwN +nes +cMF +jcu +pwD +vYF +uie +rjn +neh +cLX +lVU +tQg +xLp +cLX +lVU +fjr +xLp +cLX +lVU +aPz +xLp +cLX +pUd +tVI +tVI +fAV +xvn +nhG +lEj +rtr +iqA +rzK +odI +xGF +apR +rtr +pHE +jXN +wmu +feX +qZJ +eIs +gPZ +pxb +pxb +pxb +pxb +pxb +pxb +tWP +pRf +ivr +nGv +eWl +pxb +pxb +pxb +cEW +lcm +dXR +dXR +dXR +dXR +eKd +dXR +dXR +dXR +dXR +dXR +dXR +tol +xAg +mUi +vIs +ktY +vHy +aqS +ktY +vHy +qFv +ktY +vHy +bvN +txY +dJV +oww +sZm +wYj +pEc +aUW +rSz +xwK +qka +hIv +eNG +pAO +cJc +xwK +mTi +fPx +veM +ybV +ryz +iBV +wbe +aCz +oTo +cIm +ylh +lnM +nCA +tjJ +wAh +lnM +ylh +qLp +eAs +fvp +nuy +nuy +xOE +ubH +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(165,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +lkt +hQL +dci +rdi +rJM +pZD +xYZ +hcM +nbp +tfU +jnr +vGh +knn +wZr +eXo +lWC +ffG +hVk +iDH +jGp +lkn +hiH +hiH +fbY +wUF +xBL +pWt +vCC +rtH +nes +xAb +bEU +bPk +vwF +nes +nSs +nes +vwF +vwF +kno +dMP +cLX +fpI +aYR +mUx +cLX +rUb +xsm +mUx +cLX +gsZ +mdl +mUx +cLX +xyf +tVI +dbQ +dVy +lar +dGh +xcE +rtr +xNV +oNC +tDU +hLx +jFs +ixp +ruK +qRf +jbj +tXo +pMh +sgZ +wTm +pxb +pxb +pxb +pxb +pxb +pxb +tWP +vMy +dyT +sGz +nfx +pxb +pxb +pxb +szb +vis +gfF +gfF +gfF +gfF +gfF +gfF +gfF +gfF +gfF +gfF +gfF +smi +xAg +eQc +jPu +mgL +mgL +mgL +mgL +bZm +ouO +ouO +ouO +bZm +txY +eBP +oww +sZm +kyD +pEc +aUW +rSz +xwK +cPf +mvR +dyF +tmD +dBM +xwK +vaK +iij +cWd +xKf +xKf +mHg +uFN +aCz +tJP +cIm +ylh +kEa +eZj +iqk +ePG +lnM +ylh +qLp +eAs +fvp +nuy +nuy +xOE +ubH +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(166,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +tfU +wzA +nen +wzm +iAl +pZD +lTn +clo +gXM +tfU +ftI +rfQ +fnG +lWC +nBh +lWC +ezQ +mfN +oav +jGp +aWj +qwx +hiH +pTR +rBW +jGp +vaE +oyy +aaR +vwF +aqd +hPZ +nEx +uVu +uxa +iUB +qpd +vaM +nes +yht +qBT +cLX +cLX +cLX +cLX +cLX +cLX +cLX +cLX +cLX +cLX +cLX +cLX +cLX +tnw +tnw +tnw +wPS +hrK +ldF +hrK +dTM +tfe +gdL +ePa +ivC +xNV +rtr +jvx +jXN +omU +hNC +yeF +pzU +wTm +pxb +pxb +pxb +pxb +pxb +pxb +eWl +eWl +dyT +eWl +eWl +pxb +pxb +pxb +szb +vis +gfF +gfF +gfF +gfF +gfF +gfF +gfF +gfF +gfF +gfF +gfF +smi +iBH +fIT +nvA +fcW +nvA +wjB +oyC +mMw +qQN +gyg +gvD +qFW +kOB +dJV +oww +bti +kyD +pEc +aUW +rSz +xwK +cPf +fkJ +fbV +xRH +pVL +bDA +mPQ +viX +fXr +iPX +xKf +nDV +wbe +aCz +bxi +cIm +ylh +lnM +wAh +bKs +nCA +lnM +ylh +qLp +eAs +fvp +nuy +nuy +xOE +ubH +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(167,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +tfU +tfU +iMF +poM +lWC +lWC +tfE +tfE +lWC +lSv +lSv +lWC +lWC +lWC +nBh +lWC +agZ +mfN +orl +jGp +gjv +jAq +bvy +fqn +atF +xBL +pWt +dHq +gXp +pWG +eyi +oSX +oSX +odL +vkg +uAI +anR +qTD +nes +yht +qBT +ehw +rFR +dlh +lJl +uaL +hYe +tnw +cCN +dIZ +orP +dKp +jAy +tnw +iAr +iAr +iAr +wPS +kTq +obf +xwA +hrK +hrK +hrK +hrK +dVy +dVy +dVy +wPg +jXN +nqC +cFN +wYO +pzU +wTm +pxb +pxb +pxb +pxb +pxb +pxb +pxb +eWl +mlB +eWl +pxb +pxb +pxb +pxb +szb +vis +gfF +gfF +gfF +gfF +gfF +gfF +gfF +gfF +gfF +gfF +gfF +mnZ +qaC +tpp +eUy +vet +sZm +lat +bFm +iKI +mtw +jVB +jVB +oKf +btO +wzI +bIa +kgv +kyD +pEc +sYh +wFW +bDA +feL +bDA +xwK +qQW +xwK +bDA +awV +uwd +awV +juF +jLb +juF +oBO +aCz +rdq +hhd +ylh +tIk +lnM +ecm +lnM +aya +ylh +qLp +ubH +aQq +nuy +yci +aCz +aCz +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(168,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +tfU +qXA +poM +dsi +gim +lWC +pXp +nTp +jtO +lSv +glJ +bkC +lWC +nBh +lWC +lWC +sCh +lWC +jGp +rBW +pTR +hiH +rOj +ihM +xBL +pWt +dHq +gkk +vwF +vwF +nes +nes +nes +vwF +vwF +nes +nes +vwF +nRc +yht +yht +rsO +kmj +cgQ +wIs +gDn +ePx +xaC +fcC +cnA +ujH +dJR +tnw +gqn +bhW +sDW +wPS +mEt +hEu +jQm +hrK +cVN +xDY +hrK +sYw +jrX +eVK +fqP +jXN +fyF +yha +mJv +pzU +wTm +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +oNh +pxb +pxb +pxb +pxb +pxb +szb +vis +gfF +gfF +gfF +gfF +gfF +gfF +gfF +gfF +gfF +gfF +gfF +smi +opv +ktY +ktY +ktY +ktY +wBX +vvh +gbS +gbS +vCV +gbS +gbS +wvZ +gEY +mMw +leG +kyD +pEc +gBv +djF +jXG +qGm +yfF +fZv +vVA +fZv +aUX +fZv +vVA +fZv +yfF +fZv +qEY +keS +aCz +aCz +aCz +cIm +ylh +ylh +ylh +ylh +ylh +ylh +qLp +sQr +hux +nuy +tEa +aCz +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(169,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +tfU +qXA +mJh +lcR +lcR +tXW +eFq +wsy +lRK +vIi +aoU +wuE +ucn +nBh +dzS +dzS +dzS +ggy +jGp +gjv +jAq +hiH +fyW +iwm +xBL +pWt +dHq +rtH +jaK +eoQ +eoQ +lXr +eoQ +eoQ +lSv +rtc +ehq +eXH +vTK +aoD +tlw +ixh +eAz +rsO +rsO +rsO +xHD +ruG +ibr +uNt +uNt +uNt +agB +bhW +wHu +pQQ +wPS +gxF +tVI +gxF +gLs +hES +vJR +bNW +jYW +nnG +tZU +qte +jJb +qeM +cDN +feX +sgZ +wTm +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +cmG +pxb +pxb +pxb +pxb +pxb +szb +vis +gfF +gfF +gfF +gfF +gfF +gfF +gfF +gfF +gfF +gfF +gfF +smi +wDf +mvD +sKB +ktY +lkw +eiW +oHP +fat +fat +fat +fat +fat +oPA +gEY +ica +sZm +vkd +mff +fsk +bSQ +tAj +eTS +tAj +gmZ +wEC +xtL +tAj +nSW +ckY +crK +tAj +ruq +tAj +qcs +efD +cuk +aCz +hhd +nGa +arA +nQo +arA +nGa +arA +vyq +aCz +ubH +ubH +ubH +aCz +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(170,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +rKP +sjE +tfE +raI +lWC +sAH +dtw +dBh +qoJ +lSv +aFg +nnc +lWC +rqq +dzS +lWC +dzS +vhs +jGp +mCG +uuD +wUP +sgi +sgi +jGp +pWt +ita +qCI +gzE +fYU +fYU +fYU +qkw +xxz +lSv +ajA +mNQ +fhf +cxL +phY +qgE +vLX +gaP +sZI +cbJ +ohT +ePx +vlA +sqa +oou +ujH +fcC +tnw +gqn +bhW +sDW +wPS +cIg +iss +gxF +hrK +ydt +gxF +bNW +qte +vii +mZc +qte +jXN +feX +qZJ +qZJ +dFp +gPZ +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +cmG +pxb +pxb +pxb +pxb +pxb +kBG +uhS +mmD +mmD +mmD +mmD +mmD +mmD +mmD +mmD +mmD +mmD +mmD +hPl +opv +ryA +jvp +ktY +hXD +oQO +oHP +fat +fat +fat +fat +fat +oPA +gEY +ktY +cwC +kyD +voB +ioy +iHw +cyW +hMx +elW +wxg +wxg +wxg +rwt +fLc +fLc +fLc +dZR +xNa +tAj +niJ +tAj +tAj +aCz +aCz +aCz +aCz +aCz +aCz +aCz +vkO +aCz +aCz +soz +soz +soz +nvJ +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(171,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +pDW +rAQ +ubj +lGf +hyU +bGT +tWh +jNq +jZy +lSv +lSv +lSv +lSv +qPi +qPi +lSv +gBc +xrF +mln +mln +mln +mln +mln +mln +mln +tgc +afI +vAO +jaK +lNb +rVz +xtG +rVz +rVz +lSv +dOm +eLD +lWF +lTb +xXw +nLu +szI +hWN +gqW +sDp +xrO +tnw +gmN +wlK +cnA +jPt +led +tnw +lTe +lTe +lTe +wPS +bgX +oGe +mYc +aXG +fOI +wmH +ldF +aVy +hrK +uFA +dVy +jXN +phz +tbl +uHb +uHb +dJW +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +cmG +pxb +pxb +pxb +pxb +pxb +hup +hup +pFD +tjN +tjN +tjN +tjN +tjN +tjN +tjN +tjN +tjN +tjN +xgx +eKn +vHy +bvN +ktY +spX +jjb +oHP +fat +fat +fat +fat +fat +oPA +rIh +dNg +kDv +xBd +xCo +qKN +sgp +ygI +xHy +aqq +rJo +mdA +hcw +tHG +fkv +uIj +mPo +aqq +fXN +hEC +huz +iIL +pWo +hXL +jfg +bzG +nux +aqq +qQh +bvA +ivx +tbz +gLc +soz +soz +soz +nvJ +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(172,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +hJJ +vZt +xIb +ooh +uur +kxy +hmu +hmu +hmu +lSv +fZI +fZI +fZI +fZI +fZI +lSv +qPi +qPi +mln +soz +soz +soz +soz +soz +mln +qPi +qPi +qPi +lSv +lSv +qPi +qPi +qPi +lSv +lSv +wLC +wLC +wLC +oWa +wLC +wLC +wLC +oWa +wLC +wLC +wLC +wPS +wPS +wPS +wPS +wPS +wPS +wPS +wPS +wPS +wPS +wPS +hrK +ivc +prk +xxO +pLU +nZC +oiE +kgl +gVU +qte +qte +lNh +jZl +esx +lQN +esx +dJW +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +yhW +pxb +pxb +pxb +pxb +pxb +hfg +hfg +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +eKn +ktY +ktY +ktY +ktY +oST +vkS +qlH +qlH +qlH +qlH +qlH +fkX +eKn +eKn +eKn +iwN +mpD +tAy +iwN +klO +ilJ +aqq +olO +llO +dWe +yiT +pAo +iFa +xNM +aqq +vVy +jmD +lCF +nFK +dNd +dNd +sgD +tsR +nOv +hkB +qZh +ahn +fqw +ahn +gLc +soz +soz +nvJ +nvJ +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(173,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +pDW +iQv +tdH +aCD +gKf +hEX +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +soz +jxT +soz +soz +jxT +soz +soz +jxT +soz +soz +wyJ +soz +soz +jxT +soz +soz +jxT +soz +soz +jxT +soz +soz +jxT +soz +soz +jxT +soz +soz +jxT +soz +soz +jxT +soz +soz +jxT +soz +soz +jxT +soz +hrK +aVy +aVy +hrK +aVy +aVy +hrK +cyg +hrK +hrK +hrK +gPZ +gPZ +gPZ +dJW +dJW +dJW +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +cmG +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +eKn +eKn +gce +gce +eKn +eKn +ezw +ezw +ezw +ezw +ezw +ezw +ezw +eKn +jPb +soz +qsY +oQT +kfi +hCB +uSK +ilJ +aqq +rGa +kRF +xqK +bgw +wNF +kRF +fvZ +aqq +vhK +cyU +vFb +ahn +qzQ +mBT +rMe +fko +rMe +rMe +rMe +ahn +rMe +ahn +gLc +soz +soz +nvJ +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(174,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +lSv +sZT +gcP +aCD +lFY +wxH +iqz +wQY +qLU +qLU +iqz +qLU +qLU +qLU +efE +xJH +xJH +xJH +soz +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +oNh +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +cmG +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +iwN +iwN +iwN +iwN +rfm +mWW +hCB +eId +vqT +kXP +kXP +uFh +aqq +fJW +aqq +svZ +jec +jec +jqJ +ahn +ahn +ahn +cXo +cXo +rMe +ivx +rMe +gLc +gLc +gLc +gLc +gLc +gLc +soz +soz +nvJ +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(175,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +lSv +sNl +tai +qKH +kpg +uEP +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +xJH +fZI +fZI +fZI +soz +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +cmG +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +cmG +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +soz +qsY +fHD +qsY +ifS +aAb +iwN +ahn +ahn +adv +dFQ +ixC +kXP +xSK +jec +jNK +uAS +adv +ahn +ahn +gLc +gLc +gLc +gLc +rMe +taF +rMe +gLc +gLc +gLc +gLc +gLc +soz +soz +nvJ +nvJ +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(176,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +lSv +lSv +nkn +nkn +lSv +lSv +fZI +fZI +fZI +fZI +bfP +tPk +iqz +wQY +efE +xJH +xJH +xJH +soz +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +nBd +cmG +nBd +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +cmG +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +gbj +pxb +pxb +pxb +cMb +xkb +qII +vUW +aCt +iEB +iwN +soz +rMe +kMr +adv +rMe +sly +iTW +sKD +rMe +adv +kMr +rMe +gLc +gLc +gLc +gLc +gLc +gLc +lpk +gLc +gLc +gLc +gLc +gLc +soz +soz +nvJ +nvJ +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(177,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +soz +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +cmG +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +cmG +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +soz +qsY +moZ +qsY +ifS +mWW +qsY +soz +rMe +kMr +kMr +rMe +rMe +rMe +rMe +rMe +kMr +kMr +rMe +gLc +gLc +gLc +gLc +gLc +gLc +gLc +gLc +gLc +gLc +soz +soz +soz +soz +nvJ +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(178,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +soz +soz +plJ +plJ +pxb +plJ +plJ +pxb +plJ +plJ +pxb +plJ +plJ +pxb +plJ +plJ +pxb +plJ +plJ +pxb +plJ +plJ +pxb +plJ +plJ +pxb +plJ +plJ +pxb +plJ +plJ +pxb +plJ +plJ +pxb +plJ +plJ +pxb +plJ +plJ +pxb +plJ +plJ +pxb +plJ +plJ +yhW +plJ +plJ +pxb +plJ +plJ +pxb +plJ +plJ +pxb +plJ +plJ +pxb +plJ +plJ +pxb +plJ +plJ +yhW +plJ +plJ +pxb +plJ +plJ +pxb +plJ +plJ +pxb +plJ +plJ +pxb +plJ +plJ +pxb +plJ +plJ +pxb +plJ +plJ +pxb +plJ +plJ +pxb +plJ +plJ +pxb +plJ +plJ +pxb +plJ +plJ +iwN +iwN +iwN +iwN +wgN +bXL +qsY +soz +rMe +kMr +rMe +rMe +soz +soz +soz +rMe +rMe +kMr +rMe +soz +soz +soz +soz +soz +soz +soz +soz +soz +soz +soz +soz +soz +nvJ +nvJ +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(179,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +soz +soz +soz +soz +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +cmG +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +cmG +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +soz +qsY +fHD +qsY +ifS +kfi +qsY +soz +rMe +fbk +rMe +soz +soz +soz +soz +soz +rMe +fbk +rMe +soz +soz +soz +soz +soz +soz +soz +soz +soz +soz +soz +nvJ +nvJ +nvJ +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(180,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +pMk +bco +iqz +wQY +qLU +qLU +efE +efE +soz +soz +soz +soz +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +nBd +cmG +nBd +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +cmG +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +mmc +pxb +pxb +pxb +cMb +vym +qEn +iIv +aCt +bKM +iwN +nvJ +rMe +bLm +rMe +nvJ +nvJ +nvJ +nvJ +nvJ +rMe +bLm +rMe +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(181,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +xJH +fZI +fZI +fZI +fZI +soz +soz +soz +soz +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +cmG +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +cmG +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +soz +qsY +moZ +qsY +ifS +qsY +qsY +fZI +rMe +kKm +rMe +fZI +fZI +fZI +fZI +fZI +rMe +kKm +rMe +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(182,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +bfP +tPk +iqz +wQY +qLU +qLU +qLU +qLU +efE +xJH +xJH +xJH +xJH +xJH +fZI +fZI +soz +soz +soz +soz +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +oNh +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +oNh +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +iwN +iwN +iwN +iwN +qsY +qsY +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(183,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +iqz +xJH +xJH +iqz +xJH +xJH +jxT +soz +soz +jxT +soz +soz +jxT +soz +soz +jxT +soz +soz +jxT +soz +soz +jxT +soz +soz +jxT +soz +soz +jxT +soz +soz +jxT +hfg +soz +soz +soz +hfg +ano +ano +soz +hfg +soz +ano +ano +hfg +soz +soz +soz +hfg +soz +soz +soz +hfg +soz +soz +soz +soz +soz +soz +soz +soz +soz +soz +soz +hfg +soz +soz +soz +soz +soz +soz +soz +soz +soz +soz +soz +soz +soz +soz +hfg +soz +soz +soz +hfg +soz +soz +soz +hfg +soz +soz +soz +hfg +soz +soz +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +sXK +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(184,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +hfg +fZI +fZI +fZI +hfg +xJH +xJH +gOy +hfg +tci +xJH +xJH +hfg +fZI +fZI +fZI +hfg +fZI +fZI +fZI +hfg +nrT +nrT +nrT +nrT +nrT +nrT +nrT +nrT +nrT +nrT +nrT +hfg +hfg +xJH +xJH +xJH +nrT +nrT +nrT +nrT +nrT +nrT +xJH +xJH +xJH +hfg +hfg +fZI +fZI +fZI +hfg +fZI +fZI +fZI +hfg +fZI +fZI +fZI +hfg +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(185,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +xJH +fZI +fZI +gOy +nrT +kTj +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +nGZ +tLN +nrT +nrT +nrT +nrT +nrT +nrT +nrT +nrT +nrT +nrT +xJH +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(186,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +xJH +fZI +fZI +fzq +xYK +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(187,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +pMk +bco +iqz +wQY +qLU +efE +xJH +xJH +xJH +xJH +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(188,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fzq +xYK +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(189,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +vof +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(190,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(191,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(192,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(193,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(194,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(195,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(196,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(197,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(198,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(199,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(200,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(201,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(202,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(203,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(204,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(205,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(206,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(207,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(208,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(209,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(210,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(211,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(212,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(213,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(214,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(215,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(216,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(217,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(218,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(219,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(220,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(221,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(222,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(223,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(224,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(225,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(226,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(227,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(228,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(229,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(230,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(231,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(232,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(233,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(234,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(235,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(236,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(237,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(238,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(239,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(240,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(241,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(242,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(243,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(244,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(245,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(246,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(247,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(248,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(249,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(250,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(251,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(252,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(253,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(254,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} +(255,1,1) = {" +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +"} + +(1,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(2,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(3,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(4,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(5,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(6,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(7,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(8,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(9,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(10,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(11,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(12,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(13,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(14,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(15,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(16,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(17,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(18,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(19,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(20,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(21,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(22,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(23,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(24,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(25,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(26,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(27,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(28,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(29,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(30,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(31,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(32,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(33,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(34,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(35,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(36,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(37,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(38,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(39,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(40,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(41,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(42,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(43,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(44,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(45,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(46,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(47,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(48,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(49,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(50,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(51,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(52,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(53,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(54,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(55,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(56,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(57,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(58,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(59,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +gcg +gcg +gcg +gcg +gcg +gcg +gcg +gcg +gcg +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(60,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +gcg +kbo +kbo +kbo +kbo +kbo +kbo +kbo +gcg +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(61,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +gcg +kbo +kbo +kbo +kbo +kbo +kbo +kbo +gcg +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(62,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +gcg +kbo +kbo +kbo +kbo +kbo +kbo +kbo +gcg +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(63,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +gcg +kbo +kbo +kbo +kbo +kbo +kbo +kbo +gcg +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(64,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +gcg +kbo +kbo +kbo +kbo +kbo +kbo +kbo +gcg +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(65,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +gcg +kbo +kbo +kbo +kbo +kbo +kbo +kbo +gcg +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +cGY +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(66,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +gcg +kbo +kbo +kbo +kbo +kbo +kbo +kbo +pRh +krj +nvJ +krj +pRh +ulx +ulx +ulx +pRh +krj +pFg +sHQ +pFg +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(67,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +raz +raz +raz +iMc +raz +raz +iMc +raz +raz +raz +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +nwt +xbi +xbi +xbi +nwt +gcg +gcg +gcg +gcg +gcg +gcg +gcg +nvJ +wgK +nvJ +wgK +nvJ +ulx +ulx +ulx +nvJ +wgK +ott +gqr +ott +ulx +ulx +ulx +ulx +ulx +ulx +ulx +dMs +uAj +uAj +uAj +dMs +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(68,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +raz +noc +ney +ckt +ney +ney +bEb +ney +gLo +raz +ulx +ulx +ulx +ulx +ulx +ulx +ulx +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +xbi +msc +mEz +pAS +nwt +nwt +lnQ +ksm +aGI +aGI +aGI +ksm +nvJ +wgK +nvJ +wgK +nvJ +wgK +wgK +wgK +nvJ +wgK +ott +gqr +ott +ulx +ulx +ulx +ulx +ulx +ulx +dMs +dMs +myM +uyl +iJK +dMs +dMs +iVF +iVF +iVF +iVF +iVF +iVF +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(69,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +nvJ +nvJ +nvJ +nvJ +jPU +nvJ +nvJ +nvJ +ulx +ulx +ulx +ulx +nvJ +nvJ +nvJ +nvJ +xQw +dWt +xQw +xQw +xQw +xQw +xQw +iMc +rzE +pQA +pQA +pQA +pQA +pQA +pQA +agI +iMc +uCa +uCa +uCa +uCa +uCa +uCa +jPU +nvJ +soz +soz +soz +soz +soz +soz +soz +xbi +vLZ +gwS +oHt +oOY +xbi +fUC +aGI +pdt +btM +mfi +ksm +nvJ +wgK +nvJ +wgK +nvJ +wgK +wgK +wgK +nvJ +wgK +ott +gqr +ott +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +dMs +eWU +ium +uMO +rPX +lNw +wpF +wWi +spk +spk +hFB +mQV +mQV +eMh +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(70,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +nvJ +soz +soz +soz +soz +soz +soz +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +xQw +xQw +xQw +xQw +wtP +xQw +gAF +bFH +sZS +xfb +lvA +rzE +pQA +pQA +pQA +pQA +pQA +pQA +xkZ +lvA +grQ +qgf +ber +wjY +bTs +uCa +krj +soz +soz +gLc +gLc +gLc +gLc +xbi +xbi +nKd +cov +cov +wDY +lJw +xbi +whl +ksm +bFQ +oYL +clS +ksm +ksm +soz +soz +soz +soz +soz +soz +soz +soz +soz +pFg +jLT +pFg +soz +soz +soz +soz +soz +soz +uAj +dzW +akU +uMO +jvz +mzF +qyy +tcq +tcq +tcq +tcq +mQV +mQV +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(71,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +nvJ +soz +hcy +hcy +hcy +gLc +soz +soz +soz +soz +soz +soz +sln +exN +exN +vJz +uiA +bZe +xQw +gKy +hYZ +hYZ +hYZ +hYZ +rzE +pQA +pQA +pQA +iaE +iaE +xkZ +tTg +tTg +tTg +tTg +tTg +sQu +guC +uCa +gLc +gLc +gLc +gLc +oNc +gLc +xbi +xbi +rQv +cov +smX +eUL +cov +mqa +xbi +whY +qQe +fim +pJc +rwP +sSi +ksm +soz +soz +soz +soz +soz +soz +soz +soz +soz +ott +pFI +ott +soz +soz +soz +iZT +soz +soz +uAj +mAK +ibw +uXl +mtu +iCe +wpF +qkx +mkZ +mkZ +rkF +mQV +mQV +fZI +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(72,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +nvJ +nvJ +nvJ +nvJ +soz +qsv +kRw +hRi +gLc +gLc +gLc +gLc +avR +gLc +soz +sln +exN +exN +exN +uiA +tqc +xQw +bZe +hYZ +aMM +vrY +hYZ +oZH +iaE +iaE +xkZ +uNl +xMj +nhk +tTg +kcR +qmr +tbH +tTg +luX +ozE +uCa +gLc +gLc +gLc +gLc +gLc +gLc +xbi +lED +unT +gJf +jiV +dNK +cov +kED +nwt +nwt +nwt +lgq +qza +yfi +foi +ksm +gLc +gLc +gLc +gLc +gLc +soz +gLc +gLc +gLc +ott +oRT +ott +gLc +gLc +gLc +gLc +gLc +gLc +uAj +lfw +vsm +uMO +rbn +nGh +wpF +gVQ +gVQ +gVQ +iVF +iVF +iVF +iVF +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(73,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +nvJ +nvJ +nvJ +nvJ +soz +soz +soz +iZT +hcy +hcy +hcy +gLc +gLc +gLc +gLc +gLc +gLc +soz +sln +exN +exN +exN +uiA +ulI +xQw +iqT +hYZ +hZg +cwK +brn +aIe +aIe +aIe +uEh +uEh +cop +vlO +xkf +bvL +hbu +sMw +tTg +ovD +xBJ +uCa +uCa +uCa +nwt +tJM +tJM +tJM +nwt +emD +xjV +cov +fHX +wBI +cov +hik +oZD +kNy +nwt +aGI +aGI +uYM +ksm +iVF +iVF +iVF +oNc +gLc +gLc +iZT +gLc +gLc +oNc +ott +oRT +ott +gLc +gLc +gLc +oNc +gLc +iVF +dMs +eWU +sJe +dUP +kBM +eWU +wpF +byw +wWi +spk +spk +hFB +mQV +mQV +eMh +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(74,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +oCx +oCx +oCx +oCx +oCx +oCx +oCx +xQw +wtP +xQw +ulx +ulx +ulx +ulx +ulx +xQw +xQw +xQw +xQw +xQw +ulx +ulx +ulx +ulx +ulx +xQw +xQw +xQw +xQw +xQw +xQw +xQw +xQw +nGu +nGu +nGu +nGu +xQw +xQw +xQw +xQw +xQw +xQw +xQw +nvJ +nvJ +nvJ +nvJ +nvJ +wtk +soz +soz +soz +gLc +gLc +gLc +gLc +gLc +gLc +gLc +xQw +xQw +xQw +xsa +xsa +xsa +xQw +xQw +xQw +xQw +xQw +fhE +xQw +qVY +hYZ +uri +rPm +hYZ +jLu +tbo +tFQ +cHL +tDy +hvG +awK +tTg +npD +erU +lbz +tTg +qkR +pWl +kjk +xBJ +pWl +wpT +sVJ +sVJ +sVJ +tIh +qzn +rjj +cov +cov +cov +cov +gPF +oHD +qzn +vuz +nFo +yir +rBF +nFo +tfR +kqc +iVF +iVF +iVF +iVF +mYo +iVF +gLc +gLc +ott +oRT +ott +ott +pFg +gLc +gLc +gLc +iVF +qyy +wpF +kJX +swG +gdJ +qyy +wpF +tpk +tcq +tcq +tcq +tcq +mQV +mQV +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(75,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +oCx +feB +iVj +iVj +iVj +aJW +oCx +doP +ybT +xQw +xQw +xQw +xQw +xQw +xQw +xQw +tiE +sha +cmY +xQw +xQw +xsa +xsa +xsa +xQw +xQw +sZS +ybT +gAF +aNm +cmY +mGw +ybT +upO +xBZ +nnJ +upO +emd +ukM +tQV +tQV +mKU +exN +exN +aNS +xqS +soz +iZT +soz +soz +gLc +avR +gLc +gLc +gLc +gLc +gLc +xQw +xsa +xsa +xQw +kzh +bmA +mlq +mlq +mlq +noi +ulI +npP +rDL +aSk +sNR +oxF +ulI +hYZ +hYZ +hYZ +hYZ +cCT +uoS +cCT +hYZ +xtM +pCv +xtM +tTg +tTg +tTg +tTg +tTg +bie +aYY +aYY +vqt +xBJ +upX +ejX +xla +wTS +oRn +ilW +asH +kOo +bVN +jGA +mkc +djU +fjQ +fjQ +nwt +ksm +ksm +uYM +ksm +drF +uHO +rfn +pkh +iVF +tqL +sXD +iVF +iVF +gLc +ott +oRT +ghD +oRT +ott +gLc +gLc +gLc +iVF +keY +wpF +uAj +hZo +uAj +qyy +xIa +wnO +qkx +mkZ +mkZ +rkF +mQV +mQV +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(76,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +oCx +oCx +feB +bKW +rbc +oup +fXC +oCx +xQw +oGH +xQw +fEO +bDm +hmY +aNm +qKP +ybT +fEr +oCa +oIL +cjG +fEG +ybT +ulI +toq +bZe +ulI +oIL +ulI +wMx +wMx +ybT +oLI +xZB +upO +vIe +dvj +nfS +gDW +aNm +aNm +aNm +aNm +exN +exN +exN +xqS +soz +gLc +gLc +gLc +gLc +gLc +gLc +gLc +xQw +xsa +xsa +xQw +sZS +ulI +ulI +ulI +oGm +tkM +lEO +lEO +rcX +ipR +hMI +jKa +nFk +jKa +tAr +jKa +piD +wIe +aJN +rpP +dfV +gHW +hGx +fQd +vNh +lJs +rSZ +ndC +guC +wbY +aNI +xBJ +xBJ +xBJ +xBJ +xBJ +faq +upX +lNq +udK +vJY +cOS +bUe +qPT +fqh +gFb +stV +glK +lbm +lbm +lbm +nwt +tBJ +dSL +tLI +ksm +goT +lbA +lbA +mLS +iVF +iVF +vsc +iVF +iVF +gLc +pFg +ott +ott +oRT +ott +gLc +gLc +gLc +iVF +keY +keY +txy +kfB +oUj +keY +keY +tcq +gVQ +gVQ +gVQ +iVF +iVF +iVF +iVF +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(77,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +oCx +aLa +feB +lVn +fMV +wal +bAQ +lkq +wkc +nFk +ioc +nFk +nFk +nFk +aNm +eYE +rOH +oIL +oIL +esE +cjG +dQc +ulI +hrJ +jhw +eqw +tCt +tCt +jhw +aNm +npP +jdJ +tqF +ybT +wFb +upO +upO +upO +hSA +suV +qfJ +qfJ +sSt +exN +exN +exN +xqS +soz +gLc +gLc +gLc +gLc +gLc +gLc +gLc +xQw +tzH +mlq +aom +ulI +jdJ +joa +mPz +egE +hZy +hZy +hZy +hZy +hZy +uMs +hZy +aNm +aNm +aNm +aNm +aNm +wxY +fhc +iHI +iHI +iHI +slU +fQk +jgv +dZo +gBj +tFl +tFl +tFl +tFl +tFl +tFl +tFl +tFl +tFl +tFl +xPd +xPd +fHi +fHi +fHi +fHi +eVg +vmr +acy +acy +acy +acy +acy +acy +ksm +qqK +dSL +tLI +ksm +goT +sQI +tcq +sXD +iVF +kql +sXD +pFZ +iVF +soz +soz +soz +ott +oRT +ott +soz +soz +soz +iVF +keY +keY +txy +kfB +oUj +keY +keY +iPV +cym +wWi +spk +spk +hFB +mQV +mQV +eMh +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(78,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +oCx +cCx +feB +lKS +bKW +mTN +fXC +jui +gDW +nFk +wMx +qZb +aNm +nFk +aNm +aNm +aNm +xrz +aNm +aNm +aNm +aNm +aNm +nFg +aNm +aNm +aNm +gKy +hrJ +fGA +jhw +hrJ +aNm +wMx +ulI +icr +ybT +wMx +soS +rmC +rmC +rmC +xQw +xQw +xQw +xQw +xQw +lcA +lcA +xQw +lcA +lcA +xQw +lcA +lcA +xQw +bDE +ulI +ulI +oXh +wMx +wMx +icr +egE +hZy +nzd +adF +vZR +nai +nbJ +ddk +jLC +xnw +hOn +sSX +jLC +cnZ +qhW +cXy +dAB +aSf +aSf +bOY +vNd +khN +dSh +qXs +tpT +eqg +uYT +iuJ +utr +yfy +uCD +xPd +oHq +pcM +ehY +fHi +pQV +iVo +gzl +eVg +hnW +acy +tJq +euK +mIQ +tJq +tJq +ksm +otd +dSL +tLI +ksm +tfR +goT +goT +goT +rTx +eQf +goT +tfR +iVF +iVF +ekt +ott +ott +oiD +ott +ott +ekt +iVF +iVF +keY +keY +txy +jqC +oUj +keY +keY +did +tJJ +tcq +tcq +tcq +tcq +mQV +mQV +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(79,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +oCx +oCx +lbR +feB +iRe +iRe +iRe +feB +lkq +eyd +iqT +aNm +ybT +aNm +jKa +nFk +tAr +ulI +ulI +ulI +oIL +bVe +fuj +bVe +jhw +pjL +bub +nsI +mPz +ulI +aNm +ybT +kxH +aNm +cmY +nFk +jKa +nFk +lrl +nFk +ulI +ulI +ulI +ulI +jdJ +ybT +xZB +xQw +exN +bjO +xQw +exN +bjO +xQw +exN +bjO +xQw +hbV +sYN +lEO +lEO +rcX +lEO +lEO +lxt +hZy +oIe +nMo +gyh +jyY +mqj +ddk +jLC +jLC +kkv +jLC +jLC +iOX +exq +nzv +nzv +hBM +oQZ +fQk +wmR +sWE +gEI +qXs +qXs +cuT +qXs +iuJ +iuJ +lTZ +iuJ +xPd +xPd +drQ +xPd +fHi +reO +gmv +soC +eVg +hnW +acy +rRT +lQb +euK +pSk +euK +ksm +fhh +nZF +tLI +ksm +ifb +ifb +eLU +eLU +eLU +eLU +eLU +goT +tRI +iVF +gLc +ott +ndp +xzz +aCi +ott +gLc +iVF +vka +keY +tcq +vsE +tfJ +sXD +lbA +iLH +tpk +uHO +qkx +mkZ +mkZ +rkF +mQV +mQV +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(80,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +oCx +oCx +oCx +oCx +oCx +oCx +oCx +oCx +lkq +rmC +rmC +aNm +lJE +wMx +wMx +aNm +nFk +uwn +wMx +jhw +jhw +jhw +jhw +jhw +hrJ +eYE +fEC +nsI +mPz +bZe +wMx +wli +jhw +hpS +nFk +jKa +ybT +xZB +mPz +bVe +bVe +rcI +kgW +iMC +ulI +wMx +ybT +xQw +exN +exN +xQw +exN +exN +xQw +exN +exN +xQw +wte +jhw +kTV +piD +kTV +kTV +kTV +kTV +hZy +aPq +eje +uFD +fyr +gNf +ddk +jLC +ePn +exC +iwD +jLC +qrP +eie +cCM +qVC +ulm +qIU +fQd +wmR +vlo +jaR +qXs +cWn +hOv +gxL +iuJ +tMh +axm +afX +xPd +lDR +tEY +iEK +fHi +syM +kMc +tfG +mQp +sry +acy +gBa +tJq +euK +euK +tJq +ksm +dvr +aGI +tLI +mPp +sXD +vgG +eLU +xEP +faB +gMz +eLU +wDJ +sXD +iVF +pFg +ott +fiw +tMt +oLe +ott +pFg +iVF +tpk +bLe +goT +iol +jBs +qFl +jby +sXD +qbG +lbA +tcq +gVQ +gVQ +iVF +iVF +iVF +ulx +ulx +ulx +iVF +eHC +eHC +vPj +iVF +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(81,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +lOu +exN +exN +exN +exN +exN +vJz +wMU +tJN +tJN +tJN +tQj +kwk +fXE +qmx +aNm +jQY +jQY +jQY +czF +xQw +xQw +xsa +xsa +xsa +xsa +xsa +xQw +xQw +ulI +aNm +xZB +jhw +aNm +gDW +ulI +bZe +ulI +ulI +ulI +ulI +pKg +ulI +oIL +oIL +icr +ybT +xQw +cdB +cdB +xQw +cdB +cdB +xQw +cdB +cdB +xQw +jVI +jhw +kTV +kBa +ktQ +jtu +ktQ +roc +hZy +kmq +eCV +qtm +cbZ +mqj +nIB +jLC +cyX +wLE +shZ +jLC +fQd +fQd +fQd +fQk +xsi +fQk +fQd +rSK +fHx +fQd +qXs +eeT +sTF +mjI +iuJ +tZf +pOV +xRL +xPd +jHZ +iEC +xYm +fHi +fHi +vLk +fHi +eVg +vXS +acy +uXv +mYy +tJq +euK +euK +ksm +fhh +bbS +tLI +ksm +eLU +eLU +eLU +gPv +bHt +mjp +eLU +goT +dZv +pkh +piL +loT +fuS +tMt +nGm +pDK +piL +uVo +qhn +rfn +vMX +cOm +keY +txy +tpk +tpk +cno +tpk +xYP +tpk +oKk +aLU +jVk +iVF +sWD +sWD +sWD +iVF +mQV +mQV +mQV +iVF +iVF +iVF +iVF +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(82,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +lOu +exN +exN +exN +exN +exN +exN +aNm +aNm +aNm +aNm +oBm +fXE +fXE +cYS +wMx +sPT +emd +xQw +xQw +xQw +soz +soz +soz +soz +soz +soz +soz +xQw +xQw +xQw +gel +jhw +wMx +cSl +aNm +aNm +eej +wMx +abH +kdc +kdc +kdc +aNm +ulI +ulI +ikJ +aIi +ybT +ybT +aIi +pYF +pYF +aIi +ybT +ybT +aIi +tsS +kTV +kTV +wxt +tQZ +tQZ +tQZ +gTl +hZy +bTH +cbZ +bTH +elV +gNf +ujq +jLC +jpQ +eqx +vIO +hQm +kDM +fCo +dmH +qjs +qjs +qjs +xhc +ngm +gbV +naF +dSS +mUs +rqF +jnt +iuJ +anD +ghc +uQl +xPd +uCu +oak +rIK +fHi +qqa +hlu +jiv +eVg +tPH +acy +eMT +mYy +mYy +mYy +mYy +ksm +rVw +bKK +koH +fYm +wtQ +mGs +iVC +kXM +mRl +nzn +wtQ +dex +sQI +oIr +piL +upx +tMt +tMt +tMt +nAl +piL +fTd +dni +tcq +fQc +dYI +pVn +qFl +tpk +wln +sXD +gVx +jmn +gVx +rfn +tcq +tpk +ipb +keY +keY +keY +iVF +mQV +mQV +mQV +iVF +lVY +wVE +mQV +bIU +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(83,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +lOu +exN +exN +exN +exN +exN +exN +wYJ +oSO +oSO +oSO +oBm +skZ +rKN +rKN +btu +fzY +oGA +xQw +soz +xvR +xJW +xJW +xJW +xJW +xJW +xJW +xJW +cMY +soz +xQw +xQw +vyR +aNm +gDW +wMx +dbv +ctz +aNm +vha +jYy +jYy +ppo +wMx +aNm +ulI +ulI +aIi +ybT +ybT +aIi +ybT +ybT +aIi +ybT +ybT +aIi +hrJ +kTV +leK +hFZ +hqv +hqv +hqv +ifQ +hZy +nIM +wRZ +uOq +wOW +oUF +fBU +jLC +iav +pjt +wyL +hQm +xxH +cGl +ckW +ckW +ckW +ckW +ckW +cGl +sRt +rkz +dSS +glS +ouM +xBR +iuJ +dxM +bWn +qBP +xPd +ukN +fXT +lGF +fHi +xbC +ubC +czZ +eVg +kmc +acy +wQh +mYy +hBT +gOn +fBE +fYm +vVh +cZo +tLI +cdR +wtQ +dIg +ksR +iIw +nku +xum +wtQ +goT +sXD +jby +piL +kec +xCx +aEv +oag +nvW +piL +cct +tpk +lbA +gVx +gVx +gAo +wnU +gVx +gVx +iuD +gVx +xYP +gVx +hsh +aXn +lbA +bkx +keY +keY +keY +iVF +pxz +tcq +fKq +iVF +sXD +wVE +mQV +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(84,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +xQw +xQw +xQw +xQw +xQw +xQw +xQw +xQw +rTF +rTF +rTF +wHn +xEB +rKN +uYl +qqo +fqs +rKN +soz +xvR +fDB +rpt +bwc +bwc +rpt +rpt +bwc +bwc +okY +cMY +soz +xsa +jhw +jhw +jQY +aNm +aNm +ybT +aNm +jYy +jYy +jYy +jYy +wMx +cmY +ybT +ulI +aNm +gGw +nIH +aNm +rNV +gGw +wMx +gGw +gGw +aNm +hrJ +kTV +mrl +hFZ +gqU +uNJ +sjP +hqF +hZy +nTO +nTO +nTO +hZy +gQX +hZy +jLC +imT +lgr +bLh +hQm +xxH +jqe +vXi +vXi +vXi +vXi +vXi +iAN +sRt +yaw +dSS +fkc +ouM +rCo +iuJ +oUM +ocz +xtj +xPd +ggK +fXT +wZg +fHi +lRL +xgE +qPs +eVg +oBE +acy +vHQ +pZd +uog +orJ +jHV +fYm +oQQ +kvx +tLI +xZS +wtQ +hGi +fiI +osN +mRl +wMs +wtQ +nwD +drF +goT +piL +sAy +tyD +pNl +bVf +iCF +piL +xYP +qQM +lbA +nkI +lbA +tcq +tcq +aDV +tGh +pQy +tGh +aDV +tGh +tGh +wnU +gVx +tpk +iLH +iLH +voa +mqG +pOQ +tcq +aga +mqG +rfn +iVF +iVF +iVF +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(85,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +lOu +exN +exN +exN +exN +exN +vJz +wMU +tJN +tJN +tJN +tQj +btu +btu +exy +fqs +wlt +rKN +soz +ohj +gLc +bwc +rpt +bwc +rpt +bwc +rpt +rpt +gLc +gTp +soz +xsa +ulI +ulI +jhw +wMx +foN +xZB +hNo +nur +nur +nur +nur +qhz +ybT +ybT +oIL +jzZ +gPC +bZe +gPC +gPC +ulI +ulI +bZe +aUY +jjr +uQv +kTV +wby +hFZ +ktQ +ktQ +ktQ +wgx +vDO +rYl +nHc +cvc +hcp +icu +pWv +jLC +jLC +lne +jLC +jLC +xxH +jqe +vXi +vXi +jRA +vXi +vXi +iAN +ljm +fQd +qXs +dSS +khd +qXs +iuJ +kLp +cPX +iuJ +xPd +iTP +dtA +xPd +fHi +fHi +dtK +fHi +eVg +oBE +acy +iuF +xTk +lla +grM +umE +fYm +tqW +rBK +tLI +hiM +wtQ +ait +ait +vVI +ait +ait +wtQ +kqc +fTd +goT +piL +ekj +ekj +rrt +oTg +avb +piL +iol +lhd +nCX +epx +gVx +iOR +pyb +bJr +aWi +uFY +kKD +ovC +ovC +tGh +tGh +gVx +tpk +bsR +xIa +cDe +mqG +pOQ +tcq +aga +mqG +dwM +xIa +sXD +iVF +iVF +iVF +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(86,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +lOu +exN +exN +exN +exN +exN +exN +aNm +aNm +aNm +aNm +oBm +rKN +irj +kFL +lhl +oGA +oGA +xvR +fDB +gLc +gLc +gLc +gLc +dAD +gLc +gLc +gLc +gLc +okY +cMY +xQw +xQw +ulI +jhw +wMx +bVe +sZG +uQF +pWB +bpF +pWB +pWB +bmI +ybT +ybT +xUR +fgA +alS +alS +jQY +dEf +jQY +fnc +dEf +hrJ +eul +cXM +kTV +kTV +etY +gTn +gTn +gTn +jhg +mzj +kMY +hBM +htK +htK +wds +gTo +kKb +lNU +arD +wED +lmP +avY +jqe +edc +gcF +gcF +gcF +edc +iAN +hgG +xoC +qhg +xoC +bcK +rCV +hmQ +rCV +bcK +rCV +cKb +rCV +bcK +ucm +fjj +rCV +bcK +fic +eVg +fCx +acy +eDZ +iwb +pUP +cKU +qgQ +fYm +aGI +mbB +aGI +fYm +hJR +hJk +rkb +xGg +evi +vrX +hJR +hJR +icK +goT +piL +ekj +ekj +hOr +iNb +eDc +piL +cMJ +keY +lbA +tcq +tcq +cYI +tpk +aDV +rVg +waS +cfV +jZG +vXK +bqc +kWe +gVx +nxf +keY +keY +keY +lbA +ydN +rGQ +aOj +tcq +keY +keY +iPV +lpa +wGQ +iVF +iVF +iVF +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(87,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +lOu +exN +exN +exN +exN +exN +exN +wYJ +oSO +oSO +oSO +oBm +rKN +bxs +oiX +wPO +oGA +soz +ohj +rpt +rpt +bwc +rpt +rpt +dAD +bwc +bwc +bwc +rpt +rpt +gTp +soz +xQw +tqr +hrJ +aNm +aNm +ybT +wMx +jYy +jYy +jYy +jYy +aNm +xZB +jQY +jQY +qGL +qGL +qGL +lXI +mLk +mLk +lXI +mLk +mLk +cgN +cXM +cmY +kTV +xfK +hqv +ftk +hqv +irR +vDO +tco +eAa +rPr +vXi +lYK +xWy +ckW +ckW +vod +ckW +ckW +rjF +jqe +vXi +vXi +buP +vXi +vXi +iAN +aSf +ckW +ckW +ckW +ckW +ckW +vtW +hBF +hBF +hBF +jaR +ckW +ckW +ckW +ckW +ckW +fZL +yay +eVg +vBi +jjC +wDk +wDk +wDk +khA +fxP +umn +kkT +dCp +aPU +umn +vqQ +nlJ +jYX +uEZ +jYX +uUG +ivp +hJR +fXS +goT +piL +ekj +kjx +oHa +puy +wSE +piL +qya +xyI +uKN +lbA +keY +psB +tpk +lec +oHd +hDM +wQE +vXK +vXK +sPI +tGh +gVx +ipb +keY +keY +keY +xbX +tpk +hLu +sXD +sDO +keY +keY +iPV +sXD +sXD +wVE +mQV +fNB +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(88,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +xQw +xQw +glg +glg +xQw +xQw +xQw +xQw +rTF +rTF +rTF +vEl +rKN +xFw +mIv +oGA +oGA +oGA +fDB +bwc +rpt +rpt +bwc +bwc +dAD +rpt +bwc +bwc +bwc +rpt +gTp +soz +xQw +sxG +hrJ +aNm +iMC +ybT +aNm +vha +jYy +jYy +rxY +aNm +wMx +jQY +qGL +qGL +nSP +vNZ +ajl +uQo +aAe +taL +uQo +aAe +lXI +liY +cgN +ide +ide +ide +ide +ide +ide +ide +kKG +eAa +cwh +vXi +lYK +vtc +vXi +vXi +vXi +vXi +vXi +ilK +jqe +vXi +vXi +vXi +vXi +vXi +iAN +qoL +vXi +vXi +vXi +vXi +vXi +uag +hWZ +dnc +lRf +sTH +vXi +vXi +vXi +vXi +vXi +bKa +qkl +eVg +vBi +acy +kya +qIF +bEK +vGR +iOl +kGs +tuS +psd +vfk +ijl +ltt +bdx +pEL +mKQ +myB +bdx +iHv +glr +uCf +mZI +piL +piL +piL +piL +piL +rRu +piL +mZI +rWt +oIr +tcq +keY +psB +qSx +lec +sJw +vzq +bZD +vXK +bqc +ovC +aDV +gVx +qhn +bLe +lhW +wuS +cDm +efg +tcq +wAc +sDO +keY +keY +tcq +sXD +sXD +wVE +mQV +mQV +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(89,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +xQw +xQw +rTF +rTF +rTF +rTF +rTF +qmx +qmx +aNv +qmx +kwk +rKN +xCU +tLM +oLg +era +tIl +mQV +mQV +mQV +mQV +mQV +mQV +jCs +mQV +mQV +mQV +mQV +mQV +gTp +soz +xQw +xZB +jhw +aNm +wMx +eej +aNm +vmv +vmv +vmv +vmv +qjJ +jQY +ayZ +qGL +vMm +gjt +cVw +jPj +dEF +gpT +grA +jho +hvq +uNf +pQT +nSP +ide +wAB +cRE +fnO +aXo +jHD +ide +ycQ +eAa +iZv +vXi +lYK +xWy +hVA +lAC +hVA +hVA +hVA +rjF +jqe +vXi +vXi +jRA +vXi +vXi +iAN +aSf +hVA +hVA +hVA +hVA +hVA +wxY +icV +icV +uQZ +sox +hVA +hVA +hVA +hVA +hVA +fZL +bDG +eVg +vBi +acy +wtq +hTI +eKs +xYc +fxe +umn +man +bxy +pPs +umn +qzj +vly +jYX +bda +jYX +bTz +aBW +hJR +pyG +mZI +cvh +cvh +cvh +dqd +cvh +tfJ +tfJ +nsV +nQG +mxp +kUL +keY +psB +aDV +aDV +aDV +uuq +aDV +eXj +hSm +soH +aDV +caB +lbA +lbA +tcq +tcq +tcq +sBK +lbA +sXG +sDO +keY +keY +keY +txy +sXD +iVF +iVF +iVF +iVF +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(90,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +xQw +glg +glg +xQw +xQw +xQw +xQw +rTF +rTF +rTF +tvJ +rKN +gfB +hQp +oGA +oGA +oGA +vVt +rpt +bwc +bwc +tbb +rpt +dAD +bwc +rpt +rpt +bwc +bwc +gTp +soz +xQw +nFk +bbH +jQY +lCo +jQY +jQY +jQY +aNm +aNm +aNm +ybT +aNm +oIw +qGL +vMm +jjg +gIN +gIN +qrU +tdy +wTW +qrU +wvT +iau +hUw +jMn +ide +xLh +lvS +ePY +mbJ +lWO +ide +gaX +cQH +eXv +xnM +dZo +slh +aPk +qVP +amS +lLJ +bcB +epg +jqe +edc +gcF +gcF +gcF +edc +iAN +kau +fjf +lsb +fjf +ibk +loW +kQQ +loW +ibk +loW +sUt +loW +ibk +loW +okz +xQa +mmH +hDv +eVg +vBi +acy +vlD +xsV +iUL +xpB +rfF +avF +dHd +uFy +dHd +avF +hJR +qsz +wks +ixy +bTz +pxK +hJR +hJR +pzS +pzS +pzS +pzS +pzS +pzS +pzS +pzS +tfJ +xgI +xgI +xgI +xgI +mSG +qho +lec +khL +dyz +uKh +aDV +vXK +sPI +bqc +tGh +gVx +tcq +ebH +uit +egW +tcq +dtT +rfn +sfs +sDO +keY +keY +keY +txy +wCa +tcq +tUx +sXD +iVF +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(91,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +lOu +exN +exN +exN +exN +vJz +wMU +tJN +tJN +tJN +oBm +rKN +qWx +wxI +dbo +oGA +soz +ohj +bwc +rpt +rpt +tbb +rpt +dAD +tbb +bwc +rpt +rpt +bwc +gTp +soz +xQw +llf +lXs +icr +aNm +sZS +ybT +wMx +npP +njV +xZB +ybT +azj +snz +cgN +kiX +kCe +uXf +pbU +nIh +nrH +xHs +qYa +jhO +gjW +xKe +bKt +ide +gPb +lYD +dXl +ide +ide +ide +xVF +qcJ +eeZ +twS +fTa +xGq +jdm +jdm +uoa +jdm +jdm +tze +jqe +vXi +vXi +buP +vXi +vXi +iAN +vVu +fQd +vQb +tuf +lGB +vQb +cKz +fCV +lul +cKz +bYG +fGv +wuy +bYG +fQd +fQd +wBq +fQd +eVg +vBi +acy +acy +eeR +hZj +mdZ +qNm +rkC +dIc +wVD +dmf +ttN +avF +avF +juT +rxR +ecF +hJR +hJR +qfU +pzS +gKH +eMG +inj +tCf +bdS +fLw +pzS +tfJ +mSG +emg +uBS +gOx +mSG +qho +aDV +anF +awA +awA +lec +bqc +ovC +tGh +tGh +gVx +lbA +eSt +tpk +myE +tcq +tpk +dZv +sXD +sDO +keY +keY +wcA +qFl +sXD +lbA +iMj +qgg +iVF +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(92,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +lOu +exN +exN +exN +exN +exN +aNm +aNm +aNm +aNm +lLl +rKN +uTf +unm +gKa +oGA +oGA +wEk +vVt +gLc +gLc +gLc +gLc +dAD +gLc +gLc +gLc +gLc +vKW +aSB +xQw +xQw +nFk +hcK +ybT +eej +ybT +ybT +sZG +ybT +ybT +ybT +eYE +azj +dEf +hXS +kCe +hHt +jrA +jrA +jrA +eor +eor +eor +jrA +jrA +ide +ide +ide +nOw +bhf +rre +ide +jxc +fQd +eHN +jDx +mqh +mqh +rRC +mqh +jdm +gxj +gQW +hbT +xEX +tFc +jqe +vXi +avL +cdd +aQo +vXi +iAN +vVu +pGo +tuf +eOg +nqH +xNB +cKz +bEr +upz +pCj +bYG +vUp +ogw +faZ +eVg +rrI +nmv +sNE +pJI +ggC +qwF +acy +mMi +euK +dlP +hpn +ama +dIc +nzA +oUn +mEi +ufH +dHd +dur +rxR +sso +jOk +hJR +uXm +pzS +gyJ +fJL +ovO +wfv +gGa +bpT +pzS +tfJ +rNe +lQt +kHP +gOx +xgI +qho +jLp +awA +awA +wXj +aDV +aDV +drT +kWe +bTU +ssU +tcq +cRY +cUF +myD +lbA +vnO +aLU +mxp +tcq +keY +keY +txy +ubp +wln +lbA +xJv +sXD +iVF +iVF +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(93,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +lOu +exN +exN +exN +exN +exN +wYJ +oSO +oSO +oSO +oBm +btu +ewF +yae +qQO +nOF +rKN +soz +ohj +gLc +tbb +rpt +rpt +tbb +bwc +rpt +rpt +gLc +gTp +soz +xsa +vmj +nFk +hEe +mRz +dCD +qQp +fbm +dCD +rZJ +rZJ +rZJ +rZJ +rZJ +rZJ +rZJ +rZJ +rZJ +rZJ +cpE +vfB +qGR +qGR +qGR +vfB +cpE +jNV +soI +ide +aXo +nRh +aXo +ide +iHL +sZp +sZp +sZp +sZp +xzt +hiO +lPl +jdm +kfA +gQW +aoo +xEX +tFc +cGl +hVA +elK +jaR +uQQ +hVA +cGl +vVu +naF +tuf +qDz +nqH +xkA +cKz +eOn +gzH +aWD +bYG +osY +xKP +vFA +eVg +quF +xsn +kkJ +aFP +jda +xkC +acy +fhg +euK +khi +hpn +qkH +axS +dEe +hcu +nQI +dLW +dHd +dur +rxR +sso +hQd +hJR +uXm +pzS +qsI +fJL +sNc +tXD +pzS +pzS +pzS +oVN +xgI +xgI +jgq +ruS +xgI +qFl +aDV +gwl +hlg +dIn +aDV +uHO +erk +hOL +tpk +kfB +tcq +tcq +tMV +tcq +tcq +eij +tcq +sXD +eUt +pVn +pVn +qFl +iNE +sXD +tcq +tpk +tpk +wnO +iVF +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(94,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +xQw +xQw +xQw +xQw +xQw +xQw +xQw +rTF +rTF +rTF +eCp +fXE +rKN +jTH +qQO +qQO +rKN +soz +wEk +vVt +rpt +bwc +bwc +rpt +rpt +rpt +bwc +vKW +aSB +soz +xsa +ePP +gDW +hcK +fbm +rgF +lFi +bnl +afx +rZJ +tgH +eGZ +qKr +kGi +eOX +xKj +kDd +rdB +rZJ +huN +huN +huN +huN +huN +huN +huN +ide +aPj +ide +lTO +qFI +aXo +uCP +urb +sZp +eLl +lsc +sZp +xbb +mQo +mQo +jdm +pCt +mMd +tvp +xEX +xYQ +xHF +bvG +bcN +rIP +tEx +ndB +hFM +kng +usb +tuf +fhL +hob +uYd +cKz +bEr +bFc +qIB +bYG +dnV +djm +gXl +eVg +pat +qur +pfK +jyZ +ykI +ykI +acy +sQD +gdX +flf +hpn +jPz +dIc +wOc +oUn +hAB +aDb +giB +wpy +xAl +xPx +tbm +hJR +qfU +pzS +bdS +ahR +bdS +bdS +pzS +lNg +rfn +qbG +tpk +xgI +ekG +pWy +xgI +sXD +pFq +thw +oqZ +pAu +pFq +fne +fne +fne +icQ +ovS +oZr +kgo +kfB +hxn +tpk +fuH +tcq +sXD +lbA +eEi +eEi +eEi +tcq +eMq +tcq +qQM +tcq +tpk +iVF +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(95,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +lOu +exN +exN +exN +exN +vJz +wMU +tJN +tJN +tJN +oBm +fXE +rKN +rKN +btu +oIk +oGA +xQw +soz +wEk +krj +krj +krj +krj +krj +krj +krj +aSB +soz +xQw +xQw +bVe +gDW +dJz +rmM +dSP +szq +csL +iWi +rZJ +fxz +qjT +ygG +kGi +nIe +pPD +bPt +mcB +rZJ +huN +hOg +gFg +oVW +gFg +xso +huN +aAw +jop +iGt +yaI +lvS +wsu +pNb +eJf +sZp +sZp +dGp +sZp +sZp +pSH +tkC +jdm +jes +rlp +wfb +mqh +eFC +mqh +fQd +bJH +xhe +aQD +fQd +fHx +fHx +fQd +vQb +uHs +wge +fKW +cKz +cKz +iAK +boW +bYG +qIn +oOH +cAg +eVg +quF +eyM +jjP +jdR +bNY +bNY +acy +cXG +jTX +hjP +hpn +vFG +dIc +xKR +dmf +jnN +avF +avF +sBX +ixy +qOt +hJR +hJR +hJR +pzS +cRH +dTq +meJ +tui +pzS +pzS +pzS +pzS +wnO +xgI +lpQ +nPY +xgI +dFP +pFq +maI +tdi +vZW +pFq +igf +sLL +cwq +icQ +bDx +kZB +gCk +lRV +lRV +lRV +kgo +tcq +scL +pkh +tpk +qFl +vqZ +vqZ +qFl +vqZ +vqZ +lbA +sXD +iVF +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(96,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +lOu +exN +exN +exN +exN +exN +aNm +aNm +aNm +aNm +nZz +fXE +xMw +lhC +aNm +bgP +mPz +xQw +xQw +xQw +soz +soz +soz +soz +soz +soz +soz +xQw +xQw +xQw +xBG +gDW +nWO +vqj +fbm +atb +kgX +hMh +wBB +rZJ +dzt +kwO +tbT +kGi +bUu +peJ +bUu +bUu +rZJ +huN +wvg +jvo +jvo +jvo +lQD +huN +aUI +mNM +ePv +cEl +lvS +gSB +iVh +hEi +ami +yeG +tCj +lPx +sZp +ktv +tTr +jdm +dQV +ijR +chR +mqh +odv +mqh +fwm +reJ +rXg +jaR +eBa +lvV +lvV +oVf +vQb +hbb +gsN +kwv +cKz +lvx +lGJ +kbe +bYG +olT +sOQ +ssw +eVg +jlJ +qvX +qvX +qvX +qvX +qvX +qvX +qvX +acy +acy +hpn +avF +dHd +jOj +dHd +avF +avF +dBO +dlY +rxR +apt +jsl +qci +mHI +dBJ +rZG +utX +sBJ +nCy +fyi +sca +dXM +pzS +qhn +xgI +dvv +mqY +mSG +tpk +ujy +bqu +jsI +rEk +xNK +ikQ +nxF +rsD +icQ +icQ +eHc +eHc +icQ +icQ +uhn +lFq +tcq +pFZ +tpk +tpk +oUj +gno +pFZ +dtx +sXD +pkh +tcq +tpk +iVF +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(97,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +lOu +exN +exN +exN +exN +exN +wYJ +oSO +oSO +oSO +oBm +kwk +qmx +xub +wMx +ybT +ybT +ybT +sZS +xQw +xQw +xsa +xsa +xsa +xsa +xsa +xQw +xQw +npJ +aNm +wMx +aNm +agk +dCD +dCD +bTE +etv +etv +jwf +rZJ +uZr +lYx +dTu +dJZ +jsO +jIf +jkx +pAB +rZJ +huN +jwh +jvo +vsv +jvo +xQS +huN +axg +eJQ +wZG +uBu +fVx +aXo +qXv +cFf +sZp +bFJ +sNk +rZk +sZp +kbD +vtE +jdm +jdm +ezf +jdm +mqh +mYV +mqh +iIf +ogR +bIw +dCe +dCe +dCe +xgv +kJr +vQb +vQb +sjF +vQb +cKz +cKz +wuf +cKz +bYG +bYG +uww +bYG +eVg +quF +qvX +wng +kYZ +jzp +mfl +sxC +qvX +wWz +vEt +vEt +vEt +vEt +ozt +pKF +eqK +aYM +nlJ +jYX +pOA +jYX +tHR +iYZ +hSJ +dBJ +cAp +iYk +gNW +bfo +paJ +uJA +aOH +pzS +cDm +xgI +xgI +iBd +xgI +lbA +pFq +vVn +hIp +vlC +pFq +kUg +rXY +fWO +bQE +oUN +vgV +adb +vDz +fne +uhn +kgo +lbA +cDm +tcq +tcq +tue +tcq +tcq +qQM +lbA +tcq +tcq +cDm +iVF +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(98,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +xQw +xQw +xQw +xQw +xQw +xQw +xQw +rmC +rmC +rmC +aNm +afn +aNm +aNm +wMx +icr +aNm +ybT +oLI +sBC +ybT +ybT +ybT +ybT +ulI +ybT +ybT +sZG +ybT +wmI +ybT +ykR +gsd +mRz +jNx +eJy +csL +scc +dMb +rZJ +iUY +whz +ciB +ciB +whz +whz +uWI +knB +rZJ +huN +wlo +jvo +jvo +jvo +tSE +huN +ide +aXo +jon +ooB +jon +aXo +ide +ide +sZp +izO +pRa +pRa +sZp +sZp +omM +jdm +jpn +blX +hgL +mqh +mQo +mqh +pOd +mKN +ilm +reJ +mHB +mRS +hhF +baG +vQb +nvb +mYh +rwl +cKz +cUg +mzv +rLU +bYG +epz +kQz +efW +eVg +pMZ +qvX +ujK +shK +eUG +caw +dBj +bLD +ltt +ixy +ixy +rxR +rxR +rxR +nTe +ixy +tMF +ixy +cbl +wcO +leA +tHR +gWU +bBa +dBJ +etK +fNC +gNW +xjD +kxZ +mRD +wQH +pzS +ymh +tpk +tpk +pyb +pyb +iKw +pFq +pFq +pXN +pFq +pFq +ogg +pUu +unp +qvc +vlv +jku +lkr +awC +bIQ +uKq +cJw +caB +naj +grJ +cvh +cvh +cvh +cvh +mot +tpk +pyr +nNW +ffW +iVF +iVF +iVF +iVF +nvJ +nvJ +nvJ +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(99,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +dqN +ybT +jME +icH +ulI +bZe +ulI +ulI +oIL +ulI +uYH +ybT +jlT +ybT +ulI +ulI +wkc +ulI +oIL +oIL +oIL +ybT +rMd +wkc +ulI +btf +aNm +wMx +bkT +wMx +pFw +fap +toI +mRz +miJ +knj +qmi +dCD +dCD +rZJ +sVH +kxq +dgO +mhG +xAh +vzJ +xSD +sFu +rZJ +huN +dTa +urC +dUu +sGR +oAa +huN +ide +srK +bZV +lHw +ezm +wnQ +ide +fmT +xZu +adQ +drc +umQ +jFZ +sZp +iEX +mqh +mqh +mqh +mqh +mqh +mQo +mqh +mqh +mqh +mqh +mqh +mqh +mFg +nbr +viT +eVg +eVg +eVg +eVg +eVg +eVg +eVg +eVg +eVg +eVg +eVg +eVg +eVg +oNT +qvX +pcI +xpY +pzC +tMA +wSU +qvX +dTi +vEG +reE +npl +bac +bac +pik +bac +hvK +wks +jYX +xrL +jYX +tHR +jIJ +heO +pzS +kox +lCK +oYB +mvY +pzS +pzS +pzS +pzS +nba +nba +nba +nba +pyb +veP +pFq +fhj +oKE +sYQ +pFq +bEy +vIq +smt +pTE +gDk +tqs +dHC +cDP +fne +moj +kgo +tcq +uVx +tpk +dWb +wnO +mxp +aLU +naj +tpk +dyx +tpk +uaQ +cvk +pFZ +jby +iVF +soz +soz +soz +nvJ +nvJ +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(100,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +xQw +xQw +xQw +laB +fzg +icr +joa +ulI +wkc +ulI +wMx +doP +aNm +lFZ +oIL +aNm +wMx +bFH +aNm +aNm +ulI +ybT +aNm +gDC +oIL +ulI +ulI +ulI +gsd +gsd +gsd +pov +isQ +emO +fbm +fbm +fbm +emO +szq +rZJ +dyi +qNt +dyi +rZJ +eWC +vJx +eRN +tUW +rZJ +huN +huN +huN +bMB +huN +huN +huN +ide +oAd +mZJ +xFJ +cGX +qUH +ide +quA +jnk +adQ +scr +jmT +eWG +sZp +vtE +mQo +mQo +mQo +oGK +eGh +mQo +eGh +ftJ +mQo +jMr +eGh +eFC +mRS +goy +bWK +aTw +mlX +pat +pat +pat +wJr +pat +mlX +quF +quF +quF +jlJ +quF +iGU +qvX +qvX +qvX +qvX +qvX +qvX +qvX +gOY +fPB +gOY +eAQ +uor +ujk +mQG +ujk +uor +rFA +vly +rxR +kMK +khx +dBJ +dBJ +pzS +dBJ +lis +dBJ +bdS +pzS +iLn +eEr +sMv +tPv +vDJ +tPv +nba +pyb +rqz +pFq +vHS +odm +bos +pFq +qkq +sWM +hSu +mJO +yfZ +qjv +weK +hXG +icQ +uZo +kgo +kCj +oPy +oPy +kCj +kCj +kCj +kCj +aNy +cct +tcq +sba +sXD +tpk +sXD +cct +akA +soz +soz +soz +soz +soz +nvJ +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(101,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +xQw +cmY +bZe +aNm +aNm +kgW +ulI +wMx +wMx +aNm +aNm +aNm +aNm +hpS +aNm +icW +fOB +eeK +pyO +bsh +ldD +pyO +kNf +kNf +pyO +pyO +aNm +uyT +ddg +xQw +xQw +xQw +xQw +gLc +gLc +soz +rZJ +rZJ +rZJ +jsD +nVQ +qoE +rZJ +rZJ +lYo +rfE +shW +rZJ +cpE +qFa +edv +dUu +edv +qFa +cpE +ide +rMP +rpU +bdu +oTn +aBz +ide +faA +wbO +dCA +eBo +scr +onv +sZp +wcv +cRb +cRb +cRb +cRb +cRb +cRb +cRb +cRb +cRb +cRb +mQo +mqh +aZq +kEj +bWK +fQd +fQd +fQd +fQd +sTk +sTk +sTk +aTw +sTk +sTk +sTk +sTk +pfK +quF +quF +quF +ruu +quF +dqm +hOA +kLU +xBQ +xah +pMj +hrb +uor +rOF +haw +aHi +uor +uor +xyS +rxR +tHR +dBJ +dBJ +nCq +sCt +kaW +rWm +woL +kuA +pzS +vzP +iAG +cYM +tby +omn +omn +fpn +pyb +sXD +pFq +pFq +pFq +pFq +pFq +icQ +icQ +icQ +icQ +fVQ +qjv +aEy +mrJ +icQ +siB +kgo +iHD +pUV +qaJ +fEH +xBC +cVn +oPy +aNy +iKw +lbA +wTG +tcq +tpk +vsZ +fTd +akA +gLc +soz +soz +soz +soz +soz +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(102,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +xQw +iMC +ulI +ulI +ulI +ulI +ulI +wMx +agJ +bgP +bgP +ezM +wMx +ulI +pyO +pyO +kNf +kNf +pyO +pwA +qNG +qru +vmK +bER +oDA +kNf +qYH +jQY +hni +xsa +gLc +gLc +gLc +gLc +gLc +soz +soz +rZJ +hJA +dhd +pKW +wXO +gNE +rZJ +lep +hgs +lep +rZJ +jQe +jQe +huN +bcu +huN +jQe +jQe +ide +aXo +bSP +aXo +hCT +aXo +ide +sZp +ohE +sZp +sZp +kpQ +sZp +sZp +sOm +tml +uyR +frb +jmH +pHk +pJT +cxW +bSS +fRy +cRb +mQo +mqh +aOv +hhF +xWy +vhM +lvV +xMg +rCL +wWd +qSE +iTV +ooa +okO +kkx +nZE +sTk +sTk +sTk +sTk +sTk +sTk +tsX +hOA +hOA +khE +dVB +reb +aDI +reb +nTU +aOe +xot +xej +djt +kOu +dur +rxR +tHR +dBJ +jFE +bGf +krs +sOK +wuD +adx +pKd +pzS +jPa +aAT +tLs +kPy +kPy +kPy +nba +tRI +sXD +sXD +sXD +sXD +nQG +sXD +sXD +sXD +pkh +icQ +bIk +cry +dHC +aRq +icQ +wQu +kgo +iHD +wyK +llV +bxp +uFp +ccL +kCj +aNy +tcq +lbA +jVk +dtT +ajH +iVF +iVF +iVF +gLc +gLc +gLc +soz +soz +soz +nvJ +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(103,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +xQw +ybT +ulI +mlq +ybT +fEG +bVe +wMx +pCO +ybT +ybT +pFO +wMx +oIL +pyO +vzG +izS +weN +qdZ +qNG +qNG +jNi +rpq +fhW +wJu +kNf +pFJ +jQY +duI +xsa +gLc +gLc +gLc +gLc +gLc +soz +soz +xRc +jAY +mex +rRh +xnZ +deb +sAm +fyw +ovF +vSD +bOS +vSD +vSD +odS +aGS +vSD +vSD +vgW +ide +bMY +iJh +mMh +oTn +lKp +ide +jfE +eTG +pRa +hBx +ixs +ueW +sZp +qLT +mwz +mwz +mwz +vZY +nVD +nVD +nVD +rYH +ybw +cRb +oGK +mqh +wUs +aSf +qOA +weT +weT +nWx +cro +wWd +afp +jHn +ooa +jCN +ooa +uUk +qKz +nKr +sTk +qjg +aZe +sTk +tsX +hOA +lyR +uSZ +iyE +lJc +wWB +hkK +ujk +vOS +rVU +plS +evb +kOu +dur +rxR +tHR +dBJ +tJS +bGf +aOY +qZR +sCa +adx +pfs +pzS +ipo +nBN +aMU +tqE +sPa +kXZ +nba +nba +nba +pFZ +sNb +sNb +sNb +sNb +nYY +xtR +fTh +icQ +icQ +icQ +hnZ +euV +icQ +moj +wqf +kCj +euq +euq +pMq +euq +moy +kCj +hjS +xpZ +tpk +tpk +aed +sXD +mzg +wtH +msH +mWQ +mWQ +gLc +gLc +soz +soz +soz +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(104,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +xQw +ybT +wMx +aNm +wmI +wMx +aNm +aNm +pCO +ybT +iKG +pFO +aNm +nUr +vQK +qNG +lOt +kjh +elp +xvQ +eoO +bfD +moO +fFR +eLv +kNf +dMn +jQY +eFI +xsa +gLc +gLc +gLc +gLc +gLc +soz +soz +xRc +bpH +rRh +pti +rRh +gFM +bAL +agL +qVs +cYv +rpk +bnq +bnq +bnq +bnq +bnq +pGt +hSQ +fKQ +vqW +goe +iaD +oTn +qJL +ide +vfN +sRq +dBT +hSt +dJx +qCC +sZp +aBB +mtl +bTI +umP +uPU +eFj +iHq +eFj +gRw +umP +cRb +mYV +mqh +hmH +jlY +reJ +agg +fGm +myG +cro +wWd +jvd +exn +exn +mNy +exn +fQF +vgx +vgx +voC +uhH +rDP +qNi +txw +hOA +bMn +yaa +alE +xGL +alE +reb +nTU +mve +rVU +fBL +jRF +kOu +dur +rxR +tHR +dBJ +wxw +bGf +wYK +bEG +lbq +adx +bKc +pzS +mGb +nBN +tDH +nfB +xSa +xSa +jHf +sMH +nba +sXD +sNb +xKu +dUw +dZw +nYY +sXD +hPD +lbr +hPD +fDT +fDT +fDT +fDT +fDT +tfJ +pjf +tUm +bgI +lDK +wbv +mrX +kCj +akA +lFo +akA +lbA +tcq +tcq +iVF +iVF +iVF +gLc +mWQ +gLc +gLc +soz +soz +soz +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(105,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +xQw +sZG +wMx +ybT +ybT +sZG +cmY +aNm +pNa +qiS +qiS +cQg +aNm +ulI +kNf +pcs +mYx +nBp +rof +bta +bCe +roC +fah +iNr +cvj +pyO +jwi +jQY +ulI +xQw +xQw +gLc +gLc +gLc +gLc +soz +soz +xRc +jAY +xnZ +rRh +mex +jrH +bMi +lyv +wvN +vNp +lwK +wUb +lwK +lwK +lwK +fxo +kxn +jPP +pLe +joe +pMW +dJc +kAP +wKd +ide +qzx +cSH +qOZ +wbO +utQ +eth +sZp +maq +mwz +uOh +svp +bth +lpO +xmD +lpO +ask +lhh +cRb +mQo +mqh +mqh +mqh +mqh +mqh +jew +uDm +rIQ +gDL +jPi +jPi +rog +tsQ +ijc +tRz +dIR +sYY +qFQ +sYY +oDt +sTk +tsX +hOA +hKK +eSk +lKo +dbR +tUp +gme +uor +tpV +rVU +mve +uor +uor +ibl +ixy +eoV +dBJ +dBJ +bXI +kwr +hwD +bqh +uWW +bmT +pzS +lLq +qyu +tDH +adY +nNZ +dBm +nba +htf +nba +sXD +sNb +boc +nvP +qYF +nYY +vjJ +vjJ +vjJ +tCv +fDT +rLL +neV +wyi +fDT +sXD +kCj +hOk +hOk +kPw +hOk +hOk +oPy +dfW +cvh +tpk +xaz +owA +aAH +iVF +gLc +gLc +gLc +mWQ +mQV +gLc +gLc +soz +soz +nvJ +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(106,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +xQw +xZB +aNm +aFO +aNm +flY +wMx +aNm +aNm +aNm +wMx +aNm +aNm +ulI +fDI +nql +pyO +rVd +pyO +mLn +pyO +kNf +pyO +cPH +pyO +kNf +aNm +jQY +bZe +ulI +xQw +gLc +gLc +gLc +gLc +soz +soz +rZJ +yln +kly +nWe +kye +fxw +rZJ +ozK +waZ +qCJ +oVd +rbY +jXO +wrj +xdh +mdb +nnS +keF +fKQ +cUw +rGt +gju +oTn +iLO +ide +ixt +sRq +rle +hSt +dJx +ohl +sZp +nAD +eeD +izq +dSJ +pWK +uzY +cTl +uzY +ask +vzs +cRb +eGh +mQo +mQo +eWN +eGh +mqh +tSH +myG +cro +wWd +jvd +exn +qvs +ird +exn +pYj +vgx +vgx +gTX +czq +fML +sTk +tsX +hOA +hOA +oLu +reb +dbR +reb +jZd +uor +weY +bvZ +aqb +uor +jHu +dlY +rxR +cig +wCi +dBJ +qJi +pzS +dBJ +awX +dBJ +pzS +pzS +nba +fpo +cRz +fpo +nba +nba +nba +nba +nba +mPp +sNb +nYY +qTC +nYY +nYY +etb +kxI +vjJ +sTz +krV +kGm +uCW +rkS +fDT +xhn +nko +fUD +fUD +hPL +kCV +iVx +kCj +jKs +gVx +lWr +tpk +tpk +urs +iVF +gLc +gLc +mQV +mWQ +mQV +gLc +gLc +soz +soz +soz +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(107,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +xQw +ybT +lcS +fkn +aNm +acW +lcS +emd +ulI +ulI +iqT +oIL +jdJ +ulI +fDI +sVz +pyO +bwT +fDI +xND +sdC +mnI +mnI +tBi +tBi +tBi +kkf +jQY +wMx +ulI +xQw +xQw +gLc +gLc +gLc +soz +rZJ +rZJ +dga +txa +gtZ +nmm +xey +rZJ +rZJ +asd +gRC +gRC +gRC +gRC +asd +asd +uoI +nnS +keF +ide +cQp +jdZ +wBv +wgv +fNu +ide +lsn +cGu +pRa +kAU +dJx +mTw +sZp +ycn +eZz +eYs +kWA +rFT +ppP +iME +lNI +bsC +wzH +fKf +fKf +fKf +fKf +fKf +eGh +mqh +qPz +myG +cro +wWd +lFa +jHn +qvs +fCd +exn +mzM +ucW +dGB +sTk +lIZ +guz +sTk +quF +quF +hOA +olF +mgJ +odu +odu +vLx +gCg +hbU +jXI +hbU +tmZ +mGp +jYX +sVg +jYX +qlZ +sna +uBr +gUd +vEt +myF +aND +jRK +vPb +tkX +aND +vbj +vEt +jGk +eqK +tzV +nYY +qaB +uSE +prZ +aXs +fEY +nYY +bet +rPv +rmY +rjM +ggt +krV +paj +fwe +ewU +fDT +qGA +nko +oAL +rLE +rLE +syY +ydY +hoQ +tpk +cvh +tpk +dZv +akA +akA +iVF +gLc +gLc +mQV +mWQ +mQV +mQV +gLc +soz +soz +soz +nvJ +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(108,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +xQw +xQw +xQw +cza +aNm +aCS +xQw +icr +ulI +bZe +ulI +ulI +ulI +neu +fhZ +qEb +pyO +tzc +fhZ +whc +jJi +jYy +jYy +jYy +jYy +jYy +cwo +icr +aNm +ulI +iqT +xQw +gLc +gLc +gLc +soz +xRc +dpw +ukJ +rWk +nWe +tYJ +fil +gZk +xRc +gLc +gLc +gLc +gLc +gLc +gLc +asd +ydi +nnS +jYp +poi +ide +aKo +nKs +xoe +ide +ide +gXP +gWh +sZp +uLF +bzO +uLF +sZp +cRb +dJA +rtg +cRb +cRb +sQF +bjW +sQF +cRb +cRb +fKf +ipE +nCj +aJC +fKf +mQo +mqh +reJ +myG +cro +wWd +dGJ +ryY +lcO +eNU +vQC +ijq +sTk +sTk +sTk +btt +sTk +sTk +sTk +quF +eNE +pKE +pHX +ohm +mYm +ndT +geF +nLF +eJw +nLF +jCp +kQd +wpn +mKQ +thz +fRq +lgw +sXH +cby +sXH +sXH +sXH +sXH +sXH +sXH +sXH +aKI +ixy +kvp +xAl +fNd +jAD +kxC +wAU +eNZ +umx +iDx +nYY +bOZ +vVU +sRw +vjJ +czk +fDT +jwX +uzs +krV +fDT +xhn +nko +nko +tMq +tMq +dqP +pIA +kCj +hoE +iLw +cvh +ldt +lYg +jaI +jaI +jaI +jaI +cSI +cSI +cSI +cSI +cSI +cSI +soz +soz +soz +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(109,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +xQw +mQV +mQV +mQV +etq +xQw +bJW +ybT +gkQ +gkQ +gkQ +xZB +qRT +xQw +mQV +mQV +etq +xQw +wkc +gnU +xwo +xwo +xwo +xwo +xwo +cRh +uiX +ulI +oIL +fpl +xQw +gLc +gLc +soz +soz +xRc +jAY +xAH +mpT +rDU +nAW +sRY +fDV +xRc +soz +soz +soz +soz +soz +soz +gRC +mdb +nnS +wlp +euZ +qsP +qsP +qsP +qsP +wtv +ldH +qsP +lKB +rXp +qsP +gwW +qsP +qsP +neN +hcL +sIz +fAY +vIA +lVe +ygW +vqN +nrh +ljp +esv +vgP +pVQ +vQk +fKf +jMr +mqh +ivL +myG +bGp +rpQ +rpQ +rpQ +rpQ +rpQ +rpQ +rpQ +sTk +wCS +ssN +mwm +wMT +niB +wAk +quF +dkX +ezF +uqt +scI +qjE +mpe +gCg +hbU +eJw +hbU +ahz +tqu +vMp +xxN +vMp +tym +xOQ +qWQ +uQS +eAS +lmj +dno +fRM +aKI +kMK +eAS +dno +hML +xqj +vEG +eKx +nYY +xEr +xoT +mkR +gjh +pfx +nYY +mEE +oGh +eAl +lqt +vcr +uWb +dmO +iQx +sBu +iHQ +gTi +vOt +fDT +fDT +fDT +fDT +fDT +fDT +fDT +fDT +fDT +iVF +iVF +gLc +gLc +gLc +jaI +mQV +mQV +mQV +gLc +gLc +cSI +soz +soz +soz +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(110,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +xQw +xQw +mQV +mQV +mQV +xQw +xQw +xsa +xsa +xsa +xsa +xsa +xQw +xQw +mQV +mQV +mQV +xQw +gkQ +gkQ +gkQ +xQw +xQw +xQw +xQw +xQw +xQw +xQw +cIc +xQw +xQw +gLc +gLc +soz +rZJ +rZJ +rZJ +dss +duX +duX +duX +wla +rZJ +rZJ +rZJ +soz +soz +wtk +soz +soz +gRC +mdb +qVs +jPP +rpk +bnq +bnq +bnq +bnq +bnq +dip +rpk +rpk +bnq +bnq +rpk +bnq +cYv +hdx +mcT +cJU +cJU +cJU +tPn +uGf +tPn +tPn +gDu +fKf +arc +tat +xmo +fKf +feo +rRC +mup +sgU +atf +rpQ +dDW +kHV +rpQ +nnx +rpQ +aiK +sTk +oQq +kqo +aNr +viU +oMC +sTk +tsX +nrx +ccC +sdw +biH +sdw +iaT +uor +jcn +eJw +lxF +uor +teL +mDs +mDs +mDs +sgI +hJR +egt +hJR +hJR +hJR +hJR +uIq +aKI +fQu +hJR +roU +vPw +lDg +wnG +wsv +nYY +nvh +wcB +thj +ydp +ltW +nYY +ndi +fIe +oZs +lqt +miB +sWX +thv +bDn +bDn +oKA +bDn +bDn +xoO +qgS +fDT +euU +euU +jvA +euU +euU +fDT +gLc +gLc +gLc +gLc +gLc +jaI +gLc +gLc +gLc +gLc +gLc +cSI +gLc +soz +soz +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(111,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +xQw +eHC +eHC +eHC +xQw +ulx +ulx +ulx +ulx +ulx +ulx +ulx +xQw +eHC +eHC +eHC +xQw +xsa +xsa +xsa +xQw +soz +soz +soz +fbb +soz +xQw +xQw +xQw +gLc +soz +gLc +soz +xRc +oWj +rVR +sVt +nVj +ceU +miC +qzm +shr +nRG +xRc +gLc +hcy +hcy +hcy +gLc +gRC +rGx +bbX +xEE +rdo +iKj +qsP +qsP +qsP +qsP +knP +qsP +qsP +qsP +qsP +qsP +oJm +eWA +vKp +nVt +sIz +nwY +cJU +sDG +esu +sIz +bpp +mAM +lSz +jFz +dap +wSR +fKf +feo +mqh +reJ +myG +atf +rpQ +apv +hds +rpQ +iJz +rpQ +hsi +sTk +sTk +sTk +sTk +sTk +sTk +sTk +tsX +nrx +qec +aXQ +kky +aXQ +rlz +sXt +hbU +vXP +bDH +uor +hJR +dfN +rKJ +eIC +hJR +uJL +eBy +rzI +dgA +smw +hJR +nnj +aKI +tHR +xLf +byn +jYX +kAy +jYX +uds +nYY +rtX +bZP +rtX +nYY +xqe +nYY +jmt +wuI +kha +lqt +uxR +wvi +pgs +eRv +tMs +iHQ +ult +bDn +vyI +dSe +sHy +goS +xHP +xHP +xHP +euU +fDT +gLc +gLc +gLc +gLc +gLc +jaI +gLc +gLc +gLc +opP +gLc +cSI +gLc +soz +soz +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(112,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +nvJ +soz +soz +soz +soz +gLc +gLc +gLc +fbb +gLc +gLc +soz +soz +gLc +soz +gLc +soz +xRc +uRR +isR +vJx +vJx +aUF +whz +qzm +osz +xXu +xRc +gLc +qsv +wTE +hRi +gLc +asd +bvS +vEq +kZA +xai +xai +xai +dmD +dmD +dmD +xai +bFi +dqD +rbg +bvc +xky +dqD +xHX +tWN +hCo +tuJ +pKz +taQ +dGU +lIK +mKc +gsW +pKz +fKf +xeQ +fKf +fKf +fKf +feo +mqh +reJ +myG +pHY +rpQ +wCG +hds +oCn +prU +kKp +gTS +rpQ +tQM +tQM +tQM +rpQ +quF +wdf +quF +nrx +uCp +aXQ +jDB +aXQ +qAK +sXt +sJP +cqy +nZb +nki +uor +uJL +bLT +uJL +uJL +qQj +eBy +qzK +uJL +nLy +yaJ +uIq +aKI +etB +uvi +jYX +omi +vek +wNp +ydF +nYY +gBz +snw +snw +gOs +snw +nYY +bRW +vjJ +lqt +lqt +uxR +wvi +wHw +bSd +bSd +fDT +mBc +mOS +oEB +hWT +skq +mzy +qaH +lXo +xHP +fcE +fDT +gLc +gLc +gLc +gLc +gLc +jaI +gLc +opP +gLc +opP +gLc +cSI +gLc +soz +soz +soz +soz +soz +soz +soz +soz +nvJ +nvJ +nvJ +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(113,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +wgK +wgK +wgK +wgK +soz +gLc +gLc +gLc +fbb +loJ +qFa +qFa +qFa +loJ +qFa +loJ +soz +xRc +fZd +qTy +mXr +uNo +iiL +qzm +uzC +chi +dDr +xRc +gLc +hcy +hcy +hcy +gLc +asd +cyq +cxr +qXe +xai +ryU +mMZ +tTS +vih +mwQ +xai +xai +xai +jYP +jYP +jYP +xai +xai +xai +hCo +sIz +xFd +cJU +aWU +mDA +cfl +cfl +pKz +oUy +odv +odv +odv +ciE +aex +mqh +reJ +sFC +ijj +pWY +hVE +lKC +xtQ +mAP +xTE +gzo +mLI +lDG +xwQ +cmv +rpQ +quF +nrx +nrx +nrx +eDn +viv +kky +ciQ +mjB +sXt +rGo +uci +ipn +axe +uor +nXV +bLf +xwD +xwD +xwD +eBy +qzK +uJL +xwD +hJR +ahY +aKI +fNT +eOQ +gVD +nkd +fiM +cNP +nJh +nYY +eHz +wEA +vwW +nYY +nYY +nYY +rxA +fTL +uTg +cmJ +kpH +cWg +jUX +rYe +bSd +fDT +kru +bDn +udG +clZ +rkq +rXM +xHP +xHP +xHP +euU +fDT +gLc +gLc +gLc +gLc +gLc +jaI +gLc +opP +gLc +opP +gLc +cSI +gLc +soz +soz +soz +soz +soz +soz +soz +soz +soz +soz +soz +nvJ +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(114,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +wgK +wgK +wgK +wgK +soz +avR +gLc +fin +fin +pUS +olb +soz +gLc +gLc +gLc +loJ +soz +rZJ +rZJ +rZJ +xRc +baj +rZJ +sGr +xRc +rZJ +rZJ +rZJ +soz +soz +wtk +soz +soz +asd +bvS +nmk +wXc +xai +nFs +mMZ +nYm +wJQ +nAH +mMZ +qES +eFs +hSo +hRG +pQs +skf +sLh +xai +hqu +jWi +nQX +kIK +aWU +lHv +cfl +hKI +nFn +taa +anN +gaM +eDJ +boI +pJU +mqh +bBE +myG +cro +rpQ +gLY +kdw +rpQ +azW +rpQ +czv +rpQ +hNz +hNz +hNz +rpQ +crQ +nrx +kZK +dhL +gir +tSF +isT +jNL +mOL +sXt +wyS +cdK +iml +vKN +uor +rtG +fOL +dgA +stq +wmr +nLy +xwD +lZX +nLy +hJR +uIq +sXH +etB +vtz +jYX +lDX +lMX +qNl +wgw +nYY +qQE +yax +snw +nYY +nsB +eQQ +iHU +iXb +uSJ +wyX +tAc +ekI +vpR +pwo +bSd +fDT +spq +bDn +xoO +icO +fDT +hJb +euU +euU +euU +ivy +fDT +gLc +gLc +gLc +gLc +jaI +jaI +gLc +opP +gLc +gLc +gLc +cSI +gLc +gLc +gLc +gLc +gLc +gLc +gLc +soz +vXQ +vXQ +vXQ +vXQ +vXQ +qYX +fwM +fwM +fwM +fwM +fwM +fwM +fwM +fwM +fwM +fwM +fwM +fwM +fwM +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(115,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +nvJ +soz +soz +soz +soz +gLc +gLc +fin +ijK +xlt +paZ +gLc +gLc +soz +soz +loJ +soz +soz +rBP +nmi +mLZ +ohv +ckz +uWf +nXd +aZM +mrZ +vXQ +vXQ +vXQ +vXQ +vXQ +vXQ +gRC +nSQ +agL +uVe +xai +kgH +mMZ +hnz +uDz +qEu +mMZ +cVV +rex +egI +hVt +sMp +qSW +fMF +njk +cyR +lRs +gzF +cJU +aWU +fSN +cfl +cfl +pKz +odv +mQo +mBV +jIk +cEQ +dzY +mqh +wlQ +bUn +wAY +rpQ +raj +kYw +rpQ +rPM +rpQ +vGm +rpQ +rpQ +rpQ +rpQ +rpQ +txw +nrx +htw +dNe +nrx +mBF +vVN +xKX +nrx +lir +sXt +kyI +sXt +lir +lir +gUm +hbA +hbA +hbA +hbA +hbA +hbA +hbA +fqF +hJR +vVV +sXH +tHR +pnk +aPu +jVO +sZO +rvb +nVz +nYY +lMa +gZO +rFd +nYY +qkI +fDT +krV +krV +jNs +hJr +fDT +fDT +fDT +fDT +fDT +fDT +keX +boj +fUs +fDT +fDT +fDT +lYu +fDT +fDT +fDT +fDT +gLc +gLc +jaI +jaI +jaI +gLc +gLc +gLc +gLc +gLc +tQB +uOa +mcW +kKI +xya +gLc +mpb +mpb +mpb +aWL +iub +van +van +van +van +van +van +van +van +van +van +van +van +van +van +van +van +van +hVx +tJA +fwM +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(116,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +nvJ +soz +avR +gLc +gLc +gLc +gLc +fin +pjq +fKK +paZ +gLc +gLc +gLc +gLc +loJ +gLc +soz +rBP +kyr +lMo +pJq +wFN +uWf +tyK +wFN +bXx +pqC +gRS +pqC +pqC +nBC +gME +djv +gIe +gwW +gSE +kgQ +oKD +wVT +bYp +wDr +iof +kvF +bDe +vev +two +bri +jhk +hVt +sEg +xai +gnj +joU +pKz +jVm +eGM +hfW +rCY +omq +pKz +ogj +mqh +mqh +mqh +mqh +mqh +mqh +xcT +hcL +jBQ +rpQ +rpQ +psf +rpQ +rpQ +rpQ +rpQ +rpQ +rml +fGZ +mXl +eVg +aTw +eVg +xdk +mdH +bWV +tTm +jEP +vZI +pnX +mhL +tgV +dqY +aEu +eZV +twL +tAM +pAH +uWD +nVz +sAE +xJo +sAE +hbA +uJL +hJR +knC +jZb +eLc +nVz +nVz +rSM +rSM +rSM +nVz +nYY +nYY +nYY +nYY +nYY +nsB +bxS +bdO +rEn +lwZ +izf +qRp +gDN +kZq +euU +euU +kZq +bOU +mya +cdZ +euU +euU +uuS +fDT +foZ +vvP +sOT +jaI +jaI +jaI +jaI +gLc +gLc +gLc +gLc +gLc +gLc +gLc +tQB +oTW +vCk +dkt +xya +tQB +iub +van +van +van +xfa +mIz +cXo +duP +duP +fjw +fjw +haT +haT +haT +pvi +haT +haT +pvi +haT +haT +pvi +vhC +guU +van +hVx +tJA +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(117,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +nvJ +nvJ +soz +soz +soz +soz +soz +gLc +fin +xlt +xlt +paZ +gLc +gLc +gLc +gLc +loJ +gLc +soz +rBP +hPm +sdR +xmO +dep +yhu +dep +uWf +vHg +lOz +leJ +leJ +leJ +leJ +leJ +jRh +wVs +gwW +bMx +xai +agT +mMZ +mMZ +mMZ +mMZ +mMZ +ccV +beF +bZH +eMw +kus +hVt +whq +jYP +sIz +dND +byO +tPn +djC +xTW +esu +heY +ukr +qMW +ogd +wNW +gsk +kyW +oKF +adA +vmS +xVV +xTW +mWU +fpT +dEz +aLP +hhT +eqR +ssA +qXV +yhf +yhf +qmm +eLW +qFi +thH +wMj +xTW +xTW +xTW +nGH +evd +pqp +dWD +wDn +jpD +kbN +kbN +xzM +wXk +wbV +wmN +hOY +xfj +wgY +wgY +wRu +whJ +iBb +jyE +sXH +tHR +pdJ +rSM +soz +soz +soz +soz +jYw +irI +cZL +rJT +byl +nsB +oqb +rgi +rPB +veW +wmV +omW +gDN +hog +euU +euU +euU +bOU +mya +eMR +euU +pCC +aYz +fDT +sOT +sGP +uZC +uZC +gLc +gLc +gLc +gLc +gLc +gLc +gLc +gLc +gLc +gLc +tQB +uOa +mPm +kKI +hKn +aWL +oIO +mIz +cXo +cXo +cXo +gLc +fge +kWb +kWb +kWb +kWb +kWb +kWb +dFU +czg +ulx +dFU +dFU +dFU +ulx +czg +ulx +haT +vhC +guU +hVx +lWy +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(118,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +wgK +wgK +wgK +wgK +wgK +wgK +soz +gLc +fin +fin +mzC +olb +soz +soz +soz +gLc +loJ +soz +soz +rBP +wXy +otl +xmO +nKJ +kfX +dsm +tfC +mrZ +duP +duP +jzb +duP +duP +duP +gRC +wZW +gwW +xUY +xai +wEl +vre +oCp +egg +mMZ +mDM +rMu +xOZ +swQ +ucx +tGq +cGC +jMf +jYP +xcn +xcn +hjd +xbH +fTV +cJU +cJU +cJU +pTn +pTn +pTn +pid +cJU +tPn +cJU +tPn +gbM +quC +xva +tPn +oHh +pTn +pTn +tPn +cJU +cJU +cJU +cJU +cJU +cJU +pid +tPn +cJU +tPn +cJU +cJU +cJU +uVg +ort +oPZ +qsc +mia +uBP +lSX +lSX +lSX +jos +iMN +avc +nVz +klx +qiC +kmh +nVz +xTq +qcQ +bdx +sXH +tHR +aTW +rSM +soz +gLc +gLc +soz +jYw +cAc +ltd +eCv +byl +nsB +bYc +drJ +smR +wxk +aHw +eda +gDN +euU +euU +euU +euU +bOU +aGc +wBL +ujd +euU +euU +fDT +ldA +ldA +qKW +uZC +gLc +gLc +gLc +gLc +gLc +gLc +gLc +gLc +gLc +gLc +tQB +nkl +gRi +uHv +mEs +van +xfa +xya +fge +fge +fge +fge +fge +kWb +kWb +kWb +kWb +kWb +kWb +dFU +dFU +dFU +dFU +dFU +dFU +dFU +dFU +dFU +ulx +ulx +vhC +oIO +tJA +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(119,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +wgK +wgK +wgK +wgK +wgK +wgK +soz +gLc +soz +fin +paZ +olb +gLc +gLc +gLc +gLc +qFa +qFa +rBP +rBP +xMM +cAY +xmO +bCk +fon +uWf +tWu +mrZ +jiu +jiu +jiu +jiu +gLc +gLc +gRC +gIe +gwW +rfh +xai +kqL +oiz +miE +lGo +xai +xai +kwG +jYP +xai +jYP +xai +jYP +xai +xai +mHv +fHl +eIk +xcT +pTn +pTn +pTn +qJV +pTn +pTn +pTn +xMS +pTn +pTn +pTn +wct +pTn +pTn +pTn +ngK +pTn +pTn +pTn +haZ +pTn +pTn +pTn +oUg +fHl +xcT +vHD +qhk +rLF +bPO +xcT +fHl +xcT +xcT +hCo +mtF +tzu +vxc +jXT +jXT +jXT +mJx +reB +tFd +arX +eZZ +ciF +eOa +ciF +snK +idP +ydU +fRM +sXH +irK +tbm +rSM +soz +gLc +gLc +soz +jYw +rws +qPf +nwi +byl +fsv +ksj +oTc +qNz +mmT +oHz +mxM +gDN +euU +euU +euU +euU +bOU +aGc +pWp +euU +euU +icc +fDT +uJk +ldA +rjt +uZC +gLc +gLc +gLc +gLc +gLc +gLc +gLc +gLc +gLc +gLc +tQB +uzz +swr +uid +wLc +cXo +cXo +gLc +fge +rRe +aHx +bVF +fge +szZ +ejT +eCO +tgn +bHU +rSN +dFU +dFU +dFU +dFU +oUJ +dFU +dFU +dFU +dFU +dFU +czg +rHM +guU +hVx +lWy +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(120,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +wgK +wgK +wgK +nvJ +nvJ +nvJ +nvJ +soz +gLc +gLc +gLc +gLc +soz +gLc +gLc +gLc +gLc +soz +rBP +rBP +qPD +eZi +dSm +xVT +jmb +syx +wFN +iig +jiu +pxn +eNV +pJf +jiu +jiu +soz +asd +flT +qnI +iaH +xai +wcE +moI +dKk +qNr +xai +iYc +eur +gtp +vtK +gtp +vtK +gtp +apX +asd +rOl +xdu +xJg +hPW +kQq +rwq +jtB +pKz +tYT +tYT +tYT +pQF +hHl +xYq +kqx +hsm +pUz +xYq +kqx +pQF +tYT +tYT +tYT +pKz +mVh +iMf +gBx +pQF +qJk +qJk +lcX +lcX +eCZ +lcX +gyk +gyk +dJh +lDl +hCo +xcK +mhL +aBX +aBX +czf +tMn +soa +rGZ +iwv +xFq +xFq +xxf +xxf +xxf +xFq +xFq +xFq +gnw +sXH +pqB +fno +fno +fno +fno +soz +soz +rPZ +eKe +qPf +vxY +pog +uqs +pog +byl +hGm +rRv +qpL +xAB +gDN +hog +euU +xRi +iRa +kXV +aGc +vHj +euU +euU +iXT +fDT +uZC +xgR +uZC +uZC +uZC +tUz +tUz +tUz +uZC +gLc +gLc +gLc +gLc +gLc +fge +fge +tTt +fge +fge +xcU +xcU +xcU +fge +sur +uSh +yhA +fge +fge +hNr +hNr +hNr +dFU +lWU +dFU +psD +cKf +hOo +ebp +nxU +ivJ +oOq +dFU +dFU +ulx +ulx +vhC +oIO +tJA +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(121,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +wgK +wgK +wgK +soz +soz +soz +soz +soz +gLc +gLc +iZT +soz +soz +gLc +wgK +wgK +gLc +soz +rBP +mjA +fJl +tUO +kzz +dep +xIf +wzY +uOS +jiu +jiu +lCL +ckV +lCL +gBh +jiu +vNL +vNL +tYp +ekF +ydD +xai +lFR +xai +xai +xai +xai +asd +mlw +vEq +hcv +ahP +tiF +vEq +xDc +asd +qGP +pTn +aKn +cfl +cfl +cfl +cfl +iqn +cfl +cfl +cfl +kqC +cfl +cfl +cfl +iqn +cfl +cfl +cfl +eRh +cfl +cfl +cfl +bwW +wfr +cMo +tiA +pKz +coT +gST +lcX +ixW +tQr +eSO +obM +ctE +gyk +xcT +hCo +wKL +xht +mhL +mhL +mhL +xht +qSc +agl +tLz +xFq +qyF +bqI +bqI +iej +piR +cQn +gxG +wJj +kzA +xtP +fno +bGI +upU +fno +grc +grc +fno +fno +cfg +fVl +nmO +doF +gaw +byl +byl +rPB +ttS +beQ +dfM +kZq +euU +euU +rJh +dfF +aPx +eMR +euU +pCC +euU +fDT +pRN +ldA +sEV +ppC +tUz +esr +ppC +iUj +tUz +gLc +gLc +gLc +fge +fge +owK +cgB +sFZ +dlw +qBE +ayy +ykp +grS +rmi +grS +pKp +cnL +pGp +fge +aCp +aCp +aCp +dFU +wHW +bPz +pnz +pkC +toK +fyv +lJJ +lJJ +nva +dFU +dFU +dFU +ulx +qXU +ilP +hVx +tJA +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(122,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +wgK +wgK +wgK +wgK +soz +soz +gLc +gLc +gLc +gLc +gLc +gLc +gLc +wgK +wgK +wgK +wgK +soz +rBP +qyf +rOc +tVq +llN +tYB +gjF +cZC +mdM +jiu +hiZ +wlj +vzV +gJh +wIv +jiu +uKd +vNL +tNU +fnq +xFG +jQe +aSh +tbu +bdr +mrw +sck +ybj +vpK +vSD +vSD +vSD +vSD +vSD +gGo +kmk +tPS +pTn +etC +cfl +cfl +cfl +cfl +eRh +cfl +eLB +cfl +kqC +cfl +eLB +cfl +eRh +cfl +eLB +cfl +eRh +cfl +eLB +cfl +kER +rko +wfr +xtV +jJh +cfl +cfl +gyk +gJN +tQr +tQr +tQr +wgA +gyk +xcT +hCo +adA +sGD +mDA +cfl +cfl +gLu +dSr +ftN +knw +reZ +ufl +rkh +bQU +bSo +epP +dMM +gxG +wJj +cqP +sFG +kKR +fUZ +fUZ +fno +mFS +cCZ +rik +fno +cDr +fmU +tdl +fgN +rhs +qnz +byl +tKz +sLJ +wrJ +mbV +iTR +tcl +tcl +tcl +lAF +tvg +wBL +jcw +euU +euU +fDT +pEi +ldA +nJy +jgo +tUz +jzy +dYs +sny +tUz +gLc +gLc +gLc +qyl +ohL +aAo +xSR +weA +gIh +qyl +owM +osx +ioE +fge +hxw +haQ +iCr +hku +fge +ydK +jvs +jvs +dFU +gEo +tYH +qNB +dFU +moK +dFU +dFU +dFU +dqM +kFV +dFU +dFU +dFU +bRf +aaG +aaG +hVx +lWy +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(123,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +jxv +uDZ +wgK +wgK +soz +iZT +gLc +gLc +soz +soz +soz +soz +soz +wgK +wgK +wgK +wgK +soz +rBP +cDt +bbG +bwg +gij +bMO +jAf +kJQ +qDo +jiu +lYQ +lGW +dKT +fMS +oBp +efz +jnR +iLs +hzH +osc +rON +jQe +aSh +fzm +hTF +mdb +qsL +eFT +ihg +wnt +ihg +ihg +ihg +ihg +fqc +vZv +jhL +pTn +etC +cfl +cfl +cfl +cfl +eRh +wMo +wMo +wMo +kqC +wMo +wMo +wMo +eRh +wMo +wMo +wMo +eRh +mkE +wMo +wMo +hwe +pgY +xVz +xLg +sgt +cfl +cfl +lcX +tDT +xZz +vxu +lDk +jKP +pMI +beu +eGG +oLa +trj +lHv +cfl +cfl +oXN +qcP +hYi +tGH +fYj +kKB +taU +swp +jTN +pRM +suN +sfX +vlc +igN +sFG +iqZ +mah +mah +qBX +gpD +wlu +lEf +wmS +geG +vRO +oWi +kLg +sXb +gIM +byl +lap +mAg +meY +vog +lhv +clB +wOq +xVi +qii +lhr +cER +euU +euU +fPc +fDT +kyV +nsy +kzH +sco +iyl +ldA +tgW +pnv +tUz +gLc +oNc +gLc +qyl +xRR +aAo +qDf +beZ +dZA +qyl +yiC +iQN +arT +fge +rEy +qnM +qLW +iRC +vfQ +ksu +qxY +ksu +nsJ +xvy +ltR +rSB +pIo +uMb +fdi +aka +rXc +mkC +gHe +dFU +dFU +aaG +aaG +kSe +kSe +acJ +lWy +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(124,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +wgK +wgK +wgK +wgK +soz +soz +gLc +gLc +gLc +gLc +gLc +gLc +gLc +wgK +wgK +wgK +wgK +soz +rBP +qyf +rOc +tVq +llN +dmc +wCO +aEL +eyD +jiu +pcv +sKz +vzV +wlj +lCL +jiu +bEO +vNL +jSH +aeo +xFG +jQe +aSh +jyJ +bBs +hPN +dxv +lwK +nXD +dLC +lwK +lwK +lwK +umB +lwK +uyS +aVT +pTn +etC +cfl +cfl +cfl +cfl +eRh +cfl +uGh +cfl +kqC +cfl +uGh +cfl +eRh +cfl +uGh +cfl +eRh +cfl +uGh +cfl +wdN +oqO +mPK +xtV +qDe +cfl +cfl +gyk +jJf +vlu +jKP +lDk +jlL +gyk +jxx +hCo +aLY +seO +fSN +cfl +cfl +fcq +gXJ +ogV +iLo +reZ +sfa +rkh +jHh +gCs +bBD +gTU +gxG +wJj +cqP +sFG +urq +fUZ +fUZ +fno +ooX +csG +cHG +fno +kwu +fmU +bAZ +fue +tbf +uVf +byl +ggh +nbP +lOn +foe +bsy +bsy +bsy +bsy +jWr +qtj +wBL +eDb +euU +euU +fDT +xXU +cLp +xUA +jgo +tUz +duL +jFw +fJJ +tUz +gLc +gLc +gLc +qyl +ooY +aAo +gCy +pLW +aiq +qyl +wxK +mRw +dgZ +fge +quW +pLF +xzH +bOw +fge +uhv +uhv +mtk +dFU +svu +heN +pHz +dFU +pBV +dFU +dFU +dFU +jvj +qKp +dFU +dFU +dFU +dQF +aaG +aaG +xfa +lWy +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(125,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +wgK +wgK +wgK +soz +soz +soz +soz +soz +gLc +gLc +iZT +soz +soz +gLc +wgK +wgK +gLc +soz +rBP +aGV +gcs +uDy +jmZ +dep +nLV +gmt +bOx +jiu +jiu +lCL +hTG +lCL +kiY +jiu +vNL +vNL +uao +hzH +sHv +iPE +kbL +iPE +kII +cwL +cwL +cwL +iPE +iPE +cwL +cwL +cwL +iPE +iPE +iPE +bVK +pTn +cgH +cfl +cfl +cfl +cfl +pKS +cfl +cfl +cfl +kqC +cfl +cfl +cfl +pKS +cfl +cfl +cfl +eRh +cfl +cfl +cfl +pit +mMJ +xtV +eUH +pKz +ugc +uol +lcX +mCP +oLQ +jHO +yhY +kSW +gyk +iyZ +hCo +vwt +xht +mhL +mhL +mhL +xht +dKi +agl +dmt +xFq +fvC +pHs +oVP +xup +ugk +gTU +gxG +wJj +kSl +brt +fno +skx +mhT +fno +grc +grc +fno +fno +pmV +wgj +biA +kuB +sfd +byl +byl +rPB +ajP +xep +dfM +tBZ +euU +euU +lRC +bgt +uHR +eMR +euU +pCC +euU +fDT +qST +ldA +pSp +jgo +tUz +tRT +ppC +eOP +tUz +gLc +gLc +gLc +fge +fge +owK +tne +iRC +jSa +gvt +dLj +hoy +sFZ +uAN +iRC +pKp +kvY +evy +fge +aCp +aCp +aCp +dFU +rVh +bLR +kGE +pHz +toK +vDV +toK +toK +dzO +dFU +dFU +dFU +ulx +vhC +ilP +xfa +ecQ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(126,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +wgK +wgK +wgK +nvJ +nvJ +nvJ +nvJ +soz +gLc +gLc +gLc +gLc +soz +gLc +gLc +gLc +gLc +soz +rBP +rBP +axB +eZi +teQ +rXO +lBg +fwu +wFN +uPf +jiu +gqZ +bSa +pyq +jiu +jiu +soz +asd +wHB +wRM +dqF +iPE +sNf +qEg +dGt +kzN +uzj +tFa +ukP +keQ +gjg +ixj +eBL +sER +ely +iPE +qsm +oly +vry +bAa +mFP +bLw +kfE +pKz +akt +akt +akt +pQF +pCw +aap +qDF +pKz +pCw +aap +qDF +pQF +akt +akt +akt +pKz +iWF +knr +dKI +pQF +wiK +wiK +lcX +aZm +lcX +lcX +gyk +gyk +uaN +mHu +hCo +iCv +mhL +tyl +oip +oip +pXy +uim +hrF +fdE +xFq +reZ +reZ +xFq +rpZ +ePX +lkF +xFq +tQS +rxR +lej +fno +fno +fno +fno +soz +soz +rPZ +pog +vtk +pog +pog +qtl +pog +byl +mVo +goi +lhv +cZU +gDN +hog +euU +fij +iRa +eUV +byP +uQW +euU +euU +vfi +fDT +uZC +vkF +uZC +uZC +uZC +tUz +tUz +tUz +uZC +gLc +gLc +gLc +gLc +gLc +fge +fge +xeS +fge +fge +xcU +xcU +xcU +fge +aeU +ngA +eVy +fge +fge +hvJ +hvJ +hvJ +dFU +mJL +dFU +psD +scw +bsA +iEO +ogx +aFk +oOq +dFU +dFU +ulx +ulx +qXU +oIO +ecQ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(127,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +wgK +wgK +wgK +wgK +wgK +wgK +soz +gLc +soz +aIC +olm +pYX +gLc +gLc +gLc +gLc +qFa +qFa +rBP +rBP +puZ +nca +xmO +dEJ +idB +wFN +maG +mrZ +jiu +jiu +jiu +jiu +gLc +gLc +gRC +gIe +gwW +rfh +iPE +rJn +sOn +npY +dSB +hNI +bVy +rfy +gxs +eRm +gxs +pHQ +lnh +eVc +cwL +wax +jxx +euS +tzN +pTn +pTn +pTn +pZW +pTn +pTn +pTn +dAI +pTn +pTn +pTn +nsb +pTn +pTn +pTn +tzN +oHh +pTn +pTn +ugI +pTn +pTn +pTn +esD +jxx +jxx +teV +jxx +jxx +nIL +jxx +qIS +yhf +yhf +nMW +pqp +giV +lPG +rED +rED +rED +aGO +gok +oCG +cIt +hOC +fwi +reZ +rpZ +rkh +aXc +gxG +igE +ixy +sEZ +uNG +rSM +soz +gLc +gLc +soz +jYw +tLf +xRa +pog +xui +btT +ukD +gow +omr +jrn +nbI +jHg +gDN +euU +euU +euU +euU +wll +byP +oxK +euU +euU +bzT +fDT +aQu +ieW +sTh +tbq +gLc +gLc +gLc +gLc +gLc +gLc +gLc +gLc +gLc +gLc +tQB +laa +dTY +uSI +urN +mpb +mpb +gLc +fge +hlQ +ybB +yap +fge +hvJ +mvS +pDC +vVY +oMe +wLA +dFU +dFU +dFU +dFU +cnR +dFU +dFU +dFU +dFU +dFU +czg +rHM +iub +xfa +lWy +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(128,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +wgK +wgK +wgK +wgK +wgK +wgK +soz +gLc +aIC +aIC +rRw +pYX +soz +soz +soz +gLc +loJ +soz +soz +rBP +wVO +otl +xmO +mKe +uoC +pcf +dCN +mrZ +vXQ +vXQ +aUr +vXQ +vXQ +vXQ +gRC +wZW +gwW +xUY +iPE +pBT +fUf +fQy +hnk +hNI +iUz +sXV +auH +xFQ +egN +hsQ +nKZ +ikt +cwL +wLM +iGa +mme +tPn +cJU +cJU +cJU +cJU +pTn +pTn +pTn +pid +tPn +tPn +tPn +tPn +cJU +tPn +tPn +cJU +pTn +pTn +pTn +uVg +tPn +tPn +tPn +tPn +tPn +tPn +ghu +tPn +tPn +tPn +cJU +hcL +aZh +iGa +rMz +coD +pYa +sVc +pon +lni +lSX +lSX +jos +nWD +cIt +lbY +jBW +reZ +wCH +weq +wNy +gxG +uIq +rxR +sEZ +pgN +rSM +soz +gLc +gLc +soz +jYw +tLf +sMd +pog +qHE +nsB +oqb +rgi +eDH +wxk +wjN +tzR +gDN +euU +euU +euU +euU +wll +byP +wBL +jOg +euU +euU +fDT +jHF +rux +jfk +wQI +gLc +gLc +gLc +gLc +gLc +gLc +gLc +gLc +gLc +gLc +tQB +aaG +cUS +sFY +cPD +van +hVx +xya +fge +fge +fge +fge +fge +kWb +kWb +kWb +kWb +kWb +kWb +dFU +dFU +dFU +dFU +dFU +dFU +dFU +dFU +dFU +ulx +ulx +qXU +oIO +ecQ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(129,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +nvJ +nvJ +soz +soz +soz +soz +soz +gLc +aIC +gfo +gfo +olm +gLc +gLc +gLc +gLc +loJ +gLc +soz +rBP +xuX +ptX +xmO +dep +vHW +xoQ +wFN +pnd +dsr +cFq +cFq +cFq +rez +cFq +pio +wVs +gwW +xUY +iPE +ydE +nKV +mgi +iSj +hNI +ylw +uLE +paq +cDw +paq +xSe +hZP +rDK +cwL +eGv +iUy +bdF +ull +xTW +evd +xTW +tXu +imD +cbB +bcA +mvK +afh +eTA +xTW +jWi +xcn +sDG +xTW +cwQ +qFr +bcA +qFr +dTk +uGm +uGq +neQ +uzf +neQ +bho +gGf +hSy +dkO +fyM +ull +esu +kXv +sIz +dFm +mtF +sea +uHE +lpC +dkw +dge +qGw +agl +nWD +cIt +aTJ +lAM +reZ +lbi +lsu +drm +gxG +uIq +rxR +sEZ +qsf +rSM +soz +soz +soz +soz +jYw +nfw +fTF +pog +ruz +nsB +nPw +drJ +rPB +oJB +utJ +bWW +gDN +hog +euU +euU +euU +wll +kzI +eMR +euU +pCC +aYz +fDT +czu +pVW +lrQ +lVR +gLc +gLc +gLc +gLc +gLc +gLc +gLc +gLc +gLc +gLc +tQB +yiQ +qYQ +kDV +wLc +bxt +oIO +hKn +mpb +mpb +mpb +gLc +fge +kWb +kWb +kWb +kWb +kWb +kWb +dFU +czg +ulx +dFU +dFU +dFU +ulx +czg +ulx +fwM +qXU +iub +xfa +lWy +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(130,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +nvJ +soz +avR +gLc +gLc +gLc +gLc +aIC +jwK +xYu +olm +gLc +gLc +gLc +gLc +loJ +gLc +soz +rBP +vBa +lMo +gzL +xvf +xvf +xvf +azB +xGQ +gah +qju +gah +gah +usi +oBW +ruX +gDI +pja +cJg +kho +rBT +rBT +rBT +hmT +hSU +gjg +dWK +ixj +ixj +ixj +lfd +ebv +byp +iPE +vks +kwR +pKz +pUB +aLY +gkL +bOu +bYk +bCf +bCf +bCf +bCf +hHN +hHN +oVV +rNd +vxi +rNd +ify +hHN +hHN +cra +frF +frF +frF +cra +uZu +fpC +uZu +cra +cra +aMt +qIo +hhY +hIB +qIo +oBV +qIo +efi +miQ +mhL +iLq +gQy +kEQ +jBn +mXC +wae +xKN +lqk +cIt +rah +xFq +xFq +xFq +xFq +xFq +uEz +aKU +hnI +nVz +nVz +xbd +xbd +xbd +ofB +ofB +ofB +ofB +ofB +ofB +rsK +fDT +gnn +eax +tWe +cly +mMk +gDN +tBZ +euU +euU +tBZ +wll +gPq +teb +euU +euU +qfw +fDT +glP +wzw +asP +cXo +ezW +gLc +gLc +gLc +gLc +gLc +gLc +gLc +gLc +gLc +bHy +cXo +cXo +cXo +fmg +tQB +guU +van +van +van +hVx +hKn +mpb +vXQ +vXQ +qYX +qYX +fwM +fwM +fwM +bGK +fwM +fwM +bGK +fwM +fwM +bGK +qXU +iub +van +xfa +ecQ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(131,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +nvJ +soz +soz +soz +soz +gLc +gLc +aIC +cPd +gfo +olm +gLc +gLc +dzB +dzB +loJ +soz +soz +rBP +vJj +sVD +tVq +axU +uWf +tPG +dkg +mrZ +duP +duP +duP +duP +duP +duP +gRC +cVe +nnS +wlW +iPE +teI +cds +gHf +oLn +iPE +kkD +iPE +qAr +qWN +cqh +iPE +iPE +iPE +iPE +vuE +kwR +bjL +eZv +ipY +mDA +cfl +cfl +lns +gAu +dUv +isi +aZP +qun +ksY +vNX +oYi +vNX +bst +bql +exf +frF +tEv +hxH +urj +uxK +xXl +hFh +tfq +cra +uyx +aMt +aMt +aMt +qra +ehH +qra +ehH +ehH +aMt +aMt +aMt +aMt +whu +lqk +pYm +uYB +pYm +lqk +oEx +vEL +eJW +nuD +pOU +chb +rxm +aoh +rxR +hDB +emr +rKw +rEf +qKa +qzI +ofB +vjx +tdO +owe +boo +ofB +hXo +fDT +gDN +jwX +eYw +krV +gDN +fDT +fDT +fDT +fDT +fDT +mDg +fDT +fDT +fDT +fDT +fDT +fDT +tqJ +tqJ +tqJ +tqJ +gLc +ezW +gLc +gLc +rhu +rhu +rhu +rhu +rhu +rhu +bYD +esy +ccH +gLc +bYD +gLc +cXo +cXo +cXo +bxt +guU +van +van +van +van +van +van +van +van +van +van +van +van +van +van +van +van +van +xfa +ecQ +haT +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(132,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +wgK +wgK +wgK +wgK +soz +avR +gLc +aIC +aIC +muK +pYX +soz +wYl +dzB +dzB +loJ +soz +kaj +kaj +kaj +abG +gNz +kaj +taT +abG +kaj +kaj +kaj +soz +soz +wtk +soz +soz +gfL +atx +gHo +atx +iPE +iPE +iPE +iPE +iPE +iPE +bqF +iPE +iPE +iPE +iPE +iPE +leF +xue +ePz +gyb +kwR +pax +vgI +ipY +lHv +cfl +cfl +lns +qqs +qqs +qqs +vhv +cYL +glI +kHl +tpR +kHl +udp +eaQ +bst +frF +hJz +tEU +vUe +vUe +vUe +eaO +hxh +cra +cra +aMt +nZi +cLJ +srf +uiW +osu +ezN +ezN +eEN +rtL +rZN +aMt +vma +lqk +tNn +rHm +kYy +rWn +hxo +rEm +uEk +ehs +uEk +uwH +kdm +tXX +pJO +pJO +tyG +nkN +sHE +xPb +sal +rLe +tCN +qde +tQA +vRZ +ofB +mAe +fDT +vQI +eQb +fuw +udv +vQI +fDT +rbD +dwk +hSS +asg +vxF +sCZ +wRH +mXB +lUo +apO +apO +fqG +gri +gdl +tqJ +gLc +gLc +fmg +gLc +rhu +rhu +rhu +rhu +rhu +rhu +lwQ +rns +ccH +gLc +xvP +gLc +gLc +gLc +gLc +soz +duP +duP +duP +duP +duP +fjw +haT +haT +haT +haT +haT +haT +haT +haT +haT +haT +haT +haT +haT +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(133,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +wgK +wgK +wgK +wgK +soz +gLc +gLc +gLc +fbb +loJ +soz +soz +soz +dzB +dzB +loJ +soz +abG +bTl +uve +qsb +qsb +qDE +atk +qsb +pvL +hCe +abG +gLc +hcy +hcy +hcy +gLc +gfL +oIW +cib +quH +orp +vGd +kSf +kgm +vGd +pFT +vZm +eRY +rVD +vrr +bJA +bJA +qOc +dvY +eyk +brQ +kwR +dgU +gmf +ipY +fSN +cfl +cfl +lns +uHL +tck +jkO +ksY +hmx +lAi +bmB +aDa +fjc +uYj +hsN +bst +kHv +lcN +bWy +vUe +pjH +cTD +pih +lUA +saL +oBj +fkE +ezN +vun +rrS +sTl +idx +sTl +spH +jjF +emJ +cmb +aMt +wSi +lqk +oHf +spO +aKb +xqu +vEL +nav +diD +aEY +qZs +spO +cIt +akw +jAz +ute +vtb +oFg +iXx +bkh +suF +lBw +obB +uup +eig +gPD +ofB +hXo +fDT +rXm +jmg +leq +dKs +vQI +fDT +rtY +vyn +dPO +asg +hXo +vOk +tqJ +tqJ +tqJ +lOo +lOo +iIz +eTc +eTc +onU +gLc +gLc +bYD +gLc +gLc +rhu +rhu +rhu +gLc +gLc +gLc +ezW +gLc +viW +soz +soz +soz +soz +soz +soz +soz +soz +soz +soz +nvJ +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(134,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +nvJ +soz +soz +soz +soz +gLc +gLc +gLc +fbb +loJ +loJ +qFa +qFa +loJ +qFa +loJ +soz +abG +vsp +mpq +dec +aqV +atk +xgb +dec +egS +mMK +abG +gLc +qsv +wTE +hRi +gLc +gfL +gfL +rzv +gfL +gfL +gfL +gfL +gfL +gfL +gfL +gfL +bVh +oCY +vHK +vHK +vHK +wQL +vHK +vHK +vHK +vHK +kAM +rPy +kAM +nng +vHK +vHK +vHK +pee +oNk +mjo +cvq +lZZ +gna +drl +xbG +pyI +qYp +vqm +xMH +tHM +evg +vUe +spp +spp +spp +qBA +spp +dEU +tZn +kgq +pSS +eYC +pSS +pSS +bRC +nKB +voA +jcR +tRU +siX +aMt +skC +lqk +maF +spO +bQf +lkY +lkY +fhm +hgr +eTk +gOb +cYQ +aCA +aCA +aCA +aCA +aCA +aCA +aCA +bmK +aCA +aCA +ulR +bol +svI +ujN +ofB +hXo +fDT +vQI +vQI +mnp +vQI +vQI +fDT +qSK +tQv +nlb +asg +hXo +hXo +tmt +gtg +pjh +nzL +lOo +iIz +eTc +bPn +onU +gLc +gLc +bYD +gLc +gLc +gLc +rhu +rhu +rhu +gLc +gLc +vQA +txq +soz +soz +soz +soz +soz +soz +soz +soz +nvJ +nvJ +nvJ +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(135,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +fKg +laN +laN +gLm +vKI +ulx +ulx +ulx +ulx +ulx +ulx +ulx +vKI +eHC +eHC +vPj +fKg +lyw +lyw +lyw +fKg +soz +soz +soz +fbb +soz +fKg +fKg +fKg +gLc +soz +loJ +qFa +abG +qnj +qlM +npF +xjt +bIZ +aLC +mbZ +duV +mbQ +abG +gLc +hcy +hcy +hcy +gLc +gfL +nIu +mCV +vmP +bAt +ust +pZm +mSL +gqa +ybq +gfL +aaW +jqV +vHK +jqK +mSc +eib +cuz +kix +iCM +oVo +eZo +faf +igK +aTg +hoF +cWE +vHK +eaD +avy +avy +pLR +hnf +wPf +kAu +xpq +xpq +lma +ctg +hMj +frF +nYF +bjc +oFo +owP +wKa +qxt +iuS +vLT +oBj +oiq +jMs +ehp +sTl +jUh +xjw +uLP +ixf +ckd +ogX +siX +mCm +skC +lqk +lqk +hgp +pwj +lCJ +mIr +sQU +oax +iGP +spO +eak +aCA +lME +ppn +smg +lqB +lqB +gwO +knl +bzQ +aCA +wTq +ocG +wkZ +dld +ofB +hXo +fDT +fDT +fDT +fDT +fDT +fDT +fDT +asg +rKq +asg +hsd +tTT +tTT +voQ +sxO +eUN +gbh +lOo +sVi +eTc +eTc +onU +gLc +gLc +bYD +gLc +rhu +rhu +rhu +rhu +rhu +rhu +gLc +vQA +dBf +soz +soz +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(136,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +fKg +fKg +mQV +mQV +mQV +vKI +vKI +vxm +vxm +vxm +vxm +vxm +vKI +vKI +mQV +mQV +mQV +fKg +xzO +cOY +qIh +fKg +fKg +fKg +fKg +fKg +fKg +fKg +mdm +fKg +fKg +gLc +gLc +qFa +kaj +kaj +tZy +dec +xWE +atk +bnS +qsb +uJv +kaj +kaj +soz +soz +wtk +soz +soz +fTM +xic +ngZ +xBA +hTp +bLb +vyk +cOj +pnQ +iHu +gfL +dvY +asR +vHK +pkq +eqs +eib +njQ +eib +jNv +hfl +imQ +vOu +pzK +lXm +pMo +lXm +lyc +kjK +mPh +dNE +vNX +iRR +bCf +qjF +mDm +dBE +bCf +ogN +dHb +cra +frF +cra +mYK +cra +uTT +hrs +ifG +cra +cra +okH +sTl +usk +jUh +sTl +fMM +hWI +odl +ckd +ogX +rrK +aMt +pOB +jQB +lqk +tvY +lqk +lqk +lqk +lqk +rZR +lqf +sDS +lqk +aCA +adR +mJi +xig +bOC +mJi +uBn +cZE +bFu +tnr +wTq +yjD +mBC +iyH +nTd +hXo +sqU +gXa +rjs +mlG +rjs +gXa +hXo +hXo +hXo +hXo +hXo +tTT +mAe +tmt +gKq +ajr +gwb +lOo +tgs +eTc +sNn +tqJ +gLc +gLc +lwQ +gLc +rhu +rhu +rhu +rhu +rhu +rhu +gLc +orn +kBb +soz +soz +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(137,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +fKg +qnW +mQV +mQV +mQV +vKI +kJm +vkC +gZY +xax +gZY +bFY +vOl +vKI +mQV +mQV +mQV +fKg +eZG +hJH +eiB +gYf +uSf +wsR +jGV +kfY +guQ +pay +lBc +pcy +fKg +gLc +gLc +qFa +soz +abG +eRC +qsb +qsb +fNK +qsb +qsb +hCh +abG +soz +soz +soz +soz +soz +soz +fTM +tMy +ngZ +aqQ +hTp +vEz +bnU +tSe +uWC +kdU +gfL +vnC +vnC +vHK +puV +cDl +uwh +dun +rhO +jNv +jnG +pbe +wXn +vrd +ftH +vIF +bBX +vHK +jxM +xXG +dsJ +tAn +iRR +hHN +sKP +rpa +diy +hHN +ogN +wWk +uzK +xsM +osC +wrC +cra +nYF +pxa +rjm +cra +snF +oiq +sTl +nmK +sTl +sTl +idx +sTl +aqB +pXE +jtF +tno +aMt +uuu +tCQ +gCT +rHB +nSm +igL +wzn +lqk +lqk +lqk +lqk +lqk +aCA +sxB +sxB +sxB +sxB +vUi +iFV +aHY +dfb +aCA +qCp +lDr +evn +iAI +uvO +uvO +uvO +uvO +rjs +jAB +rjs +hIu +asg +asg +asg +hIu +ojM +tTT +hIu +dpt +lOo +lOo +lOo +tqJ +tqJ +tqJ +tqJ +tqJ +iYY +iYY +gLc +wxu +pML +pML +pML +pML +pML +pML +pML +agv +soz +soz +soz +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(138,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +fKg +fKg +fKg +jLK +hJH +iqm +vKI +miV +hQA +wqJ +bvs +gMW +hQA +vIT +vKI +jLK +hJH +iqm +fKg +qIh +pIr +ddX +eiB +kmu +kHw +ngp +ngp +hJH +mww +eiB +pvF +fKg +gLc +gLc +loJ +soz +abG +mAo +dec +umo +chA +rYW +qsb +gtm +abG +gLc +gLc +gLc +gLc +gLc +gLc +fTM +kpW +ngZ +pKB +hTp +elt +nME +rHH +ozb +bFp +gfL +cJG +kBP +isF +isF +isF +isF +vHK +kAM +cjD +vHK +gcr +fhS +gxq +vHK +vHK +vHK +vHK +bCf +bCf +bCf +mPH +vHk +hHN +eCy +roZ +owu +hHN +dll +xEf +uzK +sUJ +dnN +nRp +cra +eFU +bdM +uTU +cra +aMt +wYo +idX +dqk +sTl +sTl +cBb +sTl +sTl +dHx +uFC +tuC +aMt +nSG +xTP +skC +skC +skC +skC +mzH +ogv +skC +gae +szU +tIW +aCA +fXd +pGm +pGm +goF +bEF +bEF +vpF +csY +tdG +jND +lDr +yjD +nEn +srR +ffo +rBV +uvO +iaP +rjs +yky +lyO +npv +lgx +sJo +asg +hXo +tTT +asg +hwM +xim +gQj +hXo +iYY +gjk +xbR +xbR +hXo +eBn +iYY +gLc +gLc +gLc +gLc +gLc +gLc +gLc +gLc +gLc +gLc +soz +soz +soz +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(139,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +fKg +mMU +wvm +syf +hJH +pSM +wha +kGh +hQA +fzv +stu +qTi +vNx +hJU +wha +syf +hJH +pSM +pNA +ltv +pke +mww +biU +gYf +xii +eiB +wsR +eiB +gYf +cOu +fKg +fKg +gLc +gLc +loJ +soz +kaj +kaj +vFg +kcj +oeq +tsb +peH +kaj +kaj +hIx +vSI +vSI +vSI +vSI +hIx +gfL +bit +uCC +iFz +dwW +aXS +aXS +aXS +aXS +dgw +gfL +vnC +isF +isF +tBy +vvr +qCz +isF +kuF +mXe +vHK +vHK +adS +vHK +vHK +bzA +hhH +xPg +qUO +uUl +uzK +qgm +dGa +uzK +xCl +ydn +xCl +uzK +jbS +cpM +uzK +dHp +mWy +bBm +ggp +qLE +jZC +pkb +mTy +tNg +sPB +mLr +okq +sTl +sTl +idx +sTl +sTl +siX +lbD +aMt +aMt +hnC +jHY +jHY +jHY +jHY +jHY +uRv +gCT +tCQ +xTP +skC +skC +hND +sFE +hls +mwP +lXd +wde +wde +tjj +nhZ +fNa +jFd +erg +dxk +hzr +bNA +xsI +wcI +uvO +gXa +hIu +pMi +cLw +lcT +cLw +sJo +asg +mAe +tTT +asg +uXY +hXo +xim +xim +iYY +nvg +hXo +gjk +rJQ +xbR +iYY +iYY +iYY +gLc +gLc +gLc +gLc +gLc +gLc +gLc +soz +soz +soz +nvJ +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(140,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +fKg +rnR +wvm +syf +hJH +pSM +wha +lJx +hQA +hQA +hQA +gMW +gMW +tis +wha +syf +hJH +pSM +pNA +eiB +gHz +aJr +aJr +aJr +aJr +aJr +rrO +aJr +eiB +biU +fKg +gLc +gLc +gLc +loJ +soz +soz +kaj +ctH +dec +dPN +qsb +uhg +kaj +nmu +ipA +tYM +tYM +tYM +toW +cGp +hRO +vtt +jOx +vtt +oNL +vtt +pCS +ekR +vtt +rRM +gfL +bjF +isF +tEi +axQ +ext +shb +tCr +ksJ +tYA +smS +rxe +tvL +rsc +sXX +cbD +cbD +cbD +cbD +cbD +rjW +sRP +pOr +swC +mqf +ifx +cev +uQb +yaE +vCe +bVj +lVa +tpN +eGw +ggp +pGO +ljb +kEs +cMP +tNg +nXK +pRV +ccm +sTl +sTl +idx +sTl +sTl +siX +vBX +aMt +kQs +hnC +jHY +roA +dwT +vHA +jHY +qHy +nSm +bPZ +gae +inm +skC +aCA +qsd +xKK +sXJ +fLb +pvV +pvV +sFE +csY +bRu +jND +jYs +yjD +rpv +xlU +mdr +gmC +uvO +hXo +hIu +juE +hIu +asg +asg +asg +hsd +hXo +tTT +hIu +hXo +qPq +hXo +niN +iYY +hXo +gCH +qNf +xbR +xbR +xbR +ccj +iYY +gLc +gLc +gLc +gLc +gLc +gLc +gLc +soz +soz +soz +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(141,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +fKg +pcy +hJH +vuM +gYf +eiB +xWp +mjT +flj +azy +lJx +kBg +bZR +hJU +iGk +pay +mcM +aXm +hJH +eiB +utc +aJr +elv +rrO +nSh +aJr +oXG +aJr +eiB +fKg +fKg +gLc +gLc +gLc +loJ +soz +soz +abG +dAv +agN +uGa +fnH +dAv +kaj +mXD +efO +viD +viD +viD +kCt +wjR +pqO +wrs +fFU +usj +vtt +vtp +blS +blS +gby +dnX +gfL +cJG +isF +pFL +hIo +kzV +oqi +mzN +wdj +lJu +idY +idY +idY +unX +idY +idY +idY +xdL +idY +idY +iDX +tQQ +omQ +omQ +omQ +gZL +omQ +uxy +omQ +omQ +xEQ +uxy +qtF +lsM +wMu +tey +xrI +mwn +nTz +wsw +bQt +cdh +ccm +sTl +sTl +idx +sTl +sTl +siX +iUe +aMt +hnC +jHY +jHY +aQc +xWZ +dsh +jHY +jHY +jHY +jHY +jHY +jHY +skC +aCA +kuu +sFE +sFE +sGZ +tnh +tnh +tnh +olu +aCA +kdH +kTi +tdR +gqL +uvO +qyp +fCQ +uvO +hXo +hXo +hXo +hXo +hXo +hXo +tTT +mEY +tTT +tTT +gXa +hXo +hhW +gQj +fJu +iYY +xbR +hXo +iYY +iYY +xbR +tkV +xbR +iYY +gLc +gLc +gLc +gLc +gLc +gLc +gLc +soz +soz +soz +nvJ +nvJ +nvJ +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(142,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +fKg +kaK +hJH +hJH +wsR +mww +iGk +rKI +rKI +iGk +tGm +iGk +rKI +rKI +iGk +hJH +jeR +mww +hJH +biU +rRJ +rrO +fye +aJr +sNa +rrO +iyf +aJr +eiB +lyw +gLc +gLc +gLc +gLc +loJ +soz +soz +abG +hov +qKT +kCs +jkg +hov +kaj +imC +efO +heq +heq +heq +heq +bVU +pTH +oLd +kEw +bTN +vtt +nwo +blS +blS +nZk +uvP +gfL +vnC +isF +xRw +tcL +pHf +kHj +tCr +rXC +vUt +eSR +dIG +kww +ehf +wZt +qCh +dIG +ebD +uZj +qCh +rqw +fEp +alq +mse +ePj +rHK +ePj +wJe +alq +alq +cxb +gXR +omQ +qdq +ggp +kjr +jWo +neY +nyS +pLB +krJ +hvp +vuZ +sTl +sTl +idx +yhL +vCz +umf +cTg +aMt +hnC +jHY +gms +ewh +lKk +tOJ +bcx +mpg +ruR +rgo +ohk +jHY +skC +aCA +jaJ +fNc +ujx +ujx +vBF +dJH +ruN +kHp +aCA +wsk +evv +yjD +kUp +kXo +dEY +uiY +ofB +ofB +ofB +ofB +ofB +ofB +ofB +mqx +hIu +hIu +gXa +hIu +xim +ufg +hXo +gQj +iYY +xbR +hXo +hXo +xbR +xbR +xbR +xbR +iYY +iYY +iYY +gLc +gLc +gLc +gLc +soz +soz +soz +soz +soz +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(143,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +fKg +qIh +fxR +nDa +gYf +eiB +oMd +eiB +wSP +eiB +wLW +wLW +mrA +pKq +pKq +wLW +wLW +pKq +qIh +eiB +lZU +aJr +mma +wIE +hSH +wIE +snr +rrO +mWl +lyw +gLc +gLc +gLc +gLc +loJ +soz +soz +abG +qVv +agN +qpr +fnH +bYn +kaj +rkT +efO +rGA +ihO +fBA +ulJ +hUX +pqO +nDz +uPC +iVB +vtt +phS +blS +blS +nBf +ngY +gfL +vnC +isF +isF +tCr +eBt +tCr +isF +uzK +fhr +uzK +pvl +mHn +cvg +uzK +rix +rXC +tca +anZ +gkz +atX +tRa +tRa +atX +hEA +kFt +fwb +atX +tRa +tRa +atX +oiF +omQ +qdq +ggp +aoz +uGK +xAA +utV +pLB +crS +tYD +tOS +sTl +sTl +idx +siX +aMt +aMt +aMt +aMt +jev +jHY +tLO +ewh +duU +tOJ +bqL +hFR +hFR +jQk +nSL +jHY +skC +aCA +hIi +prQ +iCX +gpW +gpW +dJH +ruN +fOM +aCA +hDu +eoz +yjD +hJE +lrX +leC +gsF +xbd +xDl +iZs +oIt +xHQ +rdC +ofB +kwB +hIu +hfd +hXo +asg +cDZ +hXo +xim +xim +iYY +hXo +hXo +hXo +xMy +tkV +jpm +aBo +xbR +tkV +iYY +gLc +gLc +gLc +gLc +soz +soz +soz +soz +soz +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(144,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +fKg +hJH +mww +mww +dpg +hJH +hJH +hJH +mNI +hJH +mww +mww +hJH +hJH +hyw +lIQ +jGV +wLW +sIk +aJr +aJr +aJr +uVm +uVm +aCJ +aGN +lbp +rrO +dTx +lyw +gLc +gLc +gLc +gLc +loJ +soz +soz +kaj +bsa +qsb +atk +qsb +fXi +cGW +gsM +efO +heq +heq +heq +heq +dyC +hRO +hRr +tOB +hRr +wyr +hRr +taY +cEs +hRr +lXw +gTZ +mmk +sxl +isF +dFL +sbn +caS +isF +rYv +lJC +svy +wkv +hQh +wkv +svy +svy +wkv +vOe +wkv +svy +atX +dAK +nOL +oKC +lVH +pSs +voZ +jnA +iuW +gwk +atX +yca +omQ +qdq +ggp +ayg +wQm +gww +fzj +pLB +wDj +uFC +etM +uWe +sTl +idx +siX +aMt +eBq +uiR +tAf +qLj +aQY +jDF +vsa +bqL +bqL +bqL +hFR +hFR +jQk +ngX +jHY +vNt +muS +muS +aCA +aCA +muS +aCA +aCA +aCA +aCA +aCA +bKE +huy +yjD +vFy +gTW +wcn +uSU +xbd +hLj +kUJ +jQT +ukp +paz +ofB +tTT +eSx +hXo +hXo +asg +aRD +niN +hXo +hXo +iYY +eBn +xbR +xbR +gjk +xbR +xbR +kDA +wiN +xbR +iYY +gLc +gLc +gLc +soz +soz +soz +soz +soz +soz +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(145,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +fKg +iPw +ajW +sbo +kHw +mww +pcQ +jGV +gYf +cOu +gYf +eiB +ees +mww +lCV +hzU +qIh +uHf +mww +aJr +jBP +hya +eta +uVm +fVs +lpD +wIE +rrO +ixn +fKg +fKg +fKg +fKg +gLc +clb +soz +uhZ +kaj +kaj +gBt +oxW +guv +kaj +kaj +hIx +sLK +hmS +iWE +eMC +iWE +jFk +hRO +htE +lcG +ihs +cAJ +qcE +kOx +kOx +fMs +ohy +gTZ +nhW +iEU +isF +kOg +srx +rkK +isF +sGt +ijJ +svy +jwY +yal +xwP +uUd +xWL +qao +fuM +rYU +fFE +atX +uRL +fnj +hxm +bLY +dbX +oXV +nJi +qfY +mKs +atX +gAC +uxy +ewB +pVw +pVw +pVw +pVw +pVw +qpN +qpN +qpN +qpN +xNT +uFC +vxa +umf +aMt +hDz +jFt +xjl +cFz +aQY +dsQ +dRf +bwO +qoe +leE +vYX +vYX +hSq +kwi +jHY +vVB +xpA +qwm +sbR +jvn +xcN +sbR +rCX +iFJ +qts +ohB +lDr +lDr +yjD +hBJ +yjD +yjD +kba +piZ +yjD +yjD +yjD +yjD +yjD +aIv +tTT +aUL +nRC +hXo +hsd +hsd +hIu +wZm +hIu +iYY +hXo +hXo +iYY +iYY +xbR +oLh +xbR +ryl +qPH +iYY +gLc +soz +soz +soz +soz +soz +soz +soz +nvJ +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(146,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +fKg +fKg +fKg +lEz +kRr +bbF +hJH +jVd +mcM +eiB +mww +dTL +hJH +fbR +hJH +pcQ +mpy +uLD +xeE +pcy +aJr +uyr +fcz +rss +jQn +yfV +cDj +ulM +aJr +qIh +eiB +ayU +qIh +uhZ +uhZ +oJc +uhZ +uhZ +vNE +kaj +hAa +vcL +rtR +kaj +vNE +hIx +hiD +ljN +dGe +rFV +aYS +jXK +hRO +nGn +gns +sdM +klB +nZt +gvN +nly +nly +mzp +gTZ +nLl +qXz +isF +vyF +bEc +rxo +isF +ebK +reo +svy +iUs +nzH +xwP +uUd +rtZ +qao +pbJ +emk +tVt +vEr +wyn +bMW +sHt +jpC +jKw +mIn +nvK +lco +wDM +tRa +gBg +uxy +qdq +xcL +jPe +ktZ +yic +gdK +hmB +glW +rqK +qpN +aMt +hbc +aMt +aMt +aMt +wlm +jFt +xwa +jul +aQY +sBW +bqL +bqL +yio +sGF +hFR +vYX +jHY +jHY +jHY +vVB +psl +sDX +pSu +ukR +ukR +pSu +hBC +hMr +epI +ofB +ofB +hZH +fEM +dny +ceN +blD +hBm +xbd +dJD +iOL +dJD +hfM +kba +ofB +hXo +hXo +hXo +hXo +gXa +hXo +hXo +hXo +ojM +iYY +hXo +hXo +gjk +xbR +xbR +xbR +tOP +wiN +xbR +iYY +soz +soz +soz +soz +soz +soz +soz +soz +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(147,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +vAE +qIh +ebg +ovj +sbo +wsR +cBq +biU +eiB +ees +hJH +dTx +hJH +kcv +biU +gYf +eiB +eiB +pKq +qIh +aJr +rrO +rrO +aJr +aJr +rrO +yaH +aJr +aJr +qPM +hJH +mww +tkL +uhZ +iMx +tWm +exA +uhZ +tNZ +tKJ +jDs +mGl +jDs +xSk +kZs +hIx +rmT +yiI +bJJ +ies +mkf +exc +hRO +wlJ +geH +iMq +sLv +nPE +vvT +qSe +nmQ +hdU +gTZ +czG +kfS +isF +isF +isF +isF +isF +iev +wyR +svy +qrw +nzH +mfj +uUd +lNF +dhf +wYV +vDX +qao +rmp +vBn +sHt +sHt +cHo +kwM +eOk +nvK +nvK +jac +nIx +nec +guj +pue +inu +aXx +vxL +pwt +cgV +ngl +ryi +piw +aHJ +sZz +gdx +cyv +aQY +aQY +cLt +bBo +cLt +aQY +aQY +jHY +hMz +bqL +bqL +jHY +hFR +vYX +laT +dLs +fOk +ukR +qcU +ukR +sbR +jvn +jvn +psl +qts +rLm +qts +qts +ofB +lCT +lDr +kUp +lDr +obm +lDr +xbd +deB +nQB +lDs +fbB +kba +ofB +vOk +sCm +sCm +sCm +sCm +sCm +qXk +hXo +hXo +iYY +xMy +nvg +hXo +hXo +hfi +xbR +tkV +xbR +xbR +iYY +soz +soz +soz +soz +soz +soz +soz +soz +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(148,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +fKg +fKg +fKg +fKg +fKg +fKg +fKg +lFL +lFL +lFL +hJH +cGV +mww +hJH +hJH +dTx +mww +mww +rHG +mgz +ygf +dRQ +dRQ +mSk +dRQ +pus +dRQ +dRQ +dRQ +mgz +hJH +joK +eiB +uhZ +mtc +tWm +nUJ +svH +xWT +gXw +cMC +kmi +jER +qtk +bVL +hIx +hRO +fZc +hRO +fpt +ifj +gFG +hIx +gTZ +fUa +gTZ +gTZ +aOC +toE +uvY +iZC +gTZ +gTZ +apx +akf +teo +dtD +qYf +hkZ +kLm +jDQ +dtD +svy +sKI +nzH +xwP +uUd +fcb +qao +cPW +qao +tnz +vEr +pdp +hDR +sHt +sHt +fTD +sHt +sHt +gKQ +fNF +tRa +gBg +ved +qdq +xcL +tFj +lML +tFj +pVw +tFj +gni +tFj +pVw +vzh +bzY +vzh +aQY +gcX +kRp +oRw +ohd +eEJ +uwy +aQY +jsj +diE +jsj +aQY +xIX +vYX +pUQ +pUQ +pUQ +osg +psl +hTb +sbR +sbR +eDq +psl +sHo +sHo +qts +qts +ofB +gZu +kft +gQU +qJb +fMW +viz +ofB +xbd +xbd +nOt +nOt +doY +ofB +szm +sCm +dDy +wJx +vbT +sCm +sCm +hXo +hXo +iYY +jpm +hXo +xbR +xMy +tkV +xbR +iYY +iYY +iYY +iYY +soz +soz +soz +soz +soz +soz +soz +soz +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(149,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ajM +exN +exN +exN +exN +vJz +iUc +gOA +gOA +gOA +cIM +xmB +lNk +lNk +hJH +sdO +aXm +mNI +qIh +fKg +fKg +lyw +lyw +lyw +lyw +lyw +fKg +fKg +hyw +azz +iTr +dRQ +ctL +uhZ +iMx +tWm +nty +uhZ +bcH +yaB +iiw +ful +eDV +nFC +kZs +hIx +rTb +iWw +lzW +ihH +jun +toc +hIx +tKH +aHh +eRP +gTZ +bQg +vUA +pAU +xIL +gTZ +ads +cRo +fnl +pxB +nVf +wIg +fZW +xVe +cqK +lII +svy +iaa +nzH +xwP +uUd +sXo +aoO +hYV +dcr +cYY +atX +kgr +xoL +gIV +gIV +fXh +lpo +oym +xzG +qhl +atX +hTf +ved +ilT +pVw +ogu +nCB +lSd +bnZ +oxz +dBC +sZB +pVw +aEa +fWk +iUQ +kfe +tlC +nOO +ibL +wKx +pSd +qoV +aQY +npE +jpY +hBc +jsj +hFR +vYX +pUQ +gUG +rId +osg +sbR +ukR +ukR +psl +qRS +eDq +qpC +sHo +eSo +qts +ofB +ofB +nqG +tIM +kdC +waF +nqG +lLn +aLh +sEs +rno +nws +pnK +sGk +szm +svc +qvB +aHO +vbT +vCp +vPy +kSr +hXo +iYY +aTP +eBn +iYY +iYY +xbR +xbR +iYY +soz +soz +soz +soz +soz +soz +soz +soz +soz +soz +soz +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(150,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ajM +exN +exN +exN +exN +exN +hJH +hJH +hJH +hJH +cIM +faz +lNk +bUA +hJH +cKy +rDV +fKg +fKg +fKg +soz +soz +soz +soz +soz +soz +soz +fKg +fKg +fKg +cDs +dJt +tdA +uhZ +uhZ +oRu +uhZ +uhZ +uhZ +uhZ +uhZ +pYo +uhZ +uhZ +uhZ +hIx +nUl +iWw +tiy +oEl +peD +udt +hIx +wDc +ozh +geH +dQD +cZh +jxF +qFV +cox +gTZ +kwR +dvY +kwR +rLH +dtD +eUq +oTa +aXq +boB +bmu +svy +svy +rTL +svy +svy +svy +svy +fdz +svy +svy +atX +iRZ +coz +uSj +uOx +nRJ +cMh +omF +nmT +bpj +atX +evr +ved +ptq +pVw +vGH +wmh +pQu +aSt +aXk +wmh +nWC +pVw +qDc +tvL +dIS +kfe +kTc +jGS +iXR +chU +pSd +xOw +oJJ +hTY +cIn +lbP +jsj +rlK +rvl +udr +jBZ +dhT +osg +psl +sob +iZc +psl +sbR +sbR +jxj +pPJ +gDq +qts +pLg +swi +vvR +kVJ +fjW +xMP +xNA +pvU +sMY +sMY +rGl +pnK +pnK +oqM +cpq +weZ +neG +neG +neG +cJH +szm +iYY +rlY +iYY +hXo +hXo +aBo +hXo +hXo +hXo +iYY +soz +soz +soz +soz +soz +soz +soz +soz +soz +soz +soz +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(151,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ajM +exN +exN +exN +exN +exN +ulc +cNj +cNj +cNj +cIM +hNu +jfV +jfV +ygY +fwU +xqo +fKg +soz +soz +soz +soz +soz +soz +soz +soz +soz +soz +rCS +fKg +fKg +nss +ctL +dRQ +qFt +qIh +uhZ +uhZ +qZv +gGy +slX +tkb +wFh +gGy +qZv +hIx +iAZ +bpA +hRO +pFt +pTj +alH +hIx +lRF +acT +aHh +gTZ +fNZ +xdl +sKx +bqS +gTZ +feZ +vMU +kwR +noB +vzh +fRi +faR +aXq +iYg +ifp +vzh +mCE +lXy +wHA +vzh +eKZ +uhD +nzm +ebF +kVc +atX +atX +atX +atX +tRa +aWr +tRa +atX +atX +atX +atX +cvB +ved +qdq +pVw +cyz +wmh +aXk +aSt +pQu +wmh +kVa +pVw +sJA +nGK +mHp +kfe +tHA +ttJ +nIV +vuW +fIk +fVz +aQY +bMK +lUV +hCI +jsj +vZi +vYX +pUQ +oSf +cUY +pUQ +psl +ukR +ukR +psl +gRh +psl +psl +lww +gDq +ryB +pLg +oHI +nqG +tIM +cSF +waF +nqG +tWb +wMa +jZA +rno +tXj +kuM +qYb +szm +uOA +rDv +rDv +rDv +hNk +szm +ndS +hXo +iYY +gjk +hXo +xbR +hXo +hXo +tda +iYY +soz +soz +soz +soz +soz +soz +soz +soz +soz +soz +soz +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(152,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +fKg +fKg +fKg +fKg +fKg +fKg +fKg +lyK +lyK +lyK +sKk +rbE +jfV +wpv +ikG +kqU +jfV +soz +soz +soz +eXk +asL +asL +eXk +eXk +asL +asL +soz +soz +soz +lyw +tzm +eiB +hJH +hgv +mgz +uhZ +uhZ +qZv +uhZ +uhZ +uhK +uhZ +uhZ +qZv +hIx +hIx +hIx +hIx +hIx +hIx +hIx +hIx +jSs +kij +iXv +gTZ +gTZ +gTZ +gTZ +gTZ +gTZ +gTZ +mOu +aaW +qyt +yjY +ijy +vzh +aXq +dtD +pAA +tSI +jRR +rBh +xiO +rlt +lXy +uhD +ljx +ebF +mvo +qWK +vTH +bYH +fta +jLv +qux +kGx +hUg +vOB +wrc +vOB +xul +qaQ +mlb +pVw +lYW +lYW +lYW +pVw +gyd +gyd +gyd +pVw +quO +nGK +mHp +kfe +kfe +kfe +aQY +kfe +jrg +oXE +aQY +jsj +pDD +jsj +aQY +aBK +vYX +pUQ +pUQ +pUQ +pUQ +sbR +ukR +nGJ +sbR +kIz +xeZ +sbR +sbR +sHo +gVE +pLg +sKv +nqG +txg +qmn +dlq +vir +eoj +wMa +hHR +lLn +eQK +eQK +eQK +szm +vcG +vcG +vcG +vcG +vcG +szm +iYY +gvv +iYY +xbR +xbR +xMy +gCH +xbR +xbR +iYY +soz +soz +soz +soz +soz +soz +soz +soz +nvJ +nvJ +nvJ +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(153,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ajM +exN +exN +exN +exN +vJz +iUc +gOA +gOA +gOA +cIM +acY +ygY +qym +lTQ +xHU +jfV +soz +soz +gLc +asL +eXk +asL +eXk +asL +eXk +eXk +gLc +soz +soz +lyw +avP +pay +mww +pqZ +qtS +uhZ +uhZ +uhZ +uhZ +rcW +vur +rcU +uhZ +uhZ +uhZ +xSc +yig +nNn +tzl +iwt +lqM +xbB +eHr +bEl +rOM +wpl +xMY +xDy +fbC +vXY +fbC +gTZ +xLw +ocu +eZH +fLY +lVC +dtD +viS +cJA +mRu +vzh +sjW +kjN +oTa +dtD +ckQ +uhD +vxk +kPK +pZl +qWK +aHV +hiP +bDr +eau +ewI +eDi +hUg +ksJ +tvL +cMK +fJF +cnk +fVn +oLt +mbt +mbt +uCR +tcp +uCR +elE +iiq +pqX +vNe +nGK +dPQ +tvL +tvL +tvL +oBS +tvL +lzT +cwA +jHY +fRs +xOl +pDr +jHY +vZi +vYX +pUQ +wEG +rId +pUQ +sbR +wCN +ukR +jAS +vmz +icJ +qcb +psl +khb +pLg +pLg +wUK +nqG +elb +scR +elb +vir +qfl +jFL +oyb +eQK +ulx +ulx +czg +ulx +ulx +ulx +czg +ulx +ulx +ulx +iYY +mWQ +iYY +iYY +iYY +iYY +iYY +iYY +iYY +iYY +soz +soz +soz +soz +soz +soz +soz +nvJ +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +kYx +kYx +aVs +aVs +fZI +fZI +fZI +fZI +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(154,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ajM +exN +exN +exN +exN +exN +hJH +hJH +hJH +hJH +gtU +jfV +eGY +eKo +mPL +xqo +xqo +soz +soz +gLc +gLc +gLc +gLc +jGm +gLc +gLc +gLc +gLc +soz +soz +fKg +fKg +yjr +hJH +cDs +ctL +uhZ +naJ +rzA +nOE +vts +iyR +nFF +jCK +dTz +uhZ +jzw +tmU +ijy +gkd +sue +uyi +xbB +ejG +bEl +qsN +gTZ +vxQ +cZS +fbC +fbC +fbC +gTZ +oYZ +oYZ +cZp +cZp +cPk +cZp +uJT +cZp +oYZ +vzh +lCH +vzh +vzh +vzh +rlt +uhD +mmL +abk +kPK +uZU +reW +nGc +bDr +xzA +riS +aOJ +kyS +vVs +fxf +lXg +bqx +iac +cnk +tsh +ved +ved +ved +dTH +ved +owS +tVH +vJa +vJa +key +vJa +vJa +vJa +vJa +eyN +eyN +kYB +fJK +eBW +qWU +ctk +ctk +boA +foT +hFJ +hWC +jBZ +dhT +pUQ +sbR +sob +ukR +sbR +icJ +vje +kIz +lqU +tiN +jOo +lqU +ooo +nqG +iwo +iwo +iwo +nqG +lLn +iQl +lpR +eQK +hmD +dtl +dtl +dtl +tlN +dtl +dtl +dtl +dEi +czg +nvJ +mWQ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +soz +soz +soz +soz +nvJ +nvJ +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +mwD +qSM +kYx +ehz +ePO +aVs +kYx +qSM +aVs +aVs +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(155,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ajM +exN +exN +exN +exN +exN +ulc +cNj +cNj +cNj +hxE +jfV +rWP +gmU +bgx +xqo +soz +soz +eXk +eXk +asL +eXk +eXk +jGm +asL +asL +asL +eXk +eXk +soz +soz +fKg +eiB +hJH +mww +xVI +uhZ +jTY +vhb +vfZ +vqS +ske +bgS +ciM +vhb +uhZ +fCZ +gkd +aTj +gys +gkd +dFy +xbB +mqs +xuo +gwX +gTZ +ges +wvk +wqq +wqq +akg +gTZ +jMO +xPz +aQO +frA +mNd +qSS +qpa +iYJ +yhM +gqV +ifp +pbB +vzh +qir +rHV +uhD +she +kPK +gVw +qWK +aHV +hiP +bDr +iIk +sUV +eDi +hUg +rXC +qCh +iNy +uTQ +gJd +kzd +oOt +alq +alq +ajB +msV +wlY +tZV +vTN +aJc +qCh +qCh +qCh +qCh +qCh +fxT +cRa +iSa +yhS +sgw +jHY +tAw +svd +dae +jHY +rlK +iLx +pUQ +oSf +cUY +pUQ +psl +sKW +ukR +sbR +vmz +vAi +psl +lqU +hkN +oZd +rTH +sus +ulx +ulx +ulx +ulx +ulx +lLn +cLr +eQK +lLn +eQK +eQK +eQK +lLn +bTG +iZl +wfG +iZl +gHy +ulx +cpE +ilE +cpE +soz +cpE +soz +cpE +soz +cpE +soz +nvJ +pRh +nvJ +pRh +nvJ +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +mwD +czg +czg +czg +czg +czg +kYx +kYx +iDC +rNn +xRV +fih +bcl +aVs +foC +aVo +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(156,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +fKg +lyw +lyw +fKg +fKg +fKg +fKg +lyK +lyK +lyK +lAE +jfV +axW +kDP +xqo +xqo +xqo +soz +asL +eXk +eXk +asL +asL +jGm +eXk +asL +asL +asL +eXk +soz +soz +fKg +mgz +mgz +dRQ +lJq +uhZ +uhZ +nPM +uhZ +uhZ +bug +uhZ +uhZ +nPM +uhZ +mlN +skJ +kMJ +oQG +tsr +bgp +xbB +njc +azu +ceb +gTZ +dNQ +poY +lqa +qeS +vQT +gTZ +goM +ojU +qOK +bWQ +gta +dNp +xiB +gJl +yhM +lgc +mXq +sxd +dtD +lXy +hPv +uhD +nEW +eQF +wsG +qWK +aPM +seT +vHM +oiL +svg +riX +hUg +rNG +wrc +uzm +iYV +onc +eUo +bkM +ohK +ohK +ohK +bkM +wEX +ayf +mDP +bcQ +mzR +uOQ +cHF +qCS +mzR +bcQ +bcQ +lpf +iiC +lpf +jHY +jHY +jHY +jHY +jHY +xsk +iLx +pUQ +pUQ +pUQ +pUQ +psl +qwm +ukR +psl +mLX +oCw +sbR +qic +ukK +ukK +fJT +sus +ulx +ulx +ulx +ulx +ulx +lLn +jgT +hdL +sFo +qLn +eag +nGo +iuP +bTG +iZl +dwJ +iZl +gHy +ulx +jmM +qiR +weU +qiR +weU +qiR +weU +qiR +weU +qiR +weU +qiR +weU +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +fZI +fZI +ulx +ulx +fZI +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +tdr +jtJ +csh +fch +wsU +lRz +wQf +foC +foC +aVo +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(157,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +fKg +fKg +lyK +lyK +lyK +lyK +lyK +spD +hNu +hNu +hNu +lNk +jfV +eXf +ogD +cKI +wjw +oox +mQV +mQV +mQV +mQV +mQV +mQV +kQH +mQV +mQV +mQV +mQV +mQV +soz +soz +fKg +vTd +pyy +ngp +ngp +uhZ +ozJ +uQq +vPz +lMO +cAj +gGr +qit +vhb +uhZ +vzh +tBI +vzh +vzh +vzh +vzh +xbB +gTZ +gTZ +gTZ +gTZ +jRI +jRI +hwp +jRI +jRI +gTZ +dGy +vTm +nwg +eYX +qyx +ciR +hMw +jlU +yhM +hXK +kEI +cMq +vzh +dkz +nHw +nHw +nHw +nHw +nHw +nHw +nHw +nHw +nHw +nHw +wEY +fnT +qWK +qWK +qWK +uzK +iJY +mwt +mHp +jyo +vuT +aLu +kst +bkM +nGK +edU +lqG +eqZ +rRi +glk +clI +cGz +eab +uwr +bcQ +mbS +fQH +rrB +jHY +moM +jzg +jzg +wIM +rlK +iLx +pUQ +gAt +rId +pUQ +sbR +aXa +jCJ +psl +aOI +buD +psl +nNt +ukK +ukK +iki +sus +ulx +ulx +ulx +ulx +ulx +lLn +lLn +lLn +lLn +eQK +eQK +eQK +lLn +bTG +iZl +wfG +iZl +gHy +ulx +cpE +hNU +cpE +soz +cpE +soz +cpE +soz +cpE +soz +nvJ +pRh +nvJ +pRh +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +mwD +czg +czg +czg +czg +czg +kYx +kYx +raP +vCi +tag +mza +nCF +aVs +foC +aVo +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(158,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +fKg +fKg +lyw +lyw +fKg +fKg +fKg +fKg +lyK +lyK +lyK +xTT +jfV +vVo +xhm +xqo +xqo +xqo +soz +eXk +asL +asL +uig +eXk +jGm +asL +eXk +eXk +asL +asL +soz +soz +fKg +uks +eiB +mcM +ddX +uhZ +lMx +uQq +siP +dLK +pUg +dhs +hyt +vhb +uhZ +mdx +gVz +qow +vzh +eqP +kwE +ghL +iXt +iOK +iEF +gTZ +jRI +xfe +hNq +yge +jRI +gTZ +ijk +ekg +vIg +gvO +bHx +xyT +mpR +cfP +yhM +xIB +tAR +jFj +vzh +biv +nHw +unq +gai +pKU +ryt +dFK +vqq +vqq +vqq +lNi +nNB +fem +hTD +hTD +iOb +gzR +tph +umg +iFP +eJh +gYt +lwy +cJd +bkM +orB +jVz +ior +pxd +mUH +mUH +eGS +dhI +obj +aoT +bcQ +oif +rkp +hbo +jHY +iZW +dHA +tyV +djW +rlK +hFJ +xxW +jBZ +dhT +pUQ +sbR +qwm +dqq +jHG +hck +jHG +jHG +jHG +ukK +ukK +deT +ooo +kta +kta +wzz +kta +nNk +lLn +nvJ +nvJ +nvJ +lkC +lBe +lBe +lBe +mVd +lBe +lBe +lBe +jKz +czg +nvJ +mWQ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +iqz +qSM +kYx +oBl +eQj +aVs +kYx +qSM +aVs +aVs +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(159,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ajM +exN +exN +exN +exN +exN +vJz +iUc +gOA +gOA +gOA +hxE +jfV +oaI +cUJ +xcb +xqo +soz +soz +asL +eXk +eXk +uig +eXk +jGm +uig +asL +eXk +eXk +asL +soz +soz +fKg +dRQ +tiU +nCS +pcy +uhZ +bJF +uQq +rOy +eOw +vzW +kxk +aFD +vhb +uhZ +rOD +uJF +hrN +vzh +omu +hLk +vdU +arj +lKb +vQQ +gTZ +jRI +ryu +vVT +jad +jRI +gTZ +oYZ +yhM +yhM +yhM +cZp +oYZ +ydV +cZp +cZp +pGT +igM +vzh +vzh +aBN +nHw +rAY +aoR +pnA +ikb +oQY +oQY +puL +oQY +pFi +hTD +glz +gVu +fmw +nhO +uzK +xrk +iEx +mEv +bkM +oqc +uhI +okA +bkM +wOB +oHA +wOB +lAU +uBA +dbM +hKC +bBC +hKC +eho +bcQ +nzo +jUx +uTN +jHY +lgV +iGr +iGr +wIM +rlK +vRe +pUQ +oSf +cUY +pUQ +psl +ukR +eBm +com +ptL +baw +fmI +jHG +nyk +izm +jaM +uvl +xzh +xam +kzr +wcw +gcg +czg +ulx +czg +ulx +ulx +ulx +czg +ulx +ulx +ulx +czg +ulx +ulx +ulx +kta +mWQ +kta +soz +soz +soz +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +kYx +kYx +aVs +aVs +fZI +fZI +fZI +fZI +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(160,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ajM +exN +exN +exN +exN +exN +exN +hJH +hJH +hJH +hJH +vyU +jfV +dgl +ofy +gYl +xqo +xqo +soz +soz +gLc +gLc +gLc +gLc +jGm +gLc +gLc +gLc +gLc +soz +soz +fKg +fKg +pus +pIr +mNI +qrm +uhZ +bjE +uQC +lYV +iUS +jNU +cab +bpn +rXy +uhZ +mTZ +skJ +lYY +vzh +hJf +amv +mcu +jbv +uPL +iJe +gTZ +jRI +jRI +jRI +jRI +jRI +gTZ +sWk +chF +qtn +ijy +qTG +oZv +pIs +oma +dJG +gDy +mXq +vzh +kwh +kfv +nHw +wub +oBP +fpz +eZE +sFJ +xgg +ghj +ivs +lNi +bvJ +sBZ +aMc +wdc +vpY +uzK +cLN +ved +juW +bAc +xTA +vaW +uFm +tRS +hCP +nEc +jrU +bcQ +ybu +dbM +cFT +uAq +mJc +bcQ +bcQ +lpf +wOR +dte +jHY +jHY +jHY +jHY +jHY +shP +jHY +pUQ +pUQ +pUQ +pUQ +sbR +hTb +psl +com +kEv +cPa +ghq +jHG +rIM +iBr +bPN +tiN +uJQ +kta +kta +kta +kta +kta +naD +naD +naD +naD +naD +naD +naD +naD +naD +naD +naD +naD +kta +kta +rUA +kta +kta +kta +kta +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(161,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ajM +exN +exN +exN +exN +exN +exN +ulc +cNj +cNj +cNj +hxE +ygY +ygY +eVS +gSQ +gOl +jfV +soz +soz +gLc +uig +eXk +eXk +uig +asL +eXk +eXk +gLc +soz +soz +lyw +neJ +smC +qIh +qIh +pay +uhZ +uhZ +uhZ +uhZ +uhZ +uhZ +gdH +uhZ +uhZ +uhZ +vzh +boK +vzh +vzh +ujU +ujU +ujU +ujU +yjE +ivN +gTZ +gTZ +gTZ +gTZ +gTZ +gTZ +gTZ +sOh +mtR +nEr +pWn +mQc +wie +wie +rki +xhE +xhE +fsJ +dtD +jVw +xiO +nHw +bdH +fYW +bxk +xfl +nHw +nHw +nHw +rbs +rbs +cEN +wzh +rbs +rbs +rbs +rbs +cLN +owS +qWR +bkM +jaZ +feb +kMb +tRS +oVJ +dbM +dbM +fNj +dbM +dbM +lXQ +sdE +aXW +bcQ +dpS +jhU +psu +kME +mWm +xZi +jhU +jhU +aDi +lUf +uBf +dIj +mlH +aYj +cob +cLR +kPf +kPf +qzz +gyV +gyV +rjO +jHG +xrT +jeH +fLl +tiN +xxS +wuW +tzf +fYz +tzf +dpl +jVg +jVg +jCY +mJr +yau +oAc +kbi +iax +aWh +fwj +duA +hXr +aqy +rDS +aqy +rDS +aqy +tvm +bqk +bIU +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +fZI +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(162,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +fKg +fKg +fKg +fKg +fKg +fKg +fKg +fKg +lyK +lyK +lyK +rts +hNu +jfV +xdH +gSQ +gSQ +jfV +soz +soz +soz +eXk +asL +asL +eXk +eXk +eXk +asL +soz +soz +soz +lyw +ctL +mww +hJH +qWT +mww +uhZ +uhZ +uhZ +uhZ +xvI +ePU +cab +uhZ +uhZ +uhZ +bqb +vRt +jay +rQn +sYO +cGd +rlt +eeS +sIL +unF +nuZ +xIQ +eMi +toe +teO +gbv +xIQ +xIQ +vyd +xpr +elY +vzh +dtD +sJT +vzh +vzh +dyh +qZD +dtD +ili +lXy +rTL +cKT +oBP +fpz +skT +nHw +flL +buV +rbs +jUS +xIw +nVU +cEN +rZu +lKQ +biN +cLN +owS +mHp +jcB +qfm +rMM +qMu +tRS +tfh +iUv +ttI +rEb +nrv +izM +xCf +eeW +sEy +bcQ +kPf +sbR +psl +kKQ +sbR +cLR +cXH +gtJ +iQD +uHQ +qHh +gtJ +sbR +aYj +gUp +iOG +ydH +sVh +giS +ewc +mFi +bkA +rCA +tEA +qzi +qzi +tiN +gAJ +xxS +bBU +xxS +bBU +xxS +jVg +wnq +mJr +mJr +myL +vcW +vbk +ooi +mMz +rHv +itZ +gIR +kqY +kta +poK +kta +lQX +tvm +bqk +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(163,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ajM +exN +exN +exN +exN +exN +vJz +iUc +gOA +gOA +gOA +hxE +hNu +jfV +jfV +ygY +bWZ +xqo +fKg +soz +soz +soz +soz +soz +soz +soz +soz +soz +soz +soz +fKg +fKg +dRQ +bHp +ncD +qIh +guQ +vby +eiB +uhZ +uhZ +muu +lJn +req +uhZ +uhZ +sZz +gOw +jyr +uDb +uEV +jlc +yaZ +oIq +kwF +rvs +tHs +kzn +xIQ +hKj +pLk +alQ +eAR +rFv +flD +rEH +rlt +hTh +vzh +lve +svn +eJV +dtD +dIb +vzh +vzh +mPf +lXy +nHw +jjS +vxX +fpz +cKT +nZP +kCB +thq +rbs +jiU +ewa +nVU +cEN +lKN +sik +pLa +cLN +owS +mHp +ajI +jwF +mGQ +qsG +tRS +gFO +mbk +mvO +rEb +iTg +dLv +xCt +fqV +pkB +bcQ +nsH +sbR +eHA +fOk +vVB +qlu +juo +uHQ +nVa +fGV +uCr +uHQ +sIS +kgc +hkv +sbR +ydH +jlS +jHG +jHG +jHG +vkr +jHG +bLt +wQN +kyG +tiN +oFl +oFl +tzf +kzr +tzf +xxS +jVg +sKy +myL +wrz +mJr +cSf +kLR +sdx +kbi +kbi +dRZ +oIp +aqy +kta +kta +kta +cxZ +cxZ +kta +kta +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(164,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ajM +exN +exN +exN +exN +exN +exN +hJH +hJH +hJH +hJH +hxE +tVh +lNk +sjs +hJH +jUj +sxp +fKg +fKg +fKg +soz +soz +soz +soz +soz +soz +soz +fKg +fKg +fKg +eIT +dRQ +cva +eiB +xxQ +mww +qYs +qPM +uhZ +uhZ +nhj +sZu +tEr +uhZ +uhZ +pIs +ikp +wMd +ncV +xbB +ncV +ncV +xbB +ncV +ncV +xbB +mjZ +vyd +wql +mdY +qbt +cmf +ufd +cHh +rEH +rlt +pxt +dtD +mwh +luq +iZx +vzh +lXy +oer +geQ +geQ +geQ +nHw +qrc +vfe +wcl +mwE +nHw +mSZ +lXk +rbs +tXk +oTr +dXJ +vkt +qWG +ezo +wVW +pKZ +owS +mHp +bkM +bkM +bkM +bkM +tRS +atm +uvj +kFv +bcQ +bcQ +bcQ +bcQ +bcQ +bcQ +bcQ +kPf +sbR +sbR +qRS +fsY +gtJ +gtJ +uHQ +jTl +nTf +gbI +gtJ +gtJ +gtJ +jhF +kgc +ydH +iOG +hyz +jjy +mLR +iWz +mLR +ooo +ooo +ooo +ooo +kta +kta +kta +kta +kta +sqy +hXr +jCY +yau +mJr +mJr +qCE +otv +mSe +fwj +aWh +fwj +gIR +aqy +kkI +uaV +oON +oON +oON +bqk +hMF +eMh +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(165,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ajM +exN +exN +exN +exN +exN +exN +ulc +cNj +cNj +cNj +cIM +vkM +lNk +isY +mww +wAe +cVS +pFA +rUd +tnm +tnm +hfN +hfN +hfN +hfN +hfN +tnm +tnm +bPe +hJH +eKf +rHT +esg +ugo +mww +mww +hJH +aQa +uhZ +uhZ +uhZ +uhZ +uhZ +uhZ +uhZ +vhq +xbB +lcu +lcu +xbB +lcu +lcu +xbB +lcu +lcu +xbB +wLV +vyd +nPT +rtq +iLG +aiG +gXV +paW +rEH +kIi +aDY +dtD +jtt +wQS +ktB +vzh +dVP +wZx +iMb +hLY +cbF +nHw +nHw +nHw +nHw +nHw +rbs +rbs +rbs +rbs +rbs +aGE +tXQ +cEN +rAE +ezp +svt +cLN +owS +xRO +kQo +uzV +oZu +gCd +pme +rEb +bcc +rEb +bcQ +jub +lge +lYi +iGu +pdD +ncC +hGT +wDa +psl +psl +vVB +gtJ +kLd +oem +nwW +jCb +uAR +nRD +uDj +uHQ +lCx +fKm +ktc +sVh +usu +usu +usu +gLc +kWO +gLc +paH +gLc +paH +gLc +paH +gLc +paH +kta +xxS +hXr +jVg +jCY +lzq +kHt +doH +mSe +mSe +mMz +mMz +idd +hXr +aqy +skh +aYZ +tzf +tzf +tzf +hMF +hMF +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(166,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +fKg +fKg +fKg +fKg +fKg +fKg +fKg +fKg +cnw +cnw +cnw +mww +kqs +mww +hJH +hJH +ngp +mww +hJH +ugo +wqE +jxl +xSZ +rkJ +rKQ +bdo +afd +nqz +xUX +eiB +hJH +mww +sDg +hJH +rHT +rIB +hJH +bLs +eiB +uhZ +uhZ +uhZ +uhZ +uhZ +uhZ +uhZ +tCX +xbB +exN +byo +xbB +exN +byo +xbB +exN +byo +xbB +jBz +xIQ +xIQ +dFD +sbg +cRs +xIQ +xIQ +xIQ +kIi +pNX +vzh +vzh +vzh +dtD +dtD +lXy +ijy +fpR +fpR +fpR +isb +lhG +ijy +sZz +nyo +rbs +epC +aTX +epC +eqa +lSP +lyP +rbs +rbs +cEN +cEN +cLN +ved +mHp +dTD +kAp +bvj +jNQ +pme +lOi +dxn +tkQ +bcQ +gQa +gQa +hFX +cFK +nrV +xBK +kPf +fOk +eDm +ukR +wkF +uHQ +gRD +nwW +wnx +jrS +jZZ +eAd +hWp +uTr +usu +nPy +usu +nPy +usu +gLc +paH +gLc +kWO +gLc +paH +gLc +kWO +gLc +kWO +gLc +paH +cwF +xxS +ydM +hXr +jVg +dTC +jVg +hXr +hXr +ixG +hXr +hXr +jVg +jVg +xOV +rER +vCN +rnF +rnF +rnF +bqk +hMF +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(167,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +fKg +fKg +bMt +biU +ndG +ixA +hJH +frO +pcy +eSe +lPA +hJH +eiB +mww +cKF +eIY +hkC +qIh +biU +hnX +xUX +gtz +qPQ +rkJ +rxE +bdo +aNd +nsA +xUX +pay +pay +eiB +ugo +hJH +sKe +nao +rHT +cKJ +rHT +wfp +rUd +xiE +rHT +rHT +afm +vWp +qPC +xbB +exN +exN +xbB +exN +exN +xbB +exN +exN +xbB +dIo +oNv +vyd +gPJ +bxI +wBE +vtS +qSJ +oqA +njf +nVm +dTK +nSb +hyM +hiK +kMX +oNv +sPm +sPm +sPm +sPm +sPm +nNP +dQk +rbs +rTL +rbs +qNR +tAe +qNR +tAe +oyz +vgi +jBa +dMV +tAd +cEN +cLN +ved +mHp +dTD +dTD +dTD +dTD +pme +bcQ +bcQ +bcQ +bcQ +piy +nEh +ouh +gnt +vzQ +nHC +klc +wYQ +wZd +sbR +ukR +gtJ +qws +gMX +xXv +tPs +qpb +rXe +cGv +uTr +klU +gLc +klU +gLc +klU +gLc +klU +gLc +paH +gLc +paH +gLc +kWO +gLc +paH +gLc +kWO +cwF +cDy +xxS +xxS +tFX +xxS +cdz +aBU +tzf +gcn +wGO +mCj +lMb +oFl +aqy +tzf +tzf +cxZ +cxZ +cxZ +kta +kta +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(168,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +fKg +lAs +eiB +elN +wHf +hJH +cYb +qIh +eiB +ncJ +hJH +sdh +hJH +uGz +mww +biU +nDE +ddX +mQt +xUX +wsh +hrU +jLw +xml +daw +lVS +qUA +wqE +gWG +hJH +hJH +cVS +hJH +mww +uCF +eiB +pay +hJH +mww +lFL +lFL +lFL +fKg +fKg +fKg +xbB +xbB +jri +jri +xbB +jri +jri +xbB +jri +jri +xbB +dcm +pIs +xIQ +vbn +vbn +xZF +vyd +hlY +rny +iJw +nax +eDF +kdY +kdY +ijm +eDF +jnn +sPm +hpc +haa +eLf +sPm +sJW +eUc +rbs +xUF +clV +rnU +rnU +rnU +rnU +oyz +tCS +ssW +qma +mKa +cEN +tQu +eQa +fiA +cuL +hJo +rqU +avQ +cLR +qwm +tSM +wUw +psl +nHC +qem +nNl +qem +dKH +qem +asK +ajh +kgc +psl +ukR +gtJ +gtJ +gtJ +gtJ +uHQ +uTr +uTr +uTr +uTr +klU +mQV +klU +mQV +klU +mQV +klU +gLc +paH +gLc +paH +gLc +kWO +gLc +paH +gLc +kWO +kta +kta +kta +tiO +lMb +hLd +xGb +caz +tzf +ahX +ahX +oEt +tzf +oFl +aqy +aqy +aqy +aqy +dpl +tvm +bqk +bIU +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(169,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +fKg +ulA +vJi +qIh +biU +idq +tTL +eiB +heB +qIh +pcy +biU +mNI +eiB +mww +mWl +hJH +hJH +mTW +wqE +wqE +wtN +tDr +lfS +cAb +fDL +xUX +xUX +eiB +eiB +uSf +cVS +csx +mww +azU +uLD +oSw +hJH +lDY +nNJ +oPn +oPn +wco +exN +exN +aNS +uXz +soz +gLc +gLc +gLc +gLc +gLc +gLc +gLc +xbB +jBN +pPl +wie +mQc +mmN +qSJ +mQc +sLF +qWg +eDF +uyo +eDF +jDb +lLC +bRz +kdY +fqT +sPm +uZK +jju +uZK +sPm +sPm +sPm +tff +dRn +kys +dRn +dRn +dRn +dRn +jkj +opK +xiN +qma +dOc +cmP +cmP +khT +cmP +cmP +qOe +cZQ +iVM +jhU +ldb +crn +oOX +tkG +nfF +hOT +vVB +uBi +pYb +psl +vTD +sbR +qNu +cTd +vVB +khr +hwx +fmS +uIM +uBR +qQF +phg +qQF +soz +gTL +vLH +gcv +agt +ian +hzj +hzj +gml +gml +gml +gml +gml +gml +gml +gml +gml +gml +bhB +dLO +lrh +aqy +tzf +gTg +tSu +tzf +tzf +kta +kta +kta +kta +kta +jLd +aqy +ydM +aqy +cIB +tvm +bqk +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(170,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +fKg +fKg +dwR +biU +ulX +hJH +hJH +fKg +fKg +hMG +fKg +kSg +mww +ees +wdV +pay +mww +jPq +lBC +cVS +nyw +fzx +oWE +ngR +bZJ +fzx +qnf +sxp +eqr +mww +hJH +mQt +bpo +hJH +pay +cOY +qIh +jeR +pay +hJH +hJH +hJH +hJH +exN +exN +exN +uXz +soz +avR +gLc +gLc +gLc +gLc +gLc +gLc +xbB +eWf +eWf +xbB +mHD +kGt +ccs +anJ +bsX +vuP +eDF +pMa +fdF +yda +sUc +sBF +syc +ssb +sPm +bwk +fBk +ose +uZK +wNn +sac +tff +hCR +rbs +wXK +cHd +wXK +cHd +wXK +cHd +aBj +qma +hoz +cmP +spA +kLP +ede +cmP +eDq +cjz +fOk +psl +psu +pbi +kzb +vTD +vTD +wbr +vTD +nlO +sbR +sbR +kPf +sbR +kgc +dbA +vVB +tYa +kiL +iFR +eNy +ljS +dJY +prq +tjl +kDH +gTL +mQV +klU +mQV +klU +mQV +gTL +gLc +paH +loJ +paH +gLc +paH +gLc +kWO +gLc +paH +kta +kta +kta +sww +aqy +aqy +aqy +oFl +oFl +kta +gLc +gLc +gLc +kta +kta +kta +kta +kta +kta +kta +kta +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(171,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +fKg +oXa +cUL +nTW +hJH +auZ +fKg +rYQ +eiB +fKg +fKg +jGV +gSr +mww +eiB +fKg +rPS +mWl +wvt +tnm +tnm +hfN +hfN +hfN +tnm +tnm +klX +skz +cVS +ugo +dhZ +jUW +qrm +vuM +jya +lZU +mww +vFj +wEM +cvS +cvS +aia +exN +exN +exN +uXz +soz +soz +soz +soz +gLc +avR +gLc +gLc +gLc +gLc +gLc +xbB +eWf +eWf +xbB +czp +vEd +yce +eDF +nBz +fXl +daN +kYf +gMw +kdY +rxK +sPm +dRo +aIA +gPM +uZK +lVA +pKM +tff +mEC +rbs +iWJ +aMu +iWJ +rem +iWJ +cGO +nBU +aEh +qma +cmP +hwO +cEu +ruV +cmP +kWS +bXX +fOk +sbR +ren +sBa +psl +dNT +dul +kwa +epX +vTD +qgV +dAr +rCh +psl +otS +sbR +fOk +nAF +hwx +tRu +aKc +szy +qQF +qQF +qQF +gLc +klU +gLc +klU +gLc +klU +gLc +klU +gLc +paH +fKh +kWO +gLc +paH +gLc +kWO +gLc +paH +gLc +gLc +cwF +siW +aqy +aqy +aqy +aqy +aqy +cwF +gLc +gLc +gLc +soz +soz +soz +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(172,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +fKg +fKg +fKg +fKg +fKg +fKg +fKg +fKg +xZc +fKg +fKg +pay +mww +ddX +eiB +fKg +fKg +fKg +fKg +fKg +ulx +ulx +ulx +ulx +ulx +tnm +fKg +fKg +fKg +fKg +lyw +lyw +fKg +lyw +lyw +lyw +fKg +fKg +fKg +fKg +fKg +fKg +fKg +fKg +nvJ +nvJ +nvJ +nvJ +nvJ +wtk +soz +soz +soz +gLc +avR +gLc +gLc +gLc +gLc +gLc +xbB +eWf +eWf +eWf +wgQ +fGo +wgQ +wgQ +wgQ +wgQ +wgQ +xtX +sPm +lBW +uZK +die +uZK +uZK +pjB +tff +tff +tff +tff +tff +tff +tff +tff +kvE +rbs +rbs +kYP +cmP +oPH +cEu +aBi +cmP +amG +fOk +sKW +sbR +sbR +sbR +psl +sbR +sbR +kwa +gwh +lce +qYZ +wSn +fOk +hbS +aFG +sbR +aoK +cII +qQF +hwx +hwx +hwx +qQF +qQF +gLc +gLc +klU +gLc +klU +gLc +klU +gLc +klU +gLc +paH +gLc +kWO +gLc +paH +gLc +paH +gLc +kWO +gLc +gLc +cwF +cwF +bfG +bfG +wrb +bfG +bfG +cwF +gLc +gLc +gLc +soz +hUE +soz +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(173,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ojR +czg +czg +gcg +czg +fKg +hkC +mww +jUA +qIh +fKg +czg +czg +czg +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +nvJ +nvJ +nvJ +nvJ +soz +soz +soz +soz +hcy +hcy +hcy +gLc +gLc +gLc +gLc +gLc +gLc +soz +iTC +exN +exN +vJz +lGd +hPK +sPm +jhu +nxQ +iky +lLs +pta +orZ +fbD +fZR +wqc +scb +fZR +ave +bin +ben +kQe +qXx +ben +ben +ben +ben +aEz +ben +ben +nPy +nPy +nPy +vQx +utj +soz +soz +soz +usu +usu +usu +usu +usu +usu +nPy +nPy +nPy +usu +usu +usu +usu +soz +soz +jxT +soz +soz +jxT +soz +soz +jxT +soz +soz +soz +soz +soz +soz +jxT +soz +soz +jxT +soz +soz +jxT +soz +soz +jxT +soz +soz +cwF +cwF +cwF +kta +cwF +cwF +kta +soz +soz +soz +soz +soz +soz +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(174,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +czg +nrT +czg +fKg +eiB +mNI +eiB +kcv +fKg +czg +czg +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +nvJ +nvJ +nvJ +nvJ +soz +qsv +kRw +hRi +gLc +gLc +gLc +gLc +avR +gLc +soz +iTC +exN +exN +exN +lGd +lkh +sPm +ele +evG +qoY +viC +viC +dUz +tNy +fZR +jEJ +mub +fZR +fTA +dlc +ben +kGX +mhS +ben +wMb +tuO +qQA +cEu +eSa +soz +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +soz +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(175,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +czg +fKg +xXC +pcy +pay +lCV +fKg +czg +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +nvJ +soz +hcy +hcy +hcy +avR +soz +soz +soz +soz +soz +soz +uXz +exN +exN +exN +lGd +gDy +sPm +eFx +vZa +eQR +lrf +bVc +jDy +csu +cmP +fZR +iBE +cmP +hts +fZR +ben +ben +ben +ben +ben +fpS +ben +eSa +eSa +soz +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +soz +soz +soz +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(176,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +fKg +fKg +fKg +fKg +fKg +fKg +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +nvJ +soz +soz +soz +soz +soz +soz +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +xbB +xbB +xbB +xbB +oic +sPm +ktU +cJv +bkQ +bec +hFk +jDy +iwV +biz +cEu +sxF +blr +kIp +cEu +lLg +vlQ +soi +vlQ +hpu +vlQ +mPG +waY +dfT +soz +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +soz +nvJ +nvJ +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(177,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +ulx +ulx +ulx +ulx +nvJ +nvJ +nvJ +nvJ +xbB +aBZ +sPm +tSL +tSL +tSL +tSL +sPm +dZZ +tNy +cmP +cjk +xlA +gpq +cYe +tOH +ben +eSa +eSa +eSa +ben +eSa +eSa +soz +soz +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +hVY +lYj +lYj +haI +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +soz +soz +soz +soz +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(178,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +czg +ulx +ulx +ulx +czg +ulx +ulx +ulx +czg +ulx +ulx +tSL +klm +tNy +uLA +dIY +hWy +wNu +tod +cBn +eSa +gLc +gLc +gLc +gLc +gLc +gLc +soz +soz +pxb +plJ +plJ +pxb +plJ +plJ +pxb +plJ +plJ +pxb +plJ +plJ +pxb +plJ +plJ +pxb +plJ +plJ +pxb +plJ +plJ +pxb +plJ +plJ +pxb +plJ +plJ +pxb +plJ +plJ +pxb +vkX +pqk +wgK +wgK +gnL +vkX +pxb +plJ +plJ +pxb +plJ +plJ +pxb +plJ +plJ +pxb +plJ +plJ +pxb +plJ +plJ +pxb +plJ +plJ +pxb +soz +nvJ +nvJ +nvJ +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(179,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +czg +ulx +ulx +ulx +czg +ulx +ulx +ulx +czg +ulx +ulx +sPm +jky +cWw +uLA +was +vZN +yiD +iXD +fgn +ben +gLc +gLc +gLc +gLc +gLc +gLc +soz +soz +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +kWL +geZ +geZ +mFY +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +soz +soz +soz +soz +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(180,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +czg +ulx +ulx +ulx +czg +ulx +ulx +ulx +czg +ulx +ulx +tSL +uJZ +gOT +cmP +viI +ivX +aOd +tvs +fnu +eSa +gLc +aVL +gLc +aVL +aVL +aVL +soz +soz +soz +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +soz +nvJ +nvJ +nvJ +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(181,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +czg +ulx +ulx +ulx +czg +ulx +ulx +ulx +czg +ulx +ulx +tSL +tSL +tSL +ben +eSa +qSQ +hQZ +qSQ +egB +qSQ +aVL +aVL +soz +soz +soz +soz +soz +soz +soz +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +soz +soz +soz +soz +nvJ +czg +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(182,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +czg +ulx +ulx +ulx +czg +ulx +ulx +ulx +czg +ulx +ulx +ulx +czg +ulx +ulx +nvJ +nvJ +nvJ +nvJ +ctT +soz +soz +soz +soz +soz +soz +aVL +soz +soz +soz +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +pxb +soz +nvJ +nvJ +nvJ +nvJ +czg +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(183,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +mwD +ulx +ulx +ulx +mwD +ulx +ulx +ulx +mwD +ulx +ulx +ulx +mwD +ulx +ulx +ulx +czg +ulx +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +soz +aVL +soz +soz +soz +soz +soz +hfg +soz +soz +jxT +soz +soz +jxT +soz +soz +jxT +soz +soz +jxT +soz +soz +jxT +soz +soz +jxT +soz +soz +jxT +soz +soz +jxT +soz +soz +jxT +soz +soz +soz +soz +soz +soz +jxT +soz +soz +jxT +soz +soz +jxT +soz +soz +jxT +soz +soz +soz +soz +nvJ +ojR +czg +czg +ojR +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(184,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +hfg +ulx +ulx +ulx +hfg +ulx +ulx +ulx +hfg +ulx +ulx +ulx +hfg +ulx +ulx +ulx +hfg +ulx +ulx +ulx +hfg +ulx +ulx +ulx +nvJ +soz +aVL +soz +nvJ +nvJ +nvJ +nvJ +hfg +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +nvJ +soz +hUE +soz +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(185,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +nvJ +soz +soz +soz +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +soz +soz +soz +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(186,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +nvJ +nvJ +soz +nvJ +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +xwR +ulx +beI +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(187,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +nvJ +nvJ +nvJ +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +fZI +czg +czg +czg +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(188,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +czg +ulx +gcg +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(189,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +gcg +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(190,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(191,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(192,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(193,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(194,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(195,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(196,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(197,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(198,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(199,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(200,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(201,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(202,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(203,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(204,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(205,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(206,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(207,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(208,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(209,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(210,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(211,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(212,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(213,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(214,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(215,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(216,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(217,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(218,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(219,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(220,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(221,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(222,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(223,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(224,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(225,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(226,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(227,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(228,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(229,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(230,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(231,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(232,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(233,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(234,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(235,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(236,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(237,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(238,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(239,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(240,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(241,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(242,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(243,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(244,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(245,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(246,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(247,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(248,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(249,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(250,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(251,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(252,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(253,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(254,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} +(255,1,2) = {" +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +ulx +"} diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index e65fa7bdb511..8cdb0345d224 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -6112,29 +6112,6 @@ /obj/effect/landmark/start/head_of_personnel, /turf/open/floor/iron/dark, /area/station/command/meeting_room) -"caj" = ( -/obj/effect/turf_decal/trimline/green/filled/line, -/obj/structure/table/glass, -/obj/item/healthanalyzer, -/obj/item/clothing/glasses/hud/health, -/obj/item/clothing/gloves/latex, -/obj/item/storage/box/beakers, -/obj/item/storage/box/syringes{ - pixel_x = 4; - pixel_y = 4 - }, -/obj/item/storage/box/vials{ - pixel_y = 4; - pixel_x = -2 - }, -/obj/machinery/firealarm/directional/south, -/obj/item/storage/box/monkeycubes/mousecubes, -/obj/item/storage/box/monkeycubes/mousecubes{ - pixel_x = 6; - pixel_y = 4 - }, -/turf/open/floor/iron/white, -/area/station/medical/virology) "cau" = ( /obj/structure/lattice/catwalk, /turf/open/space/basic, @@ -14346,6 +14323,12 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/service) +"eNH" = ( +/obj/structure/cable, +/obj/machinery/duct, +/obj/structure/ghost_critter_spawn, +/turf/open/floor/plating, +/area/station/security/prison) "eNK" = ( /obj/effect/turf_decal/trimline/brown/filled/warning, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -23272,14 +23255,6 @@ /obj/effect/landmark/start/assistant, /turf/open/floor/iron, /area/station/hallway/primary/aft) -"hLe" = ( -/obj/structure/rack, -/obj/item/mop, -/obj/item/reagent_containers/cup/bottle/ammonia, -/obj/item/tank/internals/emergency_oxygen, -/obj/item/clothing/mask/breath, -/turf/open/floor/plating, -/area/station/security/prison) "hLt" = ( /obj/effect/turf_decal/trimline/dark_blue/filled/line{ dir = 9 @@ -24640,6 +24615,29 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/central) +"ilj" = ( +/obj/effect/turf_decal/trimline/green/filled/line, +/obj/structure/table/glass, +/obj/item/healthanalyzer, +/obj/item/clothing/glasses/hud/health, +/obj/item/clothing/gloves/latex, +/obj/item/storage/box/beakers, +/obj/item/storage/box/syringes{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/storage/box/tube{ + pixel_y = 4; + pixel_x = -2 + }, +/obj/machinery/newscaster/directional/south, +/obj/item/storage/box/monkeycubes/mousecubes, +/obj/item/storage/box/monkeycubes/mousecubes{ + pixel_x = 6; + pixel_y = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/virology) "iln" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 @@ -26174,29 +26172,6 @@ /obj/structure/sign/departments/security/directional/north, /turf/open/floor/iron/dark, /area/station/hallway/primary/fore) -"iIn" = ( -/obj/effect/turf_decal/trimline/green/filled/line, -/obj/structure/table/glass, -/obj/item/healthanalyzer, -/obj/item/clothing/glasses/hud/health, -/obj/item/clothing/gloves/latex, -/obj/item/storage/box/beakers, -/obj/item/storage/box/syringes{ - pixel_x = 4; - pixel_y = 4 - }, -/obj/item/storage/box/vials{ - pixel_y = 4; - pixel_x = -2 - }, -/obj/machinery/newscaster/directional/south, -/obj/item/storage/box/monkeycubes/mousecubes, -/obj/item/storage/box/monkeycubes/mousecubes{ - pixel_x = 6; - pixel_y = 4 - }, -/turf/open/floor/iron/white, -/area/station/medical/virology) "iIr" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 9 @@ -31112,6 +31087,15 @@ dir = 4 }, /area/station/cargo/miningoffice) +"kqX" = ( +/obj/machinery/door/airlock/grunge{ + name = "Bitrunner Den" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/showroomfloor, +/area/station/security/bitden) "krD" = ( /obj/machinery/camera/autoname/directional/west, /obj/machinery/atmospherics/components/unary/passive_vent{ @@ -37306,16 +37290,6 @@ }, /turf/open/floor/catwalk_floor/iron_dark, /area/station/engineering/transit_tube) -"mtq" = ( -/obj/effect/decal/cleanable/oil/slippery, -/obj/machinery/door/airlock/grunge{ - name = "Bitrunner Den" - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/showroomfloor, -/area/station/security/bitden) "mtH" = ( /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer2{ dir = 5 @@ -37830,6 +37804,13 @@ "mDv" = ( /turf/closed/wall/r_wall, /area/station/maintenance/department/engine) +"mDz" = ( +/obj/structure/window/reinforced/tinted{ + dir = 4 + }, +/obj/item/kirbyplants/random/dead, +/turf/open/floor/iron/vaporwave, +/area/station/command/heads_quarters/rd) "mDR" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/trash/graffiti, @@ -44808,6 +44789,29 @@ /obj/structure/table/wood/fancy/black, /turf/open/floor/carpet, /area/station/service/chapel) +"oTl" = ( +/obj/effect/turf_decal/trimline/green/filled/line, +/obj/structure/table/glass, +/obj/item/healthanalyzer, +/obj/item/clothing/glasses/hud/health, +/obj/item/clothing/gloves/latex, +/obj/item/storage/box/beakers, +/obj/item/storage/box/syringes{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/storage/box/tube{ + pixel_y = 4; + pixel_x = -2 + }, +/obj/machinery/firealarm/directional/south, +/obj/item/storage/box/monkeycubes/mousecubes, +/obj/item/storage/box/monkeycubes/mousecubes{ + pixel_x = 6; + pixel_y = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/virology) "oTy" = ( /obj/effect/turf_decal/trimline/red/filled/line, /obj/effect/turf_decal/trimline/red/line{ @@ -46930,6 +46934,17 @@ /obj/structure/chair, /turf/open/floor/iron/dark, /area/station/service/chapel/office) +"pDL" = ( +/obj/structure/rack, +/obj/item/mop, +/obj/item/reagent_containers/cup/bottle/ammonia, +/obj/item/tank/internals/emergency_oxygen, +/obj/item/clothing/mask/breath, +/obj/item/storage/box/lights/mixed{ + pixel_x = 7 + }, +/turf/open/floor/plating, +/area/station/security/prison) "pDN" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/structure/sign/warning/radiation/directional/east, @@ -58034,13 +58049,6 @@ dir = 1 }, /area/station/security/prison/workout) -"ttC" = ( -/obj/structure/window/reinforced/tinted{ - dir = 4 - }, -/obj/item/kirbyplants/dead, -/turf/open/floor/iron/vaporwave, -/area/station/command/heads_quarters/rd) "ttD" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -90948,7 +90956,7 @@ qgq cbB uoF iBo -hLe +pDL ybj ksa xXP @@ -91203,7 +91211,7 @@ xAx jou rDd lfm -bhf +eNH bhf lBB ybj @@ -95555,7 +95563,7 @@ kFk apg vIP uQv -mtq +kqX mcU jhR ybm @@ -110266,7 +110274,7 @@ jEw mVt yjH dUx -ttC +mDz kaP qvC mkl @@ -111099,7 +111107,7 @@ gCT exJ gzt fJd -caj +oTl oqK oqK oqK @@ -111877,7 +111885,7 @@ mGb sNb lYg mGb -iIn +ilj oqK wGN nCa diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index 756eaee810fb..34e143d7eab3 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -1492,6 +1492,15 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/port) +"aqC" = ( +/obj/structure/chair/sofa/bench{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/hot_pink/filled/line{ + dir = 4 + }, +/turf/open/floor/iron/dark/herringbone, +/area/station/security/prison) "aqD" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -1793,6 +1802,16 @@ }, /turf/open/floor/iron/dark, /area/station/science/ordnance) +"atb" = ( +/obj/structure/chair/sofa/bench{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/hot_pink/filled/line{ + dir = 4 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/iron/dark/herringbone, +/area/station/security/prison) "ath" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/structure/cable, @@ -3487,12 +3506,6 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"aNd" = ( -/obj/effect/turf_decal/tile/hot_pink/anticorner/contrasted{ - dir = 1 - }, -/turf/open/floor/iron/dark/textured, -/area/station/security/prison/workout) "aNq" = ( /turf/open/floor/iron/grimy, /area/station/command/heads_quarters/hos) @@ -5264,11 +5277,6 @@ /obj/structure/lattice, /turf/open/space, /area/space/nearstation) -"bkM" = ( -/obj/structure/table/wood, -/obj/item/radio/intercom/prison, -/turf/open/floor/carpet/black, -/area/station/security/prison/mess) "bkN" = ( /obj/structure/table/reinforced, /obj/effect/turf_decal/tile/red/fourcorners, @@ -5421,17 +5429,6 @@ /obj/machinery/recharger, /turf/open/floor/iron, /area/station/command/gateway) -"bmu" = ( -/obj/effect/turf_decal/trimline/hot_pink/filled/line{ - dir = 4 - }, -/obj/structure/chair/sofa/bench{ - dir = 4 - }, -/turf/open/floor/iron/dark/textured_edge{ - dir = 4 - }, -/area/station/security/prison/workout) "bmw" = ( /obj/machinery/door/firedoor, /obj/effect/mapping_helpers/airlock/access/all/medical/general, @@ -5495,6 +5492,33 @@ /obj/structure/window/reinforced/spawner/directional/west, /turf/open/space, /area/space/nearstation) +"bmR" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 9 + }, +/obj/structure/rack, +/obj/item/reagent_containers/spray/cleaner{ + pixel_x = -6 + }, +/obj/item/book/manual/wiki/infections, +/obj/item/reagent_containers/dropper, +/obj/item/reagent_containers/syringe/antiviral, +/obj/item/reagent_containers/syringe/antiviral, +/obj/item/reagent_containers/cup/tube, +/obj/item/reagent_containers/cup/tube, +/obj/item/reagent_containers/cup/tube, +/obj/item/reagent_containers/cup/tube, +/obj/item/reagent_containers/cup/tube, +/obj/item/reagent_containers/cup/tube, +/obj/item/reagent_containers/cup/tube, +/obj/item/reagent_containers/cup/tube, +/obj/item/reagent_containers/cup/tube, +/obj/item/reagent_containers/cup/tube, +/obj/item/storage/box/monkeycubes/mousecubes, +/obj/item/storage/box/monkeycubes/mousecubes, +/obj/item/storage/box/monkeycubes/mousecubes, +/turf/open/floor/iron/white, +/area/station/medical/pathology) "bmU" = ( /obj/machinery/door/airlock/external{ name = "External Docking Port" @@ -7126,15 +7150,6 @@ /obj/item/pen, /turf/open/floor/iron, /area/station/cargo/lobby) -"bGi" = ( -/obj/effect/turf_decal/trimline/hot_pink/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/hot_pink/line{ - dir = 8 - }, -/turf/open/floor/iron/dark/textured, -/area/station/security/prison/workout) "bGj" = ( /obj/structure/closet, /obj/item/stack/sheet/glass{ @@ -7751,10 +7766,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/secondary/command) -"bML" = ( -/obj/effect/mapping_helpers/burnt_floor, -/turf/open/floor/plating, -/area/station/security/execution/transfer) "bMV" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, @@ -12411,6 +12422,13 @@ }, /turf/open/floor/iron, /area/station/engineering/main) +"cSb" = ( +/obj/effect/turf_decal/tile/hot_pink/anticorner/contrasted{ + dir = 1 + }, +/obj/item/training_toolbox, +/turf/open/floor/iron/dark/textured, +/area/station/security/prison/workout) "cSm" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/red/half/contrasted{ @@ -13243,6 +13261,26 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/plating, /area/station/service/library/abandoned) +"ddp" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/button/door/directional/north{ + id = "brigprison"; + name = "Prison Lockdown"; + req_access = list("brig_entrance") + }, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/security/execution/transfer) "dds" = ( /obj/machinery/camera/directional/east{ c_tag = "Virology - Break Room"; @@ -14547,15 +14585,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/port) -"dve" = ( -/obj/machinery/light/small/directional/south, -/obj/structure/sign/warning/secure_area/directional/south, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/security/execution/transfer) "dvh" = ( /obj/structure/rack, /obj/structure/cable, @@ -21518,25 +21547,6 @@ }, /turf/open/floor/iron/dark, /area/station/service/abandoned_gambling_den/gaming) -"fem" = ( -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 1 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/obj/machinery/requests_console/directional/west{ - anon_tips_receiver = 1; - assistance_requestable = 1; - department = "Research Director's Desk"; - name = "Research Director's Requests Console"; - receive_ore_updates = 1; - can_send_announcements = 1 - }, -/obj/item/kirbyplants/dead, -/obj/machinery/light/directional/west, -/turf/open/floor/iron, -/area/station/command/heads_quarters/rd) "feq" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/curtain/cloth/fancy/mechanical/start_closed{ @@ -23693,26 +23703,6 @@ /obj/item/stamp/law, /turf/open/floor/iron/grimy, /area/station/service/lawoffice) -"fEh" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security/glass{ - name = "Prison Wing" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/structure/cable, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/airlock/access/all/security/general, -/turf/open/floor/iron, -/area/station/security/execution/transfer) "fEk" = ( /turf/open/floor/iron/dark/side{ dir = 5 @@ -25436,14 +25426,6 @@ }, /turf/open/floor/iron, /area/station/science/xenobiology) -"gat" = ( -/obj/machinery/door/poddoor/preopen{ - id = "brigprison"; - name = "Prison Blast Door" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/iron, -/area/station/security/execution/transfer) "gax" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/decal/cleanable/dirt, @@ -26109,6 +26091,18 @@ /obj/item/taperecorder, /turf/open/floor/iron/grimy, /area/station/command/bridge) +"giN" = ( +/obj/effect/turf_decal/trimline/hot_pink/filled/line{ + dir = 4 + }, +/obj/structure/sign/poster/random/directional/east, +/obj/structure/chair/sofa/bench{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured_edge{ + dir = 4 + }, +/area/station/security/prison/workout) "giP" = ( /obj/item/radio/intercom/prison/directional/east, /turf/open/floor/iron/showroomfloor, @@ -27402,15 +27396,6 @@ }, /turf/open/floor/plating, /area/station/service/abandoned_gambling_den) -"gxv" = ( -/obj/structure/table, -/obj/item/restraints/handcuffs, -/obj/item/clothing/suit/armor/vest, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/obj/effect/turf_decal/tile/red/half/contrasted, -/turf/open/floor/iron, -/area/station/security/execution/transfer) "gxA" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -29345,6 +29330,12 @@ }, /turf/open/floor/iron, /area/station/service/kitchen/abandoned) +"gWj" = ( +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/security/execution/transfer) "gWu" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -32828,6 +32819,14 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) +"hQn" = ( +/obj/structure/table, +/obj/item/restraints/handcuffs, +/obj/item/clothing/suit/armor/vest, +/obj/structure/cable, +/obj/effect/turf_decal/tile/red/half/contrasted, +/turf/open/floor/iron, +/area/station/security/execution/transfer) "hQq" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -36235,16 +36234,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/science/robotics/mechbay) -"iEo" = ( -/obj/structure/chair/sofa/bench{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/hot_pink/filled/line{ - dir = 4 - }, -/obj/item/radio/intercom/prison/directional/east, -/turf/open/floor/iron/dark/herringbone, -/area/station/security/prison) "iEr" = ( /obj/effect/turf_decal/siding/green{ dir = 5 @@ -36919,15 +36908,6 @@ }, /turf/open/floor/iron/dark, /area/station/service/theater) -"iNA" = ( -/obj/structure/cable, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/security/execution/transfer) "iNE" = ( /obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable, @@ -37719,6 +37699,15 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron, /area/station/engineering/storage/tech) +"iZc" = ( +/obj/structure/table, +/obj/item/storage/box/bodybags, +/obj/item/pen, +/obj/effect/turf_decal/tile/red/anticorner/contrasted{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/security/execution/transfer) "iZf" = ( /obj/effect/turf_decal/tile/yellow/fourcorners, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -38175,6 +38164,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/security/checkpoint/escape) +"jdx" = ( +/obj/machinery/door/poddoor/preopen{ + id = "brigprison"; + name = "Prison Blast Door" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plating, +/area/station/security/execution/transfer) "jdB" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/turf_decal/siding/yellow/corner{ @@ -38282,6 +38279,11 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/dark, /area/station/command/bridge) +"jeG" = ( +/obj/machinery/light/small/directional/south, +/obj/structure/sign/warning/secure_area/directional/south, +/turf/open/floor/iron, +/area/station/security/execution/transfer) "jeI" = ( /obj/structure/sign/nanotrasen{ pixel_x = -32; @@ -38881,6 +38883,16 @@ /obj/structure/chair/stool/bar/directional/west, /turf/open/floor/iron/cafeteria, /area/station/service/cafeteria) +"jlb" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/effect/landmark/start/prisoner, +/obj/structure/chair/sofa/bench{ + dir = 8 + }, +/turf/open/floor/carpet/donk, +/area/station/security/prison/safe) "jll" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/effect/turf_decal/bot, @@ -39076,16 +39088,6 @@ }, /turf/open/floor/iron, /area/station/science/robotics/mechbay) -"jnl" = ( -/obj/effect/mapping_helpers/airalarm/engine_access, -/obj/structure/sign/delamination_counter/directional/west, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Gas to Chamber" - }, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/engine, -/area/station/engineering/supermatter) "jnn" = ( /obj/structure/cable, /obj/machinery/holopad/secure, @@ -39615,16 +39617,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/maintenance/department/security) -"juH" = ( -/obj/structure/table, -/obj/item/storage/box/bodybags, -/obj/item/pen, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/red/anticorner/contrasted{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/security/execution/transfer) "juP" = ( /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ dir = 4 @@ -40002,6 +39994,25 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"jzs" = ( +/obj/structure/table/wood, +/obj/item/paper_bin{ + pixel_x = -6; + pixel_y = 5 + }, +/obj/item/pen{ + pixel_x = -6; + pixel_y = 5 + }, +/obj/item/storage/dice{ + pixel_y = 1; + pixel_x = -2 + }, +/obj/item/toy/plush/lizard_plushie{ + pixel_x = 7 + }, +/turf/open/floor/carpet/black, +/area/station/security/prison/mess) "jzt" = ( /obj/structure/table/wood, /obj/item/paper_bin/construction, @@ -40456,15 +40467,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/service/abandoned_gambling_den) -"jDY" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/security/execution/transfer) "jDZ" = ( /obj/structure/window/reinforced/spawner/directional/south, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -41697,6 +41699,15 @@ }, /turf/open/floor/plating, /area/station/maintenance/solars/starboard/fore) +"jSG" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/landmark/start/hangover, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/incident_display/delam/directional/north, +/turf/open/floor/iron, +/area/station/engineering/break_room) "jSH" = ( /obj/structure/disposalpipe/junction{ dir = 1 @@ -43462,6 +43473,17 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"klV" = ( +/obj/effect/turf_decal/trimline/hot_pink/filled/line{ + dir = 4 + }, +/obj/structure/chair/sofa/bench{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured_edge{ + dir = 4 + }, +/area/station/security/prison/workout) "kmb" = ( /obj/structure/cable, /obj/machinery/computer/security{ @@ -44303,6 +44325,17 @@ }, /turf/open/floor/iron, /area/station/commons/lounge) +"kyu" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/sign/directions/engineering{ + desc = "A sign that shows there are doors here. There are doors everywhere!"; + icon_state = "doors"; + name = "WARNING: BLAST DOORS"; + pixel_y = 32 + }, +/turf/open/floor/iron, +/area/station/security/execution/transfer) "kyx" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ @@ -45682,6 +45715,17 @@ }, /turf/open/floor/carpet/black, /area/station/security/prison/mess) +"kPY" = ( +/obj/effect/turf_decal/trimline/hot_pink/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/hot_pink/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/textured, +/area/station/security/prison/workout) "kQr" = ( /obj/effect/spawner/random/engineering/atmospherics_portable, /obj/effect/turf_decal/bot, @@ -46710,18 +46754,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/security/warden) -"lcU" = ( -/obj/effect/turf_decal/trimline/hot_pink/filled/line{ - dir = 4 - }, -/obj/structure/chair/sofa/bench{ - dir = 4 - }, -/obj/machinery/light/directional/east, -/turf/open/floor/iron/dark/textured_edge{ - dir = 4 - }, -/area/station/security/prison/workout) "lcW" = ( /obj/structure/table/wood, /obj/item/clothing/under/costume/geisha, @@ -47121,6 +47153,16 @@ }, /turf/open/floor/wood, /area/station/service/lawoffice) +"lhq" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/item/radio/intercom/directional/north, +/obj/machinery/light/small/red/directional/north, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/security/execution/transfer) "lhC" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 4 @@ -47756,6 +47798,12 @@ /obj/item/clothing/mask/gas/sechailer, /turf/open/floor/iron/dark, /area/station/security/office) +"lpW" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/security/execution/transfer) "lpY" = ( /obj/structure/table/reinforced, /obj/machinery/light_switch/directional/east, @@ -49055,6 +49103,18 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/maintenance/port) +"lFp" = ( +/obj/effect/turf_decal/trimline/hot_pink/filled/line{ + dir = 4 + }, +/obj/item/radio/intercom/prison/directional/east, +/obj/structure/chair/sofa/bench{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured_edge{ + dir = 4 + }, +/area/station/security/prison/workout) "lFs" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line{ @@ -49464,6 +49524,13 @@ /obj/structure/tank_holder/extinguisher, /turf/open/floor/iron, /area/station/medical/pharmacy) +"lKa" = ( +/obj/effect/turf_decal/trimline/hot_pink/filled, +/obj/structure/weightmachine/weightlifter, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/textured, +/area/station/security/prison/workout) "lKd" = ( /obj/structure/table/reinforced, /obj/item/reagent_containers/condiment/saltshaker{ @@ -51924,18 +51991,6 @@ }, /turf/open/floor/iron/dark, /area/station/commons/fitness/recreation) -"mpQ" = ( -/obj/effect/turf_decal/trimline/hot_pink/filled/line{ - dir = 4 - }, -/obj/structure/chair/sofa/bench{ - dir = 4 - }, -/obj/item/radio/intercom/prison/directional/east, -/turf/open/floor/iron/dark/textured_edge{ - dir = 4 - }, -/area/station/security/prison/workout) "mqb" = ( /obj/machinery/door/morgue{ name = "Confession Booth"; @@ -52692,33 +52747,6 @@ /obj/machinery/airalarm/directional/south, /turf/open/floor/iron/dark, /area/station/science/breakroom) -"mzp" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 9 - }, -/obj/structure/rack, -/obj/item/reagent_containers/spray/cleaner{ - pixel_x = -6 - }, -/obj/item/book/manual/wiki/infections, -/obj/item/reagent_containers/dropper, -/obj/item/reagent_containers/syringe/antiviral, -/obj/item/reagent_containers/syringe/antiviral, -/obj/item/reagent_containers/cup/beaker/vial, -/obj/item/reagent_containers/cup/beaker/vial, -/obj/item/reagent_containers/cup/beaker/vial, -/obj/item/reagent_containers/cup/beaker/vial, -/obj/item/reagent_containers/cup/beaker/vial, -/obj/item/reagent_containers/cup/beaker/vial, -/obj/item/reagent_containers/cup/beaker/vial, -/obj/item/reagent_containers/cup/beaker/vial, -/obj/item/reagent_containers/cup/beaker/vial, -/obj/item/reagent_containers/cup/beaker/vial, -/obj/item/storage/box/monkeycubes/mousecubes, -/obj/item/storage/box/monkeycubes/mousecubes, -/obj/item/storage/box/monkeycubes/mousecubes, -/turf/open/floor/iron/white, -/area/station/medical/pathology) "mzu" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -54782,15 +54810,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/science/robotics/mechbay) -"mXg" = ( -/obj/effect/turf_decal/trimline/hot_pink/filled/line{ - dir = 10 - }, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/iron/dark/textured_corner{ - dir = 4 - }, -/area/station/security/prison/workout) "mXh" = ( /obj/structure/table/wood, /obj/item/storage/bag/books, @@ -55853,6 +55872,16 @@ }, /turf/open/floor/iron/white, /area/station/science/lobby) +"nlM" = ( +/obj/effect/mapping_helpers/airalarm/engine_access, +/obj/machinery/incident_display/delam/directional/west, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Gas to Chamber" + }, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/engine, +/area/station/engineering/supermatter) "nlS" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, @@ -59142,6 +59171,12 @@ }, /turf/open/floor/iron, /area/station/engineering/lobby) +"ocs" = ( +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/security/execution/transfer) "ocx" = ( /obj/machinery/door/airlock/maintenance_hatch{ name = "Teleporter Maintenance" @@ -60053,6 +60088,19 @@ /obj/structure/extinguisher_cabinet/directional/north, /turf/open/floor/iron/dark, /area/station/science/ordnance/testlab) +"onu" = ( +/obj/item/kirbyplants/random, +/obj/structure/sign/warning/pods/directional/south{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/security/execution/transfer) "onK" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -60928,6 +60976,14 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron, /area/station/engineering/main) +"oAV" = ( +/obj/structure/table/wood, +/obj/item/radio/intercom/prison, +/obj/item/storage/box/lights/mixed{ + pixel_x = 7 + }, +/turf/open/floor/carpet/black, +/area/station/security/prison/mess) "oAW" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -63636,6 +63692,11 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/hallway/primary/port) +"pjq" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/security/execution/transfer) "pjN" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -64532,13 +64593,6 @@ /obj/item/kirbyplants/random, /turf/open/floor/iron, /area/station/engineering/supermatter/room) -"pvM" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 5 - }, -/obj/effect/landmark/start/prisoner, -/turf/open/floor/carpet/donk, -/area/station/security/prison/safe) "pvR" = ( /obj/structure/cable, /obj/structure/closet/secure_closet/hydroponics, @@ -65920,6 +65974,11 @@ }, /turf/open/floor/iron, /area/station/command/gateway) +"pLj" = ( +/obj/machinery/status_display/evac/directional/south, +/obj/effect/turf_decal/tile/red/anticorner/contrasted, +/turf/open/floor/iron, +/area/station/security/execution/transfer) "pLm" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ @@ -66032,22 +66091,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/security/warden) -"pMl" = ( -/obj/structure/table/wood, -/obj/item/paper_bin{ - pixel_x = -6; - pixel_y = 5 - }, -/obj/item/pen{ - pixel_x = -6; - pixel_y = 5 - }, -/obj/item/storage/dice{ - pixel_y = 1; - pixel_x = -2 - }, -/turf/open/floor/carpet/black, -/area/station/security/prison/mess) "pMn" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -66167,6 +66210,12 @@ }, /turf/open/floor/iron/large, /area/station/science/research) +"pNI" = ( +/obj/effect/turf_decal/trimline/hot_pink/line, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/textured, +/area/station/security/prison/workout) "pNJ" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light/directional/north, @@ -68694,16 +68743,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/science/xenobiology) -"qsK" = ( -/obj/structure/chair/sofa/bench{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/hot_pink/filled/line{ - dir = 4 - }, -/obj/machinery/light/directional/east, -/turf/open/floor/iron/dark/herringbone, -/area/station/security/prison) "qsN" = ( /obj/structure/chair{ dir = 4 @@ -69127,6 +69166,24 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/wood, /area/station/service/theater/abandoned) +"qyB" = ( +/obj/effect/turf_decal/trimline/hot_pink/filled/line{ + dir = 10 + }, +/obj/machinery/airalarm/directional/west, +/obj/structure/closet{ + name = "Prisoner O2 Storage" + }, +/obj/item/tank/internals/emergency_oxygen, +/obj/item/tank/internals/emergency_oxygen, +/obj/item/tank/internals/emergency_oxygen, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/turf/open/floor/iron/dark/textured_corner{ + dir = 4 + }, +/area/station/security/prison/workout) "qyK" = ( /obj/structure/table/reinforced, /obj/item/paper_bin, @@ -71966,17 +72023,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/ai_monitored/aisat/exterior) -"riQ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/camera/directional/north{ - c_tag = "Security - Escape Pod" - }, -/obj/effect/turf_decal/tile/red/anticorner/contrasted{ - dir = 4 - }, -/obj/machinery/status_display/ai/directional/north, -/turf/open/floor/iron, -/area/station/security/execution/transfer) "riR" = ( /obj/effect/turf_decal/trimline/blue/filled/warning{ dir = 8 @@ -73861,6 +73907,23 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/engineering/atmos/storage) +"rFX" = ( +/obj/effect/turf_decal/trimline/hot_pink/filled/line{ + dir = 6 + }, +/obj/structure/closet{ + name = "Prisoner O2 Storage" + }, +/obj/item/tank/internals/emergency_oxygen, +/obj/item/tank/internals/emergency_oxygen, +/obj/item/tank/internals/emergency_oxygen, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/turf/open/floor/iron/dark/textured_corner{ + dir = 1 + }, +/area/station/security/prison/workout) "rFZ" = ( /obj/effect/turf_decal/delivery, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, @@ -75462,25 +75525,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/fore) -"rZE" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security/glass{ - name = "Prison Wing" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/structure/cable, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/mapping_helpers/airlock/access/all/security/general, -/turf/open/floor/iron, -/area/station/security/execution/transfer) "rZF" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/disposalpipe/segment{ @@ -75650,18 +75694,6 @@ }, /turf/open/floor/iron, /area/station/maintenance/department/crew_quarters/bar) -"sbQ" = ( -/obj/effect/turf_decal/trimline/hot_pink/filled/line{ - dir = 4 - }, -/obj/structure/chair/sofa/bench{ - dir = 4 - }, -/obj/structure/sign/poster/random/directional/east, -/turf/open/floor/iron/dark/textured_edge{ - dir = 4 - }, -/area/station/security/prison/workout) "sbR" = ( /obj/structure/cable, /obj/machinery/light/directional/south, @@ -77413,6 +77445,25 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"syT" = ( +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/machinery/requests_console/directional/west{ + anon_tips_receiver = 1; + assistance_requestable = 1; + department = "Research Director's Desk"; + name = "Research Director's Requests Console"; + receive_ore_updates = 1; + can_send_announcements = 1 + }, +/obj/item/kirbyplants/random/dead, +/obj/machinery/light/directional/west, +/turf/open/floor/iron, +/area/station/command/heads_quarters/rd) "szg" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -81272,13 +81323,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"tuW" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/item/radio/intercom/directional/north, -/obj/machinery/light/small/red/directional/north, -/turf/open/floor/plating, -/area/station/security/execution/transfer) "tvj" = ( /obj/structure/table/wood, /obj/item/flashlight/lamp, @@ -81737,23 +81781,6 @@ }, /turf/open/floor/iron/white, /area/station/science/research) -"tCh" = ( -/obj/machinery/door/poddoor/preopen{ - id = "brigprison"; - name = "Prison Blast Door" - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/obj/effect/turf_decal/delivery, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/sign/directions/engineering{ - desc = "A sign that shows there are doors here. There are doors everywhere!"; - icon_state = "doors"; - name = "WARNING: BLAST DOORS"; - pixel_y = 32 - }, -/turf/open/floor/iron, -/area/station/security/execution/transfer) "tCk" = ( /obj/machinery/computer/cargo{ dir = 4 @@ -83184,6 +83211,14 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/cargo/miningoffice) +"tSk" = ( +/obj/structure/cable, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/security/execution/transfer) "tSo" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -86218,6 +86253,18 @@ /obj/effect/spawner/random/engineering/toolbox, /turf/open/floor/plating, /area/station/maintenance/department/electrical) +"uEy" = ( +/obj/structure/sink/directional/south{ + dir = 8; + pixel_x = 14; + pixel_y = 0 + }, +/obj/structure/mirror/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/structure/ghost_critter_spawn, +/turf/open/floor/wood/parquet, +/area/station/security/prison/safe) "uED" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, @@ -88200,6 +88247,16 @@ /obj/effect/turf_decal/tile/purple/full, /turf/open/floor/iron/large, /area/station/science/research) +"vcP" = ( +/obj/structure/chair/sofa/bench{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/hot_pink/filled/line{ + dir = 4 + }, +/obj/item/radio/intercom/prison/directional/east, +/turf/open/floor/iron/dark/herringbone, +/area/station/security/prison) "vcU" = ( /obj/machinery/computer/security/mining{ dir = 4 @@ -88537,38 +88594,11 @@ /obj/machinery/light/small/red/directional/north, /turf/open/floor/iron/dark, /area/station/service/chapel/funeral) -"vhW" = ( -/obj/item/kirbyplants/random, -/obj/structure/sign/warning/pods/directional/south{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red/half/contrasted{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/security/execution/transfer) "vii" = ( /turf/open/floor/iron/white/side{ dir = 4 }, /area/station/commons/fitness/recreation) -"vip" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/button/door/directional/north{ - id = "brigprison"; - name = "Prison Lockdown"; - req_access = list("brig_entrance") - }, -/obj/effect/turf_decal/tile/red/half/contrasted{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/security/execution/transfer) "vit" = ( /obj/effect/turf_decal/tile/red/anticorner/contrasted, /obj/structure/cable, @@ -89457,14 +89487,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/science/research/abandoned) -"vtt" = ( -/obj/effect/turf_decal/trimline/hot_pink/filled/line{ - dir = 6 - }, -/turf/open/floor/iron/dark/textured_corner{ - dir = 1 - }, -/area/station/security/prison/workout) "vty" = ( /obj/structure/chair/office, /turf/open/floor/carpet/orange, @@ -90816,11 +90838,17 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron, /area/station/science/research) -"vII" = ( -/obj/effect/turf_decal/trimline/hot_pink/filled, -/obj/structure/weightmachine/weightlifter, -/turf/open/floor/iron/dark/textured, -/area/station/security/prison/workout) +"vIM" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/poddoor/preopen{ + id = "brigprison"; + name = "Prison Blast Door" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/iron, +/area/station/security/execution/transfer) "vIQ" = ( /turf/closed/wall/r_wall, /area/station/command/teleporter) @@ -92177,6 +92205,10 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/hallway/primary/fore) +"wbw" = ( +/obj/item/training_toolbox, +/turf/open/floor/iron/dark/textured, +/area/station/security/prison/workout) "wbA" = ( /obj/machinery/light/directional/south, /obj/machinery/camera/directional/south{ @@ -94343,15 +94375,6 @@ }, /turf/open/floor/plating, /area/station/command/bridge) -"wyJ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/effect/landmark/start/hangover, -/obj/effect/decal/cleanable/dirt, -/obj/structure/sign/delamination_counter/directional/north, -/turf/open/floor/iron, -/area/station/engineering/break_room) "wyN" = ( /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ dir = 10 @@ -96038,6 +96061,18 @@ /obj/effect/landmark/carpspawn, /turf/open/space/basic, /area/space) +"wVo" = ( +/obj/effect/turf_decal/trimline/hot_pink/filled/line{ + dir = 4 + }, +/obj/machinery/light/directional/east, +/obj/structure/chair/sofa/bench{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured_edge{ + dir = 4 + }, +/area/station/security/prison/workout) "wVy" = ( /obj/effect/turf_decal/siding/wood, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -96278,11 +96313,6 @@ }, /turf/open/floor/plating, /area/station/science/genetics) -"wYK" = ( -/obj/effect/mapping_helpers/broken_floor, -/obj/machinery/status_display/evac/directional/south, -/turf/open/floor/plating, -/area/station/security/execution/transfer) "wYN" = ( /obj/structure/chair{ dir = 4 @@ -98959,9 +98989,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, /area/station/medical/pathology) -"xFP" = ( -/turf/open/floor/plating, -/area/station/security/execution/transfer) "xFU" = ( /obj/structure/chair{ dir = 8 @@ -99849,6 +99876,16 @@ /obj/item/clothing/under/dress/redeveninggown, /turf/open/floor/wood, /area/station/commons/dorms) +"xRe" = ( +/obj/machinery/camera/directional/north{ + c_tag = "Security - Escape Pod" + }, +/obj/effect/turf_decal/tile/red/anticorner/contrasted{ + dir = 4 + }, +/obj/machinery/status_display/ai/directional/north, +/turf/open/floor/iron, +/area/station/security/execution/transfer) "xRo" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -100107,15 +100144,6 @@ }, /turf/open/floor/carpet/purple, /area/station/commons/dorms) -"xUD" = ( -/obj/structure/chair/sofa/bench{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/hot_pink/filled/line{ - dir = 4 - }, -/turf/open/floor/iron/dark/herringbone, -/area/station/security/prison) "xVa" = ( /obj/effect/landmark/start/hangover, /obj/effect/turf_decal/tile/neutral{ @@ -123478,7 +123506,7 @@ eHy qJs cxp sHT -jnl +nlM aEF oXm sHT @@ -124740,7 +124768,7 @@ vQj uCa uCa leE -wyJ +jSG kyW jzU bAR @@ -131471,7 +131499,7 @@ hkZ voZ iao nLM -fem +syT hnM urt awA @@ -135626,7 +135654,7 @@ aaa aaa gqm gqm -mzp +bmR grE uxI gqm @@ -148592,7 +148620,7 @@ aaa aaa aaa aaa -aac +aad aad xCY wfV @@ -151447,7 +151475,7 @@ oWP vmo lQj xBD -mXg +qyB ydH qfM xzJ @@ -151961,7 +151989,7 @@ sxn cpE xqc eEi -vtt +rFX ydH xPo krO @@ -152452,9 +152480,9 @@ cBq brG rRL usE -iEo -qsK -xUD +vcP +atb +aqC uXg vwy aQs @@ -153225,7 +153253,7 @@ giW hLY rnU jmZ -pvM +jlb hBX lTv cBq @@ -153481,7 +153509,7 @@ brG lXj lTv vmm -dYc +uEy lGm lGm aHz @@ -154786,8 +154814,8 @@ rnA rnA rnA rnA -dPq -vII +pNI +lKa hPN hLz iCo @@ -155044,7 +155072,7 @@ iDC ylB pqk uuf -bGi +kPY xPz hLz sgh @@ -155548,7 +155576,7 @@ fiO pAx sxn vTP -aNd +cSb pMG pMG pMG @@ -155782,8 +155810,8 @@ fRi srJ vNi lqh -bkM -pMl +oAV +jzs nDp fRi vOH @@ -156322,7 +156350,7 @@ vTP pMG sxn rwn -sxn +wbw wIS foR sxn @@ -157103,8 +157131,8 @@ eHO eHO eHO eHO -vip -vhW +ddp +onu qIH aad aad @@ -157347,11 +157375,11 @@ fiO ivM rzk dbg -bmu -mpQ -lcU -sbQ -bmu +klV +lFp +wVo +giN +klV mAA xqc dwC @@ -157360,8 +157388,8 @@ bJx mor dXF eHO -fEh -jrA +vIM +jdx qIH aad aaa @@ -157617,8 +157645,8 @@ gRU xAc mKL sXd -iNA -dve +lpW +jeG qIH qIH qIH @@ -157874,8 +157902,8 @@ swn aAA qbp eHO -tCh -gat +kyu +xzJ aMi ojW arz @@ -158131,8 +158159,8 @@ uuj fRe eho eHO -rZE -jrA +pjq +xzJ qIH gJk qIH @@ -158389,8 +158417,8 @@ iGx nkn eHO cXC -bML -juH +ocs +iZc gJk aaa aad @@ -158645,9 +158673,9 @@ omd gku mZA eHO -tuW -jDY -gxv +lhq +tSk +hQn jrA aaa aad @@ -158902,9 +158930,9 @@ skQ pdF rQv eHO -riQ -xFP -wYK +xRe +gWj +pLj gJk aaa efQ diff --git a/_maps/map_files/IceBoxStation/IceBoxStation.dmm b/_maps/map_files/IceBoxStation/IceBoxStation.dmm index 4edb0df49a02..7fd5cb2cc1bc 100644 --- a/_maps/map_files/IceBoxStation/IceBoxStation.dmm +++ b/_maps/map_files/IceBoxStation/IceBoxStation.dmm @@ -2154,10 +2154,6 @@ }, /turf/open/floor/iron/white/corner, /area/station/hallway/secondary/entry) -"aLM" = ( -/obj/machinery/shower/directional/south, -/turf/open/floor/iron/showroomfloor, -/area/station/security/prison/toilet) "aLS" = ( /obj/machinery/modular_computer/preset/engineering, /obj/structure/cable, @@ -3606,16 +3602,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"bhs" = ( -/obj/effect/turf_decal/siding/wood, -/obj/item/kirbyplants/fullysynthetic{ - pixel_x = -8; - pixel_y = 21 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/sign/poster/official/random/directional/west, -/turf/open/floor/stone, -/area/mine/eva/lower) "bhw" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 1 @@ -14177,18 +14163,6 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/carpet, /area/station/command/heads_quarters/captain) -"eum" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/light/directional/west, -/obj/item/kirbyplants/dead, -/obj/machinery/computer/security/telescreen/rd{ - dir = 4; - pixel_x = -26 - }, -/turf/open/floor/iron/smooth_half, -/area/station/command/heads_quarters/rd) "euq" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -22159,6 +22133,13 @@ dir = 1 }, /area/station/service/hydroponics) +"hbW" = ( +/obj/item/storage/bag/trash, +/obj/item/storage/box/lights/mixed{ + pixel_x = 7 + }, +/turf/open/floor/plating, +/area/station/security/prison/safe) "hce" = ( /obj/machinery/door/airlock{ id_tag = "AuxToilet3"; @@ -26917,6 +26898,11 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/iron/textured, /area/mine/mechbay) +"iJx" = ( +/obj/machinery/shower/directional/south, +/obj/structure/ghost_critter_spawn, +/turf/open/floor/iron/showroomfloor, +/area/station/security/prison/toilet) "iJC" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -34467,6 +34453,18 @@ }, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"lbQ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/light/directional/west, +/obj/item/kirbyplants/random/dead, +/obj/machinery/computer/security/telescreen/rd{ + dir = 4; + pixel_x = -26 + }, +/turf/open/floor/iron/smooth_half, +/area/station/command/heads_quarters/rd) "lbX" = ( /obj/machinery/conveyor_switch/oneway{ id = "packageSort2" @@ -36708,6 +36706,34 @@ }, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/surface/outdoors/nospawn) +"lOM" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 4 + }, +/obj/structure/table/glass, +/obj/machinery/camera{ + c_tag = "Virology Module South"; + dir = 4; + network = list("ss13","medbay") + }, +/obj/item/clothing/mask/breath/medical, +/obj/item/clothing/mask/breath/medical, +/obj/item/tank/internals/emergency_oxygen, +/obj/item/tank/internals/emergency_oxygen, +/obj/item/device/antibody_scanner, +/obj/item/device/antibody_scanner, +/obj/item/device/antibody_scanner, +/obj/item/device/antibody_scanner, +/obj/item/storage/box/tube{ + pixel_y = 10; + pixel_x = -10 + }, +/obj/item/storage/box/tube{ + pixel_y = 10; + pixel_x = -10 + }, +/turf/open/floor/iron/white, +/area/station/medical/pathology) "lOU" = ( /obj/machinery/recharge_station, /obj/effect/decal/cleanable/dirt, @@ -38072,6 +38098,13 @@ }, /turf/open/floor/engine, /area/station/science/explab) +"mnZ" = ( +/obj/item/kirbyplants/random/dead, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/underground/explored) "moc" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -38584,16 +38617,6 @@ /obj/structure/tank_holder/extinguisher, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"mwU" = ( -/obj/effect/turf_decal/siding/wood, -/obj/item/kirbyplants/fullysynthetic{ - pixel_x = 10; - pixel_y = 19 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/stone, -/area/mine/eva/lower) "mxc" = ( /obj/machinery/atmospherics/components/binary/valve/digital{ dir = 4 @@ -43212,6 +43235,14 @@ /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"nPu" = ( +/obj/machinery/suit_storage_unit/ce, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/machinery/incident_display/delam/directional/north, +/turf/open/floor/iron/white/textured, +/area/station/command/heads_quarters/ce) "nPE" = ( /obj/effect/turf_decal/stripes{ dir = 6 @@ -43795,10 +43826,6 @@ dir = 4 }, /area/station/engineering/lobby) -"nYZ" = ( -/obj/item/storage/bag/trash, -/turf/open/floor/plating, -/area/station/security/prison/safe) "nZb" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -49438,34 +49465,6 @@ }, /turf/open/floor/carpet, /area/station/command/meeting_room) -"pNy" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 4 - }, -/obj/structure/table/glass, -/obj/machinery/camera{ - c_tag = "Virology Module South"; - dir = 4; - network = list("ss13","medbay") - }, -/obj/item/clothing/mask/breath/medical, -/obj/item/clothing/mask/breath/medical, -/obj/item/tank/internals/emergency_oxygen, -/obj/item/tank/internals/emergency_oxygen, -/obj/item/device/antibody_scanner, -/obj/item/device/antibody_scanner, -/obj/item/device/antibody_scanner, -/obj/item/device/antibody_scanner, -/obj/item/storage/box/vials{ - pixel_y = 10; - pixel_x = -10 - }, -/obj/item/storage/box/vials{ - pixel_y = 10; - pixel_x = -10 - }, -/turf/open/floor/iron/white, -/area/station/medical/pathology) "pNB" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/simple/layer2{ dir = 8 @@ -57214,6 +57213,16 @@ }, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/underground/explored) +"sqY" = ( +/obj/effect/turf_decal/siding/wood, +/obj/item/kirbyplants/random/fullysynthetic{ + pixel_x = 10; + pixel_y = 19 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/stone, +/area/mine/eva/lower) "sra" = ( /obj/structure/table, /obj/item/flashlight{ @@ -58512,6 +58521,15 @@ "sMg" = ( /turf/open/floor/engine/air, /area/station/engineering/atmos) +"sMl" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/light/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/obj/machinery/incident_display/delam/directional/north, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "sMo" = ( /obj/machinery/camera/directional/south{ c_tag = "Solar Maintenance - South East Access" @@ -59410,6 +59428,16 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/hallway/primary/aft) +"tdd" = ( +/obj/effect/turf_decal/siding/wood, +/obj/item/kirbyplants/random/fullysynthetic{ + pixel_x = -8; + pixel_y = 21 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/sign/poster/official/random/directional/west, +/turf/open/floor/stone, +/area/mine/eva/lower) "tdi" = ( /obj/machinery/door/airlock/maintenance, /obj/structure/cable, @@ -65880,14 +65908,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/disposal) -"vkz" = ( -/obj/machinery/suit_storage_unit/ce, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/structure/sign/delamination_counter/directional/north, -/turf/open/floor/iron/white/textured, -/area/station/command/heads_quarters/ce) "vkC" = ( /obj/effect/decal/cleanable/insectguts, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, @@ -72882,13 +72902,6 @@ "xuo" = ( /turf/open/floor/plating/snowed/icemoon, /area/icemoon/underground/explored) -"xuy" = ( -/obj/item/kirbyplants/dead, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/plating/snowed/icemoon, -/area/icemoon/underground/explored) "xuA" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark/textured, @@ -73642,15 +73655,6 @@ /obj/machinery/light/directional/south, /turf/open/floor/plating, /area/station/maintenance/department/electrical) -"xFM" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/light/directional/north, -/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, -/obj/structure/sign/delamination_counter/directional/north, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "xFU" = ( /obj/structure/barricade/wooden, /obj/structure/sign/warning/gas_mask/directional/south{ @@ -94719,7 +94723,7 @@ tYz bod oBm qmt -bhs +tdd dLe dLe sCg @@ -95490,7 +95494,7 @@ vip gSO uPt qmt -mwU +sqY fOV dLe wzl @@ -99525,7 +99529,7 @@ lBR mkP hap rfu -xuy +mnZ tDh tDh cmh @@ -100797,7 +100801,7 @@ doH iDt scw uOb -aLM +iJx amx yia dhS @@ -164544,7 +164548,7 @@ eCs vVH vVH vVH -nYZ +hbW uoi xhK iDt @@ -180036,7 +180040,7 @@ drR oQY oQY soA -pNy +lOM nid xDb xMq @@ -235080,7 +235084,7 @@ spv dwy spv wuo -xFM +sMl kUz mLV gka @@ -236088,7 +236092,7 @@ djO hOc bID qnC -vkz +nPu uoF pcg uGz @@ -250715,7 +250719,7 @@ rgx nyH lFW rEd -eum +lbQ gSN jbU ejZ diff --git a/_maps/map_files/KiloStation/KiloStation.dmm b/_maps/map_files/KiloStation/KiloStation.dmm index b3b223ee1e8f..aba32bd4f1ab 100644 --- a/_maps/map_files/KiloStation/KiloStation.dmm +++ b/_maps/map_files/KiloStation/KiloStation.dmm @@ -2866,15 +2866,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"aVt" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 1 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/security/prison/garden) "aVx" = ( /obj/effect/spawner/random/structure/tank_holder, /obj/structure/cable, @@ -3422,14 +3413,6 @@ }, /turf/open/floor/iron/dark, /area/station/command/bridge) -"bgH" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 8 - }, -/obj/item/radio/intercom/directional/north, -/obj/item/kirbyplants/random, -/turf/open/floor/iron/dark, -/area/station/hallway/primary/fore) "bhk" = ( /obj/structure/cable, /obj/machinery/door/airlock/maintenance{ @@ -5974,6 +5957,31 @@ "bXz" = ( /turf/closed/wall, /area/station/service/kitchen/coldroom) +"bXE" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/light_switch/directional/west{ + pixel_y = -4 + }, +/obj/machinery/button/door/directional/west{ + id = "virologysurgery"; + name = "Virology Privacy Toggle"; + pixel_y = 6; + req_access = list("pathology") + }, +/obj/effect/turf_decal/tile/green/half/contrasted{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/computer/diseasesplicer, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/showroomfloor, +/area/station/medical/pathology) "bXX" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -6790,6 +6798,15 @@ }, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/foyer) +"ciD" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/blood/drip{ + pixel_x = 14; + pixel_y = 13 + }, +/obj/effect/landmark/start/prisoner, +/turf/open/floor/plating/rust, +/area/station/security/prison/shower) "ciI" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ @@ -6969,6 +6986,10 @@ /obj/effect/spawner/random_engines/kilo, /turf/open/space/basic, /area/space/nearstation) +"ckN" = ( +/obj/effect/landmark/start/prisoner, +/turf/open/floor/glass/plasma, +/area/station/security/bitden) "ckQ" = ( /obj/structure/closet/firecloset, /obj/effect/turf_decal/bot, @@ -7028,6 +7049,31 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/engineering/atmos/pumproom) +"clv" = ( +/obj/structure/table/glass, +/obj/item/folder/white, +/obj/item/folder/white, +/obj/item/crowbar/red, +/obj/item/wrench, +/obj/item/storage/box/syringes{ + pixel_x = 4; + pixel_y = 6 + }, +/obj/item/storage/box/beakers{ + pixel_y = 2 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/airalarm/directional/east, +/obj/structure/noticeboard/directional/south, +/obj/machinery/light/directional/east, +/obj/machinery/reagentgrinder{ + desc = "Used to grind things up into raw materials and liquids."; + pixel_y = 5 + }, +/turf/open/floor/iron/dark, +/area/station/medical/pathology) "clw" = ( /obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ dir = 9 @@ -9450,6 +9496,17 @@ }, /turf/open/floor/wood, /area/station/service/bar/atrium) +"ddq" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 8; + id = "ceprivate"; + name = "Chief Engineer's Privacy Shutters" + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/caution/stand_clear, +/obj/machinery/incident_display/delam/directional/north, +/turf/open/floor/iron/dark, +/area/station/engineering/lobby) "ddI" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -12887,6 +12944,11 @@ /obj/effect/mapping_helpers/airlock/access/any/security/maintenance, /turf/open/floor/iron/dark, /area/station/hallway/primary/aft) +"eiZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start/prisoner, +/turf/open/floor/iron, +/area/station/security/prison) "ejc" = ( /obj/effect/decal/cleanable/cobweb, /obj/effect/decal/cleanable/dirt, @@ -23331,6 +23393,15 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/commons/fitness/recreation) +"hvH" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/item/radio/intercom/directional/north, +/obj/machinery/vending/modularpc, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/fore) "hwA" = ( /turf/closed/wall/rust, /area/station/maintenance/solars/starboard/aft) @@ -24273,6 +24344,34 @@ }, /turf/open/floor/iron/dark, /area/station/hallway/primary/starboard) +"hKl" = ( +/obj/structure/closet/crate/trashcart/laundry, +/obj/effect/spawner/random/contraband/prison, +/obj/item/clothing/under/rank/prisoner, +/obj/item/clothing/under/rank/prisoner, +/obj/item/clothing/under/rank/prisoner/skirt, +/obj/item/clothing/under/rank/prisoner/skirt, +/obj/effect/turf_decal/tile/blue/opposingcorners{ + dir = 1 + }, +/obj/item/clothing/shoes/sneakers/orange{ + pixel_x = -6; + pixel_y = -8 + }, +/obj/item/clothing/shoes/sneakers/orange{ + pixel_x = -6; + pixel_y = -8 + }, +/obj/item/clothing/shoes/sneakers/orange{ + pixel_x = -6; + pixel_y = -8 + }, +/obj/item/clothing/shoes/sneakers/orange{ + pixel_x = -6; + pixel_y = -8 + }, +/turf/open/floor/iron/cafeteria, +/area/station/security/prison/garden) "hKE" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -28525,6 +28624,16 @@ }, /turf/open/floor/iron, /area/station/security/brig) +"iTO" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/start/prisoner, +/turf/open/floor/iron, +/area/station/security/prison/garden) "iTQ" = ( /obj/effect/turf_decal/tile/red/half/contrasted{ dir = 4 @@ -34620,14 +34729,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"kYP" = ( -/obj/effect/decal/cleanable/blood/drip, -/obj/effect/decal/cleanable/blood/drip{ - pixel_x = 14; - pixel_y = 13 - }, -/turf/open/floor/plating/rust, -/area/station/security/prison/shower) "kYU" = ( /obj/machinery/door/airlock/maintenance, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -36728,6 +36829,20 @@ }, /turf/open/floor/iron, /area/station/security/processing) +"lIC" = ( +/obj/structure/closet/crate, +/obj/item/food/breadslice/plain, +/obj/item/food/breadslice/plain, +/obj/item/food/breadslice/plain, +/obj/item/food/grown/potato, +/obj/item/food/grown/potato, +/obj/item/food/grown/onion, +/obj/item/food/grown/onion, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/effect/turf_decal/tile/red/opposingcorners, +/turf/open/floor/iron/white, +/area/station/security/prison/mess) "lIR" = ( /obj/machinery/door/poddoor/shutters{ dir = 1; @@ -37658,6 +37773,12 @@ }, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/hos) +"lZB" = ( +/obj/item/storage/box/lights/mixed{ + pixel_x = 7 + }, +/turf/open/floor/plating, +/area/station/security/prison) "lZK" = ( /obj/structure/cable, /obj/structure/table, @@ -43274,17 +43395,6 @@ }, /turf/open/floor/wood, /area/station/command/heads_quarters/hos) -"nPw" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 8; - id = "ceprivate"; - name = "Chief Engineer's Privacy Shutters" - }, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/caution/stand_clear, -/obj/structure/sign/delamination_counter/directional/north, -/turf/open/floor/iron/dark, -/area/station/engineering/lobby) "nPN" = ( /obj/structure/window/reinforced/spawner/directional/south, /obj/machinery/atmospherics/components/trinary/filter/atmos/plasma{ @@ -46023,12 +46133,6 @@ /obj/effect/turf_decal/tile/neutral/opposingcorners, /turf/open/floor/iron/dark, /area/station/service/bar) -"oSG" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/red/opposingcorners, -/turf/open/floor/iron/white, -/area/station/security/prison/mess) "oSI" = ( /obj/machinery/status_display/evac/directional/west, /obj/effect/turf_decal/tile/purple/half/contrasted{ @@ -48306,6 +48410,19 @@ /obj/item/storage/book/bible, /turf/open/floor/carpet/red, /area/station/service/chapel) +"pDa" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/sign/departments/medbay/alt/directional/west, +/obj/machinery/lapvend, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/fore) "pDd" = ( /obj/effect/turf_decal/stripes/corner{ dir = 4 @@ -49583,6 +49700,16 @@ }, /turf/open/floor/iron, /area/station/security/brig) +"pXd" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Artifact Science Lab" + }, +/obj/effect/mapping_helpers/airlock/access/any/science/maintenance, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/maintenance/starboard) "pXh" = ( /obj/effect/turf_decal/stripes/corner{ dir = 8 @@ -54286,34 +54413,6 @@ }, /turf/open/floor/iron/dark, /area/station/cargo/storage) -"ruv" = ( -/obj/effect/turf_decal/tile/green{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/table/glass, -/obj/machinery/reagentgrinder{ - desc = "Used to grind things up into raw materials and liquids."; - pixel_y = 5 - }, -/obj/machinery/light_switch/directional/west{ - pixel_y = -4 - }, -/obj/machinery/button/door/directional/west{ - id = "virologysurgery"; - name = "Virology Privacy Toggle"; - pixel_y = 6; - req_access = list("pathology") - }, -/obj/effect/turf_decal/tile/green/half/contrasted{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/iron/showroomfloor, -/area/station/medical/pathology) "ruz" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -55471,17 +55570,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood, /area/station/maintenance/port/fore) -"rMT" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/structure/sign/departments/medbay/alt/directional/west, -/turf/open/floor/iron/dark, -/area/station/hallway/primary/fore) "rNg" = ( /obj/effect/turf_decal/tile/red{ dir = 1 @@ -55898,12 +55986,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) -"rTG" = ( -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 8 - }, -/turf/open/floor/engine, -/area/station/security/bitden) "rTI" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, @@ -56917,19 +56999,6 @@ }, /turf/open/floor/iron, /area/station/commons/fitness/recreation) -"skJ" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Artifact Science Lab" - }, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 8 - }, -/obj/effect/mapping_helpers/airlock/access/any/science/maintenance, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/maintenance/starboard) "skM" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, @@ -59927,18 +59996,6 @@ }, /turf/open/floor/iron, /area/station/security/checkpoint/engineering) -"tgh" = ( -/obj/structure/closet/crate/trashcart/laundry, -/obj/effect/spawner/random/contraband/prison, -/obj/item/clothing/under/rank/prisoner, -/obj/item/clothing/under/rank/prisoner, -/obj/item/clothing/under/rank/prisoner/skirt, -/obj/item/clothing/under/rank/prisoner/skirt, -/obj/effect/turf_decal/tile/blue/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron/cafeteria, -/area/station/security/prison/garden) "tgo" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/mob_spawn/corpse/human/damaged, @@ -60145,6 +60202,12 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/showroomfloor, /area/station/security/warden) +"tku" = ( +/obj/effect/turf_decal/tile/red/opposingcorners, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/landmark/start/prisoner, +/turf/open/floor/iron/white, +/area/station/security/prison/mess) "tkP" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 8 @@ -61403,27 +61466,6 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/atmos) -"tDV" = ( -/obj/structure/table/glass, -/obj/item/folder/white, -/obj/item/folder/white, -/obj/item/crowbar/red, -/obj/item/wrench, -/obj/item/storage/box/syringes{ - pixel_x = 4; - pixel_y = 6 - }, -/obj/item/storage/box/beakers{ - pixel_y = 2 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/airalarm/directional/east, -/obj/structure/noticeboard/directional/south, -/obj/machinery/light/directional/east, -/turf/open/floor/iron/dark, -/area/station/medical/pathology) "tDW" = ( /obj/structure/railing/corner{ dir = 8 @@ -64381,6 +64423,11 @@ /obj/machinery/station_map/engineering/directional/south, /turf/open/floor/iron/dark/corner, /area/station/hallway/primary/central) +"uEz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start/prisoner, +/turf/open/floor/iron/white, +/area/station/security/prison/mess) "uEC" = ( /obj/effect/turf_decal/siding/wideplating/dark/corner, /turf/open/floor/iron/dark, @@ -71651,6 +71698,13 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) +"wNv" = ( +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 8 + }, +/obj/effect/landmark/start/prisoner, +/turf/open/floor/engine, +/area/station/security/bitden) "wNQ" = ( /obj/machinery/disposal/bin, /obj/effect/turf_decal/bot, @@ -81098,7 +81152,7 @@ xew qai qwN bPx -rTG +wNv imi hHy hdD @@ -81612,7 +81666,7 @@ gwj lrh miD sOr -nEP +ckN bDy dcn hdD @@ -83406,7 +83460,7 @@ aaa mWy hhi xlA -xlA +eiZ aDD jYo qrF @@ -83928,7 +83982,7 @@ ljL gjh gjh ljL -aVt +iTO sBJ iyy sEN @@ -84947,7 +85001,7 @@ aaa aaa twX rpB -kYP +ciD iZE xhZ wcI @@ -84960,7 +85014,7 @@ aeU jYh tdY ptQ -tgh +hKl myp cui aeU @@ -85981,7 +86035,7 @@ jYo aDD ncd sAv -aDD +lZB sAv sAv ifQ @@ -86751,7 +86805,7 @@ oUS eJN bbZ phD -bbZ +uEz kfg gdH vyQ @@ -87010,7 +87064,7 @@ saW cjQ tlN kGN -oSG +lIC lUV tPH aeU @@ -88294,7 +88348,7 @@ jsV ybG cKA ocJ -wiN +tku dFN fbd gSF @@ -97005,7 +97059,7 @@ uvA uvA tQk shl -ruv +bXE jZu xZq uvA @@ -97778,7 +97832,7 @@ ali mTC jjR wur -tDV +clv pGi tGn wHJ @@ -99292,8 +99346,8 @@ aLv hrd nCA cXZ -bgH -rMT +hvH +pDa emx nki oic @@ -111683,7 +111737,7 @@ sXJ sXJ oXj jjs -nPw +ddq piN xDj eHc @@ -116755,7 +116809,7 @@ kIY eLx rZV rZV -skJ +pXd vOX rZV rZV diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index fc309d010dff..3c0e1b7eac14 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -10299,11 +10299,6 @@ }, /turf/open/floor/iron, /area/station/commons/fitness/recreation) -"dTj" = ( -/obj/machinery/light/small/directional/west, -/obj/structure/sink/directional/south, -/turf/open/floor/plating, -/area/station/security/prison/safe) "dTq" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/hatch{ @@ -14251,14 +14246,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"fpE" = ( -/obj/structure/rack, -/obj/item/tank/internals/emergency_oxygen, -/obj/item/clothing/mask/breath, -/obj/machinery/power/apc/auto_name/directional/east, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/security/prison/safe) "fpH" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -22931,15 +22918,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) -"itY" = ( -/obj/machinery/door/poddoor/preopen{ - id = "Engineering"; - name = "Engineering Security Doors" - }, -/obj/effect/turf_decal/caution/stand_clear, -/obj/structure/sign/delamination_counter/directional/north, -/turf/open/floor/iron/dark, -/area/station/engineering/break_room) "iuc" = ( /obj/machinery/door/airlock/security{ id_tag = "IsolationCell"; @@ -23095,6 +23073,11 @@ /obj/item/clothing/glasses/welding, /turf/open/floor/iron, /area/station/science/robotics/lab) +"iwH" = ( +/obj/item/kirbyplants/random/dead, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating/airless, +/area/space/nearstation) "iwO" = ( /obj/structure/cable, /obj/effect/turf_decal/stripes/line{ @@ -28430,6 +28413,45 @@ /obj/structure/reagent_dispensers/watertank, /turf/open/floor/plating, /area/station/maintenance/central) +"kiI" = ( +/obj/structure/table/glass, +/obj/structure/reagent_dispensers/wall/virusfood/directional/west, +/obj/machinery/requests_console/directional/south{ + department = "Virology"; + name = "Virology Requests Console"; + receive_ore_updates = 1 + }, +/obj/item/folder/white{ + pixel_x = 4; + pixel_y = -3 + }, +/obj/item/folder/white{ + pixel_x = 4; + pixel_y = -3 + }, +/obj/item/pen/red, +/obj/item/stack/sheet/mineral/plasma, +/obj/item/stack/sheet/mineral/plasma, +/obj/item/stack/sheet/mineral/plasma, +/obj/effect/turf_decal/tile/green/anticorner/contrasted{ + dir = 8 + }, +/obj/item/device/antibody_scanner, +/obj/item/reagent_containers/cup/tube, +/obj/item/reagent_containers/cup/tube, +/obj/item/reagent_containers/cup/tube, +/obj/item/reagent_containers/cup/tube, +/obj/item/reagent_containers/cup/tube, +/obj/item/reagent_containers/cup/tube, +/obj/item/reagent_containers/cup/tube, +/obj/item/reagent_containers/cup/tube, +/obj/item/device/antibody_scanner, +/obj/item/device/antibody_scanner, +/obj/item/device/antibody_scanner, +/obj/item/clothing/gloves/latex, +/obj/item/clothing/glasses/hud/health, +/turf/open/floor/iron/white, +/area/station/medical/pathology) "kiJ" = ( /obj/effect/turf_decal/siding/purple{ dir = 1 @@ -28500,45 +28522,6 @@ dir = 1 }, /area/station/engineering/atmos) -"kku" = ( -/obj/structure/table/glass, -/obj/structure/reagent_dispensers/wall/virusfood/directional/west, -/obj/machinery/requests_console/directional/south{ - department = "Virology"; - name = "Virology Requests Console"; - receive_ore_updates = 1 - }, -/obj/item/folder/white{ - pixel_x = 4; - pixel_y = -3 - }, -/obj/item/folder/white{ - pixel_x = 4; - pixel_y = -3 - }, -/obj/item/pen/red, -/obj/item/stack/sheet/mineral/plasma, -/obj/item/stack/sheet/mineral/plasma, -/obj/item/stack/sheet/mineral/plasma, -/obj/effect/turf_decal/tile/green/anticorner/contrasted{ - dir = 8 - }, -/obj/item/device/antibody_scanner, -/obj/item/reagent_containers/cup/beaker/vial, -/obj/item/reagent_containers/cup/beaker/vial, -/obj/item/reagent_containers/cup/beaker/vial, -/obj/item/reagent_containers/cup/beaker/vial, -/obj/item/reagent_containers/cup/beaker/vial, -/obj/item/reagent_containers/cup/beaker/vial, -/obj/item/reagent_containers/cup/beaker/vial, -/obj/item/reagent_containers/cup/beaker/vial, -/obj/item/device/antibody_scanner, -/obj/item/device/antibody_scanner, -/obj/item/device/antibody_scanner, -/obj/item/clothing/gloves/latex, -/obj/item/clothing/glasses/hud/health, -/turf/open/floor/iron/white, -/area/station/medical/pathology) "kkT" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -28817,6 +28800,12 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/hallway/primary/port) +"kol" = ( +/obj/machinery/light/small/directional/west, +/obj/structure/sink/directional/south, +/obj/structure/ghost_critter_spawn, +/turf/open/floor/plating, +/area/station/security/prison/safe) "kop" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -35222,6 +35211,19 @@ /obj/effect/spawner/random/maintenance/two, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"mCp" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/siding{ + dir = 4 + }, +/obj/item/kirbyplants/random/dead, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/rd) "mCL" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, @@ -43743,19 +43745,6 @@ "pBa" = ( /turf/closed/wall, /area/station/medical/medbay/lobby) -"pBd" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/siding{ - dir = 4 - }, -/obj/item/kirbyplants/dead, -/turf/open/floor/iron/dark, -/area/station/command/heads_quarters/rd) "pBG" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -54018,6 +54007,15 @@ /obj/machinery/coffeemaker/impressa, /turf/open/floor/iron/dark, /area/station/service/cafeteria) +"tcu" = ( +/obj/machinery/door/poddoor/preopen{ + id = "Engineering"; + name = "Engineering Security Doors" + }, +/obj/effect/turf_decal/caution/stand_clear, +/obj/machinery/incident_display/delam/directional/north, +/turf/open/floor/iron/dark, +/area/station/engineering/break_room) "tcx" = ( /obj/structure/table, /obj/effect/turf_decal/trimline/purple/filled/line{ @@ -60366,11 +60364,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/commons/vacant_room/commissary) -"vnP" = ( -/obj/item/kirbyplants/dead, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/plating/airless, -/area/space/nearstation) "vnV" = ( /obj/machinery/light/directional/west, /obj/machinery/airalarm/directional/west, @@ -67059,6 +67052,17 @@ }, /turf/open/floor/iron/dark, /area/station/security/courtroom) +"xGi" = ( +/obj/structure/rack, +/obj/item/tank/internals/emergency_oxygen, +/obj/item/clothing/mask/breath, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/obj/item/storage/box/lights/mixed{ + pixel_x = 7 + }, +/turf/open/floor/plating, +/area/station/security/prison/safe) "xGk" = ( /obj/machinery/computer/operating{ dir = 8 @@ -82791,7 +82795,7 @@ vdJ rTO kVg tgD -kku +kiI xjH eUA sWe @@ -86528,11 +86532,11 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa +rrt +rrt +rrt +rrt +rrt rrt aaa lMJ @@ -86785,12 +86789,12 @@ aaa aaa aaa aaa +rrt aaa aaa aaa aaa -aaa -rrt +lMJ aaa lMJ aaa @@ -87042,7 +87046,7 @@ aaa aaa aaa aaa -aaa +rrt aaa rZK rZK @@ -87300,7 +87304,7 @@ mxQ mxQ mxQ mxQ -mxQ +lMJ rZK cTa cTa @@ -90654,7 +90658,7 @@ nyf uZa nEZ wZz -dTj +kol qOT swR tGX @@ -91169,7 +91173,7 @@ koc sWF wZz wOm -fpE +xGi wZz fWw vtx @@ -102565,7 +102569,7 @@ bwb kCZ whc tAg -pBd +mCp uhT wtP nup @@ -109464,7 +109468,7 @@ cDQ inP dOQ cnK -itY +tcu uMU mGX kfp @@ -118970,7 +118974,7 @@ lMJ aaa aaa lMJ -vnP +iwH lMJ lMJ lMJ diff --git a/_maps/map_files/NorthStar/north_star.dmm b/_maps/map_files/NorthStar/north_star.dmm index 2790f508ead1..e4e7c3b9100c 100644 --- a/_maps/map_files/NorthStar/north_star.dmm +++ b/_maps/map_files/NorthStar/north_star.dmm @@ -311,11 +311,6 @@ /obj/effect/turf_decal/trimline/blue/line, /turf/open/floor/carpet/blue, /area/station/command/meeting_room) -"adj" = ( -/obj/item/kirbyplants/dead, -/obj/effect/turf_decal/tile/purple/opposingcorners, -/turf/open/floor/iron/white, -/area/station/command/heads_quarters/rd) "adk" = ( /obj/structure/grille, /obj/structure/sign/directions/medical/directional/north, @@ -1478,24 +1473,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/rd) -"asE" = ( -/obj/effect/turf_decal/trimline/brown/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/trimline/brown/line, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron/dark/smooth_corner{ - dir = 8 - }, -/area/station/cargo/drone_bay) "asI" = ( /obj/structure/industrial_lift/public, /turf/open/floor/plating/elevatorshaft, @@ -5229,6 +5206,14 @@ /obj/item/radio/intercom/directional/east, /turf/open/floor/iron, /area/station/science/robotics/lab) +"bnm" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/obj/machinery/holopad, +/turf/open/floor/iron/dark/textured_large, +/area/station/cargo/drone_bay) "bnu" = ( /obj/machinery/light/blacklight/directional/west, /obj/structure/table, @@ -6782,6 +6767,16 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/security/prison/safe) +"bFU" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/obj/effect/turf_decal/arrows{ + dir = 4 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/iron/dark/textured_large, +/area/station/cargo/drone_bay) "bFZ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -7021,13 +7016,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/medical/abandoned) -"bJI" = ( -/obj/machinery/quantum_server, -/obj/effect/turf_decal/bot/left, -/turf/open/floor/iron/dark/smooth_corner{ - dir = 4 - }, -/area/station/cargo/drone_bay) "bJQ" = ( /obj/structure/railing/corner{ dir = 1 @@ -7975,14 +7963,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"bVH" = ( -/obj/machinery/netpod, -/obj/machinery/airalarm/directional/east, -/obj/machinery/airalarm/directional/east, -/obj/machinery/airalarm/directional/east, -/obj/machinery/airalarm/directional/east, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/cargo/drone_bay) "bVK" = ( /obj/structure/table, /mob/living/basic/mouse/brown/tom, @@ -12812,12 +12792,6 @@ "dnU" = ( /turf/closed/wall, /area/station/security/office) -"dob" = ( -/obj/machinery/computer/quantum_console{ - dir = 4 - }, -/turf/open/floor/iron/dark/smooth_corner, -/area/station/cargo/drone_bay) "dog" = ( /obj/structure/showcase/cyborg/old{ dir = 8; @@ -19440,17 +19414,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/cargo/office) -"fhi" = ( -/obj/effect/turf_decal/siding/thinplating_new/dark{ - dir = 4 - }, -/obj/effect/turf_decal/arrows{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/disposalpipe/trunk/multiz, -/turf/open/floor/iron/dark/textured_large, -/area/station/cargo/drone_bay) "fhl" = ( /obj/structure/bed{ dir = 1 @@ -21482,6 +21445,14 @@ /obj/machinery/door/firedoor/border_only, /turf/open/floor/catwalk_floor/iron_dark, /area/station/maintenance/floor2/starboard/aft) +"fIS" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 4 + }, +/obj/machinery/airalarm/directional/north, +/obj/effect/mapping_helpers/airalarm/mixingchamber_access, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/freezerchamber) "fIX" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/structure/crate, @@ -21778,13 +21749,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/science/ordnance/testlab) -"fNv" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/extinguisher_cabinet/directional/west, -/turf/open/floor/iron/stairs{ - dir = 1 - }, -/area/station/cargo/drone_bay) "fNA" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -22231,14 +22195,6 @@ name = "lab floor" }, /area/station/science/robotics/lab) -"fTs" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/siding/thinplating_new/dark{ - dir = 8 - }, -/obj/machinery/holopad, -/turf/open/floor/iron/dark/textured_large, -/area/station/cargo/drone_bay) "fTu" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/shreds, @@ -28418,14 +28374,6 @@ }, /turf/open/floor/iron/dark, /area/station/security/lockers) -"hFC" = ( -/obj/machinery/firealarm/directional/south, -/obj/machinery/light/directional/south, -/obj/effect/decal/cleanable/oil/streak, -/obj/machinery/byteforge, -/obj/effect/turf_decal/box, -/turf/open/floor/iron/dark/smooth_large, -/area/station/cargo/drone_bay) "hFE" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -28840,21 +28788,6 @@ }, /turf/open/floor/iron, /area/station/engineering/lobby) -"hKX" = ( -/obj/effect/turf_decal/siding/thinplating_new/dark{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/airlock/mining/glass{ - name = "Bitrunning Den" - }, -/turf/open/floor/pod/dark, -/area/station/cargo/drone_bay) "hKZ" = ( /obj/machinery/button/door/directional/south{ id = "dorms_1_bolts"; @@ -29355,6 +29288,13 @@ }, /turf/open/floor/wood, /area/station/commons/dorms/apartment2) +"hSr" = ( +/obj/machinery/quantum_server, +/obj/effect/turf_decal/bot/left, +/turf/open/floor/iron/dark/smooth_corner{ + dir = 4 + }, +/area/station/cargo/drone_bay) "hSC" = ( /obj/structure/railing{ dir = 4 @@ -30181,16 +30121,6 @@ /obj/item/kirbyplants/random, /turf/open/floor/iron, /area/station/hallway/floor3/aft) -"ifn" = ( -/obj/effect/turf_decal/siding/thinplating_new/dark{ - dir = 4 - }, -/obj/effect/turf_decal/arrows{ - dir = 4 - }, -/obj/machinery/light/directional/north, -/turf/open/floor/iron/dark/textured_large, -/area/station/cargo/drone_bay) "ifo" = ( /obj/structure/tank_holder/emergency_oxygen, /obj/effect/turf_decal/stripes/line{ @@ -31446,6 +31376,13 @@ }, /turf/open/floor/iron, /area/station/service/hydroponics) +"ixP" = ( +/obj/machinery/netpod, +/obj/structure/railing{ + layer = 3.1 + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/cargo/drone_bay) "ixQ" = ( /obj/effect/turf_decal/tile/green/full, /obj/structure/railing{ @@ -32796,12 +32733,6 @@ }, /turf/open/floor/engine/airless, /area/station/solars/port/aft) -"iRu" = ( -/obj/machinery/airalarm/directional/north, -/obj/effect/mapping_helpers/airalarm/tlv_cold_room, -/obj/machinery/light/directional/north, -/turf/open/floor/iron/kitchen_coldroom/freezerfloor, -/area/station/service/kitchen/coldroom) "iRD" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -39716,24 +39647,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible/layer2, /turf/open/floor/iron, /area/station/engineering/atmos) -"kIn" = ( -/obj/effect/turf_decal/trimline/brown/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/effect/turf_decal/trimline/brown/line, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/iron/dark/smooth_half, -/area/station/cargo/drone_bay) "kIu" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/dirt/dust, @@ -40325,6 +40238,12 @@ /obj/machinery/camera/autoname/directional/north, /turf/open/floor/iron, /area/station/commons/vacant_room/commissary) +"kQJ" = ( +/obj/machinery/airalarm/directional/south, +/obj/effect/mapping_helpers/airalarm/engine_access, +/obj/effect/baseturf_helper/reinforced_plating/ceiling, +/turf/open/floor/engine, +/area/station/engineering/supermatter) "kQN" = ( /obj/effect/mapping_helpers/airlock/access/any/engineering/maintenance, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -41999,6 +41918,12 @@ dir = 8 }, /area/station/ai_monitored/command/storage/eva) +"lmi" = ( +/obj/machinery/airalarm/directional/north, +/obj/effect/mapping_helpers/airalarm/tlv_cold_room, +/obj/machinery/light/directional/north, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/service/kitchen/coldroom) "lmk" = ( /obj/effect/turf_decal/trimline/red/warning{ dir = 8 @@ -43021,21 +42946,6 @@ /obj/effect/landmark/generic_maintenance_landmark, /turf/open/floor/pod/light, /area/station/maintenance/floor1/port/aft) -"lzV" = ( -/obj/structure/table/reinforced, -/obj/item/storage/toolbox/mechanical{ - pixel_x = -2; - pixel_y = 8 - }, -/obj/item/cigbutt/cigarbutt{ - pixel_x = 7 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/obj/effect/decal/cleanable/glass, -/turf/open/floor/iron/dark/smooth_half, -/area/station/cargo/drone_bay) "lzX" = ( /obj/effect/turf_decal/trimline/red/line, /obj/effect/turf_decal/trimline/white/warning, @@ -43116,6 +43026,21 @@ "lAU" = ( /turf/closed/wall, /area/station/service/library/printer) +"lBb" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/mining/glass{ + name = "Bitrunning Den" + }, +/turf/open/floor/pod/dark, +/area/station/cargo/drone_bay) "lBo" = ( /obj/machinery/atmospherics/pipe/smart/simple/dark/visible/layer2{ dir = 10 @@ -43552,16 +43477,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/commons/fitness) -"lGu" = ( -/obj/machinery/netpod, -/obj/effect/decal/cleanable/vomit/old{ - pixel_x = -12; - pixel_y = -13 - }, -/obj/item/radio/intercom/directional/north, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/cargo/drone_bay) "lGw" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -44176,14 +44091,6 @@ /obj/item/restraints/handcuffs, /turf/open/floor/iron/dark, /area/station/security/brig) -"lOF" = ( -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ - dir = 4 - }, -/obj/machinery/airalarm/directional/north, -/obj/effect/mapping_helpers/airalarm/mixingchamber_access, -/turf/open/floor/iron/dark, -/area/station/science/ordnance/freezerchamber) "lOI" = ( /obj/machinery/airalarm/directional/west, /obj/structure/noticeboard/ce{ @@ -44487,6 +44394,20 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/hallway/floor3/aft) +"lRL" = ( +/obj/machinery/button/ignition/incinerator/ordmix{ + pixel_x = 8; + pixel_y = 32 + }, +/obj/machinery/button/door/incinerator_vent_ordmix{ + pixel_x = -8; + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, +/obj/machinery/airalarm/directional/west, +/obj/effect/mapping_helpers/airalarm/mixingchamber_access, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/burnchamber) "lRO" = ( /obj/structure/table/wood, /obj/effect/spawner/random/entertainment/musical_instrument, @@ -45216,6 +45137,13 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/white, /area/station/medical/abandoned) +"mbR" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/turf/open/floor/iron/dark/smooth_large, +/area/station/cargo/drone_bay) "mbS" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, /obj/effect/spawner/structure/window/hollow/reinforced/plasma/middle, @@ -45359,12 +45287,6 @@ /obj/machinery/status_display/ai/directional/west, /turf/open/floor/iron, /area/station/hallway/floor1/aft) -"mdu" = ( -/obj/machinery/airalarm/directional/south, -/obj/effect/mapping_helpers/airalarm/engine_access, -/obj/effect/baseturf_helper/reinforced_plating/ceiling, -/turf/open/floor/engine, -/area/station/engineering/supermatter) "mdB" = ( /turf/open/floor/iron, /area/station/commons/fitness/recreation) @@ -47735,6 +47657,11 @@ /obj/effect/turf_decal/tile/red/fourcorners, /turf/open/floor/iron/dark, /area/station/security/lockers) +"mId" = ( +/obj/item/kirbyplants/random/dead, +/obj/effect/turf_decal/tile/purple/opposingcorners, +/turf/open/floor/iron/white, +/area/station/command/heads_quarters/rd) "mIh" = ( /obj/structure/closet/toolcloset, /obj/effect/turf_decal/bot, @@ -48207,6 +48134,13 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/tcommsat/server) +"mNq" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/iron/stairs{ + dir = 1 + }, +/area/station/cargo/drone_bay) "mNT" = ( /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 4 @@ -50627,6 +50561,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor, /area/station/maintenance/floor1/port) +"nri" = ( +/obj/machinery/firealarm/directional/south, +/obj/machinery/light/directional/south, +/obj/effect/decal/cleanable/oil/streak, +/obj/machinery/byteforge, +/obj/effect/turf_decal/box, +/turf/open/floor/iron/dark/smooth_large, +/area/station/cargo/drone_bay) "nrk" = ( /obj/structure/cable, /obj/structure/table, @@ -51147,13 +51089,6 @@ dir = 5 }, /area/station/security/brig) -"nxV" = ( -/obj/effect/turf_decal/siding/white{ - dir = 1 - }, -/obj/item/kirbyplants/fullysynthetic, -/turf/open/floor/mineral/silver, -/area/station/service/chapel/funeral) "nya" = ( /obj/effect/turf_decal/trimline/brown/filled/line{ dir = 5 @@ -51520,6 +51455,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/pod/dark, /area/station/maintenance/floor4/port/aft) +"nCB" = ( +/obj/machinery/computer/quantum_console{ + dir = 4 + }, +/turf/open/floor/iron/dark/smooth_corner, +/area/station/cargo/drone_bay) "nCD" = ( /obj/structure/flora/bush/flowers_br/style_random, /turf/open/floor/grass, @@ -52335,6 +52276,15 @@ }, /turf/open/floor/iron, /area/station/hallway/floor3/aft) +"nNy" = ( +/obj/structure/sign/poster/random/directional/north, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/decal/cleanable/oil, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured_large, +/area/station/cargo/drone_bay) "nNJ" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 @@ -55850,6 +55800,13 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/hop) +"oJZ" = ( +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/item/kirbyplants/random/fullysynthetic, +/turf/open/floor/mineral/silver, +/area/station/service/chapel/funeral) "oKc" = ( /obj/effect/turf_decal/trimline/green/filled/corner{ dir = 8 @@ -55959,6 +55916,11 @@ /obj/structure/railing, /turf/open/floor/iron, /area/station/commons/vacant_room/commissary) +"oMk" = ( +/obj/effect/turf_decal/siding/white, +/obj/item/kirbyplants/random/fullysynthetic, +/turf/open/floor/mineral/silver, +/area/station/service/chapel/funeral) "oMn" = ( /obj/item/grenade/barrier{ pixel_x = -3; @@ -57466,13 +57428,6 @@ }, /turf/open/floor/pod/light, /area/station/cargo/sorting) -"pjG" = ( -/obj/machinery/netpod, -/obj/structure/railing{ - layer = 3.1 - }, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/cargo/drone_bay) "pjM" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -57911,11 +57866,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/catwalk_floor/iron_dark, /area/station/maintenance/floor3/port) -"pqe" = ( -/obj/effect/turf_decal/siding/white, -/obj/item/kirbyplants/fullysynthetic, -/turf/open/floor/mineral/silver, -/area/station/service/chapel/funeral) "pqg" = ( /obj/machinery/button/door/directional/east{ id = "mechbay"; @@ -61194,6 +61144,14 @@ }, /turf/open/floor/iron, /area/station/cargo/miningdock) +"qlP" = ( +/obj/machinery/netpod, +/obj/machinery/airalarm/directional/east, +/obj/machinery/airalarm/directional/east, +/obj/machinery/airalarm/directional/east, +/obj/machinery/airalarm/directional/east, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/cargo/drone_bay) "qlX" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 8 @@ -61598,6 +61556,21 @@ dir = 8 }, /area/station/service/chapel) +"qsc" = ( +/obj/structure/table/reinforced, +/obj/item/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = 8 + }, +/obj/item/cigbutt/cigarbutt{ + pixel_x = 7 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/iron/dark/smooth_half, +/area/station/cargo/drone_bay) "qse" = ( /obj/structure/closet/secure_closet/personal, /turf/open/floor/iron/dark, @@ -69272,20 +69245,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"szr" = ( -/obj/effect/turf_decal/trimline/brown/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/effect/turf_decal/stripes, -/obj/effect/turf_decal/trimline/brown/line, -/turf/open/floor/iron/dark/smooth_half, -/area/station/cargo/drone_bay) "szt" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -70214,15 +70173,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/dark, /area/station/hallway/floor3/fore) -"sMk" = ( -/obj/structure/sign/poster/random/directional/north, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/obj/effect/decal/cleanable/oil, -/obj/effect/turf_decal/siding/thinplating_new/dark{ - dir = 8 - }, -/turf/open/floor/iron/dark/textured_large, -/area/station/cargo/drone_bay) "sMm" = ( /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ dir = 4 @@ -71266,10 +71216,6 @@ "tat" = ( /turf/open/openspace, /area/station/maintenance/floor3/starboard/aft) -"taC" = ( -/obj/structure/cable, -/turf/closed/wall, -/area/station/cargo/drone_bay) "taD" = ( /obj/machinery/door/airlock/external/glass, /obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ @@ -73113,6 +73059,24 @@ /obj/machinery/light_switch/directional/south, /turf/open/floor/iron/kitchen, /area/station/command/heads_quarters/rd) +"tCm" = ( +/obj/effect/turf_decal/trimline/brown/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/turf_decal/trimline/brown/line, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/iron/dark/smooth_half, +/area/station/cargo/drone_bay) "tCB" = ( /obj/effect/spawner/random/trash/garbage{ spawn_scatter_radius = 1 @@ -76802,6 +76766,20 @@ /obj/effect/decal/cleanable/blood/tracks, /turf/open/floor/engine, /area/station/maintenance/floor4/starboard/aft) +"uHw" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/obj/effect/turf_decal/arrows{ + dir = 4 + }, +/obj/structure/railing{ + layer = 3.1 + }, +/obj/effect/decal/cleanable/robot_debris, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/dark/textured_large, +/area/station/cargo/drone_bay) "uHx" = ( /obj/structure/grille/broken, /turf/open/floor/plating, @@ -77758,13 +77736,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/engineering/atmos/pumproom) -"uUi" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/stripes{ - dir = 8 - }, -/turf/open/floor/iron/dark/smooth_large, -/area/station/cargo/drone_bay) "uUj" = ( /obj/structure/transit_tube/curved{ dir = 8 @@ -78538,20 +78509,6 @@ }, /turf/open/floor/wood, /area/station/service/theater) -"veD" = ( -/obj/effect/turf_decal/siding/thinplating_new/dark{ - dir = 4 - }, -/obj/effect/turf_decal/arrows{ - dir = 4 - }, -/obj/structure/railing{ - layer = 3.1 - }, -/obj/effect/decal/cleanable/robot_debris, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron/dark/textured_large, -/area/station/cargo/drone_bay) "veF" = ( /obj/effect/turf_decal/siding/white{ dir = 4 @@ -81368,6 +81325,20 @@ }, /turf/open/floor/iron/white, /area/station/medical/storage) +"vQF" = ( +/obj/effect/turf_decal/trimline/brown/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/effect/turf_decal/stripes, +/obj/effect/turf_decal/trimline/brown/line, +/turf/open/floor/iron/dark/smooth_half, +/area/station/cargo/drone_bay) "vQR" = ( /obj/effect/turf_decal/tile/blue/half/contrasted, /turf/open/floor/iron/dark/side{ @@ -86056,6 +86027,17 @@ dir = 1 }, /area/station/hallway/floor3/aft) +"xal" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/obj/effect/turf_decal/arrows{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/disposalpipe/trunk/multiz, +/turf/open/floor/iron/dark/textured_large, +/area/station/cargo/drone_bay) "xam" = ( /obj/effect/turf_decal/trimline/white/line{ dir = 8 @@ -87474,6 +87456,24 @@ /obj/structure/cable, /turf/open/floor/catwalk_floor, /area/station/maintenance/floor2/port/aft) +"xur" = ( +/obj/effect/turf_decal/trimline/brown/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/brown/line, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark/smooth_corner{ + dir = 8 + }, +/area/station/cargo/drone_bay) "xuv" = ( /turf/closed/wall/r_wall, /area/station/maintenance/floor2/starboard/fore) @@ -87673,20 +87673,6 @@ /obj/machinery/camera/autoname/directional/east, /turf/open/floor/iron/kitchen_coldroom/freezerfloor, /area/station/service/kitchen/coldroom) -"xwP" = ( -/obj/machinery/button/ignition/incinerator/ordmix{ - pixel_x = 8; - pixel_y = 32 - }, -/obj/machinery/button/door/incinerator_vent_ordmix{ - pixel_x = -8; - pixel_y = 32 - }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, -/obj/machinery/airalarm/directional/west, -/obj/effect/mapping_helpers/airalarm/mixingchamber_access, -/turf/open/floor/iron/dark, -/area/station/science/ordnance/burnchamber) "xwX" = ( /obj/structure/easel, /turf/open/floor/bamboo/tatami/black, @@ -87816,6 +87802,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/pod/dark, /area/station/maintenance/floor2/starboard) +"xyT" = ( +/obj/machinery/netpod, +/obj/effect/decal/cleanable/vomit/old{ + pixel_x = -12; + pixel_y = -13 + }, +/obj/item/radio/intercom/directional/north, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/cargo/drone_bay) "xyU" = ( /obj/effect/decal/cleanable/dirt, /obj/item/picket_sign, @@ -88807,6 +88803,10 @@ /obj/machinery/atmospherics/components/unary/cryo_cell, /turf/open/floor/iron/dark/textured, /area/station/medical/cryo) +"xNr" = ( +/obj/structure/cable, +/turf/closed/wall, +/area/station/cargo/drone_bay) "xNx" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/iron, @@ -113173,8 +113173,8 @@ owI owI aQK aQK -dob -bJI +nCB +hSr aQK aQK aQK @@ -113430,11 +113430,11 @@ owI owI aQK aQK -sMk -fTs -fNv -szr -hFC +nNy +bnm +mNq +vQF +nri aQK rGF yiZ @@ -113687,11 +113687,11 @@ owI owI aQK aQK -ifn -fhi -veD -kIn -uUi +bFU +xal +uHw +tCm +mbR gfn hBR qWJ @@ -113944,11 +113944,11 @@ owI owI aQK aQK -lGu -bVH -pjG -asE -lzV +xyT +qlP +ixP +xur +qsc gfn rYA eEB @@ -114203,8 +114203,8 @@ aQK aQK aQK aQK -taC -hKX +xNr +lBb aQK aQK fxr @@ -136330,7 +136330,7 @@ sly uyD aFJ mMq -mdu +kQJ uyD sHL ddT @@ -184114,7 +184114,7 @@ hge dPi hge oiO -adj +mId aeI aiN amR @@ -248913,7 +248913,7 @@ ftp pzi eMj diA -iRu +lmi dDn pmQ pDK @@ -310813,7 +310813,7 @@ tQO mXH qyH mXH -xwP +lRL nmc xJx rov @@ -312607,7 +312607,7 @@ ucA ucA ucA lYx -lOF +fIS koC oOA tyR @@ -328804,9 +328804,9 @@ fVV fVV fVV ulj -nxV +oJZ gbZ -pqe +oMk iWQ xeQ fVV diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index ac532e45ec46..1f36125564c3 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -348,12 +348,6 @@ /obj/structure/railing/wood, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/botany) -"aY" = ( -/obj/machinery/sleeper/self_control{ - dir = 4 - }, -/turf/open/floor/mineral/titanium/tiled/white, -/area/centcom/central_command_areas/admin) "aZ" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/structure/table/reinforced, @@ -812,10 +806,6 @@ /obj/effect/turf_decal/tile/dark/opposingcorners, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/borbop) -"cf" = ( -/obj/machinery/limbgrower/fullupgrade, -/turf/open/floor/mineral/titanium/tiled/white, -/area/centcom/central_command_areas/admin) "cg" = ( /turf/closed/indestructible/riveted, /area/centcom/central_command_areas/evacuation) @@ -968,6 +958,16 @@ /obj/machinery/light/directional/north, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/hall) +"cC" = ( +/obj/structure/sign{ + name = "wall"; + icon = 'monkestation/icons/turf/walls/reinforced_wall.dmi'; + icon_state = "reinforced_wall-3"; + desc = "Effectively impervious to conventional methods of destruction."; + pixel_x = -32 + }, +/turf/closed/indestructible/riveted, +/area/centcom/central_command_areas/admin) "cD" = ( /obj/structure/chair/pew{ dir = 8 @@ -1292,12 +1292,11 @@ /turf/open/floor/mineral/plastitanium, /area/centcom/syndicate_mothership/control) "ds" = ( -/obj/structure/carving_block{ - color = "#cc9439" - }, -/turf/open/floor/sepia{ - color = "#cc9439" +/obj/structure/alien_tank/filled{ + desc = "A black slime creature swims around in the fluids."; + name = "Bio Creature Tank" }, +/turf/open/floor/mineral/titanium/tiled/white, /area/centcom/central_command_areas/admin) "dt" = ( /obj/structure/window/reinforced/tinted/frosted, @@ -1495,36 +1494,6 @@ /obj/effect/turf_decal/siding/dark, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/admin_hangout) -"dU" = ( -/obj/structure/table/reinforced/plastitaniumglass, -/obj/structure/window/reinforced/spawner/directional, -/obj/item/gun/syringe/rapidsyringe, -/obj/item/reagent_containers/syringe/contraband/fentanyl{ - pixel_x = -2; - pixel_y = 8 - }, -/obj/item/reagent_containers/syringe/contraband/fentanyl{ - pixel_x = 2; - pixel_y = 11 - }, -/obj/item/reagent_containers/syringe/contraband/fentanyl{ - pixel_x = -2; - pixel_y = 11 - }, -/obj/item/reagent_containers/syringe/contraband/fentanyl{ - pixel_x = 8; - pixel_y = 11 - }, -/obj/item/reagent_containers/syringe/contraband/fentanyl{ - pixel_x = 8; - pixel_y = 8 - }, -/obj/item/reagent_containers/syringe/contraband/fentanyl{ - pixel_x = 5; - pixel_y = 8 - }, -/turf/open/floor/glass/reinforced, -/area/centcom/central_command_areas/admin) "dV" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -1658,6 +1627,10 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/borbop) +"el" = ( +/obj/structure/chair/comfy/teal, +/turf/open/floor/glass/reinforced/plasma, +/area/centcom/central_command_areas/admin) "em" = ( /obj/machinery/chem_mass_spec, /turf/open/floor/mineral/titanium/tiled/yellow, @@ -1976,6 +1949,13 @@ /obj/effect/mapping_helpers/airlock/access/any/admin/captain, /turf/open/floor/carpet/purple, /area/centcom/central_command_areas/admin) +"fm" = ( +/obj/machinery/door/airlock/centcom{ + name = "Raziel's Theatre" + }, +/obj/effect/mapping_helpers/airlock/access/any/admin/captain, +/turf/open/floor/iron/dark, +/area/centcom/central_command_areas/admin) "fn" = ( /obj/effect/turf_decal/siding/dark{ dir = 8 @@ -2013,16 +1993,6 @@ /obj/structure/table/wood/fancy/black, /turf/open/floor/wood/parquet, /area/centcom/central_command_areas/borbop) -"fr" = ( -/obj/structure/table/wood/fancy/royalblue, -/obj/structure/window/reinforced/spawner/directional/west, -/obj/machinery/door/window/brigdoor/security, -/obj/effect/mapping_helpers/airlock/access/any/admin/captain, -/obj/item/mod/control/pre_equipped/responsory/medic{ - pixel_y = 4 - }, -/turf/open/floor/glass/reinforced, -/area/centcom/central_command_areas/admin) "fs" = ( /obj/structure/flora/tree/pine/style_random, /turf/open/misc/asteroid/snow/airless, @@ -2089,15 +2059,6 @@ /obj/effect/turf_decal/siding/wood/corner, /turf/open/floor/wood/large, /area/centcom/central_command_areas/medical) -"fG" = ( -/obj/structure/table/optable/abductor{ - color = "#efbc1e"; - name = "Ancient Operating Table" - }, -/turf/open/floor/sepia{ - color = "#cc9439" - }, -/area/centcom/central_command_areas/admin) "fH" = ( /obj/machinery/light/neon_lining{ dir = 1; @@ -2222,10 +2183,6 @@ /obj/machinery/light/directional/east, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/hall) -"fZ" = ( -/obj/structure/table/optable, -/turf/open/floor/mineral/titanium/tiled/white, -/area/centcom/central_command_areas/admin) "ga" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/simple, /turf/closed/indestructible/syndicate, @@ -2322,6 +2279,9 @@ /obj/effect/turf_decal/tile/red/full, /turf/open/floor/iron/dark/textured_half, /area/centcom/syndicate_mothership/control) +"gn" = ( +/turf/closed/indestructible/sandstone, +/area/centcom/central_command_areas/admin) "go" = ( /obj/structure/closet, /turf/open/floor/circuit, @@ -2737,6 +2697,11 @@ /obj/structure/window/plasma/spawner/directional/east, /turf/open/indestructible/hotelwood, /area/centcom/central_command_areas/admin) +"hs" = ( +/turf/closed/indestructible/fakeglass{ + color = "#ffe599" + }, +/area/centcom/central_command_areas/admin) "ht" = ( /obj/structure/table/reinforced, /obj/machinery/camera/autoname/directional/east{ @@ -2763,6 +2728,19 @@ }, /turf/open/floor/carpet/neon/simple/black, /area/centcom/central_command_areas/admin) +"hv" = ( +/obj/structure/table/wood/fancy/royalblue, +/obj/machinery/door/window/brigdoor/security, +/obj/machinery/door/window/brigdoor/security, +/obj/effect/mapping_helpers/airlock/access/any/admin/captain, +/obj/item/mod/module/injector{ + pixel_y = -2 + }, +/obj/item/mod/module/health_analyzer{ + pixel_y = 7 + }, +/turf/open/floor/glass/reinforced/plasma, +/area/centcom/central_command_areas/admin) "hw" = ( /obj/structure/chair/office{ dir = 4 @@ -2864,6 +2842,17 @@ /obj/item/clipboard, /turf/open/indestructible/hotelwood, /area/centcom/central_command_areas/admin) +"hL" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/structure/window/reinforced/spawner/directional, +/obj/item/autosurgeon{ + pixel_y = 17 + }, +/obj/item/organ/internal/cyberimp/brain/linked_surgery/perfect{ + pixel_x = -1 + }, +/turf/open/floor/glass/reinforced/plasma, +/area/centcom/central_command_areas/admin) "hM" = ( /obj/effect/turf_decal/siding/wood/corner{ dir = 4 @@ -2955,10 +2944,6 @@ }, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/borbop) -"hY" = ( -/obj/machinery/light/directional/east, -/turf/open/floor/glass/reinforced, -/area/centcom/central_command_areas/admin) "hZ" = ( /obj/effect/turf_decal/siding/dark{ dir = 5 @@ -3060,23 +3045,6 @@ }, /turf/open/floor/iron/white/herringbone, /area/centcom/central_command_areas/kitchen) -"im" = ( -/obj/structure/rack{ - color = "#efbc1e" - }, -/obj/item/chisel, -/obj/item/toy/crayon/spraycan/infinite{ - pixel_y = 3; - pixel_x = 9 - }, -/obj/item/stack/sheet/mineral/sandstone/thirty{ - pixel_y = 2; - pixel_x = -10 - }, -/turf/open/floor/sepia{ - color = "#cc9439" - }, -/area/centcom/central_command_areas/admin) "in" = ( /obj/item/kirbyplants{ icon_state = "plant-22"; @@ -3278,6 +3246,21 @@ /obj/effect/mapping_helpers/airlock/access/any/admin/captain, /turf/open/floor/iron/grimy, /area/centcom/central_command_areas/admin) +"iU" = ( +/obj/structure/table/wood/fancy/royalblue, +/obj/item/mod/module/megaphone{ + pixel_y = 12; + pixel_x = -1 + }, +/obj/item/mod/module/quick_carry/advanced{ + pixel_y = -2; + pixel_x = -2 + }, +/obj/machinery/door/window/brigdoor/security, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/effect/mapping_helpers/airlock/access/any/admin/captain, +/turf/open/floor/glass/reinforced, +/area/centcom/central_command_areas/admin) "iV" = ( /turf/open/floor/mineral/titanium/tiled/yellow, /area/centcom/syndicate_mothership) @@ -3526,6 +3509,36 @@ }, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/evacuation/ship) +"jD" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/structure/window/reinforced/spawner/directional, +/obj/item/gun/syringe/rapidsyringe, +/obj/item/reagent_containers/syringe/contraband/fentanyl{ + pixel_x = -2; + pixel_y = 8 + }, +/obj/item/reagent_containers/syringe/contraband/fentanyl{ + pixel_x = 2; + pixel_y = 11 + }, +/obj/item/reagent_containers/syringe/contraband/fentanyl{ + pixel_x = -2; + pixel_y = 11 + }, +/obj/item/reagent_containers/syringe/contraband/fentanyl{ + pixel_x = 8; + pixel_y = 11 + }, +/obj/item/reagent_containers/syringe/contraband/fentanyl{ + pixel_x = 8; + pixel_y = 8 + }, +/obj/item/reagent_containers/syringe/contraband/fentanyl{ + pixel_x = 5; + pixel_y = 8 + }, +/turf/open/floor/glass/reinforced, +/area/centcom/central_command_areas/admin) "jE" = ( /obj/effect/turf_decal/siding/blue{ dir = 4 @@ -3650,6 +3663,32 @@ /obj/structure/mirror/directional/east, /turf/open/floor/mineral/titanium, /area/centcom/syndicate_mothership/control) +"jU" = ( +/obj/structure/table/sandstone{ + color = "#efbc1e" + }, +/obj/item/clothing/under/costume/mummy{ + pixel_y = -8; + pixel_x = -6 + }, +/obj/item/clothing/mask/mummy{ + pixel_y = 6; + pixel_x = -7 + }, +/obj/item/reagent_containers/cup/beaker/jar{ + pixel_y = 8; + pixel_x = 9; + color = "#ffe599" + }, +/obj/item/reagent_containers/cup/beaker/jar{ + pixel_y = -2; + pixel_x = 9; + color = "#ffe599" + }, +/turf/open/floor/sepia{ + color = "#cc9439" + }, +/area/centcom/central_command_areas/admin) "jV" = ( /obj/effect/turf_decal/siding/wideplating/dark{ dir = 8 @@ -3762,14 +3801,6 @@ /obj/item/storage/toolbox/fishing, /turf/open/floor/carpet/neon/simple/cyan, /area/centcom/central_command_areas/admin) -"kp" = ( -/obj/structure/table/reinforced/plastitaniumglass, -/obj/machinery/fax{ - fax_name = "Raziel's Desk"; - name = "Raziel's Fax Machine" - }, -/turf/open/floor/glass/reinforced/plasma, -/area/centcom/central_command_areas/admin) "kq" = ( /obj/effect/turf_decal/tile/dark/opposingcorners, /obj/structure/table/reinforced, @@ -4100,28 +4131,6 @@ /obj/structure/punching_bag, /turf/open/floor/plating, /area/centcom/syndicate_mothership/control) -"lf" = ( -/obj/structure/table/sandstone{ - color = "#efbc1e" - }, -/obj/item/storage/backpack/duffelbag/syndie/surgery{ - pixel_y = -3; - color = "#efbc1e" - }, -/obj/item/reagent_containers/cup/beaker/jar{ - pixel_y = 7; - pixel_x = -4; - color = "#ffe599" - }, -/obj/item/reagent_containers/cup/beaker/jar{ - pixel_y = 10; - pixel_x = 7; - color = "#ffe599" - }, -/turf/open/floor/sepia{ - color = "#cc9439" - }, -/area/centcom/central_command_areas/admin) "lg" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/structure/chair/comfy/shuttle/tactical{ @@ -4164,9 +4173,6 @@ /obj/effect/turf_decal/tile/dark/opposingcorners, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/admin_hangout) -"ll" = ( -/turf/closed/indestructible/sandstone, -/area/centcom/central_command_areas/admin) "lm" = ( /obj/structure/window/plasma/spawner/directional/north, /obj/structure/window/plasma/spawner/directional/west, @@ -4194,11 +4200,6 @@ "lr" = ( /turf/closed/indestructible/riveted, /area/centcom/central_command_areas/firing_range_checkpoint_control) -"ls" = ( -/turf/closed/indestructible/fakeglass{ - color = "#ffe599" - }, -/area/centcom/central_command_areas/admin) "lt" = ( /obj/structure/lattice/catwalk, /obj/effect/turf_decal/stripes/line{ @@ -4339,7 +4340,10 @@ /turf/open/floor/iron, /area/centcom/central_command_areas/supply) "lL" = ( -/turf/open/floor/carpet/orange, +/obj/machinery/computer/operating{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/tiled/white, /area/centcom/central_command_areas/admin) "lM" = ( /obj/structure/toilet{ @@ -4565,9 +4569,6 @@ }, /turf/open/floor/iron/dark/diagonal, /area/centcom/central_command_areas/medical) -"ms" = ( -/turf/open/floor/mineral/titanium/tiled/white, -/area/centcom/central_command_areas/admin) "mt" = ( /obj/structure/table/reinforced, /obj/machinery/microwave{ @@ -4585,6 +4586,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden/layer5, /turf/open/floor/catwalk_floor/iron_smooth, /area/centcom/syndicate_mothership/control) +"mv" = ( +/obj/structure/table/wood/fancy/royalblue, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/machinery/door/window/brigdoor/security, +/obj/effect/mapping_helpers/airlock/access/any/admin/captain, +/obj/item/mod/control/pre_equipped/responsory/medic{ + pixel_y = 4 + }, +/turf/open/floor/glass/reinforced, +/area/centcom/central_command_areas/admin) "mw" = ( /turf/closed/indestructible/fakeglass, /area/centcom/central_command_areas/firing_range_checkpoint_control) @@ -4921,10 +4932,28 @@ /obj/structure/closet/crate/cardboard/mothic, /turf/open/floor/plating, /area/centcom/syndicate_mothership/control) +"np" = ( +/turf/open/floor/iron, +/area/centcom/central_command_areas/ferry) "nq" = ( /obj/structure/stone_tile/slab, /turf/open/misc/snow/actually_safe, /area/centcom/central_command_areas/admin) +"nr" = ( +/obj/machinery/light/directional/east{ + dir = 8 + }, +/obj/structure/table/reinforced/titaniumglass, +/obj/item/reagent_containers/cup/beaker/synthflesh{ + pixel_x = 8 + }, +/obj/item/reagent_containers/cup/beaker/synthflesh, +/obj/item/reagent_containers/cup/beaker/synthflesh{ + pixel_x = -7 + }, +/obj/item/reagent_containers/cup/beaker/meta/omnizine, +/turf/open/floor/mineral/titanium/tiled/white, +/area/centcom/central_command_areas/admin) "ns" = ( /obj/effect/turf_decal/tile/dark/opposingcorners, /obj/structure/railing/wood, @@ -4979,6 +5008,14 @@ }, /turf/open/floor/mineral/titanium/tiled/yellow, /area/centcom/syndicate_mothership/expansion_bombthreat) +"nA" = ( +/obj/effect/mapping_helpers/airlock/access/any/admin/captain, +/obj/machinery/door/airlock/sandstone{ + dir = 4; + name = "Amun's Office" + }, +/turf/open/floor/iron/dark, +/area/centcom/central_command_areas/admin) "nB" = ( /obj/structure/filingcabinet/filingcabinet, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -5070,17 +5107,12 @@ /turf/open/floor/iron/dark, /area/centcom/tdome/observation) "nQ" = ( -/obj/structure/table/wood/fancy/royalblue, -/obj/machinery/door/window/brigdoor/security, -/obj/machinery/door/window/brigdoor/security, -/obj/effect/mapping_helpers/airlock/access/any/admin/captain, -/obj/item/mod/module/injector{ - pixel_y = -2 +/obj/structure/carving_block{ + color = "#cc9439" }, -/obj/item/mod/module/health_analyzer{ - pixel_y = 7 +/turf/open/floor/sepia{ + color = "#cc9439" }, -/turf/open/floor/glass/reinforced/plasma, /area/centcom/central_command_areas/admin) "nR" = ( /obj/effect/turf_decal/siding/wood{ @@ -5104,6 +5136,19 @@ /obj/machinery/vending/boozeomat, /turf/open/floor/carpet/executive, /area/centcom/central_command_areas/admin) +"nW" = ( +/obj/machinery/fax{ + color = "#cc9439"; + name = "Amun's Fax Machine"; + fax_name = "Portal to the underworld" + }, +/obj/structure/table/sandstone{ + color = "#efbc1e" + }, +/turf/open/floor/sepia{ + color = "#cc9439" + }, +/area/centcom/central_command_areas/admin) "nX" = ( /obj/structure/hedge, /obj/effect/turf_decal/siding/dark{ @@ -5304,17 +5349,6 @@ }, /turf/open/floor/carpet, /area/centcom/wizard_station) -"ox" = ( -/obj/item/nullrod/egyptian{ - name = "Staff of Anubis" - }, -/obj/structure/destructible/cult/pants_altar{ - color = "#cc9439" - }, -/turf/open/floor/sepia{ - color = "#cc9439" - }, -/area/centcom/central_command_areas/admin) "oy" = ( /obj/machinery/vending/wardrobe/curator_wardrobe, /obj/effect/turf_decal/siding/dark, @@ -5333,6 +5367,14 @@ /obj/structure/flora/rock/icy/style_random, /turf/open/misc/asteroid/snow/airless, /area/centcom/syndicate_mothership) +"oB" = ( +/turf/closed/wall/vault/sandstone, +/area/centcom/central_command_areas/admin) +"oC" = ( +/obj/machinery/door/airlock/medical/glass, +/obj/effect/mapping_helpers/airlock/access/any/admin/captain, +/turf/open/floor/glass/reinforced, +/area/centcom/central_command_areas/admin) "oD" = ( /turf/closed/indestructible/opsglass, /area/centcom/syndicate_mothership/control) @@ -5466,13 +5508,6 @@ /obj/effect/turf_decal/siding/thinplating_new/dark, /turf/open/floor/mineral/plastitanium, /area/centcom/syndicate_mothership/control) -"oT" = ( -/obj/structure/table/wood, -/obj/machinery/fax{ - fax_name = "Raziel's Desk" - }, -/turf/open/floor/iron/dark, -/area/centcom/central_command_areas/admin) "oU" = ( /obj/structure/closet/emcloset, /obj/item/tank/internals/emergency_oxygen/engi, @@ -5673,13 +5708,6 @@ }, /turf/open/floor/engine/vacuum, /area/centcom/syndicate_mothership/expansion_bombthreat) -"pt" = ( -/obj/structure/table/reinforced/plastitaniumglass, -/obj/machinery/fax{ - fax_name = "Raziel's Desk" - }, -/turf/open/floor/circuit, -/area/centcom/central_command_areas/admin) "pu" = ( /obj/item/food/spaghetti/copypasta{ name = "Spaghetti Code"; @@ -6115,13 +6143,6 @@ }, /turf/open/misc/asteroid/snow/airless, /area/centcom/syndicate_mothership) -"qz" = ( -/obj/machinery/door/airlock/centcom{ - name = "Raziel's Theatre" - }, -/obj/effect/mapping_helpers/airlock/access/any/admin/captain, -/turf/open/floor/iron/dark, -/area/centcom/central_command_areas/admin) "qA" = ( /obj/structure/extinguisher_cabinet/directional/west, /turf/open/floor/iron/dark/textured_large, @@ -6225,13 +6246,6 @@ "qK" = ( /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/hall) -"qL" = ( -/obj/structure/alien_tank/filled{ - desc = "A black slime creature swims around in the fluids."; - name = "Bio Creature Tank" - }, -/turf/open/floor/mineral/titanium/tiled/white, -/area/centcom/central_command_areas/admin) "qM" = ( /turf/open/floor/glass/reinforced, /area/centcom/tdome/observation) @@ -6762,6 +6776,13 @@ /obj/machinery/light/directional/south, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/evacuation/ship) +"sn" = ( +/obj/structure/table/wood, +/obj/machinery/fax{ + fax_name = "Raziel's Desk" + }, +/turf/open/floor/iron/dark, +/area/centcom/central_command_areas/admin) "so" = ( /obj/effect/turf_decal/siding/green{ dir = 9 @@ -7545,6 +7566,12 @@ /obj/structure/fans/tiny/invisible, /turf/open/floor/carpet/green, /area/centcom/central_command_areas/admin) +"up" = ( +/obj/machinery/light/directional/east{ + dir = 8 + }, +/turf/open/floor/glass/reinforced, +/area/centcom/central_command_areas/admin) "uq" = ( /obj/effect/turf_decal/tile/dark/opposingcorners, /obj/structure/chair/stool/bar/directional/south, @@ -8042,16 +8069,6 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/kitchen) -"vI" = ( -/obj/effect/turf_decal/siding/dark{ - dir = 6 - }, -/obj/structure/table/wood, -/obj/machinery/fax{ - fax_name = "Raziel's Desk" - }, -/turf/open/floor/iron/dark, -/area/centcom/central_command_areas/admin) "vJ" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark/herringbone, @@ -8378,16 +8395,30 @@ /turf/open/floor/iron/dark, /area/centcom/central_command_areas/kitchen) "wD" = ( -/obj/item/reagent_containers/syringe/contraband/fentanyl{ - pixel_x = 2; - pixel_y = 6 +/obj/effect/turf_decal/siding/dark{ + dir = 6 }, -/turf/closed/indestructible/riveted, +/obj/structure/table/wood, +/obj/machinery/fax{ + fax_name = "Raziel's Desk" + }, +/turf/open/floor/iron/dark, /area/centcom/central_command_areas/admin) "wE" = ( /obj/structure/chair/sofa/corp/left, /turf/open/floor/carpet, /area/centcom/central_command_areas/kitchen) +"wF" = ( +/obj/machinery/modular_computer/preset/id/centcom{ + color = "#cc9439" + }, +/obj/structure/table/sandstone{ + color = "#efbc1e" + }, +/turf/open/floor/sepia{ + color = "#cc9439" + }, +/area/centcom/central_command_areas/admin) "wG" = ( /obj/effect/turf_decal/siding/blue/corner{ dir = 1 @@ -8458,21 +8489,6 @@ }, /turf/open/misc/grass, /area/centcom/central_command_areas/admin) -"wR" = ( -/obj/structure/table/wood/fancy/royalblue, -/obj/item/mod/module/megaphone{ - pixel_y = 12; - pixel_x = -1 - }, -/obj/item/mod/module/quick_carry/advanced{ - pixel_y = -2; - pixel_x = -2 - }, -/obj/machinery/door/window/brigdoor/security, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/effect/mapping_helpers/airlock/access/any/admin/captain, -/turf/open/floor/glass/reinforced, -/area/centcom/central_command_areas/admin) "wS" = ( /obj/structure/table/wood/fancy/black, /turf/open/floor/carpet/black, @@ -8685,6 +8701,15 @@ /obj/item/kirbyplants/random, /turf/open/floor/mineral/plastitanium, /area/centcom/syndicate_mothership) +"xx" = ( +/obj/structure/table/optable/abductor{ + color = "#efbc1e"; + name = "Ancient Operating Table" + }, +/turf/open/floor/sepia{ + color = "#cc9439" + }, +/area/centcom/central_command_areas/admin) "xy" = ( /obj/structure/closet/secure_closet/contraband/armory, /turf/open/floor/iron/dark, @@ -9263,6 +9288,9 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/admin_hangout) +"yR" = ( +/turf/open/floor/carpet/orange, +/area/centcom/central_command_areas/admin) "yS" = ( /obj/structure/table/reinforced, /obj/item/storage/box/emps, @@ -9400,6 +9428,12 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/supply) +"zo" = ( +/obj/machinery/door/poddoor/shutters/indestructible/preopen, +/turf/closed/indestructible/fakeglass{ + color = "#ffe599" + }, +/area/centcom/central_command_areas/admin) "zp" = ( /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood/large, @@ -9504,14 +9538,9 @@ /turf/open/floor/iron/dark, /area/centcom/central_command_areas/briefing) "zA" = ( -/obj/structure/table/reinforced/plastitaniumglass, -/obj/structure/window/reinforced/spawner/directional, -/obj/item/autosurgeon{ - pixel_y = 17 - }, -/obj/item/organ/internal/cyberimp/brain/linked_surgery/perfect{ - pixel_x = -1 - }, +/obj/item/bedsheet/medical, +/obj/structure/bed, +/obj/structure/curtain/cloth/fancy, /turf/open/floor/glass/reinforced/plasma, /area/centcom/central_command_areas/admin) "zB" = ( @@ -9680,6 +9709,15 @@ "zX" = ( /turf/open/floor/plating/abductor, /area/centcom/central_command_areas/admin) +"zY" = ( +/obj/structure/destructible/cult/item_dispenser/archives/library{ + color = "#cc9439"; + name = "Records of the Sand" + }, +/turf/open/floor/sepia{ + color = "#cc9439" + }, +/area/centcom/central_command_areas/admin) "zZ" = ( /obj/effect/turf_decal/tile/brown/half/contrasted, /turf/open/floor/iron, @@ -9720,24 +9758,6 @@ dir = 8 }, /area/centcom/central_command_areas/evacuation/ship) -"Af" = ( -/obj/machinery/light/directional/east, -/obj/structure/table/reinforced/titaniumglass, -/obj/item/cautery/advanced{ - pixel_y = 4; - pixel_x = -2 - }, -/obj/item/scalpel/advanced{ - pixel_y = 6 - }, -/obj/item/retractor/advanced{ - pixel_y = 10 - }, -/obj/item/surgical_drapes{ - pixel_x = 5 - }, -/turf/open/floor/mineral/titanium/tiled/white, -/area/centcom/central_command_areas/admin) "Ag" = ( /obj/structure/chair/stool/directional/south, /obj/structure/sign/map/right{ @@ -9781,14 +9801,7 @@ /turf/open/floor/glass/reinforced, /area/centcom/central_command_areas/admin_hangout) "Al" = ( -/obj/structure/sign{ - name = "wall"; - icon = 'monkestation/icons/turf/walls/reinforced_wall.dmi'; - icon_state = "reinforced_wall-3"; - desc = "Effectively impervious to conventional methods of destruction."; - pixel_x = -32 - }, -/turf/closed/indestructible/riveted, +/turf/open/floor/mineral/titanium/tiled/white, /area/centcom/central_command_areas/admin) "Am" = ( /obj/effect/turf_decal/siding/wood{ @@ -9799,6 +9812,9 @@ "An" = ( /turf/open/floor/carpet, /area/centcom/central_command_areas/kitchen) +"Ao" = ( +/turf/open/floor/vault/sandstone, +/area/centcom/central_command_areas/admin) "Ap" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 @@ -9929,21 +9945,6 @@ /obj/item/banner/command, /turf/open/floor/stone, /area/centcom/central_command_areas/evacuation/ship) -"AE" = ( -/obj/structure/sign{ - name = "wall"; - icon = 'monkestation/icons/turf/walls/reinforced_wall.dmi'; - icon_state = "reinforced_wall-3"; - desc = "Effectively impervious to conventional methods of destruction."; - pixel_x = -32 - }, -/obj/structure/closet/secure_closet/ert_med, -/obj/item/storage/toolbox/mechanical{ - pixel_y = -3 - }, -/obj/item/mod/module/flamethrower, -/turf/open/floor/glass/reinforced/plasma, -/area/centcom/central_command_areas/admin) "AF" = ( /obj/effect/turf_decal/siding/dark{ dir = 1 @@ -10430,20 +10431,9 @@ /turf/open/floor/grass, /area/centcom/central_command_areas/evacuation/ship) "BS" = ( -/obj/machinery/light/directional/east{ - dir = 8 - }, -/obj/structure/table/reinforced/titaniumglass, -/obj/item/reagent_containers/cup/beaker/synthflesh{ - pixel_x = 8 - }, -/obj/item/reagent_containers/cup/beaker/synthflesh, -/obj/item/reagent_containers/cup/beaker/synthflesh{ - pixel_x = -7 - }, -/obj/item/reagent_containers/cup/beaker/meta/omnizine, -/turf/open/floor/mineral/titanium/tiled/white, -/area/centcom/central_command_areas/admin) +/obj/structure/hedge, +/turf/open/floor/iron, +/area/centcom/central_command_areas/ferry) "BT" = ( /obj/machinery/door/airlock{ icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; @@ -10679,12 +10669,6 @@ /obj/item/megaphone/sec, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/firing_range_checkpoint_control) -"CE" = ( -/obj/item/bedsheet/medical, -/obj/structure/bed, -/obj/structure/curtain/cloth/fancy, -/turf/open/floor/glass/reinforced/plasma, -/area/centcom/central_command_areas/admin) "CF" = ( /obj/machinery/suit_storage_unit/industrial, /obj/structure/window/reinforced/survival_pod/spawner/directional/east, @@ -10758,14 +10742,6 @@ /obj/structure/injured_spawner, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/medical) -"CR" = ( -/obj/effect/mapping_helpers/airlock/access/any/admin/captain, -/obj/machinery/door/airlock/sandstone{ - dir = 4; - name = "Amun's Office" - }, -/turf/open/floor/iron/dark, -/area/centcom/central_command_areas/admin) "CS" = ( /obj/machinery/door/airlock/centcom, /obj/effect/mapping_helpers/airlock/access/any/admin/captain, @@ -11239,7 +11215,8 @@ /turf/open/floor/catwalk_floor/titanium, /area/centcom/syndicate_mothership/control) "Ej" = ( -/turf/closed/wall/vault/sandstone, +/obj/machinery/limbgrower/fullupgrade, +/turf/open/floor/mineral/titanium/tiled/white, /area/centcom/central_command_areas/admin) "Ek" = ( /obj/item/toy/figure/syndie, @@ -11544,12 +11521,6 @@ }, /turf/open/floor/wood/tile, /area/centcom/central_command_areas/evacuation/ship) -"EW" = ( -/obj/machinery/door/poddoor/shutters/indestructible/preopen, -/turf/closed/indestructible/fakeglass{ - color = "#ffe599" - }, -/area/centcom/central_command_areas/admin) "EY" = ( /obj/structure/chair{ dir = 1 @@ -11882,6 +11853,11 @@ /obj/structure/window/plasma/spawner/directional/west, /turf/open/floor/carpet/royalblue, /area/centcom/central_command_areas/admin) +"FU" = ( +/turf/open/floor/sepia{ + color = "#cc9439" + }, +/area/centcom/central_command_areas/admin) "FV" = ( /obj/structure/closet/crate/freezer/blood, /turf/open/floor/iron/dark, @@ -12141,10 +12117,6 @@ }, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/supply) -"GD" = ( -/obj/structure/chair/stool/sandstone, -/turf/open/floor/vault/sandstone, -/area/centcom/central_command_areas/admin) "GE" = ( /obj/structure/chair/stool/directional/north, /turf/open/floor/iron/dark/textured_large, @@ -12311,15 +12283,6 @@ /obj/structure/chair/stool/bar/directional/east, /turf/open/floor/wood/parquet, /area/centcom/central_command_areas/arcade) -"He" = ( -/obj/structure/table/wood, -/obj/item/toy/plush/lizard_plushie, -/obj/machinery/fax{ - fax_name = "s"; - name = "Abraxis' Fax Machine" - }, -/turf/open/floor/iron/grimy, -/area/centcom/central_command_areas/admin) "Hf" = ( /obj/structure/window/reinforced/survival_pod/spawner/directional/east, /obj/effect/turf_decal/siding/thinplating_new/dark{ @@ -12679,14 +12642,6 @@ icon_state = "boxing" }, /area/centcom/central_command_areas/admin) -"Ie" = ( -/obj/structure/table/sandstone{ - color = "#efbc1e" - }, -/turf/open/floor/sepia{ - color = "#cc9439" - }, -/area/centcom/central_command_areas/admin) "If" = ( /obj/structure/chair/stool/directional/north, /obj/effect/landmark/start/nukeop, @@ -12738,18 +12693,6 @@ /obj/structure/table/reinforced/plastitaniumglass, /turf/open/floor/circuit, /area/centcom/central_command_areas/admin) -"Io" = ( -/obj/docking_port/stationary{ - dir = 8; - dwidth = 10; - height = 30; - json_key = "ferry"; - name = "CentCom Ferry Dock"; - shuttle_id = "ferry_away"; - width = 21 - }, -/turf/open/space, -/area/space) "Ip" = ( /obj/structure/chair/stool/bar/directional/east, /turf/open/floor/carpet/red, @@ -12869,6 +12812,21 @@ icon_state = "boxing" }, /area/centcom/central_command_areas/hall) +"IH" = ( +/obj/structure/sign{ + name = "wall"; + icon = 'monkestation/icons/turf/walls/reinforced_wall.dmi'; + icon_state = "reinforced_wall-3"; + desc = "Effectively impervious to conventional methods of destruction."; + pixel_x = -32 + }, +/obj/structure/closet/secure_closet/ert_med, +/obj/item/storage/toolbox/mechanical{ + pixel_y = -3 + }, +/obj/item/mod/module/flamethrower, +/turf/open/floor/glass/reinforced/plasma, +/area/centcom/central_command_areas/admin) "II" = ( /obj/structure/railing/wood, /obj/structure/fake_stairs/wood/directional/east, @@ -13041,6 +12999,10 @@ "Ji" = ( /turf/open/floor/carpet/neon/simple/white, /area/centcom/central_command_areas/admin) +"Jj" = ( +/obj/structure/chair/stool/sandstone, +/turf/open/floor/vault/sandstone, +/area/centcom/central_command_areas/admin) "Jk" = ( /obj/effect/turf_decal/loading_area{ dir = 8 @@ -13447,6 +13409,18 @@ }, /turf/open/floor/iron/dark/small, /area/centcom/central_command_areas/botany) +"Km" = ( +/obj/docking_port/stationary{ + dir = 8; + dwidth = 10; + height = 30; + json_key = "ferry"; + name = "CentCom Ferry Dock"; + shuttle_id = "ferry_away"; + width = 21 + }, +/turf/open/space/basic, +/area/space) "Kn" = ( /obj/structure/chair/stool/directional/south, /obj/effect/turf_decal/siding/thinplating_new/dark{ @@ -14381,6 +14355,14 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/evacuation/ship) +"MI" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/machinery/fax{ + fax_name = "Raziel's Desk"; + name = "Raziel's Fax Machine" + }, +/turf/open/floor/glass/reinforced/plasma, +/area/centcom/central_command_areas/admin) "MJ" = ( /obj/structure/chair/office, /obj/effect/landmark/ert_spawn, @@ -14444,14 +14426,23 @@ }, /area/centcom/central_command_areas/hall) "MR" = ( -/obj/machinery/fax{ - color = "#cc9439"; - name = "Amun's Fax Machine"; - fax_name = "Portal to the underworld" - }, /obj/structure/table/sandstone{ color = "#efbc1e" }, +/obj/item/storage/backpack/duffelbag/syndie/surgery{ + pixel_y = -3; + color = "#efbc1e" + }, +/obj/item/reagent_containers/cup/beaker/jar{ + pixel_y = 7; + pixel_x = -4; + color = "#ffe599" + }, +/obj/item/reagent_containers/cup/beaker/jar{ + pixel_y = 10; + pixel_x = 7; + color = "#ffe599" + }, /turf/open/floor/sepia{ color = "#cc9439" }, @@ -14505,6 +14496,9 @@ /obj/machinery/light/floor/has_bulb, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/medical) +"Na" = ( +/turf/open/floor/glass/reinforced/plasma, +/area/centcom/central_command_areas/admin) "Nb" = ( /turf/open/floor/iron/dark, /area/centcom/central_command_areas/medical) @@ -14937,11 +14931,6 @@ "On" = ( /turf/closed/indestructible/riveted, /area/centcom/central_command_areas/admin) -"Oo" = ( -/turf/open/floor/sepia{ - color = "#cc9439" - }, -/area/centcom/central_command_areas/admin) "Op" = ( /obj/structure/railing/wood, /obj/structure/table/reinforced, @@ -15189,6 +15178,23 @@ /obj/machinery/light/cold/directional/east, /turf/open/floor/mineral/plastitanium, /area/centcom/syndicate_mothership/expansion_bioterrorism) +"OZ" = ( +/obj/structure/rack{ + color = "#efbc1e" + }, +/obj/item/chisel, +/obj/item/toy/crayon/spraycan/infinite{ + pixel_y = 3; + pixel_x = 9 + }, +/obj/item/stack/sheet/mineral/sandstone/thirty{ + pixel_y = 2; + pixel_x = -10 + }, +/turf/open/floor/sepia{ + color = "#cc9439" + }, +/area/centcom/central_command_areas/admin) "Pa" = ( /obj/effect/turf_decal/siding/wood{ dir = 6 @@ -15419,9 +15425,6 @@ }, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/supply) -"PH" = ( -/turf/open/floor/vault/sandstone, -/area/centcom/central_command_areas/admin) "PJ" = ( /obj/structure/closet/crate/freezer/blood, /obj/effect/turf_decal/trimline/blue/filled/line{ @@ -15681,17 +15684,6 @@ /obj/item/storage/toolbox/mechanical, /turf/open/floor/iron/smooth_large, /area/centcom/central_command_areas/evacuation/ship) -"Qu" = ( -/obj/machinery/modular_computer/preset/id/centcom{ - color = "#cc9439" - }, -/obj/structure/table/sandstone{ - color = "#efbc1e" - }, -/turf/open/floor/sepia{ - color = "#cc9439" - }, -/area/centcom/central_command_areas/admin) "Qv" = ( /obj/machinery/light/floor/has_bulb, /obj/effect/turf_decal/siding/wood{ @@ -15790,16 +15782,6 @@ dir = 4 }, /area/centcom/syndicate_mothership/control) -"QG" = ( -/obj/structure/table/reinforced/plastitaniumglass, -/obj/machinery/door/window/brigdoor/security, -/obj/effect/mapping_helpers/airlock/access/any/admin/captain, -/obj/machinery/computer/records/medical/laptop{ - dir = 1; - pixel_y = 4 - }, -/turf/open/floor/glass/reinforced, -/area/centcom/central_command_areas/admin) "QH" = ( /obj/effect/turf_decal/siding/wideplating_new/dark, /obj/effect/turf_decal/tile/neutral/full, @@ -15908,13 +15890,8 @@ /turf/open/floor/iron/grimy, /area/centcom/central_command_areas/admin) "QW" = ( -/obj/structure/destructible/cult/item_dispenser/archives/library{ - color = "#cc9439"; - name = "Records of the Sand" - }, -/turf/open/floor/sepia{ - color = "#cc9439" - }, +/obj/machinery/light/directional/east, +/turf/open/floor/glass/reinforced, /area/centcom/central_command_areas/admin) "QX" = ( /obj/machinery/light/directional/west, @@ -16306,6 +16283,16 @@ /obj/structure/flora/tree/jungle/style_3, /turf/open/floor/grass, /area/centcom/central_command_areas/evacuation) +"Sc" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/machinery/door/window/brigdoor/security, +/obj/effect/mapping_helpers/airlock/access/any/admin/captain, +/obj/machinery/computer/records/medical/laptop{ + dir = 1; + pixel_y = 4 + }, +/turf/open/floor/glass/reinforced, +/area/centcom/central_command_areas/admin) "Sd" = ( /obj/structure/window/reinforced/spawner/directional/north, /obj/structure/lattice, @@ -16390,6 +16377,13 @@ /obj/machinery/light/cold/directional/west, /turf/open/floor/mineral/titanium, /area/centcom/syndicate_mothership/control) +"So" = ( +/obj/structure/closet/crate/coffin/sandstonesarcophagus{ + color = "#efbc1e"; + name = "Tomb of Amun Set Hep" + }, +/turf/open/floor/vault/sandstone, +/area/centcom/central_command_areas/admin) "Sp" = ( /obj/structure/closet/crate/freezer{ name = "meat freezer" @@ -16631,6 +16625,13 @@ dir = 4 }, /area/centcom/syndicate_mothership/control) +"SQ" = ( +/obj/item/reagent_containers/syringe/contraband/fentanyl{ + pixel_x = 2; + pixel_y = 6 + }, +/turf/closed/indestructible/riveted, +/area/centcom/central_command_areas/admin) "SR" = ( /turf/open/floor/circuit/green, /area/centcom/central_command_areas/briefing) @@ -16680,6 +16681,17 @@ /obj/machinery/chem_dispenser/drinks/beer, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/borbop) +"SZ" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/structure/window/reinforced/spawner/directional, +/obj/item/clothing/glasses/sunglasses/chemical{ + pixel_y = -1 + }, +/obj/item/autosurgeon/medical_hud{ + pixel_y = 18 + }, +/turf/open/floor/glass/reinforced/plasma, +/area/centcom/central_command_areas/admin) "Ta" = ( /turf/open/floor/iron/white, /area/centcom/wizard_station) @@ -16763,32 +16775,6 @@ }, /turf/open/floor/mineral/titanium, /area/centcom/syndicate_mothership/control) -"To" = ( -/obj/structure/table/sandstone{ - color = "#efbc1e" - }, -/obj/item/clothing/under/costume/mummy{ - pixel_y = -8; - pixel_x = -6 - }, -/obj/item/clothing/mask/mummy{ - pixel_y = 6; - pixel_x = -7 - }, -/obj/item/reagent_containers/cup/beaker/jar{ - pixel_y = 8; - pixel_x = 9; - color = "#ffe599" - }, -/obj/item/reagent_containers/cup/beaker/jar{ - pixel_y = -2; - pixel_x = 9; - color = "#ffe599" - }, -/turf/open/floor/sepia{ - color = "#cc9439" - }, -/area/centcom/central_command_areas/admin) "Tp" = ( /obj/machinery/light/floor/has_bulb, /obj/effect/turf_decal/siding/wood{ @@ -17222,11 +17208,6 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/ghost_spawn) -"Uy" = ( -/obj/machinery/door/airlock/medical/glass, -/obj/effect/mapping_helpers/airlock/access/any/admin/captain, -/turf/open/floor/glass/reinforced, -/area/centcom/central_command_areas/admin) "Uz" = ( /turf/closed/indestructible/fakeglass, /area/centcom/central_command_areas/hall) @@ -17389,11 +17370,12 @@ /turf/open/floor/iron/dark, /area/centcom/central_command_areas/firing_range_checkpoint_control) "UV" = ( -/obj/structure/closet/crate/coffin/sandstonesarcophagus{ - color = "#efbc1e"; - name = "Tomb of Amun Set Hep" +/obj/structure/table/sandstone{ + color = "#efbc1e" + }, +/turf/open/floor/sepia{ + color = "#cc9439" }, -/turf/open/floor/vault/sandstone, /area/centcom/central_command_areas/admin) "UX" = ( /obj/effect/turf_decal/stripes/line{ @@ -17797,6 +17779,17 @@ }, /turf/open/floor/wood/parquet, /area/centcom/central_command_areas/borbop) +"VY" = ( +/obj/item/nullrod/egyptian{ + name = "Staff of Anubis" + }, +/obj/structure/destructible/cult/pants_altar{ + color = "#cc9439" + }, +/turf/open/floor/sepia{ + color = "#cc9439" + }, +/area/centcom/central_command_areas/admin) "VZ" = ( /obj/structure/closet/secure_closet/ert_med, /obj/structure/sign/directions/medical{ @@ -17808,6 +17801,12 @@ }, /turf/open/floor/iron, /area/centcom/central_command_areas/armory) +"Wa" = ( +/obj/machinery/sleeper/self_control{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/tiled/white, +/area/centcom/central_command_areas/admin) "Wb" = ( /turf/open/floor/wood/large, /area/centcom/tdome/observation) @@ -17926,17 +17925,6 @@ /obj/effect/turf_decal/tile/bar/opposingcorners, /turf/open/floor/iron, /area/centcom/syndicate_mothership/control) -"Wq" = ( -/obj/structure/table/reinforced/plastitaniumglass, -/obj/structure/window/reinforced/spawner/directional, -/obj/item/clothing/glasses/sunglasses/chemical{ - pixel_y = -1 - }, -/obj/item/autosurgeon/medical_hud{ - pixel_y = 18 - }, -/turf/open/floor/glass/reinforced/plasma, -/area/centcom/central_command_areas/admin) "Wr" = ( /obj/effect/turf_decal/siding/wood{ dir = 6 @@ -18302,20 +18290,19 @@ /turf/open/floor/wood/large, /area/centcom/central_command_areas/admin) "Xo" = ( -/obj/structure/chair/comfy/teal, -/turf/open/floor/glass/reinforced/plasma, +/obj/structure/table/wood, +/obj/item/toy/plush/lizard_plushie, +/obj/machinery/fax{ + fax_name = "s"; + name = "Abraxis' Fax Machine" + }, +/turf/open/floor/iron/grimy, /area/centcom/central_command_areas/admin) "Xp" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/machinery/computer/monitor, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/evacuation/ship) -"Xq" = ( -/obj/machinery/computer/operating{ - dir = 8 - }, -/turf/open/floor/mineral/titanium/tiled/white, -/area/centcom/central_command_areas/admin) "Xr" = ( /obj/machinery/keycard_auth/directional/south, /obj/structure/table/reinforced, @@ -18627,6 +18614,10 @@ /obj/effect/spawner/random/structure/crate, /turf/open/floor/iron, /area/centcom/central_command_areas/supply) +"Ym" = ( +/obj/structure/table/optable, +/turf/open/floor/mineral/titanium/tiled/white, +/area/centcom/central_command_areas/admin) "Yn" = ( /turf/closed/indestructible/riveted, /area/centcom/central_command_areas/supplypod) @@ -18658,9 +18649,6 @@ }, /turf/open/floor/engine/cult, /area/centcom/wizard_station) -"Yr" = ( -/turf/open/floor/glass/reinforced/plasma, -/area/centcom/central_command_areas/admin) "Ys" = ( /obj/structure/chair/comfy/black{ dir = 8 @@ -18683,6 +18671,24 @@ /obj/structure/sink/directional/south, /turf/open/floor/iron/white, /area/centcom/wizard_station) +"Yw" = ( +/obj/machinery/light/directional/east, +/obj/structure/table/reinforced/titaniumglass, +/obj/item/cautery/advanced{ + pixel_y = 4; + pixel_x = -2 + }, +/obj/item/scalpel/advanced{ + pixel_y = 6 + }, +/obj/item/retractor/advanced{ + pixel_y = 10 + }, +/obj/item/surgical_drapes{ + pixel_x = 5 + }, +/turf/open/floor/mineral/titanium/tiled/white, +/area/centcom/central_command_areas/admin) "Yx" = ( /turf/open/floor/iron/white/herringbone, /area/centcom/central_command_areas/evacuation/ship) @@ -18728,12 +18734,6 @@ /obj/machinery/light/floor/has_bulb, /turf/open/floor/grass, /area/centcom/central_command_areas/hall) -"YG" = ( -/obj/machinery/light/directional/east{ - dir = 8 - }, -/turf/open/floor/glass/reinforced, -/area/centcom/central_command_areas/admin) "YH" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ @@ -18777,6 +18777,13 @@ }, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/hall) +"YO" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/machinery/fax{ + fax_name = "Raziel's Desk" + }, +/turf/open/floor/circuit, +/area/centcom/central_command_areas/admin) "YP" = ( /obj/effect/spawner/random/trash/garbage, /obj/effect/spawner/random/structure/closet_maintenance, @@ -46736,7 +46743,7 @@ aa aa aa aa -aa +Km aa aa aa @@ -46992,9 +46999,9 @@ aa aa aa aa -aa -aa -aa +GA +xc +GA aa aa aa @@ -47249,9 +47256,9 @@ aa aa aa aa -aa -aa -aa +GA +xd +GA aa aa aa @@ -47505,11 +47512,11 @@ aa aa aa aa -aa -aa -aa -aa -aa +GA +GA +Xy +GA +GA aa aa aa @@ -47762,11 +47769,11 @@ aa aa aa aa -aa -aa -aa -aa -aa +GA +np +np +np +GA aa aa aa @@ -48019,11 +48026,11 @@ aa aa aa aa -aa -aa -aa -aa -aa +GA +np +np +np +GA aa aa aa @@ -48234,11 +48241,11 @@ aa aa On On -ll -ls -ll -ls -ll +gn +hs +gn +hs +gn On aa aa @@ -48276,11 +48283,11 @@ aa aa aa aa -aa -aa -aa -aa -aa +GA +np +np +np +GA aa aa aa @@ -48490,12 +48497,12 @@ aa aa aa On -ll -ll -ox -PH -UV -ll +gn +gn +VY +Ao +So +gn On On Zf @@ -48533,11 +48540,11 @@ aa aa aa aa -aa -aa -aa -aa -aa +GA +np +np +np +GA aa aa aa @@ -48747,12 +48754,12 @@ iF iF iF iF -ll -MR -Ie -PH -To -ll +gn +nW +UV +Ao +jU +gn On hA gH @@ -48790,11 +48797,11 @@ aa aa aa aa -aa -aa -aa -aa -aa +GA +np +np +np +GA aa aa aa @@ -49004,12 +49011,12 @@ jt FO Tq iF -ll -Qu -GD -PH -fG -ll +gn +wF +Jj +Ao +xx +gn On SD uk @@ -49047,11 +49054,11 @@ aa aa aa aa -aa -aa -aa -aa -aa +GA +np +np +np +GA aa aa aa @@ -49261,12 +49268,12 @@ pj nm XA iF -ll -Ie -Ie -PH -lf -ll +gn +UV +UV +Ao +MR +gn On CO uk @@ -49304,11 +49311,11 @@ mD mD GA GA -aa -aa -aa -aa -aa +GA +np +np +np +GA aa aa aa @@ -49518,12 +49525,12 @@ oJ lo Uq iF -Ej -PH -GD -PH -PH -Ej +oB +Ao +Jj +Ao +Ao +oB On wQ uk @@ -49561,11 +49568,11 @@ sq to ZN GA -aa -aa -Io -aa -aa +BS +np +np +np +GA aa aa aa @@ -49775,12 +49782,12 @@ oJ lo qn iF -ll -im -Oo -PH -QW -ll +gn +OZ +FU +Ao +zY +gn On aS uk @@ -49818,9 +49825,10 @@ sr tp Xr mD -aa -GA -xc +BS +np +np +np GA aa aa @@ -49838,7 +49846,6 @@ aa aa aa aa -aa "} (120,1,1) = {" aa @@ -50032,12 +50039,12 @@ oJ nn qo iN -ll -ll -ds -PH -Oo -ll +gn +gn +nQ +Ao +FU +gn On uk uk @@ -50076,9 +50083,9 @@ tq Ir mD vA -GA -xd -GA +np +np +np yn mD aa @@ -50290,11 +50297,11 @@ lo oM iF bD -ll -ll -CR -EW -ll +gn +gn +nA +zo +gn On On On @@ -50333,9 +50340,9 @@ tr um mD vB -GA -Xy -GA +np +np +np oU mD ta @@ -52618,14 +52625,14 @@ EK pi SI SI -oT +sn Ly On qa pp pi pi -oT +sn On EA pp @@ -52886,7 +52893,7 @@ Ly On Dt Ss -vI +wD BB AC On @@ -53114,15 +53121,15 @@ aa aa Uv PR -Al -AE -YG -kp -dU -qL -BS -aY -cf +cC +IH +up +MI +jD +ds +nr +Wa +Ej On Mc Mc @@ -53372,14 +53379,14 @@ aa aa aa ua -fr -Yr +mv +Na ID -zA -ms -lL -lL -ms +hL +Al +yR +yR +Al On Mc Mc @@ -53629,15 +53636,15 @@ aa aa aa ua -nQ +hv ID -Xo -QG -ms -lL -lL -ms -qz +el +Sc +Al +yR +yR +Al +fm Mc dQ Mc @@ -53886,14 +53893,14 @@ aa aa aa ua -wR -Yr +iU +Na ID -Wq -ms -lL -lL -ms +SZ +Al +yR +yR +Al On Mc Mc @@ -54143,14 +54150,14 @@ aa aa aa On -CE -hY -Yr -Uy -ms -Af -fZ -Xq +zA +QW +Na +oC +Al +Yw +Ym +lL On Mc Mc @@ -54402,7 +54409,7 @@ aa On On On -wD +SQ On On On @@ -54661,7 +54668,7 @@ On Gb iq FS -pt +YO dP yC FG @@ -56204,7 +56211,7 @@ On fU Nc XR -He +Xo XR LL On diff --git a/_maps/map_files/tramstation/tramstation.dmm b/_maps/map_files/tramstation/tramstation.dmm index c0bf64b04ce1..a0186f0e8889 100644 --- a/_maps/map_files/tramstation/tramstation.dmm +++ b/_maps/map_files/tramstation/tramstation.dmm @@ -6141,29 +6141,6 @@ /obj/item/reagent_containers/dropper, /turf/open/floor/iron/white, /area/station/medical/pathology) -"aQI" = ( -/obj/effect/turf_decal/trimline/green/filled/line, -/obj/item/radio/intercom/directional/south, -/obj/structure/table/glass, -/obj/item/reagent_containers/cup/beaker/vial, -/obj/item/reagent_containers/cup/beaker/vial, -/obj/item/reagent_containers/cup/beaker/vial, -/obj/item/reagent_containers/cup/beaker/vial, -/obj/item/reagent_containers/cup/beaker/vial, -/obj/item/reagent_containers/cup/beaker/vial, -/obj/item/reagent_containers/cup/beaker/vial, -/obj/item/reagent_containers/cup/beaker/vial, -/obj/item/clothing/glasses/science, -/obj/item/clothing/glasses/science, -/obj/item/clothing/glasses/hud/health, -/obj/item/reagent_containers/syringe/antiviral, -/obj/item/reagent_containers/syringe/antiviral, -/obj/item/reagent_containers/syringe/antiviral, -/obj/item/book/manual/wiki/infections{ - pixel_y = 7 - }, -/turf/open/floor/iron/white, -/area/station/medical/pathology) "aQL" = ( /obj/machinery/airalarm/directional/south, /turf/open/floor/iron/grimy, @@ -10839,27 +10816,6 @@ /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, /turf/open/floor/iron, /area/station/engineering/atmos) -"coR" = ( -/obj/machinery/light/directional/south, -/obj/structure/closet/crate, -/obj/item/storage/box/drinkingglasses, -/obj/item/storage/bag/tray/cafeteria, -/obj/item/storage/bag/tray/cafeteria, -/obj/item/storage/bag/tray/cafeteria, -/obj/item/storage/bag/tray/cafeteria, -/obj/item/storage/box/drinkingglasses, -/obj/effect/spawner/random/contraband/prison, -/obj/item/knife/plastic, -/obj/item/knife/plastic, -/obj/item/knife/plastic, -/obj/item/kitchen/fork/plastic, -/obj/item/kitchen/fork/plastic, -/obj/item/kitchen/fork/plastic, -/obj/item/kitchen/spoon/plastic, -/obj/item/kitchen/spoon/plastic, -/obj/item/kitchen/spoon/plastic, -/turf/open/floor/iron/cafeteria, -/area/station/security/prison/mess) "coU" = ( /obj/structure/table/wood, /obj/item/flashlight/lamp/green{ @@ -12865,13 +12821,6 @@ /obj/effect/decal/cleanable/confetti, /turf/open/floor/iron/smooth, /area/station/maintenance/department/cargo) -"cZo" = ( -/obj/structure/sign/collision_counter{ - pixel_x = -4; - pixel_y = 2 - }, -/turf/closed/wall, -/area/station/medical/medbay/lobby) "cZz" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -28388,6 +28337,35 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/service/chapel) +"ieQ" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/random/contraband/prison, +/obj/item/reagent_containers/cup/bowl, +/obj/item/reagent_containers/cup/bowl, +/obj/item/reagent_containers/cup/bowl, +/obj/item/reagent_containers/cup/bowl, +/obj/item/reagent_containers/cup/bowl, +/obj/item/reagent_containers/cup/bowl, +/obj/item/reagent_containers/cup/bowl, +/obj/item/reagent_containers/cup/bowl, +/obj/item/kitchen/fork/plastic, +/obj/item/kitchen/fork/plastic, +/obj/item/kitchen/fork/plastic, +/obj/item/kitchen/spoon/plastic, +/obj/item/kitchen/spoon/plastic, +/obj/item/kitchen/spoon/plastic, +/obj/item/knife/plastic, +/obj/item/knife/plastic, +/obj/item/knife/plastic, +/obj/item/storage/bag/tray/cafeteria, +/obj/item/storage/bag/tray/cafeteria, +/obj/item/storage/bag/tray/cafeteria, +/obj/item/storage/bag/tray/cafeteria, +/obj/item/storage/box/drinkingglasses, +/obj/item/storage/box/drinkingglasses, +/obj/machinery/light/directional/south, +/turf/open/floor/iron/cafeteria, +/area/station/security/prison/mess) "ieV" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -31134,21 +31112,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/commons/fitness/recreation) -"iWm" = ( -/obj/structure/sign/collision_counter{ - pixel_x = -32 - }, -/obj/structure/table/reinforced, -/obj/item/storage/medkit/regular{ - pixel_x = -5; - pixel_y = -3 - }, -/obj/item/reagent_containers/cup/glass/coffee{ - pixel_x = 8; - pixel_y = 4 - }, -/turf/open/floor/iron, -/area/station/command/bridge) "iWz" = ( /obj/machinery/door/airlock/external/glass{ name = "Supply Door Airlock" @@ -32287,12 +32250,6 @@ }, /turf/open/floor/wood, /area/station/command/meeting_room) -"jpd" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/security/prison/work) "jpp" = ( /obj/structure/window/reinforced/spawner/directional/north, /obj/structure/window/reinforced/spawner/directional/east, @@ -33953,6 +33910,21 @@ }, /turf/open/floor/plating, /area/station/science/lab) +"jRP" = ( +/obj/machinery/incident_display/tram{ + pixel_x = -32 + }, +/obj/structure/table/reinforced, +/obj/item/storage/medkit/regular{ + pixel_x = -5; + pixel_y = -3 + }, +/obj/item/reagent_containers/cup/glass/coffee{ + pixel_x = 8; + pixel_y = 4 + }, +/turf/open/floor/iron, +/area/station/command/bridge) "jRS" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/rack, @@ -35806,14 +35778,6 @@ /mob/living/simple_animal/pet/cat/jerry, /turf/open/floor/iron, /area/station/maintenance/tram/mid) -"kxF" = ( -/obj/item/kirbyplants/dead, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron/cafeteria, -/area/station/command/heads_quarters/rd) "kxX" = ( /obj/item/toy/basketball{ pixel_x = 8; @@ -37977,19 +37941,6 @@ /obj/structure/disposalpipe/segment, /turf/closed/wall/r_wall, /area/station/maintenance/starboard/lesser) -"lcl" = ( -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 4 - }, -/obj/structure/disposalpipe/trunk{ - dir = 2 - }, -/obj/structure/sign/collision_counter{ - pixel_x = 32 - }, -/turf/open/floor/iron/white, -/area/station/medical/treatment_center) "lcn" = ( /obj/structure/table, /obj/effect/turf_decal/trimline/red/filled/line, @@ -40648,6 +40599,19 @@ }, /turf/open/floor/iron/white, /area/station/medical/chemistry) +"lVI" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk{ + dir = 2 + }, +/obj/machinery/incident_display/tram{ + pixel_x = 32 + }, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) "lVK" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -45210,6 +45174,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/science/xenobiology) +"nsM" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/structure/ghost_critter_spawn, +/turf/open/floor/iron, +/area/station/security/prison/work) "ntf" = ( /obj/structure/cable, /turf/open/floor/grass, @@ -46404,6 +46375,29 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/dark, /area/station/medical/pathology) +"nNG" = ( +/obj/effect/turf_decal/trimline/green/filled/line, +/obj/item/radio/intercom/directional/south, +/obj/structure/table/glass, +/obj/item/reagent_containers/cup/tube, +/obj/item/reagent_containers/cup/tube, +/obj/item/reagent_containers/cup/tube, +/obj/item/reagent_containers/cup/tube, +/obj/item/reagent_containers/cup/tube, +/obj/item/reagent_containers/cup/tube, +/obj/item/reagent_containers/cup/tube, +/obj/item/reagent_containers/cup/tube, +/obj/item/clothing/glasses/science, +/obj/item/clothing/glasses/science, +/obj/item/clothing/glasses/hud/health, +/obj/item/reagent_containers/syringe/antiviral, +/obj/item/reagent_containers/syringe/antiviral, +/obj/item/reagent_containers/syringe/antiviral, +/obj/item/book/manual/wiki/infections{ + pixel_y = 7 + }, +/turf/open/floor/iron/white, +/area/station/medical/pathology) "nNI" = ( /obj/structure/table, /obj/effect/spawner/random/food_or_drink/booze, @@ -48459,6 +48453,19 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor, /area/station/maintenance/port/central) +"owN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/item/storage/toolbox/emergency, +/obj/item/crowbar, +/obj/machinery/incident_display/tram{ + desc = "A display that indicates how many dents that'll need fixed after the shift is over."; + name = "darwin award counter"; + pixel_x = 32 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron, +/area/station/maintenance/port/central) "owQ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -52050,15 +52057,6 @@ /obj/machinery/station_map/engineering/directional/west, /turf/open/floor/iron, /area/station/hallway/secondary/command) -"pFu" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/item/toy/plush/lizard_plushie{ - pixel_y = 6; - pixel_x = 5 - }, -/turf/open/floor/iron/smooth, -/area/station/maintenance/central/greater) "pFw" = ( /obj/machinery/vending/modularpc, /obj/item/radio/intercom/directional/east, @@ -55341,19 +55339,6 @@ /obj/structure/transit_tube/crossing, /turf/open/floor/plating/airless, /area/space/nearstation) -"qGC" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/item/storage/toolbox/emergency, -/obj/item/crowbar, -/obj/structure/sign/collision_counter{ - desc = "A display that indicates how many dents that'll need fixed after the shift is over."; - name = "darwin award counter"; - pixel_x = 32 - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron, -/area/station/maintenance/port/central) "qGE" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -67724,6 +67709,13 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/security/checkpoint/engineering) +"uBA" = ( +/obj/machinery/incident_display/tram{ + pixel_x = -4; + pixel_y = 2 + }, +/turf/closed/wall, +/area/station/medical/medbay/lobby) "uBC" = ( /obj/structure/closet/crate/freezer, /obj/effect/decal/cleanable/dirt, @@ -71227,6 +71219,15 @@ /obj/structure/lattice, /turf/open/misc/asteroid/airless, /area/station/asteroid) +"vBV" = ( +/obj/machinery/incident_display/delam/directional/west, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 8 + }, +/obj/structure/table/glass, +/obj/machinery/pollution_scrubber, +/turf/open/floor/plastic, +/area/station/engineering/break_room) "vBX" = ( /obj/machinery/conveyor{ dir = 4; @@ -72600,6 +72601,14 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/wood/large, /area/station/service/barber) +"vZD" = ( +/obj/item/kirbyplants/random/dead, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/cafeteria, +/area/station/command/heads_quarters/rd) "vZF" = ( /obj/structure/table/reinforced, /obj/structure/window/reinforced/spawner/directional/east, @@ -76402,6 +76411,18 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/carpet, /area/station/commons/dorms) +"xme" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/item/toy/plush/lizard_plushie{ + pixel_y = 6; + pixel_x = 5 + }, +/obj/item/storage/box/lights/mixed{ + pixel_x = 7 + }, +/turf/open/floor/iron/smooth, +/area/station/maintenance/central/greater) "xmg" = ( /obj/machinery/light/neon_lining{ dir = 1 @@ -78833,15 +78854,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/medical/pathology) -"ycK" = ( -/obj/structure/sign/delamination_counter/directional/west, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 8 - }, -/obj/structure/table/glass, -/obj/machinery/pollution_scrubber, -/turf/open/floor/plastic, -/area/station/engineering/break_room) "ycV" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/white/line, @@ -96570,7 +96582,7 @@ mgS edg mgS mgS -coR +ieQ oVM aaa aaa @@ -98879,7 +98891,7 @@ rBz aEK dhL adQ -jpd +nsM aIi fBf kLz @@ -99669,7 +99681,7 @@ jAk pZW pZW fef -qGC +owN bRX oNE pbM @@ -101424,7 +101436,7 @@ aaa aaa aaa xwf -pFu +xme gSK pAl vzY @@ -110749,7 +110761,7 @@ qLW amw ryJ gzZ -ycK +vBV amV roB aoM @@ -161039,12 +161051,12 @@ jhd jhd jhd jhd -jhd -jhd -jhd -jhd -jhd -jhd +aac +aac +aac +aac +aac +aac aac aac aac @@ -161296,12 +161308,12 @@ jhd jhd jhd jhd -jhd -jhd -jhd -jhd -jhd -jhd +aac +aac +aac +aac +aac +aac aac aac aac @@ -161552,13 +161564,13 @@ jhd jhd jhd jhd -jhd -jhd -jhd -jhd -jhd -jhd -jhd +aac +aac +aac +aac +aac +aac +aac aac aac aac @@ -161808,14 +161820,14 @@ jhd jhd jhd jhd -jhd -vUu -vUu -vUu -vUu -vUu -jhd -jhd +aac +aac +aac +aac +aac +aac +aac +aac aac aac aac @@ -162065,14 +162077,14 @@ jhd jhd jhd jhd -jhd -vUu -vUu -vUu -vUu -vUu -vUu -vUu +aac +aac +aac +aac +aac +aac +aac +aac aac aac aac @@ -162322,14 +162334,14 @@ jhd jhd jhd jhd -jhd -vUu -vUu -vUu -vUu -vUu -vUu -vUu +aac +aac +aac +aac +aac +aac +aac +aac aac aac aac @@ -162376,7 +162388,7 @@ aQO gPA cay grR -iWm +jRP kmP byc dyH @@ -162579,14 +162591,14 @@ jhd jhd jhd jhd -jhd -vUu -vUu -vUu -vUu -vUu -vUu -vUu +aac +aac +aac +aac +aac +aac +aac +aac aac aac aaa @@ -162836,14 +162848,14 @@ jhd jhd jhd jhd -jhd -vUu -vUu -vUu -vUu -vUu -vUu -vUu +aac +aac +aac +aac +aac +aac +aac +aac aac aac aaa @@ -163093,14 +163105,14 @@ jhd jhd jhd jhd -jhd -vUu -vUu -vUu -vUu -vUu -vUu -vUu +aac +aac +aac +aac +aac +aac +aac +aac aac aac aaa @@ -163350,14 +163362,14 @@ jhd jhd jhd jhd -jhd -vUu -vUu -vUu -vUu -vUu -vUu -vUu +aac +aac +aac +aac +aac +aac +aac +aac aac aaa aaa @@ -163607,14 +163619,14 @@ jhd jhd jhd jhd -jhd -vUu -vUu -vUu -vUu -vUu -vUu -vUu +aac +aac +aac +aac +aac +aac +aaa +aaa aaa aaa aaa @@ -163864,14 +163876,14 @@ jhd jhd jhd jhd -jhd -vUu -vUu -vUu -vUu -vUu -vUu -vUu +aac +aac +aac +aac +aac +aac +aaa +aaa aaa aaa aaa @@ -164121,14 +164133,14 @@ jhd jhd jhd jhd -jhd -vUu -vUu -vUu -vUu -vUu -vUu -vUu +aac +aac +aac +aac +aac +aaa +aaa +aaa aaa aaa aaa @@ -164378,14 +164390,14 @@ jhd jhd jhd jhd -jhd -vUu -vUu -vUu -vUu -vUu -vUu -vUu +aac +aac +aac +aac +aaa +aaa +aaa +aaa aaa aaa aaa @@ -164635,14 +164647,14 @@ jhd jhd jhd jhd -jhd -vUu -vUu -vUu -vUu -vUu -vUu -vUu +aac +aac +aac +aac +aaa +aaa +aaa +aaa aaa aaa aaa @@ -164892,13 +164904,13 @@ jhd jhd jhd jhd -jhd -vUu -vUu -vUu -vUu -vUu -jhd +aac +aac +aac +aaa +aaa +aaa +aaa aaa aaa aaa @@ -165150,12 +165162,12 @@ jhd jhd jhd jhd -jhd -jhd -jhd -jhd -jhd -jhd +aac +aac +aac +aaa +aaa +aaa aaa aaa aaa @@ -165408,7 +165420,7 @@ jhd jhd jhd jhd -jhd +aac jhd jhd jhd @@ -178069,7 +178081,7 @@ uGM dYS syH fxs -cZo +uBA wyd rks rks @@ -178082,7 +178094,7 @@ uHB jtr jtr iUK -lcl +lVI qDF uwk oXz @@ -180667,7 +180679,7 @@ wDt jqY jqY jqY -aQI +nNG ugt aak aaa @@ -190936,7 +190948,7 @@ mGo dLO jwe rBb -kxF +vZD tes szO xPR diff --git a/_maps/shuttles/ferry_lighthouse.dmm b/_maps/shuttles/ferry_lighthouse.dmm index a7217ef90efc..bef95a75a71d 100644 --- a/_maps/shuttles/ferry_lighthouse.dmm +++ b/_maps/shuttles/ferry_lighthouse.dmm @@ -215,7 +215,7 @@ /turf/open/floor/wood, /area/shuttle/transport) "bd" = ( -/obj/item/kirbyplants/dead{ +/obj/item/kirbyplants/random/dead{ desc = "It doesn't look very healthy..."; name = "potted plant" }, diff --git a/_maps/shuttles/nova/arrival_nova.dmm b/_maps/shuttles/nova/arrival_nova.dmm new file mode 100644 index 000000000000..2affdfe81400 --- /dev/null +++ b/_maps/shuttles/nova/arrival_nova.dmm @@ -0,0 +1,336 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/arrivals{ + icon_state = "0,0" + }, +/area/shuttle/arrival) +"b" = ( +/obj/machinery/light/directional/north, +/turf/open/floor/iron/shuttle/arrivals, +/area/shuttle/arrival) +"c" = ( +/obj/structure/chair/sofa/bench/right{ + dir = 1 + }, +/turf/open/floor/iron/shuttle/arrivals, +/area/shuttle/arrival) +"d" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/arrivals{ + icon_state = "8,0" + }, +/area/shuttle/arrival) +"e" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/arrivals{ + icon_state = "6,0" + }, +/area/shuttle/arrival) +"f" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/arrivals{ + icon_state = "9,0" + }, +/area/shuttle/arrival) +"g" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/arrivals{ + icon_state = "12,2" + }, +/area/shuttle/arrival) +"h" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/arrivals{ + icon_state = "4,0" + }, +/area/shuttle/arrival) +"i" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/arrivals{ + icon_state = "11,0" + }, +/area/shuttle/arrival) +"j" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/arrivals{ + icon_state = "3,4" + }, +/area/shuttle/arrival) +"k" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/arrivals{ + icon_state = "0,4" + }, +/area/shuttle/arrival) +"l" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/arrivals{ + icon_state = "9,4" + }, +/area/shuttle/arrival) +"m" = ( +/obj/structure/chair/sofa/bench/right, +/turf/open/floor/iron/shuttle/arrivals, +/area/shuttle/arrival) +"n" = ( +/turf/open/floor/iron/shuttle/arrivals{ + icon_state = "sign_1" + }, +/area/shuttle/arrival) +"o" = ( +/obj/docking_port/mobile/arrivals, +/turf/closed/wall/mineral/titanium/shuttle_wall/arrivals{ + icon_state = "12,1" + }, +/area/shuttle/arrival) +"p" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/arrivals{ + icon_state = "6,4" + }, +/area/shuttle/arrival) +"q" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/arrivals{ + icon_state = "0,2" + }, +/area/shuttle/arrival) +"r" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/arrivals{ + icon_state = "1,4" + }, +/area/shuttle/arrival) +"s" = ( +/obj/machinery/door/airlock/silver/glass, +/turf/open/floor/iron/shuttle/arrivals, +/area/shuttle/arrival) +"t" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/arrivals{ + icon_state = "5,0" + }, +/area/shuttle/arrival) +"u" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/arrivals{ + icon_state = "9,1" + }, +/area/shuttle/arrival) +"v" = ( +/obj/machinery/light/directional/west, +/turf/open/floor/iron/shuttle/arrivals{ + icon_state = "sign_2" + }, +/area/shuttle/arrival) +"w" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/arrivals{ + icon_state = "11,3" + }, +/area/shuttle/arrival) +"x" = ( +/turf/open/floor/iron/shuttle/arrivals, +/area/shuttle/arrival) +"y" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/arrivals, +/area/shuttle/arrival) +"z" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/arrivals{ + icon_state = "8,4" + }, +/area/shuttle/arrival) +"B" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/arrivals{ + icon_state = "3,0" + }, +/area/shuttle/arrival) +"C" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/arrivals{ + icon_state = "0,3" + }, +/area/shuttle/arrival) +"D" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/arrivals{ + icon_state = "12,0" + }, +/area/shuttle/arrival) +"G" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/arrivals{ + icon_state = "1,0" + }, +/area/shuttle/arrival) +"H" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/arrivals{ + icon_state = "7,4" + }, +/area/shuttle/arrival) +"I" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/arrivals{ + icon_state = "12,4" + }, +/area/shuttle/arrival) +"J" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/arrivals{ + icon_state = "7,0" + }, +/area/shuttle/arrival) +"K" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/arrivals{ + icon_state = "3,3" + }, +/area/shuttle/arrival) +"L" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/arrivals{ + icon_state = "1,3" + }, +/area/shuttle/arrival) +"M" = ( +/obj/structure/closet/crate/bin, +/turf/open/floor/iron/shuttle/arrivals{ + icon_state = "sign_1" + }, +/area/shuttle/arrival) +"N" = ( +/obj/machinery/light/directional/south, +/turf/open/floor/iron/shuttle/arrivals{ + icon_state = "sign_3" + }, +/area/shuttle/arrival) +"O" = ( +/obj/structure/chair/sofa/bench/left{ + dir = 1 + }, +/turf/open/floor/iron/shuttle/arrivals, +/area/shuttle/arrival) +"P" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/arrivals{ + icon_state = "5,4" + }, +/area/shuttle/arrival) +"Q" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/arrivals{ + icon_state = "4,4" + }, +/area/shuttle/arrival) +"R" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/arrivals{ + icon_state = "0,1" + }, +/area/shuttle/arrival) +"S" = ( +/obj/structure/chair/sofa/bench/left, +/turf/open/floor/iron/shuttle/arrivals, +/area/shuttle/arrival) +"T" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/arrivals{ + icon_state = "2,4" + }, +/area/shuttle/arrival) +"U" = ( +/obj/machinery/door/airlock/external, +/obj/structure/fans/tiny, +/turf/open/floor/iron/shuttle/arrivals, +/area/shuttle/arrival) +"V" = ( +/obj/structure/closet/shuttle/emergency/white, +/turf/open/floor/iron/shuttle/arrivals, +/area/shuttle/arrival) +"W" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/arrivals{ + icon_state = "12,3" + }, +/area/shuttle/arrival) +"X" = ( +/obj/machinery/light/directional/east, +/turf/open/floor/iron/shuttle/arrivals{ + icon_state = "sign_2" + }, +/area/shuttle/arrival) +"Y" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/arrivals{ + icon_state = "9,3" + }, +/area/shuttle/arrival) +"Z" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/arrivals{ + icon_state = "11,4" + }, +/area/shuttle/arrival) + +(1,1,1) = {" +k +C +q +R +a +"} +(2,1,1) = {" +r +L +M +n +G +"} +(3,1,1) = {" +T +V +x +X +U +"} +(4,1,1) = {" +j +K +s +y +B +"} +(5,1,1) = {" +Q +m +x +O +h +"} +(6,1,1) = {" +P +S +x +c +t +"} +(7,1,1) = {" +p +b +x +N +e +"} +(8,1,1) = {" +H +m +x +O +J +"} +(9,1,1) = {" +z +S +x +c +d +"} +(10,1,1) = {" +l +Y +s +u +f +"} +(11,1,1) = {" +j +V +x +v +U +"} +(12,1,1) = {" +Z +w +n +n +i +"} +(13,1,1) = {" +I +W +g +o +D +"} diff --git a/_maps/shuttles/nova/cargo_nova.dmm b/_maps/shuttles/nova/cargo_nova.dmm new file mode 100644 index 000000000000..69303064b87c --- /dev/null +++ b/_maps/shuttles/nova/cargo_nova.dmm @@ -0,0 +1,338 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"cE" = ( +/turf/closed/wall/mineral/titanium/spaceship, +/area/shuttle/supply) +"do" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral/diagonal_edge, +/obj/effect/turf_decal/tile/neutral/diagonal_centre, +/obj/effect/turf_decal/box/white/corners, +/turf/open/floor/iron/dark/diagonal, +/area/shuttle/supply) +"ds" = ( +/obj/docking_port/mobile/supply, +/obj/machinery/door/airlock/grunge{ + name = "Supply Shuttle Airlock"; + req_access = list("cargo") + }, +/obj/effect/turf_decal/delivery/white, +/obj/structure/fans/tiny/invisible, +/turf/open/floor/iron/dark/smooth_large, +/area/shuttle/supply) +"go" = ( +/obj/machinery/button/door/directional/east{ + id = "QMLoaddoor2"; + name = "Loading Doors"; + pixel_y = 8 + }, +/obj/machinery/button/door/directional/east{ + id = "QMLoaddoor"; + name = "Loading Doors"; + pixel_y = -8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/shuttle/cargo, +/area/shuttle/supply) +"jb" = ( +/obj/machinery/power/shuttle_engine/propulsion, +/obj/effect/turf_decal/stripes/line, +/obj/structure/fluff/metalpole/end{ + pixel_y = -32 + }, +/turf/open/floor/plating/airless, +/area/shuttle/supply) +"lz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral/diagonal_edge, +/obj/effect/turf_decal/tile/neutral/diagonal_centre, +/obj/effect/turf_decal/box/white/corners, +/obj/effect/turf_decal/box/white/corners{ + dir = 8 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/iron/dark/diagonal, +/area/shuttle/supply) +"me" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral/diagonal_edge, +/obj/effect/turf_decal/tile/neutral/diagonal_centre, +/obj/effect/turf_decal/box/white/corners{ + dir = 1 + }, +/obj/effect/turf_decal/box/white/corners{ + dir = 4 + }, +/turf/open/floor/iron/dark/diagonal, +/area/shuttle/supply) +"mp" = ( +/turf/closed/wall/mineral/titanium/spaceship/nodiagonal, +/area/shuttle/supply) +"mP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral/diagonal_edge, +/obj/effect/turf_decal/tile/neutral/diagonal_centre, +/obj/effect/turf_decal/box/white/corners{ + dir = 8 + }, +/turf/open/floor/iron/dark/diagonal, +/area/shuttle/supply) +"ob" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral/diagonal_edge, +/obj/effect/turf_decal/tile/neutral/diagonal_centre, +/turf/open/floor/iron/dark/diagonal, +/area/shuttle/supply) +"oJ" = ( +/obj/structure/marker_beacon/olive, +/turf/closed/wall/mineral/titanium, +/area/shuttle/supply) +"qx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/caution/white{ + dir = 8 + }, +/turf/open/floor/iron/shuttle/cargo, +/area/shuttle/supply) +"qN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral/diagonal_edge, +/obj/effect/turf_decal/tile/neutral/diagonal_centre, +/obj/machinery/light/directional/west, +/turf/open/floor/iron/dark/diagonal, +/area/shuttle/supply) +"rY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral/diagonal_edge, +/obj/effect/turf_decal/tile/neutral/diagonal_centre, +/obj/effect/turf_decal/box/white/corners{ + dir = 1 + }, +/turf/open/floor/iron/dark/diagonal, +/area/shuttle/supply) +"uk" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "QMLoad" + }, +/obj/machinery/door/poddoor{ + id = "QMLoaddoor"; + name = "Supply Dock Loading Door" + }, +/obj/structure/fans/tiny/invisible, +/turf/open/floor/plating, +/area/shuttle/supply) +"wR" = ( +/obj/machinery/door/airlock/grunge{ + name = "Supply Shuttle Airlock"; + req_access = list("cargo") + }, +/obj/effect/turf_decal/delivery/white, +/obj/structure/fans/tiny/invisible, +/turf/open/floor/iron/dark/smooth_large, +/area/shuttle/supply) +"zQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/loading_area/white{ + dir = 8 + }, +/turf/open/floor/iron/shuttle/cargo, +/area/shuttle/supply) +"Ho" = ( +/obj/structure/fluff/metalpole/end{ + pixel_y = -32 + }, +/turf/closed/wall/mineral/titanium/spaceship/nodiagonal, +/area/shuttle/supply) +"Is" = ( +/obj/machinery/power/shuttle_engine/propulsion, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/airless, +/area/shuttle/supply) +"Jp" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/supply) +"OZ" = ( +/obj/structure/window/reinforced/plasma/spawner/directional/north, +/obj/machinery/power/shuttle_engine/heater, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/shuttle/supply) +"PA" = ( +/obj/structure/sign/warning/docking, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/supply) +"Ro" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral/diagonal_edge, +/obj/effect/turf_decal/tile/neutral/diagonal_centre, +/obj/effect/turf_decal/box/white/corners, +/obj/effect/turf_decal/box/white/corners{ + dir = 8 + }, +/turf/open/floor/iron/dark/diagonal, +/area/shuttle/supply) +"Rr" = ( +/obj/structure/marker_beacon/burgundy, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/supply) +"RT" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/shuttle/cargo, +/area/shuttle/supply) +"TR" = ( +/obj/structure/marker_beacon/olive, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/supply) +"Xq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral/diagonal_edge, +/obj/effect/turf_decal/tile/neutral/diagonal_centre, +/obj/effect/turf_decal/box/white/corners{ + dir = 4 + }, +/turf/open/floor/iron/dark/diagonal, +/area/shuttle/supply) +"Xz" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "QMLoad2" + }, +/obj/machinery/door/poddoor{ + id = "QMLoaddoor2"; + name = "Supply Dock Loading Door" + }, +/obj/structure/fans/tiny/invisible, +/turf/open/floor/plating, +/area/shuttle/supply) +"Yc" = ( +/obj/structure/marker_beacon/burgundy, +/turf/closed/wall/mineral/titanium, +/area/shuttle/supply) +"Ys" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral/diagonal_edge, +/obj/effect/turf_decal/tile/neutral/diagonal_centre, +/obj/effect/turf_decal/box/white/corners{ + dir = 1 + }, +/obj/effect/turf_decal/box/white/corners{ + dir = 4 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/iron/dark/diagonal, +/area/shuttle/supply) +"Zv" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral/diagonal_edge, +/obj/effect/turf_decal/tile/neutral/diagonal_centre, +/obj/structure/sign/warning/no_smoking/circle/directional/west, +/turf/open/floor/iron/dark/diagonal, +/area/shuttle/supply) +"Zz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/loading_area/white{ + dir = 4 + }, +/turf/open/floor/iron/shuttle/cargo, +/area/shuttle/supply) + +(1,1,1) = {" +Yc +Jp +Jp +Jp +Jp +Jp +Jp +Jp +Jp +Rr +mp +cE +"} +(2,1,1) = {" +Jp +rY +qN +Zv +mP +RT +rY +ob +qN +mP +OZ +jb +"} +(3,1,1) = {" +Jp +ob +ob +ob +ob +RT +ob +ob +ob +ob +OZ +Is +"} +(4,1,1) = {" +Jp +Xq +ob +ob +do +RT +Xq +ob +ob +do +mp +Ho +"} +(5,1,1) = {" +Jp +RT +RT +RT +RT +RT +RT +RT +RT +RT +OZ +Is +"} +(6,1,1) = {" +Jp +me +lz +Zz +qx +go +qx +zQ +Ys +Ro +OZ +jb +"} +(7,1,1) = {" +oJ +Jp +PA +Xz +wR +Jp +ds +uk +Jp +TR +mp +cE +"} diff --git a/_maps/shuttles/nova/emergency_nova.dmm b/_maps/shuttles/nova/emergency_nova.dmm new file mode 100644 index 000000000000..15917021fef8 --- /dev/null +++ b/_maps/shuttles/nova/emergency_nova.dmm @@ -0,0 +1,1247 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aL" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape/brig) +"bn" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 8 + }, +/obj/effect/turf_decal/box/white/corners, +/obj/effect/turf_decal/box/white/corners{ + dir = 8 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"bI" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/bot_white, +/obj/machinery/light/directional/east, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"bR" = ( +/obj/machinery/light/directional/east, +/obj/machinery/sleeper{ + dir = 8 + }, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"cd" = ( +/obj/machinery/computer/emergency_shuttle, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"cV" = ( +/obj/machinery/computer/security, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"dw" = ( +/turf/open/floor/iron/smooth_edge{ + dir = 8 + }, +/area/shuttle/escape) +"dN" = ( +/turf/open/floor/iron/smooth_half, +/area/shuttle/escape/brig) +"dW" = ( +/obj/structure/chair/comfy/shuttle, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"dY" = ( +/obj/machinery/computer/atmos_alert{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"dZ" = ( +/obj/machinery/light/directional/east, +/obj/machinery/status_display/evac/directional/east, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"en" = ( +/obj/structure/table/reinforced, +/obj/item/phone, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"eL" = ( +/obj/structure/chair/comfy/shuttle, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"fi" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"fN" = ( +/turf/open/floor/iron/smooth_half{ + dir = 1 + }, +/area/shuttle/escape) +"gI" = ( +/obj/structure/table/reinforced/rglass, +/obj/item/surgery_tray/deployed, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"gV" = ( +/turf/open/floor/iron/smooth_edge{ + dir = 4 + }, +/area/shuttle/escape) +"ig" = ( +/obj/structure/closet/firecloset/full, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"ir" = ( +/obj/effect/turf_decal/caution/white, +/turf/open/floor/iron/smooth_edge{ + dir = 1 + }, +/area/shuttle/escape) +"iC" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"jW" = ( +/turf/open/floor/catwalk_floor/iron_smooth, +/area/shuttle/escape) +"kP" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/power/shuttle_engine/propulsion, +/obj/structure/fluff/metalpole/end{ + pixel_y = -32 + }, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"lh" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 8 + }, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape/brig) +"li" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape/brig) +"lq" = ( +/obj/machinery/computer/crew, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"lL" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"mI" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/white/line, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"mL" = ( +/obj/machinery/door/airlock/security/old/glass{ + name = "Shuttle Brig" + }, +/obj/effect/turf_decal/delivery/white, +/obj/effect/mapping_helpers/airlock/access/all/security/brig, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape/brig) +"nF" = ( +/obj/structure/table/reinforced, +/obj/item/paper_bin/carbon, +/obj/item/pen, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"oe" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 8 + }, +/obj/effect/turf_decal/box/white/corners, +/obj/effect/turf_decal/box/white/corners{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"ov" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/escape) +"oT" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"oV" = ( +/obj/structure/rack/shelf, +/obj/item/storage/medkit/brute{ + pixel_y = 6 + }, +/obj/item/storage/medkit/fire, +/obj/effect/turf_decal/bot_white, +/obj/machinery/light/directional/west, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"pP" = ( +/obj/structure/chair/plastic{ + dir = 8 + }, +/turf/open/floor/iron/smooth_large, +/area/shuttle/escape) +"qb" = ( +/obj/structure/table/optable, +/obj/machinery/anesthetic_machine, +/obj/effect/turf_decal/bot_white, +/obj/machinery/defibrillator_mount/loaded{ + pixel_x = 28 + }, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"qp" = ( +/obj/machinery/computer/communications{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"qN" = ( +/turf/open/floor/iron/smooth_edge{ + dir = 4 + }, +/area/shuttle/escape/brig) +"qQ" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/obj/effect/turf_decal/box/white/corners{ + dir = 1 + }, +/obj/effect/turf_decal/box/white/corners{ + dir = 4 + }, +/obj/machinery/light/directional/west, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"rh" = ( +/obj/machinery/sleeper{ + dir = 8 + }, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"rK" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/escape) +"rP" = ( +/obj/machinery/power/shuttle_engine/propulsion, +/obj/effect/turf_decal/stripes/line, +/obj/structure/fluff/metalpole/end{ + pixel_y = -32 + }, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"sh" = ( +/obj/structure/fluff/metalpole/end{ + dir = 1; + pixel_y = 32 + }, +/obj/structure/marker_beacon/burgundy, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/escape) +"te" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/obj/effect/turf_decal/box/white/corners{ + dir = 4 + }, +/obj/effect/turf_decal/box/white/corners{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape/brig) +"tl" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"tF" = ( +/obj/structure/table, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/obj/machinery/light/directional/west, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"ua" = ( +/obj/machinery/light/directional/east, +/obj/machinery/suit_storage_unit/standard_unit, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"vm" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/obj/machinery/light/directional/west, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape/brig) +"vx" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Shuttle Seating Area" + }, +/obj/effect/turf_decal/delivery/white, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"vF" = ( +/obj/structure/chair/comfy/shuttle, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"wl" = ( +/obj/machinery/light/directional/west, +/obj/structure/table, +/obj/effect/spawner/random/entertainment/deck, +/obj/effect/spawner/random/entertainment/deck{ + pixel_y = 8; + pixel_x = 5 + }, +/turf/open/floor/iron/smooth_large, +/area/shuttle/escape) +"wr" = ( +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/escape/brig) +"xE" = ( +/turf/open/floor/iron/smooth_edge, +/area/shuttle/escape) +"xJ" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 8 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape/brig) +"yz" = ( +/obj/machinery/door/airlock/engineering{ + name = "Shuttle Engineering" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/general, +/obj/effect/turf_decal/delivery/white, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"zc" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"zw" = ( +/obj/machinery/door/airlock/external/glass, +/obj/docking_port/mobile/emergency{ + name = "Emergency Shuttle" + }, +/obj/effect/turf_decal/delivery/white, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"zB" = ( +/obj/structure/rack/shelf, +/obj/item/storage/medkit/toxin{ + pixel_y = 6 + }, +/obj/item/storage/medkit/o2, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"zC" = ( +/obj/effect/spawner/structure/window/reinforced/shuttle, +/turf/open/floor/plating, +/area/shuttle/escape/brig) +"Bn" = ( +/turf/open/floor/mineral/titanium/tiled/white, +/area/shuttle/escape) +"Br" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"BA" = ( +/obj/machinery/light/directional/east, +/obj/machinery/computer/operating{ + dir = 8 + }, +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"Cc" = ( +/obj/machinery/power/shuttle_engine/propulsion, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"CI" = ( +/obj/structure/closet/crate/freezer/blood, +/obj/effect/turf_decal/box/white/corners{ + dir = 1 + }, +/obj/effect/turf_decal/box/white/corners{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"CR" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/bot_white, +/obj/machinery/light/directional/east, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"Dg" = ( +/obj/structure/chair/comfy/shuttle, +/turf/open/floor/iron/smooth_large, +/area/shuttle/escape) +"Dq" = ( +/obj/structure/table, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"DD" = ( +/obj/structure/fluff/metalpole/end{ + dir = 1; + pixel_y = 32 + }, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/escape/brig) +"EC" = ( +/obj/structure/marker_beacon/olive, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/escape) +"EH" = ( +/turf/open/floor/iron/smooth_large, +/area/shuttle/escape) +"FS" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/power/shuttle_engine/propulsion, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"FT" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 8 + }, +/obj/effect/turf_decal/box/white/corners{ + dir = 8 + }, +/obj/effect/turf_decal/box/white/corners, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape/brig) +"Hf" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 8 + }, +/obj/effect/turf_decal/box/white/corners{ + dir = 4 + }, +/obj/effect/turf_decal/box/white/corners{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape/brig) +"Hr" = ( +/obj/structure/chair/comfy/shuttle, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"Hs" = ( +/obj/machinery/light/directional/west, +/obj/machinery/vending/wallmed/directional/west, +/obj/machinery/stasis{ + dir = 1 + }, +/obj/machinery/iv_drip, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"HH" = ( +/obj/structure/closet/crate/freezer, +/obj/item/tank/internals/anesthetic, +/obj/item/tank/internals/anesthetic{ + pixel_y = 3 + }, +/obj/effect/turf_decal/box/white/corners{ + dir = 8 + }, +/obj/effect/turf_decal/box/white/corners, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"HR" = ( +/obj/machinery/power/shuttle_engine/heater, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/window/reinforced/plasma/spawner/directional/north, +/turf/open/floor/plating/airless, +/area/shuttle/escape) +"Iu" = ( +/obj/effect/spawner/structure/window/reinforced/shuttle, +/turf/open/floor/plating, +/area/shuttle/escape) +"Iy" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/escape/brig) +"IB" = ( +/obj/effect/turf_decal/delivery/white, +/obj/machinery/door/airlock/external/glass, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"Kz" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/obj/effect/turf_decal/box/white/corners{ + dir = 1 + }, +/obj/effect/turf_decal/box/white/corners{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"KI" = ( +/obj/machinery/computer/station_alert{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"Lc" = ( +/obj/machinery/computer/message_monitor{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"Li" = ( +/obj/effect/turf_decal/caution/white{ + dir = 1 + }, +/turf/open/floor/iron/smooth_edge, +/area/shuttle/escape) +"MH" = ( +/obj/machinery/computer/records/medical{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"MJ" = ( +/turf/open/floor/iron/smooth_half, +/area/shuttle/escape) +"MK" = ( +/obj/structure/tank_dispenser/oxygen, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"Nq" = ( +/obj/machinery/door/airlock/external/glass, +/obj/effect/turf_decal/delivery/white, +/obj/effect/mapping_helpers/airlock/access/all/security/brig, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape/brig) +"Nv" = ( +/obj/structure/chair/plastic{ + dir = 1 + }, +/turf/open/floor/iron/smooth_large, +/area/shuttle/escape) +"NG" = ( +/obj/machinery/stasis{ + dir = 1 + }, +/obj/machinery/iv_drip, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"On" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 1 + }, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/effect/turf_decal/stripes/white/line, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"Op" = ( +/obj/machinery/door/window/brigdoor/security/cell/left/directional/north, +/turf/open/floor/iron/smooth_half{ + dir = 1 + }, +/area/shuttle/escape/brig) +"Ow" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/white/line, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"OG" = ( +/turf/open/floor/iron/smooth, +/area/shuttle/escape) +"OJ" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 8 + }, +/obj/effect/turf_decal/box/white/corners{ + dir = 1 + }, +/obj/effect/turf_decal/box/white/corners{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"OY" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/obj/effect/turf_decal/box/white/corners, +/obj/effect/turf_decal/box/white/corners{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"Pa" = ( +/obj/structure/fluff/metalpole/end{ + dir = 1; + pixel_y = 32 + }, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/escape) +"Pd" = ( +/obj/structure/table/reinforced, +/obj/item/storage/box/handcuffs, +/obj/item/assembly/flash/handheld{ + pixel_y = 8 + }, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape/brig) +"Pu" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/holopad/secure, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"Qf" = ( +/obj/machinery/light/directional/south, +/obj/structure/closet/toolcloset, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"Qz" = ( +/obj/machinery/computer/crew{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"QD" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/obj/effect/turf_decal/box/white/corners{ + dir = 8 + }, +/obj/effect/turf_decal/box/white/corners, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape/brig) +"Rc" = ( +/turf/open/floor/iron/smooth_edge{ + dir = 1 + }, +/area/shuttle/escape) +"Ri" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 1 + }, +/turf/open/floor/iron/smooth_large, +/area/shuttle/escape) +"RL" = ( +/obj/structure/fluff/metalpole/end{ + dir = 1; + pixel_y = 32 + }, +/obj/structure/marker_beacon/olive, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/escape) +"RS" = ( +/obj/machinery/door/airlock/command/glass{ + name = "Cockpit" + }, +/obj/effect/mapping_helpers/airlock/access/all/command/general, +/obj/effect/turf_decal/delivery/white, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"Sv" = ( +/obj/machinery/light/directional/west, +/obj/machinery/status_display/evac/directional/west, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"SK" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/obj/effect/turf_decal/box/white/corners{ + dir = 8 + }, +/obj/effect/turf_decal/box/white/corners, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"SR" = ( +/obj/structure/table/reinforced, +/obj/machinery/recharger, +/obj/machinery/light/directional/west, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"VC" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/bot_white, +/obj/machinery/light/directional/west, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"Ws" = ( +/obj/machinery/computer/aifixer{ + dir = 8 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"WW" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 8 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"Xt" = ( +/obj/structure/marker_beacon/burgundy, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/escape) +"Ye" = ( +/obj/structure/table/reinforced, +/obj/machinery/cell_charger, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"YF" = ( +/obj/structure/marker_beacon/burgundy, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/escape/brig) +"YN" = ( +/obj/structure/table/reinforced, +/obj/item/storage/medkit/advanced, +/obj/item/crowbar, +/obj/machinery/vending/wallmed/directional/east, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) +"ZA" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/turf/open/floor/iron/smooth_large, +/area/shuttle/escape) +"ZF" = ( +/turf/template_noop, +/area/template_noop) +"ZJ" = ( +/obj/machinery/door/airlock/medical/glass{ + name = "Shuttle Medbay" + }, +/obj/effect/turf_decal/delivery/white, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/escape) + +(1,1,1) = {" +ZF +ZF +ZF +aL +YF +Iy +Iy +Iy +Nq +YF +zw +ov +Iu +Iu +Iu +ov +IB +ov +IB +ov +Xt +rK +ZF +ZF +ZF +ZF +ZF +"} +(2,1,1) = {" +ZF +ZF +ZF +DD +te +vm +QD +li +dN +Iy +MJ +qQ +zc +OY +ig +VC +MJ +lL +MJ +qQ +OY +ov +ov +rK +ZF +ZF +ZF +"} +(3,1,1) = {" +ZF +ZF +ZF +zC +wr +wr +wr +Op +qN +mL +gV +dw +dw +fN +fN +fN +OG +dw +gV +fN +fN +fN +HR +rP +ZF +ZF +ZF +"} +(4,1,1) = {" +ZF +ZF +ZF +Iy +Hf +xJ +FT +lh +Pd +zC +tl +Rc +xE +OJ +WW +oe +Rc +xE +OJ +bn +tl +ig +HR +Cc +ZF +ZF +ZF +"} +(5,1,1) = {" +sh +Iu +ov +Iy +Iy +Iy +Iy +Iy +Iy +Iy +ov +vx +vx +ov +ov +ov +vx +vx +ov +ov +ov +ov +ov +ov +ov +Xt +rK +"} +(6,1,1) = {" +Iu +lq +en +lL +SR +nF +qp +ov +eL +Sv +Ow +Rc +xE +eL +Sv +Ow +Rc +xE +eL +Sv +Ow +ov +wl +Nv +tl +HR +rP +"} +(7,1,1) = {" +Iu +cd +Ri +EH +EH +Dg +Lc +Iu +dW +oT +mI +ir +Li +dW +oT +mI +ir +Li +dW +oT +mI +ov +pP +jW +EH +HR +Cc +"} +(8,1,1) = {" +Iu +cV +Ri +EH +Pu +EH +EH +RS +EH +jW +jW +Rc +xE +jW +jW +jW +Rc +xE +jW +jW +EH +yz +EH +jW +Qf +ov +ov +"} +(9,1,1) = {" +rK +ov +Ye +ZA +EH +Dg +MH +Iu +eL +fi +Ow +ir +Li +eL +fi +Ow +ir +Li +eL +fi +Ow +ov +iC +jW +Br +HR +Cc +"} +(10,1,1) = {" +ZF +ov +dY +KI +Ws +YN +Qz +ov +dW +dZ +mI +Rc +xE +dW +dZ +mI +Rc +xE +dW +dZ +mI +ov +ua +EH +MK +HR +rP +"} +(11,1,1) = {" +ZF +RL +ov +ov +ov +ov +ov +ov +ov +ov +ov +vx +vx +ov +ov +ov +ZJ +ZJ +ov +ov +ov +ov +ov +ov +ov +EC +rK +"} +(12,1,1) = {" +ZF +ZF +ZF +ov +Hr +tF +On +lL +vF +tF +On +Rc +xE +Iu +NG +Hs +Bn +Bn +Kz +SK +oV +zB +HR +FS +ZF +ZF +ZF +"} +(13,1,1) = {" +ZF +ZF +ZF +Iu +fN +fN +fN +fN +fN +fN +fN +gV +gV +ZJ +Bn +Bn +Bn +Bn +Bn +Bn +Bn +Bn +HR +kP +ZF +ZF +ZF +"} +(14,1,1) = {" +ZF +ZF +ZF +Pa +Hr +Dq +On +bI +vF +Dq +On +CR +ig +ov +rh +bR +CI +HH +BA +qb +gI +ov +ov +rK +ZF +ZF +ZF +"} +(15,1,1) = {" +ZF +ZF +ZF +rK +EC +ov +ov +ov +ov +ov +ov +ov +ov +EC +ov +Iu +Iu +Iu +ov +ov +EC +rK +ZF +ZF +ZF +ZF +ZF +"} diff --git a/_maps/shuttles/nova/ferry_nova.dmm b/_maps/shuttles/nova/ferry_nova.dmm new file mode 100644 index 000000000000..a4a9ccb4a54e --- /dev/null +++ b/_maps/shuttles/nova/ferry_nova.dmm @@ -0,0 +1,954 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aF" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/ferry{ + dir = 8; + icon_state = "1,4" + }, +/area/shuttle/transport) +"bd" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/ferry{ + dir = 8; + icon_state = "5,1" + }, +/area/shuttle/transport) +"cz" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/ferry{ + dir = 8; + icon_state = "1,6" + }, +/area/shuttle/transport) +"cK" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/ferry{ + dir = 8; + icon_state = "2,3" + }, +/area/shuttle/transport) +"el" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 1 + }, +/turf/open/floor/iron/shuttle/ferry{ + dir = 8; + icon_state = "floor" + }, +/area/shuttle/transport) +"fT" = ( +/turf/open/floor/iron/shuttle/ferry{ + dir = 8; + icon_state = "sign_2" + }, +/area/shuttle/transport) +"gd" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/ferry{ + dir = 8; + icon_state = "3,2" + }, +/area/shuttle/transport) +"go" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/ferry{ + dir = 8; + icon_state = "16,7" + }, +/area/shuttle/transport) +"gS" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/ferry{ + dir = 8; + icon_state = "19,3" + }, +/area/shuttle/transport) +"hn" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/ferry{ + dir = 8; + icon_state = "17,9" + }, +/area/shuttle/transport) +"ht" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/ferry{ + dir = 8; + icon_state = "7,2" + }, +/area/shuttle/transport) +"hw" = ( +/turf/open/floor/iron/shuttle/ferry{ + dir = 8 + }, +/area/shuttle/transport) +"hY" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/ferry{ + dir = 8; + icon_state = "15,6" + }, +/area/shuttle/transport) +"io" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/ferry{ + dir = 8; + icon_state = "17,5" + }, +/area/shuttle/transport) +"iF" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/ferry{ + dir = 8; + icon_state = "2,6" + }, +/area/shuttle/transport) +"iL" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/ferry{ + dir = 8; + icon_state = "18,9" + }, +/area/shuttle/transport) +"jg" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/ferry{ + dir = 8; + icon_state = "6,8" + }, +/area/shuttle/transport) +"jE" = ( +/obj/machinery/computer/security/shuttle, +/turf/open/floor/iron/shuttle/ferry{ + dir = 8 + }, +/area/shuttle/transport) +"jG" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/ferry{ + dir = 8; + icon_state = "9,7" + }, +/area/shuttle/transport) +"jP" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/ferry{ + dir = 8; + icon_state = "12,3" + }, +/area/shuttle/transport) +"lN" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/ferry{ + dir = 8; + icon_state = "2,2" + }, +/area/shuttle/transport) +"nf" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/ferry{ + dir = 8; + icon_state = "19,1" + }, +/area/shuttle/transport) +"ny" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/ferry{ + dir = 8; + icon_state = "18,0" + }, +/area/shuttle/transport) +"nC" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/ferry{ + dir = 8; + icon_state = "8,4" + }, +/area/shuttle/transport) +"oR" = ( +/turf/open/floor/iron/shuttle/ferry{ + dir = 8; + icon_state = "sign_1" + }, +/area/shuttle/transport) +"pk" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/ferry{ + dir = 8; + icon_state = "2,5" + }, +/area/shuttle/transport) +"qm" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/ferry{ + dir = 8; + icon_state = "16,6" + }, +/area/shuttle/transport) +"qr" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/ferry{ + dir = 8; + icon_state = "0,4" + }, +/area/shuttle/transport) +"qN" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/ferry{ + dir = 8; + icon_state = "3,8" + }, +/area/shuttle/transport) +"rb" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/ferry{ + dir = 8; + icon_state = "19,7" + }, +/area/shuttle/transport) +"rg" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/ferry{ + dir = 8; + icon_state = "18,8" + }, +/area/shuttle/transport) +"rq" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/ferry{ + dir = 8; + icon_state = "18,6" + }, +/area/shuttle/transport) +"rT" = ( +/obj/machinery/computer/crew/shuttle, +/turf/open/floor/iron/shuttle/ferry{ + dir = 8 + }, +/area/shuttle/transport) +"sk" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/ferry{ + dir = 8; + icon_state = "3,9" + }, +/area/shuttle/transport) +"tq" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/ferry{ + dir = 8; + icon_state = "17,8" + }, +/area/shuttle/transport) +"tu" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/ferry{ + dir = 8; + icon_state = "13,7" + }, +/area/shuttle/transport) +"tB" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/ferry{ + dir = 8; + icon_state = "14,4" + }, +/area/shuttle/transport) +"tI" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/ferry{ + dir = 8; + icon_state = "19,9" + }, +/area/shuttle/transport) +"uf" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/ferry{ + dir = 8; + icon_state = "1,7" + }, +/area/shuttle/transport) +"ur" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/ferry{ + dir = 8; + icon_state = "1,3" + }, +/area/shuttle/transport) +"uD" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/turf/open/floor/iron/shuttle/ferry{ + dir = 8 + }, +/area/shuttle/transport) +"uI" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/ferry{ + dir = 8; + icon_state = "17,4" + }, +/area/shuttle/transport) +"ve" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/ferry{ + dir = 8; + icon_state = "1,5" + }, +/area/shuttle/transport) +"vl" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/ferry{ + dir = 8; + icon_state = "5,9" + }, +/area/shuttle/transport) +"xR" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/ferry{ + dir = 8; + icon_state = "6,2" + }, +/area/shuttle/transport) +"xS" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/ferry{ + dir = 8; + icon_state = "19,2" + }, +/area/shuttle/transport) +"yB" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/ferry{ + dir = 8; + icon_state = "4,1" + }, +/area/shuttle/transport) +"yF" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/ferry{ + dir = 8; + icon_state = "15,4" + }, +/area/shuttle/transport) +"zs" = ( +/obj/effect/turf_decal/caution{ + dir = 4 + }, +/obj/machinery/light/no_nightlight{ + dir = 8 + }, +/turf/open/floor/iron/shuttle/ferry{ + dir = 8 + }, +/area/shuttle/transport) +"zN" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/ferry{ + dir = 8; + icon_state = "17,7" + }, +/area/shuttle/transport) +"AB" = ( +/obj/machinery/computer/security/shuttle{ + dir = 4 + }, +/turf/open/floor/iron/shuttle/ferry{ + dir = 8 + }, +/area/shuttle/transport) +"AW" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 1 + }, +/turf/open/floor/iron/shuttle/ferry{ + dir = 8 + }, +/area/shuttle/transport) +"By" = ( +/obj/structure/fans/tiny/forcefield{ + dir = 8 + }, +/obj/machinery/door/airlock/grunge, +/turf/open/floor/iron/shuttle/ferry{ + dir = 8; + icon_state = "floor" + }, +/area/shuttle/transport) +"Co" = ( +/obj/machinery/light/no_nightlight{ + dir = 4 + }, +/obj/structure/closet/shuttle/medical{ + dir = 8 + }, +/turf/open/floor/iron/shuttle/ferry{ + dir = 8 + }, +/area/shuttle/transport) +"Cz" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/ferry{ + dir = 8; + icon_state = "13,3" + }, +/area/shuttle/transport) +"CC" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/ferry{ + dir = 8; + icon_state = "15,5" + }, +/area/shuttle/transport) +"CE" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/ferry{ + dir = 8; + icon_state = "17,6" + }, +/area/shuttle/transport) +"CL" = ( +/obj/machinery/computer/security/shuttle{ + dir = 8 + }, +/turf/open/floor/iron/shuttle/ferry{ + dir = 8 + }, +/area/shuttle/transport) +"CM" = ( +/turf/open/floor/iron/shuttle/ferry{ + dir = 8; + icon_state = "floor" + }, +/area/shuttle/transport) +"Dt" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/ferry{ + dir = 8; + icon_state = "12,7" + }, +/area/shuttle/transport) +"Dy" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/ferry{ + dir = 8; + icon_state = "17,2" + }, +/area/shuttle/transport) +"Ed" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/ferry{ + dir = 8; + icon_state = "19,0" + }, +/area/shuttle/transport) +"Ei" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/ferry{ + dir = 8; + icon_state = "16,3" + }, +/area/shuttle/transport) +"El" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/ferry{ + dir = 8; + icon_state = "16,4" + }, +/area/shuttle/transport) +"Ev" = ( +/obj/structure/table/reinforced, +/obj/item/paper_bin/carbon, +/obj/machinery/light/no_nightlight{ + dir = 8 + }, +/turf/open/floor/iron/shuttle/ferry{ + dir = 8 + }, +/area/shuttle/transport) +"Ew" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 1 + }, +/obj/machinery/light/no_nightlight{ + dir = 8 + }, +/turf/open/floor/iron/shuttle/ferry{ + dir = 8 + }, +/area/shuttle/transport) +"Fk" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/ferry{ + dir = 8; + icon_state = "14,5" + }, +/area/shuttle/transport) +"Fz" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/ferry{ + dir = 8; + icon_state = "16,5" + }, +/area/shuttle/transport) +"GQ" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/ferry{ + dir = 8; + icon_state = "13,4" + }, +/area/shuttle/transport) +"GX" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/ferry{ + dir = 8; + icon_state = "7,8" + }, +/area/shuttle/transport) +"GY" = ( +/obj/machinery/door/airlock/command/glass{ + name = "Cockpit"; + req_access = list("cent_general") + }, +/turf/open/floor/iron/stairs, +/area/shuttle/transport) +"Hn" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/ferry{ + dir = 8; + icon_state = "18,3" + }, +/area/shuttle/transport) +"HU" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/ferry{ + dir = 8; + icon_state = "19,10" + }, +/area/shuttle/transport) +"Ig" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/ferry{ + dir = 8; + icon_state = "17,3" + }, +/area/shuttle/transport) +"Im" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 8 + }, +/turf/open/floor/iron/shuttle/ferry{ + dir = 8 + }, +/area/shuttle/transport) +"Io" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/ferry{ + dir = 8; + icon_state = "8,2" + }, +/area/shuttle/transport) +"Ip" = ( +/obj/machinery/computer/shuttle/ferry/shuttle, +/turf/open/floor/iron/shuttle/ferry{ + dir = 8; + icon_state = "floor" + }, +/area/shuttle/transport) +"IG" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/ferry{ + dir = 8; + icon_state = "6,9" + }, +/area/shuttle/transport) +"IM" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/ferry{ + dir = 8; + icon_state = "18,7" + }, +/area/shuttle/transport) +"Ks" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/ferry{ + dir = 8 + }, +/area/shuttle/transport) +"Kx" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/ferry{ + dir = 8; + icon_state = "4,9" + }, +/area/shuttle/transport) +"KY" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/ferry{ + dir = 8; + icon_state = "17,1" + }, +/area/shuttle/transport) +"Lq" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/ferry{ + dir = 8; + icon_state = "2,8" + }, +/area/shuttle/transport) +"LW" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/ferry{ + dir = 8; + icon_state = "8,8" + }, +/area/shuttle/transport) +"Mr" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/ferry{ + dir = 8; + icon_state = "6,1" + }, +/area/shuttle/transport) +"NL" = ( +/obj/structure/table/reinforced, +/obj/item/paper_bin/carbon, +/obj/machinery/light/no_nightlight{ + dir = 4 + }, +/turf/open/floor/iron/shuttle/ferry{ + dir = 8 + }, +/area/shuttle/transport) +"ON" = ( +/turf/template_noop, +/area/template_noop) +"Py" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/ferry{ + dir = 8; + icon_state = "13,6" + }, +/area/shuttle/transport) +"Pz" = ( +/obj/structure/closet/shuttle/emergency{ + dir = 8 + }, +/turf/open/floor/iron/shuttle/ferry{ + dir = 8 + }, +/area/shuttle/transport) +"Qg" = ( +/obj/structure/fans/tiny/forcefield{ + dir = 8 + }, +/obj/docking_port/mobile{ + dir = 8; + shuttle_id = "ferry"; + name = "ferry shuttle"; + port_direction = 4 + }, +/obj/machinery/door/airlock/grunge, +/turf/open/floor/iron/shuttle/ferry{ + dir = 8; + icon_state = "floor" + }, +/area/shuttle/transport) +"Ql" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/ferry{ + dir = 8; + icon_state = "2,7" + }, +/area/shuttle/transport) +"Qo" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/ferry{ + dir = 8; + icon_state = "0,5" + }, +/area/shuttle/transport) +"QN" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/ferry{ + dir = 8; + icon_state = "18,10" + }, +/area/shuttle/transport) +"Rc" = ( +/obj/effect/turf_decal/caution{ + dir = 8 + }, +/obj/machinery/light/no_nightlight{ + dir = 4 + }, +/turf/open/floor/iron/shuttle/ferry{ + dir = 8 + }, +/area/shuttle/transport) +"RL" = ( +/obj/machinery/computer/crew/shuttle{ + dir = 8 + }, +/turf/open/floor/iron/shuttle/ferry{ + dir = 8 + }, +/area/shuttle/transport) +"Ss" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/ferry{ + dir = 8; + icon_state = "8,7" + }, +/area/shuttle/transport) +"SN" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/ferry{ + dir = 8; + icon_state = "18,1" + }, +/area/shuttle/transport) +"SQ" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/ferry{ + dir = 8; + icon_state = "18,4" + }, +/area/shuttle/transport) +"Tk" = ( +/obj/structure/closet/shuttle/emergency{ + dir = 1 + }, +/obj/machinery/light/no_nightlight, +/turf/open/floor/iron/shuttle/ferry{ + dir = 8 + }, +/area/shuttle/transport) +"Tm" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/ferry{ + dir = 8; + icon_state = "14,6" + }, +/area/shuttle/transport) +"TM" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/ferry{ + dir = 8; + icon_state = "3,1" + }, +/area/shuttle/transport) +"Ud" = ( +/obj/machinery/computer/crew/shuttle{ + dir = 4 + }, +/turf/open/floor/iron/shuttle/ferry{ + dir = 8 + }, +/area/shuttle/transport) +"UD" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/ferry{ + dir = 8; + icon_state = "19,8" + }, +/area/shuttle/transport) +"Vc" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/ferry{ + dir = 8; + icon_state = "8,3" + }, +/area/shuttle/transport) +"Xl" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/ferry{ + dir = 8; + icon_state = "8,6" + }, +/area/shuttle/transport) +"XG" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/window/ferry{ + dir = 8; + icon_state = "2,4" + }, +/area/shuttle/transport) +"XP" = ( +/obj/machinery/light/small/red/directional/north, +/turf/closed/wall/mineral/titanium/shuttle_wall/window/ferry{ + dir = 8; + icon_state = "18,5" + }, +/area/shuttle/transport) +"YJ" = ( +/turf/closed/wall/mineral/titanium/shuttle_wall/ferry{ + dir = 8; + icon_state = "9,3" + }, +/area/shuttle/transport) + +(1,1,1) = {" +ON +ON +ON +ON +ON +ON +ON +ON +ON +ON +ON +ON +ON +ON +ON +ON +ON +ON +ny +Ed +"} +(2,1,1) = {" +ON +ON +ON +TM +yB +bd +Mr +ON +ON +ON +ON +ON +ON +ON +ON +ON +ON +KY +SN +nf +"} +(3,1,1) = {" +ON +ON +lN +gd +Ud +AB +xR +ht +Io +ON +ON +ON +ON +ON +ON +ON +ON +Dy +Ks +xS +"} +(4,1,1) = {" +ON +ur +cK +Ev +Im +hw +AW +Ew +Vc +YJ +By +By +jP +Cz +ON +ON +Ei +Ig +Hn +gS +"} +(5,1,1) = {" +qr +aF +XG +rT +hw +hw +AW +AW +nC +zs +fT +fT +zs +GQ +tB +yF +El +uI +SQ +ON +"} +(6,1,1) = {" +Qo +ve +pk +Ip +el +CM +CM +CM +GY +CM +CM +CM +CM +Tk +Fk +CC +Fz +io +XP +ON +"} +(7,1,1) = {" +ON +cz +iF +jE +hw +hw +oR +oR +Xl +Rc +fT +fT +Rc +Py +Tm +hY +qm +CE +rq +ON +"} +(8,1,1) = {" +ON +uf +Ql +NL +uD +uD +Pz +Co +Ss +jG +By +Qg +Dt +tu +ON +ON +go +zN +IM +rb +"} +(9,1,1) = {" +ON +ON +Lq +qN +RL +CL +jg +GX +LW +ON +ON +ON +ON +ON +ON +ON +ON +tq +rg +UD +"} +(10,1,1) = {" +ON +ON +ON +sk +Kx +vl +IG +ON +ON +ON +ON +ON +ON +ON +ON +ON +ON +hn +iL +tI +"} +(11,1,1) = {" +ON +ON +ON +ON +ON +ON +ON +ON +ON +ON +ON +ON +ON +ON +ON +ON +ON +ON +QN +HU +"} diff --git a/_maps/shuttles/nova/labour_nova.dmm b/_maps/shuttles/nova/labour_nova.dmm new file mode 100644 index 000000000000..69591e41db96 --- /dev/null +++ b/_maps/shuttles/nova/labour_nova.dmm @@ -0,0 +1,224 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"d" = ( +/turf/template_noop, +/area/shuttle/labor) +"f" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/red/dim/directional/east, +/turf/open/floor/iron/smooth, +/area/shuttle/labor) +"g" = ( +/obj/docking_port/mobile{ + dir = 8; + shuttle_id = "laborcamp"; + name = "labor camp shuttle"; + port_direction = 4 + }, +/obj/machinery/door/airlock/grunge{ + id_tag = "prisonshuttle"; + name = "Labour Shuttle Airlock" + }, +/obj/effect/turf_decal/delivery/white, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/labor) +"h" = ( +/obj/effect/spawner/structure/window/reinforced/shuttle, +/turf/open/floor/plating, +/area/shuttle/labor) +"i" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/loading_area/white, +/obj/machinery/mineral/labor_claim_console{ + pixel_x = 28 + }, +/turf/open/floor/iron/smooth, +/area/shuttle/labor) +"k" = ( +/obj/machinery/mineral/stacking_unit_console{ + pixel_x = 28; + pixel_y = 28 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/smooth, +/area/shuttle/labor) +"s" = ( +/obj/structure/marker_beacon/olive, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/labor) +"t" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/labor) +"y" = ( +/obj/structure/window/reinforced/plasma/spawner/directional/north, +/obj/machinery/power/shuttle_engine/heater, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/shuttle/labor) +"A" = ( +/obj/machinery/computer/shuttle/labor, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/labor) +"B" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 1 + }, +/obj/effect/turf_decal/bot_white, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/labor) +"C" = ( +/obj/structure/marker_beacon/burgundy, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/labor) +"D" = ( +/obj/machinery/flasher/directional/north{ + id = "gulagshuttleflasher"; + pixel_x = 8 + }, +/obj/structure/chair/comfy/shuttle, +/obj/effect/turf_decal/bot_white, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/labor) +"I" = ( +/obj/machinery/door/airlock/grunge{ + name = "Labour Shuttle Airlock" + }, +/obj/effect/turf_decal/delivery/white, +/obj/effect/mapping_helpers/airlock/access/all/security/brig, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/labor) +"J" = ( +/turf/closed/wall/mineral/titanium/spaceship, +/area/shuttle/labor) +"K" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/smooth, +/area/shuttle/labor) +"L" = ( +/obj/machinery/mineral/stacking_machine/laborstacker{ + input_dir = 2; + output_dir = 1 + }, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/labor) +"M" = ( +/obj/structure/fluff/metalpole/end{ + dir = 1; + pixel_y = 32 + }, +/obj/structure/marker_beacon/burgundy, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/labor) +"N" = ( +/obj/structure/fluff/metalpole/end{ + dir = 1; + pixel_y = 32 + }, +/obj/structure/marker_beacon/olive, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/labor) +"O" = ( +/turf/closed/wall/mineral/titanium/spaceship/nodiagonal, +/area/shuttle/labor) +"P" = ( +/obj/machinery/button/flasher{ + id = "gulagshuttleflasher"; + name = "Flash Control"; + pixel_x = -3; + pixel_y = -27; + req_access = list("security") + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/comfy/shuttle{ + dir = 1 + }, +/turf/open/floor/iron/smooth, +/area/shuttle/labor) +"Q" = ( +/obj/machinery/computer/security, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/labor) +"T" = ( +/obj/machinery/power/shuttle_engine/propulsion, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/airless, +/area/shuttle/labor) +"U" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/labor) +"V" = ( +/obj/machinery/power/shuttle_engine/propulsion, +/obj/effect/turf_decal/stripes/line, +/obj/structure/fluff/metalpole/end{ + pixel_y = -32 + }, +/turf/open/floor/plating/airless, +/area/shuttle/labor) +"Z" = ( +/obj/item/radio/intercom/directional/west, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/dim/directional/north, +/turf/open/floor/iron/smooth, +/area/shuttle/labor) + +(1,1,1) = {" +d +M +U +U +U +h +C +O +J +"} +(2,1,1) = {" +t +U +Z +I +K +K +B +y +V +"} +(3,1,1) = {" +h +A +P +U +D +K +B +y +T +"} +(4,1,1) = {" +h +Q +k +L +i +f +K +y +V +"} +(5,1,1) = {" +N +U +I +U +U +s +g +O +J +"} diff --git a/_maps/shuttles/nova/mining_common_nova.dmm b/_maps/shuttles/nova/mining_common_nova.dmm new file mode 100644 index 000000000000..092291a664cf --- /dev/null +++ b/_maps/shuttles/nova/mining_common_nova.dmm @@ -0,0 +1,240 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/obj/structure/fluff/metalpole/end{ + dir = 1; + pixel_y = 32 + }, +/obj/structure/marker_beacon/burgundy, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/mining) +"d" = ( +/obj/effect/turf_decal/shuttle/exploration/hazardstripe{ + dir = 4 + }, +/turf/open/floor/iron/smooth, +/area/shuttle/mining) +"h" = ( +/obj/structure/window/reinforced/plasma/spawner/directional/north, +/obj/machinery/power/shuttle_engine/heater, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/shuttle/mining) +"i" = ( +/turf/closed/wall/mineral/titanium/spaceship, +/area/shuttle/mining) +"j" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 1 + }, +/turf/open/floor/iron/smooth, +/area/shuttle/mining) +"l" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 1 + }, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/mining) +"m" = ( +/obj/structure/ore_box, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/mining) +"v" = ( +/turf/open/floor/iron/smooth, +/area/shuttle/mining) +"y" = ( +/obj/structure/fluff/metalpole/end{ + dir = 1; + pixel_y = 32 + }, +/obj/structure/marker_beacon/olive, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/mining) +"B" = ( +/obj/docking_port/mobile{ + dir = 8; + shuttle_id = "mining_common"; + name = "lavaland shuttle"; + port_direction = 4 + }, +/obj/machinery/door/airlock/grunge{ + name = "Public Shuttle Airlock" + }, +/turf/open/floor/iron/shuttle/exploration/textured_flat{ + dir = 4 + }, +/area/shuttle/mining) +"D" = ( +/obj/structure/marker_beacon/olive, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/mining) +"I" = ( +/obj/effect/spawner/structure/window/reinforced/shuttle, +/turf/open/floor/plating, +/area/shuttle/mining) +"J" = ( +/obj/structure/marker_beacon/burgundy, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/mining) +"K" = ( +/turf/template_noop, +/area/template_noop) +"L" = ( +/obj/machinery/power/shuttle_engine/propulsion, +/obj/effect/turf_decal/stripes/line, +/obj/structure/fluff/metalpole/end{ + pixel_y = -32 + }, +/turf/open/floor/plating/airless, +/area/shuttle/mining) +"R" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/shuttle/mining) +"T" = ( +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/clothing/suit/hazardvest{ + desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; + name = "emergency lifejacket" + }, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = 3 + }, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = 3 + }, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = 3 + }, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = 3 + }, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = 3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/clothing/head/utility/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/utility/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/utility/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/utility/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/item/clothing/head/utility/hardhat/orange{ + name = "protective hat"; + pixel_y = 9 + }, +/obj/structure/closet/crate/internals, +/obj/item/pickaxe/emergency, +/obj/item/pickaxe/emergency, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/mining) +"U" = ( +/turf/closed/wall/mineral/titanium/spaceship/nodiagonal, +/area/shuttle/mining) +"X" = ( +/obj/machinery/power/shuttle_engine/propulsion, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/airless, +/area/shuttle/mining) +"Y" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/mining) +"Z" = ( +/obj/machinery/computer/shuttle/mining/common{ + name = "public shuttle console" + }, +/turf/open/floor/iron/dark/textured_large, +/area/shuttle/mining) + +(1,1,1) = {" +a +R +R +I +J +U +i +"} +(2,1,1) = {" +I +Z +j +v +l +h +L +"} +(3,1,1) = {" +Y +R +T +v +l +h +X +"} +(4,1,1) = {" +K +R +m +d +l +h +L +"} +(5,1,1) = {" +K +y +R +B +D +U +i +"} diff --git a/_maps/shuttles/whiteship_pubby.dmm b/_maps/shuttles/whiteship_pubby.dmm index 3b4ba5aee00e..315647f6393f 100644 --- a/_maps/shuttles/whiteship_pubby.dmm +++ b/_maps/shuttles/whiteship_pubby.dmm @@ -523,7 +523,7 @@ /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 9 }, -/obj/item/kirbyplants/dead, +/obj/item/kirbyplants/random/dead, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, /area/shuttle/abandoned) diff --git a/_maps/templates/holodeck_medicalsim.dmm b/_maps/templates/holodeck_medicalsim.dmm index b81ec8393fdf..54dc73dbd7c1 100644 --- a/_maps/templates/holodeck_medicalsim.dmm +++ b/_maps/templates/holodeck_medicalsim.dmm @@ -388,9 +388,9 @@ /obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ dir = 1 }, -/obj/item/reagent_containers/cup/beaker/vial, -/obj/item/reagent_containers/cup/beaker/vial, -/obj/item/reagent_containers/cup/beaker/vial, +/obj/item/reagent_containers/cup/tube, +/obj/item/reagent_containers/cup/tube, +/obj/item/reagent_containers/cup/tube, /turf/open/floor/holofloor{ icon_state = "white" }, diff --git a/_maps/~monkestation/RandomBars/Icebox/BarSM.dmm b/_maps/~monkestation/RandomBars/Icebox/BarSM.dmm index 80118626623b..92de7afff42a 100644 --- a/_maps/~monkestation/RandomBars/Icebox/BarSM.dmm +++ b/_maps/~monkestation/RandomBars/Icebox/BarSM.dmm @@ -849,7 +849,7 @@ /obj/effect/turf_decal/trimline/yellow/warning, /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, /obj/structure/cable, -/obj/structure/sign/delamination_counter/directional/north, +/obj/machinery/incident_display/delam/directional/north, /turf/open/floor/pod/dark, /area/station/commons/lounge) "CA" = ( diff --git a/_maps/~monkestation/RandomBars/Tram/tram_bar_cult.dmm b/_maps/~monkestation/RandomBars/Tram/tram_bar_cult.dmm index 94d74489e55c..253eb1f6538d 100644 --- a/_maps/~monkestation/RandomBars/Tram/tram_bar_cult.dmm +++ b/_maps/~monkestation/RandomBars/Tram/tram_bar_cult.dmm @@ -1080,7 +1080,7 @@ /area/station/commons/lounge) "Ap" = ( /obj/structure/table/wood/fancy/red, -/obj/item/kirbyplants/fullysynthetic{ +/obj/item/kirbyplants/random/fullysynthetic{ pixel_y = 23 }, /turf/open/floor/cult, @@ -2230,7 +2230,7 @@ /area/station/commons/lounge) "ZD" = ( /obj/structure/table/wood/fancy/red, -/obj/item/kirbyplants/fullysynthetic{ +/obj/item/kirbyplants/random/fullysynthetic{ pixel_y = 23 }, /obj/item/storage/fancy/heart_box, diff --git a/_maps/~monkestation/RandomEngines/BoxStation/supermatter.dmm b/_maps/~monkestation/RandomEngines/BoxStation/supermatter.dmm index 40b4603562af..29997ccee5f3 100644 --- a/_maps/~monkestation/RandomEngines/BoxStation/supermatter.dmm +++ b/_maps/~monkestation/RandomEngines/BoxStation/supermatter.dmm @@ -948,7 +948,7 @@ }, /obj/machinery/light/directional/north, /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, -/obj/structure/sign/delamination_counter/directional/north, +/obj/machinery/incident_display/delam/directional/north, /turf/open/floor/engine, /area/station/engineering/supermatter/room) "Gq" = ( diff --git a/_maps/~monkestation/RandomEngines/KiloStation/supermatter.dmm b/_maps/~monkestation/RandomEngines/KiloStation/supermatter.dmm index cc3cc346154a..49b6588f9c72 100644 --- a/_maps/~monkestation/RandomEngines/KiloStation/supermatter.dmm +++ b/_maps/~monkestation/RandomEngines/KiloStation/supermatter.dmm @@ -887,7 +887,7 @@ dir = 1 }, /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, -/obj/structure/sign/delamination_counter/directional/north, +/obj/machinery/incident_display/delam/directional/north, /obj/structure/cable, /turf/open/floor/engine, /area/station/engineering/supermatter/room) diff --git a/_maps/~monkestation/RandomEngines/MetaStation/supermatter.dmm b/_maps/~monkestation/RandomEngines/MetaStation/supermatter.dmm index 52dc9b8b2ca7..235383441e5a 100644 --- a/_maps/~monkestation/RandomEngines/MetaStation/supermatter.dmm +++ b/_maps/~monkestation/RandomEngines/MetaStation/supermatter.dmm @@ -428,7 +428,7 @@ dir = 4; name = "Gas to Chamber" }, -/obj/structure/sign/delamination_counter/directional/north, +/obj/machinery/incident_display/delam/directional/north, /turf/open/floor/engine, /area/station/engineering/supermatter) "xe" = ( diff --git a/_maps/~monkestation/RandomEngines/TramStation/supermatter.dmm b/_maps/~monkestation/RandomEngines/TramStation/supermatter.dmm index 92f5662a5421..948c8d7a44bd 100644 --- a/_maps/~monkestation/RandomEngines/TramStation/supermatter.dmm +++ b/_maps/~monkestation/RandomEngines/TramStation/supermatter.dmm @@ -93,7 +93,7 @@ dir = 10; network = list("ss13","engine","engineering") }, -/obj/structure/sign/delamination_counter/directional/south, +/obj/machinery/incident_display/delam/directional/south, /turf/open/floor/engine, /area/station/engineering/supermatter) "fo" = ( diff --git a/code/__DEFINES/DNA.dm b/code/__DEFINES/DNA.dm index a0b42df31690..7ce5594516ee 100644 --- a/code/__DEFINES/DNA.dm +++ b/code/__DEFINES/DNA.dm @@ -130,6 +130,7 @@ #define ORGAN_SLOT_RIGHT_LEG_AUG "r_leg_device" #define ORGAN_SLOT_LEFT_LEG_AUG "l_leg_device" #define ORGAN_SLOT_SPINAL "spinal_implant" +#define ORGAN_SLOT_BRAIN_NIF "nif" /// Organ slot external #define ORGAN_SLOT_EXTERNAL_TAIL "tail" diff --git a/code/__DEFINES/dcs/signals/signals_object.dm b/code/__DEFINES/dcs/signals/signals_object.dm index eabb62c9b1c4..a9940b04dab3 100644 --- a/code/__DEFINES/dcs/signals/signals_object.dm +++ b/code/__DEFINES/dcs/signals/signals_object.dm @@ -32,6 +32,8 @@ #define COMSIG_MACHINERY_STOP_PROCESSING_AIR "stop_processing_air" ///from /obj/machinery/RefreshParts: () #define COMSIG_MACHINERY_REFRESH_PARTS "machine_refresh_parts" +///from /obj/machinery/default_change_direction_wrench: (mob/user, obj/item/wrench) +#define COMSIG_MACHINERY_DEFAULT_ROTATE_WRENCH "machinery_default_rotate_wrench" ///from /obj/machinery/can_interact(mob/user): Called on user when attempting to interact with a machine (obj/machinery/machine) #define COMSIG_TRY_USE_MACHINE "try_use_machine" @@ -311,6 +313,12 @@ #define COMSIG_GUN_CHAMBER_PROCESSED "gun_chamber_processed" ///called in /obj/item/gun/ballistic/process_chamber (casing) #define COMSIG_CASING_EJECTED "casing_ejected" +///sent to targets during the process_hit proc of projectiles +#define COMSIG_FIRE_CASING "fire_casing" +///from the base of /obj/item/ammo_casing/ready_proj() : (atom/target, mob/living/user, quiet, zone_override, atom/fired_from) +#define COMSIG_CASING_READY_PROJECTILE "casing_ready_projectile" +///sent to the projectile after an item is spawned by the projectile_drop element: (new_item) +#define COMSIG_PROJECTILE_ON_SPAWN_DROP "projectile_on_spawn_drop" // Jetpack things // Please kill me @@ -446,3 +454,16 @@ #define COMSIG_ORM_COLLECTED_ORE "orm_collected_ore" #define COMSIG_RADIATION_RECIEVED "radiation_recieved" +/// from /obj/plunger_act when an object is being plungered +#define COMSIG_PLUNGER_ACT "plunger_act" + +/// from /obj/structure/cursed_slot_machine/handle_status_effect() when someone pulls the handle on the slot machine +#define COMSIG_CURSED_SLOT_MACHINE_USE "cursed_slot_machine_use" + #define SLOT_MACHINE_USE_CANCEL (1<<0) //! we've used up the number of times we may use this slot machine. womp womp. + #define SLOT_MACHINE_USE_POSTPONE (1<<1) //! we haven't used up all our attempts to gamble away our life but we should chill for a few seconds + +/// from /obj/structure/cursed_slot_machine/determine_victor() when someone loses. +#define COMSIG_CURSED_SLOT_MACHINE_LOST "cursed_slot_machine_lost" + +/// from /obj/structure/cursed_slot_machine/determine_victor() when someone finally wins. +#define COMSIG_GLOB_CURSED_SLOT_MACHINE_WON "cursed_slot_machine_won" diff --git a/code/__DEFINES/icon_smoothing.dm b/code/__DEFINES/icon_smoothing.dm index 97a5c1188f03..c96f2b1ac4f6 100644 --- a/code/__DEFINES/icon_smoothing.dm +++ b/code/__DEFINES/icon_smoothing.dm @@ -137,6 +137,9 @@ DEFINE_BITFIELD(smoothing_flags, list( #define SMOOTH_GROUP_BAMBOO_WALLS S_TURF(17) //![/turf/closed/wall/mineral/bamboo, /obj/structure/falsewall/bamboo] #define SMOOTH_GROUP_PLASTINUM_WALLS S_TURF(18) //![turf/closed/indestructible/riveted/plastinum] +#define SMOOTH_GROUP_SHIPWALLS S_OBJ(19) ///turf/closed/wall/mineral/titanium/spaceship +#define SMOOTH_GROUP_STONE_WALLS S_OBJ(20) ///turf/closed/wall/mineral/stone, /obj/structure/falsewall/stone + #define SMOOTH_GROUP_PAPERFRAME S_OBJ(21) ///obj/structure/window/paperframe, /obj/structure/mineral_door/paperframe #define SMOOTH_GROUP_WINDOW_FULLTILE S_OBJ(22) ///turf/closed/indestructible/fakeglass, /obj/structure/window/fulltile, /obj/structure/window/reinforced/fulltile, /obj/structure/window/reinforced/tinted/fulltile, /obj/structure/window/plasma/fulltile, /obj/structure/window/reinforced/plasma/fulltile diff --git a/code/__DEFINES/machines.dm b/code/__DEFINES/machines.dm index b489c87a51d8..f8000f962b53 100644 --- a/code/__DEFINES/machines.dm +++ b/code/__DEFINES/machines.dm @@ -67,6 +67,8 @@ /// For wiremod/integrated circuits. Uses various minerals. #define COMPONENT_PRINTER (1<<10) //Note: More than one of these can be added to a design but imprinter and lathe designs are incompatable. +/// Can be made by the orderable colony fabricator +#define COLONY_FABRICATOR (1<<11) #define FIREDOOR_OPEN 1 #define FIREDOOR_CLOSED 2 diff --git a/code/__DEFINES/modular_computer.dm b/code/__DEFINES/modular_computer.dm index 001722eb2ddf..3e824a51389e 100644 --- a/code/__DEFINES/modular_computer.dm +++ b/code/__DEFINES/modular_computer.dm @@ -15,6 +15,7 @@ #define PROGRAM_CATEGORY_SUPL "Supply" #define PROGRAM_CATEGORY_SCI "Science" #define PROGRAM_CATEGORY_MISC "Other" +#define PROGRAM_CATEGORY_DEVICE "Device Tools" #define DETOMATIX_RESIST_MINOR 1 #define DETOMATIX_RESIST_MAJOR 2 diff --git a/code/__DEFINES/power.dm b/code/__DEFINES/power.dm index b07ba5e9b582..504b7c20a5f7 100644 --- a/code/__DEFINES/power.dm +++ b/code/__DEFINES/power.dm @@ -1,6 +1,10 @@ +#define CABLE_LAYER_ALL ALL #define CABLE_LAYER_1 (1<<0) + #define CABLE_LAYER_1_NAME "Red Power Line" #define CABLE_LAYER_2 (1<<1) + #define CABLE_LAYER_2_NAME "Yellow Power Line" #define CABLE_LAYER_3 (1<<2) + #define CABLE_LAYER_3_NAME "Blue Power Line" #define MACHINERY_LAYER_1 1 diff --git a/code/__DEFINES/projectiles.dm b/code/__DEFINES/projectiles.dm index 712b1503aa17..9b6e16f847b0 100644 --- a/code/__DEFINES/projectiles.dm +++ b/code/__DEFINES/projectiles.dm @@ -57,6 +57,8 @@ /// The caliber used by the changeling tentacle mutation. #define CALIBER_TENTACLE "tentacle" #define CALIBER_A223 "a223" +/// The caliber used by bolt action rifles. +#define CALIBER_STRILKA310 ".310_strilka" /// For gunpoints, how many tiles around the target the shooter can roam without losing their shot #define GUNPOINT_SHOOTER_STRAY_RANGE 2 diff --git a/code/__DEFINES/reagents.dm b/code/__DEFINES/reagents.dm index f762929ba54b..724a8bee05ba 100644 --- a/code/__DEFINES/reagents.dm +++ b/code/__DEFINES/reagents.dm @@ -42,23 +42,18 @@ #define SYNTHFLESH_UNHUSK_AMOUNT 100 //used by chem masters and pill presses -#define PILL_STYLE_COUNT 22 //Update this if you add more pill icons or you die -#define RANDOM_PILL_STYLE 22 //Dont change this one though - -//used by chem masters and pill presses -//update this if you add more patch icons -#define PATCH_STYLE_LIST list("bandaid", "bandaid_brute", "bandaid_burn", "bandaid_both") //icon_state list -#define DEFAULT_PATCH_STYLE "bandaid" - +// The categories of reagent packaging +#define CAT_CONDIMENTS "condiments" +#define CAT_TUBES "tubes" +#define CAT_PILLS "pills" +#define CAT_PATCHES "patches" +#define DEFAULT_PATCH_STYLE "bandaid_blank" //used by chem master #define CONDIMASTER_STYLE_AUTO "auto" #define CONDIMASTER_STYLE_FALLBACK "_" #define ALLERGIC_REMOVAL_SKIP "Allergy" -/// the default temperature at which chemicals are added to reagent holders at -#define DEFAULT_REAGENT_TEMPERATURE 300 - //Used in holder.dm/equlibrium.dm to set values and volume limits ///stops floating point errors causing issues with checking reagent amounts #define CHEMICAL_QUANTISATION_LEVEL 0.0001 @@ -70,9 +65,10 @@ #define CHEMICAL_NORMAL_PH 7.000 ///The maximum temperature a reagent holder can attain #define CHEMICAL_MAXIMUM_TEMPERATURE 99999 - ///The default purity of all non reacted reagents #define REAGENT_STANDARD_PURITY 0.75 +/// the default temperature at which chemicals are added to reagent holders at +#define DEFAULT_REAGENT_TEMPERATURE 300 //reagent bitflags, used for altering how they works ///allows on_mob_dead() if present in a dead body diff --git a/code/__DEFINES/role_preferences.dm b/code/__DEFINES/role_preferences.dm index d84038f139f3..0ca4fe400b97 100644 --- a/code/__DEFINES/role_preferences.dm +++ b/code/__DEFINES/role_preferences.dm @@ -159,6 +159,7 @@ GLOBAL_LIST_INIT(special_roles, list( ROLE_MONSTERHUNTER = 0, ROLE_SLASHER = 0, ROLE_FLORIDA_MAN = 0, + ROLE_OPFOR_CANDIDATE = 0, //monkestation edit end // Latejoin diff --git a/code/__DEFINES/status_effects.dm b/code/__DEFINES/status_effects.dm index c8a85a39975f..63018be8b0ba 100644 --- a/code/__DEFINES/status_effects.dm +++ b/code/__DEFINES/status_effects.dm @@ -113,10 +113,10 @@ #define set_derpspeech(duration) set_timed_status_effect(duration, /datum/status_effect/speech/stutter/derpspeech) #define set_derpspeech_if_lower(duration) set_timed_status_effect(duration, /datum/status_effect/speech/stutter/derpspeech, TRUE) -#define adjust_slurring(duration) adjust_timed_status_effect(duration, /datum/status_effect/speech/slurring/drunk) -#define adjust_slurring_up_to(duration, up_to) adjust_timed_status_effect(duration, /datum/status_effect/speech/slurring/drunk, up_to) -#define set_slurring(duration) set_timed_status_effect(duration, /datum/status_effect/speech/slurring/drunk) -#define set_slurring_if_lower(duration) set_timed_status_effect(duration, /datum/status_effect/speech/slurring/drunk, TRUE) +#define adjust_slurring(duration) adjust_timed_status_effect(duration, /datum/status_effect/speech/slurring/generic) +#define adjust_slurring_up_to(duration, up_to) adjust_timed_status_effect(duration, /datum/status_effect/speech/slurring/generic, up_to) +#define set_slurring(duration) set_timed_status_effect(duration, /datum/status_effect/speech/slurring/generic) +#define set_slurring_if_lower(duration) set_timed_status_effect(duration, /datum/status_effect/speech/slurring/generic, TRUE) #define adjust_dizzy(duration) adjust_timed_status_effect(duration, /datum/status_effect/dizziness) #define adjust_dizzy_up_to(duration, up_to) adjust_timed_status_effect(duration, /datum/status_effect/dizziness, up_to) diff --git a/code/__DEFINES/storage.dm b/code/__DEFINES/storage.dm index 6d0860668bb9..a266c86198f6 100644 --- a/code/__DEFINES/storage.dm +++ b/code/__DEFINES/storage.dm @@ -15,3 +15,10 @@ #define FANCY_CONTAINER_CLOSED 0 #define FANCY_CONTAINER_OPEN 1 #define FANCY_CONTAINER_ALWAYS_OPEN 2 + +// Defines for levels of storage locking +// Also used fort the force param of can_insert +// Higher values are "more" locked then lower ones +#define STORAGE_NOT_LOCKED 0 +#define STORAGE_SOFT_LOCKED 1 +#define STORAGE_FULLY_LOCKED 2 diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm index 65b3b3d30afb..28f0026da57d 100644 --- a/code/__DEFINES/subsystems.dm +++ b/code/__DEFINES/subsystems.dm @@ -164,6 +164,7 @@ #define INIT_ORDER_RESTAURANT 34 #define INIT_ORDER_POLLUTION 32 #define INIT_ORDER_ATOMS 30 +#define INIT_ORDER_ARMAMENTS 27 #define INIT_ORDER_LANGUAGE 25 #define INIT_ORDER_MACHINES 20 #define INIT_ORDER_SKILLS 15 diff --git a/code/__DEFINES/~monkestation/blueshift.dm b/code/__DEFINES/~monkestation/blueshift.dm new file mode 100644 index 000000000000..ac51f27ea7b6 --- /dev/null +++ b/code/__DEFINES/~monkestation/blueshift.dm @@ -0,0 +1,335 @@ +#define RESKIN_ICON "reskin_icon" +#define RESKIN_ICON_STATE "reskin_icon_state" +#define RESKIN_WORN_ICON "reskin_worn_icon" +#define RESKIN_WORN_ICON_STATE "reskin_worn_icon_state" +#define RESKIN_SUPPORTS_VARIATIONS_FLAGS "reskin_supports_variations_flags" +#define RESKIN_INHAND_L "reskin_inhand_l" +#define RESKIN_INHAND_R "reskin_inhand_r" +#define RESKIN_INHAND_STATE "reskin_inhand_state" + +/// Traits granted by glassblowing +#define TRAIT_GLASSBLOWING "glassblowing" + +/// Trait that is applied whenever someone or something is glassblowing +#define TRAIT_CURRENTLY_GLASSBLOWING "currently_glassblowing" + +#define TOOL_BILLOW "billow" +#define TOOL_TONG "tong" +#define TOOL_HAMMER "hammer" +#define TOOL_BLOWROD "blowrod" + +// Prefix values. +#define QUECTO * 1e-30 +#define RONTO * 1e-27 +#define YOCTO * 1e-24 +#define ZEPTO * 1e-21 +#define ATTO * 1e-18 +#define FEMPTO * 1e-15 +#define PICO * 1e-12 +#define NANO * 1e-9 +#define MICRO * 1e-6 +#define MILLI * 1e-3 +#define KILO * 1e3 +#define MEGA * 1e6 +#define GIGA * 1e9 +#define TERA * 1e12 +#define PETA * 1e15 +#define EXA * 1e18 +#define ZETTA * 1e21 +#define YOTTA * 1e24 +#define RONNA * 1e27 +#define QUETTA * 1e30 + +/// Category for clothing in the organics printer +#define RND_CATEGORY_AKHTER_CLOTHING "Clothing" +/// Category for equipment like belts and bags in the organics printer +#define RND_CATEGORY_AKHTER_EQUIPMENT "Equipment" +/// Category for resources made by the organics printer +#define RND_CATEGORY_AKHTER_RESOURCES "Resources" + +/// Category for ingredients in the ration printer +#define RND_CATEGORY_AKHTER_FOODRICATOR_INGREDIENTS "Ingredients" +/// Category for bags and containers of reagents in the ration printer +#define RND_CATEGORY_AKHTER_FOODRICATOR_BAGS "Containers" +/// Category for snacks in the ration printer +#define RND_CATEGORY_AKHTER_FOODRICATOR_SNACKS "Luxuries" +/// Category for utensils and whatnot in the ration printer +#define RND_CATEGORY_AKHTER_FOODRICATOR_UTENSILS "Utensils" +/// Category for the seeds the organics printer can make +#define RND_CATEGORY_AKHTER_SEEDS "Synthesized Seeds" + +/// Medical items in the deforest medstation +#define RND_CATEGORY_DEFOREST_MEDICAL "Emergency Medical" +/// Blood and blood bags +#define RND_CATEGORY_DEFOREST_BLOOD "Synthesized Blood" + + +/// The items the frontier clothing can hold +GLOBAL_LIST_INIT(colonist_suit_allowed, list( + /obj/item/ammo_box, + /obj/item/ammo_casing, + /obj/item/flashlight, + /obj/item/gun, + /obj/item/melee, + /obj/item/tank/internals, + /obj/item/storage/belt/holster, + /obj/item/construction, + /obj/item/fireaxe, + /obj/item/pipe_dispenser, + /obj/item/storage/bag, + /obj/item/pickaxe, + /obj/item/resonator, + /obj/item/t_scanner, + /obj/item/analyzer, +)) + +/// Trait given to objects with the wallmounted component +#define TRAIT_WALLMOUNTED "wallmounted" + +/// BYOND's string procs don't support being used on datum references (as in it doesn't look for a name for stringification) +/// We just use this macro to ensure that we will only pass strings to this BYOND-level function without developers needing to really worry about it. +#define LOWER_TEXT(thing) lowertext(UNLINT("[thing]")) + +// Converts cable layer to its human readable name +GLOBAL_LIST_INIT(cable_layer_to_name, list( + "[CABLE_LAYER_1]" = CABLE_LAYER_1_NAME, + "[CABLE_LAYER_2]" = CABLE_LAYER_2_NAME, + "[CABLE_LAYER_3]" = CABLE_LAYER_3_NAME +)) + +// Converts cable color name to its layer +GLOBAL_LIST_INIT(cable_name_to_layer, list( + CABLE_LAYER_1_NAME = CABLE_LAYER_1, + CABLE_LAYER_2_NAME = CABLE_LAYER_2, + CABLE_LAYER_3_NAME = CABLE_LAYER_3 +)) + + +// Zipties, cable cuffs, etc. Can be cut with wirecutters instantly. +#define HANDCUFFS_TYPE_WEAK 0 +// Handcuffs... alien handcuffs. Can be cut through only by jaws of life. +#define HANDCUFFS_TYPE_STRONG 1 + +#define DIVINE_INTERVENTION 3 +/// Sent when supermatter begins its delam countdown/when the suppression system is triggered: (var/trigger_reason) +#define COMSIG_MAIN_SM_DELAMINATING "delam_time" + +#define ACCOUNT_CMD "CMD" +#define ACCOUNT_CMD_NAME "Command Budget" + +#define PLAYTIME_GREEN 6000 // 100 hours + +/// Macro to turn a number of laser shots into an energy cost, based on the above define +/// e.g. LASER_SHOTS(12, STANDARD_CELL_CHARGE) means 12 shots +#define LASER_SHOTS(X, MAX_CHARGE) (((100 * MAX_CHARGE) - ((100 * MAX_CHARGE) % X)) / (100 * X)) // I wish I could just use round, but it can't be used in datum members + +/// Trait source for xeno innate abilities +#define TRAIT_XENO_INNATE "xeno_innate" +/// Trait source for something added BY a xeno ability +#define TRAIT_XENO_ABILITY_GIVEN "xeno_ability_given" +/// Determines if something can receive healing from a xeno +#define TRAIT_XENO_HEAL_AURA "trait_xeno_heal_aura" + +/// Takes in a typepath of a `/datum/action` and adds it to `src`. +/// Only useful if you want to add the action and never desire to reference it again ever. +#define GRANT_ACTION(typepath) do {\ + var/datum/action/_ability = new typepath(src);\ + _ability.Grant(src);\ +} while (FALSE) + + +/// Whenever we need to check if a mob is currently inside of soulcatcher. +#define COMSIG_SOULCATCHER_CHECK_SOUL "soulcatcher_check_soul" + +/// Whenever we need to get the soul of the mob inside of the soulcatcher. +#define COMSIG_SOULCATCHER_SCAN_BODY "soulcatcher_scan_body" + +#define EXAMINE_SECTION_BREAK "
" + + +/// Trait that was granted by a NIFSoft +#define TRAIT_NIFSOFT "nifsoft" + +/// Trait given to a piece of eyewear that allows the user to use NIFSoft HUDs +#define TRAIT_NIFSOFT_HUD_GRANTER "nifsoft_hud_granter" + +//Bitflags for what kind product category a NIFSoft goes under + +#define NIFSOFT_CATEGORY_GENERAL "General" +#define NIFSOFT_CATEGORY_COSMETIC "Cosmetic" +#define NIFSOFT_CATEGORY_UTILITY "Utility" +#define NIFSOFT_CATEGORY_FUN "Fun" +#define NIFSOFT_CATEGORY_INFORMATION "Information" +// Trait sources +#define TRAIT_GHOSTROLE "ghostrole" + +/* +These are the defines for controlling what conditions are required to display +an items special description. + +See the examinemore module for information. +*/ + +#define EXAMINE_CHECK_NONE "none" //Displays the special_desc regardless if it's set. +#define EXAMINE_CHECK_SYNDICATE "syndicate" //For displaying descriptors for those with the SYNDICATE faction assigned. +#define EXAMINE_CHECK_SYNDICATE_TOY "syndicate_toy" //Ditto, only instead of displaying nothing for heathens, it shows "The src looks like a toy, not the real thing." +#define EXAMINE_CHECK_MINDSHIELD "mindshield" //For displaying descriptors for those with a mindshield implant. +#define EXAMINE_CHECK_ROLE "role" //For displaying description information based on a specific ROLE, e.g. traitor. Remember to set the special_desc_role var on the item. +#define EXAMINE_CHECK_JOB "job" //For displaying descriptors for specific jobs, e.g scientist. Remember to set the special_desc_job var on the item. +#define EXAMINE_CHECK_FACTION "faction" //For displaying descriptors for mob factions, e.g. a zombie, or... turrets. Or syndicate. Remember to set special_desc_factions. +#define EXAMINE_CHECK_CONTRACTOR "contractor" // For contractors and syndicate agents. +#define TRAIT_DETECTIVE "detective_ability" //Given to the detective, if they have this, they can see syndicate special descriptions. + +// Armament categories +#define ARMAMENT_CATEGORY_STANDARD "Standard Equipment" +#define ARMAMENT_CATEGORY_STANDARD_LIMIT 1 + +// Armament subcategories +#define ARMAMENT_SUBCATEGORY_NONE "Uncategorised" + +/// To identify the limit of the category type in the associative list. Techical stuff. +#define CATEGORY_LIMIT "Category Limit" +#define CATEGORY_ENTRY "Category Entry" + +// All the categories +#define ARMAMENT_CATEGORY_MELEE "Melee Weapons" +#define ARMAMENT_CATEGORY_MELEE_LIMIT 1 +#define ARMAMENT_CATEGORY_PRIMARY "Primary Weapons" +#define ARMAMENT_CATEGORY_PRIMARY_LIMIT 1 +#define ARMAMENT_CATEGORY_SECONDARY "Secondary Weapons" +#define ARMAMENT_CATEGORY_SECONDARY_LIMIT 1 +#define ARMAMENT_CATEGORY_ARMOR_HEAD "Headgear" +#define ARMAMENT_CATEGORY_ARMOR_HEAD_LIMIT 1 +#define ARMAMENT_CATEGORY_MEDICAL "Medical Supplies" +#define ARMAMENT_CATEGORY_MEDICAL_LIMIT 5 + + +// All the subcategories +#define ARMAMENT_SUBCATEGORY_AMMO "Ammunition" +#define ARMAMENT_SUBCATEGORY_MELEE_LETHAL "Lethal Weaponry" +#define ARMAMENT_SUBCATEGORY_MELEE_NONLETHAL "Non-Lethal Weaponry" +#define ARMAMENT_SUBCATEGORY_SUBMACHINEGUN "Submachine Guns" +#define ARMAMENT_SUBCATEGORY_ASSAULTRIFLE "Assault Rifles" +#define ARMAMENT_SUBCATEGORY_SPECIAL "Special Weapons" +#define ARMAMENT_SUBCATEGORY_PISTOL "Pistols" +#define ARMAMENT_SUBCATEGORY_HELMET "Helmets" +#define ARMAMENT_SUBCATEGORY_BERETS "Berets" +#define ARMAMENT_SUBCATEGORY_MEDKIT "Medkits" +#define ARMAMENT_SUBCATEGORY_INJECTOR "Injectors" +#define ARMAMENT_SUBCATEGORY_SHOTGUN "Shotguns" +#define ARMAMENT_SUBCATEGORY_LASER "Laser Weaponry" +#define ARMAMENT_SUBCATEGORY_ARMOR "Armor" +#define ARMAMENT_SUBCATEGORY_GUNPART "Gun Parts" +#define ARMAMENT_SUBCATEGORY_EMITTER "Phase Emitter" +#define ARMAMENT_SUBCATEGORY_CELL_UPGRADE "Cell Upgrade" +#define ARMAMENT_SUBCATEGORY_CHEMICAL "Chemicals" +#define ARMAMENT_SUBCATEGORY_CQC "Close Quarters" + +// Bitflags for what company a cargo order datum should belong to +#define CARGO_COMPANY_NAKAMURA_MODSUITS (1<<0) +#define CARGO_COMPANY_BLACKSTEEL (1<<1) +#define CARGO_COMPANY_NRI_SURPLUS (1<<2) +#define CARGO_COMPANY_DEFOREST (1<<3) +#define CARGO_COMPANY_DONK (1<<4) +#define CARGO_COMPANY_KAHRAMAN (1<<5) +#define CARGO_COMPANY_FRONTIER_EQUIPMENT (1<<6) +#define CARGO_COMPANY_SOL_DEFENSE (1<<7) +#define CARGO_COMPANY_MICROSTAR (1<<8) +#define CARGO_COMPANY_VITEZSTVI_AMMO (1<<9) + +// Company names, because the armament category and company name need to be the exact same, so use defines like this +#define NAKAMURA_ENGINEERING_MODSUITS_NAME "Nakamura Engineering MOD Divison" +#define BLACKSTEEL_FOUNDATION_NAME "Jarnsmiour Blacksteel Foundation" +#define NRI_SURPLUS_COMPANY_NAME "Izlishek Company Military Supplier" +#define DEFOREST_MEDICAL_NAME "DeForest Medical Corporation" +#define DONK_CO_NAME "Donk Corporation" +#define KAHRAMAN_INDUSTRIES_NAME "Kahraman Heavy Industries" +#define FRONTIER_EQUIPMENT_NAME "Akhter Company Frontier Equipment" +#define SOL_DEFENSE_DEFENSE_NAME "Sol Defense Imports" +#define MICROSTAR_ENERGY_NAME "MicroStar Energy Weapon Coalition" +#define VITEZSTVI_AMMO_NAME "Vitezstvi Ammo & Weapon Accessories" + +#define COMPANY_INTEREST_GAIN_BIG 10 +#define COMPANY_INTEREST_GAIN_AVERAGE 5 +#define COMPANY_INTEREST_GAIN_LOW 3 +#define COMPANY_INTEREST_GAIN_PITIFUL 1 + +#define ARMOR_LEVEL_TINY 10 +#define ARMOR_LEVEL_WEAK 30 +#define ARMOR_LEVEL_MID 50 +#define ARMOR_LEVEL_INSANE 90 + +#define WOUND_ARMOR_WEAK 10 +#define WOUND_ARMOR_STANDARD 20 +#define WOUND_ARMOR_HIGH 30 + +//Default text for different messages for the user. +#define HELMET_UNSEAL_MESSAGE "hisses open" +#define HELMET_SEAL_MESSAGE "hisses closed" +#define CHESTPLATE_UNSEAL_MESSAGE "releases your chest" +#define CHESTPLATE_SEAL_MESSAGE "cinches tightly around your chest" +#define GAUNTLET_UNSEAL_MESSAGE "become loose around your fingers" +#define GAUNTLET_SEAL_MESSAGE "tighten around your fingers and wrists" +#define BOOT_UNSEAL_MESSAGE "relax their grip on your legs" +#define BOOT_SEAL_MESSAGE "seal around your feet" + +/// Colors for pride week +#define COLOR_PRIDE_RED "#FF6666" +#define COLOR_PRIDE_ORANGE "#FC9F3C" +#define COLOR_PRIDE_YELLOW "#EAFF51" +#define COLOR_PRIDE_GREEN "#41FC66" +#define COLOR_PRIDE_BLUE "#42FFF2" +#define COLOR_PRIDE_PURPLE "#5D5DFC" + +/// Trait that changes the ending effects of twitch leaving your system +#define TRAIT_TWITCH_ADAPTED "twitch_adapted" + +// Have to put it here so I can use it in the global list of wound series +/// See muscle.dm and robotic_blunt.dm +#define WOUND_SERIES_MUSCLE_DAMAGE "nova_wound_series_muscle_damage" + +//defines for antag opt in objective checking +//objectives check for all players with a value equal or greater than the 'threat' level of an objective then pick from that list +//command + sec roles are always opted in regardless of opt in status + +/// For temporary or otherwise 'inconvenient' objectives like kidnapping or theft +#define OPT_IN_YES_TEMP 1 +/// Cool with being killed or otherwise occupied but not removed from the round +#define OPT_IN_YES_KILL 2 +/// Fine with being round removed. +#define OPT_IN_YES_ROUND_REMOVE 3 + +#define OPT_IN_YES_TEMP_STRING "Yes - Temporary/Inconvenience" +#define OPT_IN_YES_KILL_STRING "Yes - Kill" +#define OPT_IN_YES_ROUND_REMOVE_STRING "Yes - Round Remove" +#define OPT_IN_NOT_TARGET_STRING "No" + +/// Assoc list of stringified opt_in_## define to the front-end string to show users as a representation of the setting. +GLOBAL_LIST_INIT(antag_opt_in_strings, list( + "0" = OPT_IN_NOT_TARGET_STRING, + "1" = OPT_IN_YES_TEMP_STRING, + "2" = OPT_IN_YES_KILL_STRING, + "3" = OPT_IN_YES_ROUND_REMOVE_STRING, +)) + +/// Assoc list of stringified opt_in_## define to the color associated with it. +GLOBAL_LIST_INIT(antag_opt_in_colors, list( + OPT_IN_NOT_TARGET_STRING = COLOR_GRAY, + OPT_IN_YES_TEMP_STRING = COLOR_EMERALD, + OPT_IN_YES_KILL_STRING = COLOR_ORANGE, + OPT_IN_YES_ROUND_REMOVE_STRING = COLOR_RED +)) + +/// Prefers not to be a target. Will still be a potential target if playing sec or command. +#define OPT_IN_NOT_TARGET 0 + +/// The minimum opt-in level for people playing sec. +#define SECURITY_OPT_IN_LEVEL OPT_IN_YES_ROUND_REMOVE +/// The minimum opt-in level for people playing command. +#define COMMAND_OPT_IN_LEVEL OPT_IN_YES_ROUND_REMOVE + +/// The default opt in level for preferences and mindless mobs. +#define OPT_IN_DEFAULT_LEVEL OPT_IN_YES_KILL + +/// If the player has any non-ghost role antags enabled, they are forced to use a minimum of this. +#define OPT_IN_ANTAG_ENABLED_LEVEL OPT_IN_YES_TEMP diff --git a/code/__DEFINES/~monkestation/company.dm b/code/__DEFINES/~monkestation/company.dm new file mode 100644 index 000000000000..bc7bf4e7329f --- /dev/null +++ b/code/__DEFINES/~monkestation/company.dm @@ -0,0 +1,54 @@ +// Text for what examine blurb will come up when used with /datum/element/manufacturer_examine +// Very loosely grouped based on what company makes what mainly for your viewing pleasure + +#define COMPANY_DONK "It has a [span_green("Donk Corporation")] label visible on it." +#define COMPANY_BOLT "It has [span_yellow("Bolt Fabrications")] stamped onto it." +#define COMPANY_NANOTRASEN "It has [span_blue("Nanotrasen Armories")] etched into it." + +#define COMPANY_CARWO "It has a small [span_cyan("four pointed star")] alongside [span_cyan("Carwo Defense Systems")] etched into it." +#define COMPANY_TRAPPISTE "It has a small [span_red("pattern of five squares")] alongside [span_red("Trappiste Fabriek")] etched into it." + +#define COMPANY_CYBERSUN "It has a [span_red("red circle")] broken by a hexagonal flower alongside [span_red("Cybersun Industries")] in Konjin etched into it." +#define COMPANY_SCARBOROUGH "It has [span_orange("Scarborough Arms")] stamped onto it." +#define COMPANY_INTERDYNE "It has [span_cyan("Interdyne Pharmaceuticals")] stamped onto it." + +#define COMPANY_ALLSTAR "It has [span_red("Allstar Lasers Inc.")] stamped onto it." +#define COMPANY_MICRON "It has [span_cyan("Micron Control Sys.")] cut into it." + +#define COMPANY_NAKAMURA "It has [span_orange("Nakamura Engineering")] embossed onto it." +#define COMPANY_BLACKSTEEL "It bears the [span_grey("crossed sword and hammer")] crafter's mark of the [span_grey("Jarnsmiour Blacksteel Foundation")] upon its fore." + +#define COMPANY_SZOT "It has a small [span_engradio("three point crown")] alongside [span_engradio("Szot Dynamica")] cut into it." +#define COMPANY_SAKHNO "It has [span_green("Sakhno Concern")] stamped onto it." +#define COMPANY_XHIHAO "It has [span_purple("Xhihao Light Arms")] etched into it." + +#define COMPANY_ABDUCTOR "It has [span_abductor("✌︎︎♌︎︎♎︎︎◆︎︎♍︎︎⧫︎︎❄︎♏︎♍︎♒︎")] engraved into it." + +#define COMPANY_FRONTIER "It has a small label with [span_engradio("Akhter Company Frontier Equipment")] printed on it, alongside various xerxian proof-marks." +#define COMPANY_KAHRAMAN "It has a [span_red("red label")] with [span_red("K - A - S")] printed on it, alongside various xerxian proof-marks." + +#define COMPANY_REMOVED "It has had [span_grey("all identifying marks scrubbed off")]." + + +#define span_emote(str) ("" + str + "") +#define span_maptext(str) ("" + str + "") +#define span_mentor(str) ("" + str + "") +#define span_mentornotice(str) ("" + str + "") +#define span_oocplain(str) ("" + str + "") +#define span_pink(str) ("" + str + "") +#define span_rlooc(str) ("" + str + "") +#define span_smalldanger(str) ("" + str + "") +#define span_userlove(str) ("" + str + "") +#define span_warningplain(str) ("" + str + "") +#define span_crossooc(str) ("" + str + "") +#define span_crossasay(str) ("" + str + "") +#define span_brown(str) ("" + str + "") +#define span_cyan(str) ("" + str + "") +#define span_orange(str) ("" + str + "") +#define span_yellow(str) ("" + str + "") +#define span_gangradio(str) ("" + str + "") +#define span_brass(str) ("" + str + "") +#define span_bigbrass(str) ("" + str + "") +#define span_clockyellow(str) ("" + str + "") +#define span_clockgray(str) ("" + str + "") +#define span_clockred(str) ("" + str + "") diff --git a/code/__DEFINES/~monkestation/dcs/signals/signals_blueshift.dm b/code/__DEFINES/~monkestation/dcs/signals/signals_blueshift.dm new file mode 100644 index 000000000000..f6e30cffe82c --- /dev/null +++ b/code/__DEFINES/~monkestation/dcs/signals/signals_blueshift.dm @@ -0,0 +1,10 @@ +// Power signals +/// Sent when an obj/item calls item_use_power: (use_amount, user, check_only) +#define COMSIG_ITEM_POWER_USE "item_use_power" + #define NO_COMPONENT NONE + #define COMPONENT_POWER_SUCCESS (1<<0) + #define COMPONENT_NO_CELL (1<<1) + #define COMPONENT_NO_CHARGE (1<<2) + +/// when someone attempts to evolve through the rune +#define COMSIG_RUNE_EVOLUTION "rune_evolution" diff --git a/code/__DEFINES/~monkestation/holomaps.dm b/code/__DEFINES/~monkestation/holomaps.dm index a03999cea984..34d40f6a7aed 100644 --- a/code/__DEFINES/~monkestation/holomaps.dm +++ b/code/__DEFINES/~monkestation/holomaps.dm @@ -17,6 +17,9 @@ #define HOLOMAP_ROCK "#66666644" // Color of mineral walls #define HOLOMAP_HOLOFIER "#0096bb" // Whole map is multiplied by this to give it a green holoish look +#define HOLOMAP_AREACOLOR_SHIELD_1 rgb(0, 119, 255, 64) +#define HOLOMAP_AREACOLOR_SHIELD_2 rgb(0, 255, 255, 64) + #define HOLOMAP_AREACOLOR_COMMAND "#3434d499" #define HOLOMAP_AREACOLOR_SECURITY "#AE121299" #define HOLOMAP_AREACOLOR_MEDICAL "#447bc299" diff --git a/code/__DEFINES/~monkestation/optfor.dm b/code/__DEFINES/~monkestation/optfor.dm new file mode 100644 index 000000000000..a77a41ce29c0 --- /dev/null +++ b/code/__DEFINES/~monkestation/optfor.dm @@ -0,0 +1,83 @@ +#define OPFOR_BACKSTORY_MIN_CHARS 100 +#define OPFOR_BACKSTORY_MAX_CHARS 500 + +#define OPFOR_MAX_OBJECTIVES 5 + +#define OPFOR_STATUS_NOT_SUBMITTED "Not submitted" +#define OPFOR_STATUS_APPROVED "Approved" +#define OPFOR_STATUS_DENIED "Denied" +#define OPFOR_STATUS_AWAITING_APPROVAL "Awaiting approval" +#define OPFOR_STATUS_CHANGES_REQUESTED "Changes requested" + +#define OPFOR_OBJECTIVE_STATUS_NOT_REVIEWED "Not Reviewed" +#define OPFOR_OBJECTIVE_STATUS_APPROVED "Approved" +#define OPFOR_OBJECTIVE_STATUS_DENIED "Denied" + +#define OPFOR_OBJECTIVE_INTENSITY_1 "1 - Minor theft or basic antagonizing" +#define OPFOR_OBJECTIVE_INTENSITY_2 "2 - Kidnapping / Theft" +#define OPFOR_OBJECTIVE_INTENSITY_3 "3 - Assassination / Grand Theft" +#define OPFOR_OBJECTIVE_INTENSITY_4 "4 - Mass sabotage (engine delamination)" +#define OPFOR_OBJECTIVE_INTENSITY_5 "5 - Mass destruction or mass killings" + +#define OPFOR_SUBSYSTEM_REJECT_CAP "OPFOR application system has reached the maximum number of applications" +#define OPFOR_SUBSYSTEM_REJECT_CLOSED "OPFOR application system is not accepting new applications" +#define OPFOR_SUBSYSTEM_READY "OPFOR application system is ready to accept new applications" + +#define OPFOR_REQUEST_UPDATE_COOLDOWN (5 MINUTES) +#define OPFOR_PING_COOLDOWN (1 MINUTES) + +#define OPFOR_TEXT_LIMIT_TITLE 40 +#define OPFOR_TEXT_LIMIT_BACKSTORY 2000 +#define OPFOR_TEXT_LIMIT_DESCRIPTION 1000 +#define OPFOR_TEXT_LIMIT_JUSTIFICATION 1000 +#define OPFOR_TEXT_LIMIT_MESSAGE 300 + +#define OPFOR_EQUIPMENT_LIMIT 10 +#define OPFOR_EQUIPMENT_COUNT_LIMIT 5 + +#define OPFOR_EQUIPMENT_STATUS_NOT_REVIEWED "Not Reviewed" +#define OPFOR_EQUIPMENT_STATUS_APPROVED "Approved" +#define OPFOR_EQUIPMENT_STATUS_DENIED "Denied" + +/// EQUIPMENT CATEGORIES +// Uplink Items +#define OPFOR_EQUIPMENT_CATEGORY_CLOTHING_UPLINK "1. Uplink Services" +// Clothing +#define OPFOR_EQUIPMENT_CATEGORY_CLOTHING_SYNDICATE "2. Syndicate Outfits" +#define OPFOR_EQUIPMENT_CATEGORY_CLOTHING_SOL "3. Sol-Federation Outfits" +#define OPFOR_EQUIPMENT_CATEGORY_CLOTHING_PIRATE "4. Piracy Outfits" +#define OPFOR_EQUIPMENT_CATEGORY_CLOTHING_MAGIC "5. Spellcaster Outfits" +// MODsuits +#define OPFOR_EQUIPMENT_CATEGORY_MODSUIT "6. MOD Suits" +#define OPFOR_EQUIPMENT_CATEGORY_MODSUIT_MODULES "7. MOD Modules" +// Implants +#define OPFOR_EQUIPMENT_CATEGORY_IMPLANTS "8. Implants" +#define OPFOR_EQUIPMENT_CATEGORY_IMPLANTS_ILLEGAL "9. Illegal Implants" +// Guns +#define OPFOR_EQUIPMENT_CATEGORY_RANGED "10. Ranged Weapons" +#define OPFOR_EQUIPMENT_CATEGORY_RANGED_STEALTH "11. Stealthy Ranged Weapons" +// Ammo +#define OPFOR_EQUIPMENT_CATEGORY_AMMO_EXOTIC "12. Exotic Ammunition" +// Melee +#define OPFOR_EQUIPMENT_CATEGORY_MELEE "13. Melee Weapons" +#define OPFOR_EQUIPMENT_CATEGORY_MELEE_STEALTH "14. Stealthy Melee Weapons" +// Medical items +#define OPFOR_EQUIPMENT_CATEGORY_MEDICAL "15. Medical Items" +// Gadgets +#define OPFOR_EQUIPMENT_CATEGORY_GADGET "16. Gadgets" +#define OPFOR_EQUIPMENT_CATEGORY_GADGET_STEALTH "17. Stealthy Gadgets" +// Bombs +#define OPFOR_EQUIPMENT_CATEGORY_BOMB_CHEM "18. Chemical Grenades" +#define OPFOR_EQUIPMENT_CATEGORY_BOMB_PAYLOAD "19. Dirty Bombs" +// Spells and scrolls (martial arts) +#define OPFOR_EQUIPMENT_CATEGORY_SPELLS "20. Spells" +#define OPFOR_EQUIPMENT_CATEGORY_SCROLLS "21. Martial Art Scrolls" +// Language and biology +#define OPFOR_EQUIPMENT_CATEGORY_LANGUAGE "22. Language" +#define OPFOR_EQUIPMENT_CATEGORY_ORGANS "23. Organs" +// Category for uncategorized items +#define OPFOR_EQUIPMENT_CATEGORY_OTHER "Other" + +#define ROLE_OPFOR_CANDIDATE "OPFOR Candidate" +#define BAN_OPFOR "OPFOR ban" +#define ADMIN_PASS_OPFOR(src) "(PASS)" diff --git a/code/__DEFINES/~monkestation/projectiles.dm b/code/__DEFINES/~monkestation/projectiles.dm index 438417dc1d94..44d6c84c6c18 100644 --- a/code/__DEFINES/~monkestation/projectiles.dm +++ b/code/__DEFINES/~monkestation/projectiles.dm @@ -3,3 +3,85 @@ #define CALIBER_435 "4.35" ///used in mk58 #define CALIBER_235 "2.35" +/// The caliber used by the Oldarms 'Mk.11.4 rifle', designed to be worse .223. +#define CALIBER_223S ".223 Stinger" + +/// Caliber used by the giant anti materiel rifle in guncargo +#define CALIBER_60STRELA ".60 Strela" + +/// CIN pistol caliber +#define CALIBER_CESARZOWA ".27-54 Cesarzowa" + +/// Standard Sol rifle caliber +#define CALIBER_SOL40LONG ".40 Sol Long" +/// Standard Sol pistol caliber +#define CALIBER_SOL35SHORT ".35 Sol Short" + +/// Basically 20mm grenades, I'd be concerned if a grenade launcher didn't use this +#define CALIBER_980TYDHOUER ".980 Tydhouer" + +/// Large caliber pistol round for Sol hand cannons +#define CALIBER_585TRAPPISTE ".585 Trappiste" + +/// Caliber used by the pepperball gun +#define CALIBER_PEPPERBALL "pepperball" + +// open to suggestions on where to put these overrides +// hugely not a fan of this but we do what we gotta + +/* + * gotta redefine EVERY goddamn ammo type irt to new mat costs for the ammobench's sake + * previously, SMALL_MATERIAL_AMOUNT was 100 units out of 2000 from a sheet (5%) + * so the old cost of SMALL_MATERIAL_AMOUNT * 5 was 500/2000 from a sheet (25%) + * experimental material balance PR makes it so that SMALL_MATERIAL_AMOUNT is actually 10 units out of 100 (10%) + * which made it so that the old assumed value of SMALL_MATERIAL_AMOUNT * 5 is 50/100 (50% of a sheet for a single bullet) (suboptimal) + * these updated, more consistent defines make it so that a single round's total materials should total 20% of a sheet, or 2 SMALL_MATERIAL_AMOUNT +*/ + +#define AMMO_MATS_BASIC list( \ + /datum/material/iron = SMALL_MATERIAL_AMOUNT * 2, \ +) + +#define AMMO_MATS_AP list( \ + /datum/material/iron = SMALL_MATERIAL_AMOUNT * 1.6, \ + /datum/material/titanium = SMALL_MATERIAL_AMOUNT * 0.4, \ +) + +#define AMMO_MATS_TEMP list( \ + /datum/material/iron = SMALL_MATERIAL_AMOUNT * 1.6, \ + /datum/material/plasma = SMALL_MATERIAL_AMOUNT * 0.4, \ +) + +#define AMMO_MATS_EMP list( \ + /datum/material/iron = SMALL_MATERIAL_AMOUNT * 1.6, \ + /datum/material/uranium = SMALL_MATERIAL_AMOUNT * 0.4, \ +) + +#define AMMO_MATS_PHASIC list( \ + /datum/material/iron = SMALL_MATERIAL_AMOUNT * 1.6, \ + /datum/material/bluespace = SMALL_MATERIAL_AMOUNT * 0.4, \ +) + +#define AMMO_MATS_TRAC list( \ + /datum/material/iron = SMALL_MATERIAL_AMOUNT * 1.6, \ + /datum/material/silver = SMALL_MATERIAL_AMOUNT * 0.2, \ + /datum/material/gold = SMALL_MATERIAL_AMOUNT * 0.2, \ +) + +#define AMMO_MATS_HOMING list( \ + /datum/material/iron = SMALL_MATERIAL_AMOUNT * 1, \ + /datum/material/silver = SMALL_MATERIAL_AMOUNT * 0.2, \ + /datum/material/gold = SMALL_MATERIAL_AMOUNT * 0.2, \ + /datum/material/plasma = SMALL_MATERIAL_AMOUNT * 0.2, \ + /datum/material/diamond = SMALL_MATERIAL_AMOUNT * 0.2, \ + /datum/material/bluespace = SMALL_MATERIAL_AMOUNT * 0.2, \ +) + +// for .35 Sol Ripper +#define AMMO_MATS_RIPPER list( \ + /datum/material/iron = SMALL_MATERIAL_AMOUNT * 1.6, \ + /datum/material/glass = SMALL_MATERIAL_AMOUNT * 0.4, \ +) + +/obj/item/ammo_casing + custom_materials = AMMO_MATS_BASIC diff --git a/code/__DEFINES/~monkestation/span.dm b/code/__DEFINES/~monkestation/span.dm index 952b78d0eb21..1ffa6e5db841 100644 --- a/code/__DEFINES/~monkestation/span.dm +++ b/code/__DEFINES/~monkestation/span.dm @@ -1,8 +1,3 @@ -#define span_brass(str) ("" + str + "") -#define span_bigbrass(str) ("" + str + "") -#define span_clockyellow(str) ("" + str + "") -#define span_clockgray(str) ("" + str + "") -#define span_clockred(str) ("" + str + "") #define span_ratvar(str) ("" + str + "") #define span_italics(str) ("" + str + "") diff --git a/code/__DEFINES/~monkestation/storytellers.dm b/code/__DEFINES/~monkestation/storytellers.dm index f4c3d352916f..060ed3b63623 100644 --- a/code/__DEFINES/~monkestation/storytellers.dm +++ b/code/__DEFINES/~monkestation/storytellers.dm @@ -81,8 +81,8 @@ #define EVENT_PANEL_TRACKS list(EVENT_TRACK_MUNDANE, EVENT_TRACK_MODERATE, EVENT_TRACK_MAJOR, EVENT_TRACK_ROLESET, EVENT_TRACK_OBJECTIVES, UNCATEGORIZED_EVENTS, ALL_EVENTS) /// Defines for the antag cap to prevent midround injections. -#define ANTAG_CAP_FLAT 2 -#define ANTAG_CAP_DENOMINATOR 10 +#define ANTAG_CAP_FLAT 3 +#define ANTAG_CAP_DENOMINATOR 30 ///Below are defines for roundstart point pool. The GAIN ones are multiplied by ready population #define ROUNDSTART_MUNDANE_BASE 20 @@ -95,7 +95,7 @@ #define ROUNDSTART_MAJOR_GAIN 2 #define ROUNDSTART_ROLESET_BASE 60 -#define ROUNDSTART_ROLESET_GAIN 4 +#define ROUNDSTART_ROLESET_GAIN 2 #define ROUNDSTART_OBJECTIVES_BASE 40 #define ROUNDSTART_OBJECTIVES_GAIN 2 diff --git a/code/__DEFINES/~monkestation/traits.dm b/code/__DEFINES/~monkestation/traits.dm index 514976c9580f..9e1a3f340ecd 100644 --- a/code/__DEFINES/~monkestation/traits.dm +++ b/code/__DEFINES/~monkestation/traits.dm @@ -36,3 +36,11 @@ #define ABDUCTOR_GLAND_VENTCRAWLING_TRAIT "abductor_gland_ventcrawling" #define TRAIT_BETTER_CYBERCONNECTOR "better_cyberconnector_hacking" + +/// Allows the user to instantly reload. +#define TRAIT_INSTANT_RELOAD "instant_reload" + + +// /turf/open +/// If a trait is considered as having "coverage" by a meteor shield. +#define TRAIT_COVERED_BY_METEOR_SHIELD "covered_by_meteor_shield" diff --git a/code/__HELPERS/_lists.dm b/code/__HELPERS/_lists.dm index 61bd8880e546..b53b27f59e97 100644 --- a/code/__HELPERS/_lists.dm +++ b/code/__HELPERS/_lists.dm @@ -392,7 +392,7 @@ **/ /proc/list_clear_nulls(list/list_to_clear) return (list_to_clear.RemoveAll(null) > 0) - + /* * Returns list containing all the entries from first list that are not present in second. @@ -434,22 +434,19 @@ * B would have a 30% chance of being picked, * C would have a 10% chance of being picked, * and D would have a 0% chance of being picked. - * You should only pass integers in. */ -/proc/pick_weight(list/list_to_pick) +/proc/pick_weight(list/list_to_pick) // monkestation edit: port superior pick_weight impl var/total = 0 var/item for(item in list_to_pick) - if(!list_to_pick[item]) - list_to_pick[item] = 0 + if(isnull(list_to_pick[item])) + stack_trace("weighted_pick given null weight: [json_encode(list_to_pick)]") total += list_to_pick[item] - - total = rand(1, total) + total = rand() * total for(item in list_to_pick) total -= list_to_pick[item] - if(total <= 0 && list_to_pick[item]) + if(total <= 0) return item - return null /** diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index b9f29be50dd2..2871e22e78d2 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -668,6 +668,8 @@ GLOBAL_LIST_EMPTY(species_list) moblist += mob_to_sort for(var/mob/living/basic/mob_to_sort in sortmob) moblist += mob_to_sort + for(var/mob/living/soulcatcher_soul/mob_to_sort in sortmob) + moblist += mob_to_sort return moblist ///returns a mob type controlled by a specified ckey diff --git a/code/__HELPERS/roundend.dm b/code/__HELPERS/roundend.dm index c4cf4d8708ff..6af9cc1a5460 100644 --- a/code/__HELPERS/roundend.dm +++ b/code/__HELPERS/roundend.dm @@ -364,6 +364,8 @@ GLOBAL_LIST_INIT(round_end_images, world.file2list("data/image_urls.txt")) // MO //Antagonists parts += antag_report() + parts += opfor_report() + parts += hardcore_random_report() CHECK_TICK diff --git a/code/__HELPERS/~monkestation-helpers/mapping.dm b/code/__HELPERS/~monkestation-helpers/mapping.dm new file mode 100644 index 000000000000..62d6f30564da --- /dev/null +++ b/code/__HELPERS/~monkestation-helpers/mapping.dm @@ -0,0 +1,6 @@ +/proc/are_zs_connected(atom/a, atom/b) + a = get_turf(a) + b = get_turf(b) + if(a.z == b.z) + return TRUE + return (b.z in SSmapping.get_connected_levels(a)) diff --git a/code/controllers/subsystem/economy.dm b/code/controllers/subsystem/economy.dm index fc40b44676c8..23a4ea42e0df 100644 --- a/code/controllers/subsystem/economy.dm +++ b/code/controllers/subsystem/economy.dm @@ -13,7 +13,8 @@ SUBSYSTEM_DEF(economy) ACCOUNT_MED = ACCOUNT_MED_NAME, ACCOUNT_SRV = ACCOUNT_SRV_NAME, ACCOUNT_CAR = ACCOUNT_CAR_NAME, - ACCOUNT_SEC = ACCOUNT_SEC_NAME) + ACCOUNT_SEC = ACCOUNT_SEC_NAME, + ACCOUNT_CMD = ACCOUNT_CMD_NAME) var/list/generated_accounts = list() /** * Enables extra money charges for things that normally would be free, such as sleepers/cryo/beepsky. diff --git a/code/controllers/subsystem/explosions.dm b/code/controllers/subsystem/explosions.dm index e9933a579932..66a171b90a3e 100644 --- a/code/controllers/subsystem/explosions.dm +++ b/code/controllers/subsystem/explosions.dm @@ -514,7 +514,7 @@ SUBSYSTEM_DEF(explosions) * - [creaking_sound][/sound]: The sound that plays when the station creaks during the explosion. * - [hull_creaking_sound][/sound]: The sound that plays when the station creaks after the explosion. */ -/datum/controller/subsystem/explosions/proc/shake_the_room(turf/epicenter, near_distance, far_distance, quake_factor, echo_factor, creaking, sound/near_sound = sound(get_sfx(SFX_EXPLOSION)), sound/far_sound = sound('sound/effects/explosionfar.ogg'), sound/echo_sound = sound('sound/effects/explosion_distant.ogg'), sound/creaking_sound = sound(get_sfx(SFX_EXPLOSION_CREAKING)), hull_creaking_sound = sound(get_sfx(SFX_HULL_CREAKING))) +/datum/controller/subsystem/explosions/proc/shake_the_room(turf/epicenter, near_distance, far_distance, quake_factor, echo_factor, creaking, sound/near_sound = sound(get_sfx(SFX_EXPLOSION)), sound/far_sound = sound('sound/effects/explosionfar.ogg'), sound/echo_sound = sound('sound/effects/explosion_distant.ogg'), sound/creaking_sound = sound(get_sfx(SFX_EXPLOSION_CREAKING)), hull_creaking_sound = sound(get_sfx(SFX_HULL_CREAKING)), pressure_affected = TRUE) // monkestation edit: add pressure_affected var/frequency = get_rand_frequency() var/blast_z = epicenter.z if(isnull(creaking)) // Autoset creaking. @@ -535,18 +535,18 @@ SUBSYSTEM_DEF(explosions) var/base_shake_amount = sqrt(near_distance / (distance + 1)) if(distance <= round(near_distance + world.view - 2, 1)) // If you are close enough to see the effects of the explosion first-hand (ignoring walls) - listener.playsound_local(epicenter, null, 100, TRUE, frequency, sound_to_use = near_sound) + listener.playsound_local(epicenter, null, 100, TRUE, frequency, pressure_affected = pressure_affected, sound_to_use = near_sound) // monkestation edit: pressure_affected if(base_shake_amount > 0) shake_camera(listener, NEAR_SHAKE_DURATION, clamp(base_shake_amount, 0, NEAR_SHAKE_CAP)) else if(distance < far_distance) // You can hear a far explosion if you are outside the blast radius. Small explosions shouldn't be heard throughout the station. var/far_volume = clamp(far_distance / 2, FAR_LOWER, FAR_UPPER) if(creaking) - listener.playsound_local(epicenter, null, far_volume, TRUE, frequency, sound_to_use = creaking_sound, distance_multiplier = 0) + listener.playsound_local(epicenter, null, far_volume, TRUE, frequency, pressure_affected = pressure_affected, sound_to_use = creaking_sound, distance_multiplier = 0) // monkestation edit: pressure_affected else if(prob(FAR_SOUND_PROB)) // Sound variety during meteor storm/tesloose/other bad event - listener.playsound_local(epicenter, null, far_volume, TRUE, frequency, sound_to_use = far_sound, distance_multiplier = 0) + listener.playsound_local(epicenter, null, far_volume, TRUE, frequency, pressure_affected = pressure_affected, sound_to_use = far_sound, distance_multiplier = 0) // monkestation edit: pressure_affected else - listener.playsound_local(epicenter, null, far_volume, TRUE, frequency, sound_to_use = echo_sound, distance_multiplier = 0) + listener.playsound_local(epicenter, null, far_volume, TRUE, frequency, pressure_affected = pressure_affected, sound_to_use = echo_sound, distance_multiplier = 0) // monkestation edit: pressure_affected if(base_shake_amount || quake_factor) base_shake_amount = max(base_shake_amount, quake_factor * 3, 0) // Devastating explosions rock the station and ground @@ -559,7 +559,7 @@ SUBSYSTEM_DEF(explosions) shake_camera(listener, FAR_SHAKE_DURATION, clamp(quake_factor / 4, 0, FAR_SHAKE_CAP)) else echo_volume = 40 - listener.playsound_local(epicenter, null, echo_volume, TRUE, frequency, sound_to_use = echo_sound, distance_multiplier = 0) + listener.playsound_local(epicenter, null, echo_volume, TRUE, frequency, pressure_affected = pressure_affected, sound_to_use = echo_sound, distance_multiplier = 0) // monkestation edit: pressure_affected if(creaking) // 5 seconds after the bang, the station begins to creak addtimer(CALLBACK(listener, TYPE_PROC_REF(/mob, playsound_local), epicenter, null, rand(FREQ_LOWER, FREQ_UPPER), TRUE, frequency, null, null, FALSE, hull_creaking_sound, 0), CREAK_DELAY) diff --git a/code/controllers/subsystem/persistence/_persistence.dm b/code/controllers/subsystem/persistence/_persistence.dm index 3153c72eb2c7..b2c324a514a7 100644 --- a/code/controllers/subsystem/persistence/_persistence.dm +++ b/code/controllers/subsystem/persistence/_persistence.dm @@ -37,6 +37,7 @@ SUBSYSTEM_DEF(persistence) load_randomized_recipes() load_custom_outfits() load_delamination_counter() + load_tram_counter() load_adventures() return SS_INIT_SUCCESS @@ -50,7 +51,10 @@ SUBSYSTEM_DEF(persistence) save_randomized_recipes() save_scars() save_custom_outfits() + save_modular_persistence() save_delamination_counter() + if(SStramprocess.can_fire) + save_tram_counter() if(GLOB.interviews) save_keys(GLOB.interviews.approved_ckeys) diff --git a/code/controllers/subsystem/persistence/counter_delamination.dm b/code/controllers/subsystem/persistence/counter_delamination.dm index 57ea7bde9f35..fcb87b2f26c7 100644 --- a/code/controllers/subsystem/persistence/counter_delamination.dm +++ b/code/controllers/subsystem/persistence/counter_delamination.dm @@ -1,13 +1,13 @@ /// Location where we save the information about how many rounds it has been since the engine blew up #define DELAMINATION_COUNT_FILEPATH "data/rounds_since_delamination.txt" #define DELAMINATION_HIGHSCORE_FILEPATH "data/delamination_highscore.txt" +#define TRAM_COUNT_FILEPATH "data/tram_hits_last_round.txt" /datum/controller/subsystem/persistence/proc/load_delamination_counter() - if (!fexists(DELAMINATION_COUNT_FILEPATH)) - return - rounds_since_engine_exploded = text2num(file2text(DELAMINATION_COUNT_FILEPATH)) - for (var/obj/structure/sign/delamination_counter/sign as anything in GLOB.map_delamination_counters) - sign.update_count(rounds_since_engine_exploded) + if (fexists(DELAMINATION_HIGHSCORE_FILEPATH)) + delam_highscore = text2num(file2text(DELAMINATION_HIGHSCORE_FILEPATH)) + for (var/obj/machinery/incident_display/sign as anything in GLOB.map_delamination_counters) + sign.update_delam_count(rounds_since_engine_exploded, delam_highscore) /datum/controller/subsystem/persistence/proc/save_delamination_counter() @@ -15,5 +15,15 @@ if((rounds_since_engine_exploded + 1) > delam_highscore) rustg_file_write("[rounds_since_engine_exploded + 1]", DELAMINATION_HIGHSCORE_FILEPATH) + +/datum/controller/subsystem/persistence/proc/load_tram_counter() + if(!fexists(TRAM_COUNT_FILEPATH)) + return + tram_hits_last_round = text2num(file2text(TRAM_COUNT_FILEPATH)) + +/datum/controller/subsystem/persistence/proc/save_tram_counter() + rustg_file_write("[tram_hits_this_round]", TRAM_COUNT_FILEPATH) + #undef DELAMINATION_COUNT_FILEPATH #undef DELAMINATION_HIGHSCORE_FILEPATH +#undef TRAM_COUNT_FILEPATH diff --git a/code/controllers/subsystem/processing/digital_clock.dm b/code/controllers/subsystem/processing/digital_clock.dm new file mode 100644 index 000000000000..5ca22f58beb4 --- /dev/null +++ b/code/controllers/subsystem/processing/digital_clock.dm @@ -0,0 +1,5 @@ +/// The subsystem used to tick digital clocks +PROCESSING_SUBSYSTEM_DEF(digital_clock) + name = "digital_clock" + flags = SS_NO_INIT|SS_BACKGROUND|SS_KEEP_TIMING + wait = 1 SECONDS diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index 43ad2c568d13..a9784020aac8 100755 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -333,6 +333,7 @@ SUBSYSTEM_DEF(ticker) iter_human.increment_scar_slot() iter_human.load_persistent_scars() + SSpersistence.load_modular_persistence(iter_human.get_organ_slot(ORGAN_SLOT_BRAIN)) if(!iter_human.hardcore_survival_score) continue @@ -364,7 +365,8 @@ SUBSYSTEM_DEF(ticker) var/mob/dead/new_player/player = i if(player.ready == PLAYER_READY_TO_PLAY && player.mind) GLOB.joined_player_list += player.ckey - var/atom/destination = player.mind.assigned_role.get_roundstart_spawn_point() + var/chosen_title = player.client?.prefs.alt_job_titles[player.mind.assigned_role.title] || player.mind.assigned_role.title + var/atom/destination = player.mind.assigned_role.get_roundstart_spawn_point(chosen_title) if(!destination) // Failed to fetch a proper roundstart location, won't be going anywhere. continue player.create_character(destination) @@ -485,8 +487,7 @@ SUBSYSTEM_DEF(ticker) /datum/controller/subsystem/ticker/proc/transfer_characters() var/list/livings = list() - for(var/i in GLOB.new_player_list) - var/mob/dead/new_player/player = i + for(var/mob/dead/new_player/player as anything in GLOB.new_player_list) var/mob/living = player.transfer_character() if(living) qdel(player) diff --git a/code/datums/components/deployable.dm b/code/datums/components/deployable.dm index 7a5e798b337c..448004cbac2c 100644 --- a/code/datums/components/deployable.dm +++ b/code/datums/components/deployable.dm @@ -18,7 +18,7 @@ /// If the item used to deploy gets deleted on use or not var/delete_on_use = TRUE -/datum/component/deployable/Initialize(deploy_time, thing_to_be_deployed, delete_on_use) +/datum/component/deployable/Initialize(deploy_time, thing_to_be_deployed, delete_on_use = TRUE) . = ..() if(!isitem(parent)) return COMPONENT_INCOMPATIBLE diff --git a/code/datums/components/on_hit_effects.dm b/code/datums/components/on_hit_effects.dm new file mode 100644 index 000000000000..4093249c1ad4 --- /dev/null +++ b/code/datums/components/on_hit_effects.dm @@ -0,0 +1,94 @@ +/** + * ## On Hit Effect Component! + * + * Component for other elements/components to rely on for on-hit effects without duplicating the on-hit code. + * See Lifesteal, or bane for examples. + * + * THIS COULD EASILY SUPPORT COMPONENT_DUPE_ALLOWED but the getcomponent makes it throw errors. if you can figure that out feel free to readd the dupe types + */ +/datum/component/on_hit_effect + ///callback used by other components to apply effects + var/datum/callback/on_hit_callback + ///callback optionally used for more checks + var/datum/callback/extra_check_callback + ///optionally should we also apply the effect if thrown at something? + var/thrown_effect + +/datum/component/on_hit_effect/Initialize(on_hit_callback, extra_check_callback, thrown_effect = FALSE) + src.on_hit_callback = on_hit_callback + src.extra_check_callback = extra_check_callback + if(!(ismachinery(parent) || isstructure(parent) || isgun(parent) || isprojectilespell(parent) || isitem(parent) || isanimal_or_basicmob(parent) || isprojectile(parent))) + return ELEMENT_INCOMPATIBLE + src.thrown_effect = thrown_effect + +/datum/component/on_hit_effect/Destroy(force) + on_hit_callback = null + extra_check_callback = null + return ..() + +/datum/component/on_hit_effect/RegisterWithParent() + if(ismachinery(parent) || isstructure(parent) || isgun(parent) || isprojectilespell(parent)) + RegisterSignal(parent, COMSIG_PROJECTILE_ON_HIT, PROC_REF(on_projectile_hit)) + else if(isitem(parent)) + RegisterSignal(parent, COMSIG_ITEM_AFTERATTACK, PROC_REF(item_afterattack)) + else if(isanimal_or_basicmob(parent)) + RegisterSignal(parent, COMSIG_HOSTILE_POST_ATTACKINGTARGET, PROC_REF(hostile_attackingtarget)) + else if(isprojectile(parent)) + RegisterSignal(parent, COMSIG_PROJECTILE_SELF_ON_HIT, PROC_REF(on_projectile_self_hit)) + + if(thrown_effect) + RegisterSignal(parent, COMSIG_MOVABLE_IMPACT, PROC_REF(on_thrown_hit)) + +/datum/component/on_hit_effect/UnregisterFromParent() + UnregisterSignal(parent, list( + COMSIG_PROJECTILE_ON_HIT, + COMSIG_ITEM_AFTERATTACK, + COMSIG_HOSTILE_POST_ATTACKINGTARGET, + COMSIG_PROJECTILE_SELF_ON_HIT, + COMSIG_MOVABLE_IMPACT, + )) + +/datum/component/on_hit_effect/proc/item_afterattack(obj/item/source, atom/target, mob/user, proximity_flag, click_parameters) + SIGNAL_HANDLER + + if(!proximity_flag) + return + + if(extra_check_callback) + if(!extra_check_callback.Invoke(user, target, source)) + return + on_hit_callback.Invoke(source, user, target, user.zone_selected) + return COMPONENT_AFTERATTACK_PROCESSED_ITEM + +/datum/component/on_hit_effect/proc/hostile_attackingtarget(mob/living/attacker, atom/target, success) + SIGNAL_HANDLER + + if(!success) + return + + if(extra_check_callback) + if(!extra_check_callback.Invoke(attacker, target)) + return + on_hit_callback.Invoke(attacker, attacker, target, attacker.zone_selected) + +/datum/component/on_hit_effect/proc/on_projectile_hit(datum/fired_from, atom/movable/firer, atom/target, angle, body_zone) + SIGNAL_HANDLER + + if(extra_check_callback) + if(!extra_check_callback.Invoke(firer, target)) + return + on_hit_callback.Invoke(fired_from, firer, target, body_zone) + +/datum/component/on_hit_effect/proc/on_projectile_self_hit(datum/source, mob/firer, atom/target, angle, body_zone) + SIGNAL_HANDLER + + if(extra_check_callback) + if(!extra_check_callback.Invoke(firer, target)) + return + on_hit_callback.Invoke(source, firer, target, body_zone) + +/datum/component/on_hit_effect/proc/on_thrown_hit(datum/source, atom/hit_atom, datum/thrownthing/throwingdatum) + SIGNAL_HANDLER + if(extra_check_callback && !extra_check_callback.Invoke(source, hit_atom)) + return + on_hit_callback.Invoke(source, source, hit_atom, null) diff --git a/code/datums/diseases/_disease.dm b/code/datums/diseases/_disease.dm index 7597ce48bce4..52be8fe5af04 100644 --- a/code/datums/diseases/_disease.dm +++ b/code/datums/diseases/_disease.dm @@ -134,7 +134,7 @@ GLOBAL_LIST_INIT(inspectable_diseases, list()) return TRUE return FALSE -/datum/disease/proc/cure(add_resistance = TRUE) +/datum/disease/proc/cure(add_resistance = TRUE, mob/living/carbon/target) // monkestation edit: AAAAAAAAAAAAA if(affected_mob) if(add_resistance && (disease_flags & CAN_RESIST)) LAZYOR(affected_mob.disease_resistances, GetDiseaseID()) diff --git a/code/datums/diseases/gastrolisis.dm b/code/datums/diseases/gastrolisis.dm index f82f8b3269f6..3765096820ce 100644 --- a/code/datums/diseases/gastrolisis.dm +++ b/code/datums/diseases/gastrolisis.dm @@ -79,7 +79,7 @@ OT.MakeSlippery(TURF_WET_LUBE, 100) -/datum/disease/gastrolosis/cure() +/datum/disease/gastrolosis/cure(add_resistance = TRUE, mob/living/carbon/target) . = ..() if(affected_mob && !is_species(affected_mob, /datum/species/snail)) //undo all the snail fuckening var/mob/living/carbon/human/H = affected_mob diff --git a/code/datums/diseases/parrotpossession.dm b/code/datums/diseases/parrotpossession.dm index bbe587b2a8d8..3bbd7ec412f4 100644 --- a/code/datums/diseases/parrotpossession.dm +++ b/code/datums/diseases/parrotpossession.dm @@ -31,7 +31,7 @@ affected_mob.say(potential_phrase, forced = "parrot possession") -/datum/disease/parrot_possession/cure() +/datum/disease/parrot_possession/cure(add_resistance = TRUE, mob/living/carbon/target) var/atom/movable/inside_parrot = locate(/mob/living/basic/parrot/poly/ghost) in affected_mob if(inside_parrot) UnregisterSignal(inside_parrot, list(COMSIG_PREQDELETED, COMSIG_MOVABLE_MOVED)) diff --git a/code/datums/elements/bane.dm b/code/datums/elements/bane.dm index 22bad0de3001..94c54d4a6ce4 100644 --- a/code/datums/elements/bane.dm +++ b/code/datums/elements/bane.dm @@ -18,14 +18,8 @@ /datum/element/bane/Attach(datum/target, target_type = /mob/living, mob_biotypes = NONE, damage_multiplier=1, added_damage = 0, requires_combat_mode = TRUE) . = ..() - if(!isitem(target)) - return ELEMENT_INCOMPATIBLE - if(ispath(target_type, /mob/living)) - RegisterSignal(target, COMSIG_ITEM_AFTERATTACK, PROC_REF(mob_check)) - else if(ispath(target_type, /datum/species)) - RegisterSignal(target, COMSIG_ITEM_AFTERATTACK, PROC_REF(species_check)) - else + if(!ispath(target_type, /mob/living) && !ispath(target_type, /datum/species)) return ELEMENT_INCOMPATIBLE src.target_type = target_type @@ -33,39 +27,67 @@ src.added_damage = added_damage src.requires_combat_mode = requires_combat_mode src.mob_biotypes = mob_biotypes + target.AddComponent(/datum/component/on_hit_effect, CALLBACK(src, PROC_REF(do_bane)), CALLBACK(src, PROC_REF(check_bane))) -/datum/element/bane/Detach(datum/source) - UnregisterSignal(source, COMSIG_ITEM_AFTERATTACK) +/datum/element/bane/Detach(datum/target) + qdel(target.GetComponent(/datum/component/on_hit_effect)) return ..() -/datum/element/bane/proc/species_check(obj/item/source, mob/living/target, mob/user, proximity_flag, click_parameters) - SIGNAL_HANDLER - - if(!proximity_flag || !istype(target) || !is_species(target, target_type)) +/datum/element/bane/proc/check_bane(bane_applier, target, bane_weapon) + if(!check_biotype_path(bane_applier, target)) return - - var/is_correct_biotype = target.mob_biotypes & mob_biotypes - if(mob_biotypes && !(is_correct_biotype)) + var/atom/movable/atom_owner = bane_weapon + if(SEND_SIGNAL(atom_owner, COMSIG_OBJECT_PRE_BANING, target) & COMPONENT_CANCEL_BANING) return + return TRUE - activate(source, target, user) - -/datum/element/bane/proc/mob_check(obj/item/source, mob/living/target, mob/user, proximity_flag, click_parameters) - SIGNAL_HANDLER - - if(!proximity_flag || !istype(target, target_type)) - return - - var/is_correct_biotype = target.mob_biotypes & mob_biotypes +/** + * Checks typepaths and the mob's biotype, returning TRUE if correct and FALSE if wrong. + * Additionally checks if combat mode is required, and if so whether it's enabled or not. + */ +/datum/element/bane/proc/check_biotype_path(mob/living/bane_applier, atom/target) + if(!isliving(target)) + return FALSE + var/mob/living/living_target = target + if(bane_applier) + if(requires_combat_mode && !(bane_applier.istate & ISTATE_HARM)) + return FALSE + var/is_correct_biotype = living_target.mob_biotypes & mob_biotypes if(mob_biotypes && !(is_correct_biotype)) - return + return FALSE + if(ispath(target_type, /mob/living)) + return istype(living_target, target_type) + else //species type + return is_species(living_target, target_type) - activate(source, target, user) +/datum/element/bane/proc/do_bane(datum/element_owner, mob/living/bane_applier, mob/living/baned_target, hit_zone) + var/force_boosted + var/applied_dam_type -/datum/element/bane/proc/activate(obj/item/source, mob/living/target, mob/living/attacker) - if(requires_combat_mode && !(attacker.istate & ISTATE_HARM)) + if(isitem(element_owner)) + var/obj/item/item_owner = element_owner + force_boosted = item_owner.force + applied_dam_type = item_owner.damtype + else if(isprojectile(element_owner)) + var/obj/projectile/projectile_owner = element_owner + force_boosted = projectile_owner.damage + applied_dam_type = projectile_owner.damage_type + else if (isliving(element_owner)) + var/mob/living/living_owner = element_owner + force_boosted = (living_owner.melee_damage_lower + living_owner.melee_damage_upper) / 2 + //commence crying. yes, these really are the same check. FUCK. + if(isbasicmob(living_owner)) + var/mob/living/basic/basic_owner = living_owner + applied_dam_type = basic_owner.melee_damage_type + else if(isanimal(living_owner)) + var/mob/living/simple_animal/simple_owner = living_owner + applied_dam_type = simple_owner.melee_damage_type + else + return + else return - var/extra_damage = max(0, (source.force * damage_multiplier) + added_damage) - target.apply_damage(extra_damage, source.damtype, attacker.zone_selected) - SEND_SIGNAL(target, COMSIG_LIVING_BANED, source, attacker) // for extra effects when baned. + var/extra_damage = max(0, (force_boosted * damage_multiplier) + added_damage) + baned_target.apply_damage(extra_damage, applied_dam_type, hit_zone) + SEND_SIGNAL(baned_target, COMSIG_LIVING_BANED, bane_applier, baned_target) // for extra effects when baned. + SEND_SIGNAL(element_owner, COMSIG_OBJECT_ON_BANING, baned_target) diff --git a/code/datums/elements/noisy_movement.dm b/code/datums/elements/noisy_movement.dm new file mode 100644 index 000000000000..f4215dd48bf4 --- /dev/null +++ b/code/datums/elements/noisy_movement.dm @@ -0,0 +1,21 @@ +/datum/element/noisy_movement + element_flags = ELEMENT_BESPOKE + argument_hash_start_idx = 2 + var/movement_sound + var/volume + +/datum/element/noisy_movement/Attach(datum/target, movement_sound = 'sound/effects/roll.ogg', volume = 100) + . = ..() + if(!ismovable(target)) + return ELEMENT_INCOMPATIBLE + + src.movement_sound = movement_sound + src.volume = volume + + RegisterSignal(target, COMSIG_MOVABLE_MOVED, PROC_REF(play_sound)) + +/datum/element/noisy_movement/proc/play_sound(atom/movable/source, old_loc, movement_dir, forced) + SIGNAL_HANDLER + if(!forced && !CHECK_MOVE_LOOP_FLAGS(source, MOVEMENT_LOOP_OUTSIDE_CONTROL) && source.has_gravity()) + playsound(source, movement_sound, volume, TRUE) + diff --git a/code/datums/greyscale/_greyscale_config.dm b/code/datums/greyscale/_greyscale_config.dm index 229d214a56d8..ff4d029e7766 100644 --- a/code/datums/greyscale/_greyscale_config.dm +++ b/code/datums/greyscale/_greyscale_config.dm @@ -57,8 +57,6 @@ if(!json_config) stack_trace("Greyscale config object [DebugName()] is missing a json configuration, make sure `json_config` has been assigned a value.") string_json_config = "[json_config]" - if(findtext(string_json_config, "greyscale/json_configs/") == 0) - stack_trace("All greyscale json configuration files should be located within '/greyscale/json_configs/'") if(!icon_file) stack_trace("Greyscale config object [DebugName()] is missing an icon file, make sure `icon_file` has been assigned a value.") string_icon_file = "[icon_file]" diff --git a/code/datums/looping_sounds/_looping_sound.dm b/code/datums/looping_sounds/_looping_sound.dm index 3a1d921fce3f..d1926a76e58b 100644 --- a/code/datums/looping_sounds/_looping_sound.dm +++ b/code/datums/looping_sounds/_looping_sound.dm @@ -170,7 +170,7 @@ if(!each_once) . = play_from while(!isfile(.) && !isnull(.)) - . = pick_weight(.) + . = pick_weight(fill_with_ones(.)) return . @@ -182,7 +182,7 @@ // Tree is a list of lists containign files // If an entry in the tree goes to 0 length, we cut it from the list tree += list(.) - . = pick_weight(.) + . = pick_weight(fill_with_ones(.)) if(!isfile(.)) return diff --git a/code/datums/records/manifest.dm b/code/datums/records/manifest.dm index 3f3e3866d8ce..3bd91072ab8f 100644 --- a/code/datums/records/manifest.dm +++ b/code/datums/records/manifest.dm @@ -163,3 +163,52 @@ GLOBAL_DATUM_INIT(manifest, /datum/manifest, new) target.rank = assignment target.trim = trim + +/** + * Using the name to find the record, and person in reference to the body, we recreate photos for the manifest (and records). + * Args: + * - name - The name of the record we're looking for, which should be the name of the person. + * - person - The mob we're taking pictures of to update the records. + * - add_height_chart - If we should add a height chart to the background of the photo. + */ +/datum/manifest/proc/change_pictures(name, mob/living/person, add_height_chart = FALSE) + var/datum/record/crew/target = find_record(name) + if(!target) + return FALSE + + target.character_appearance = new(person.appearance) + target.recreate_manifest_photos(add_height_chart) + return TRUE + +/datum/manifest/ui_state(mob/user) + return GLOB.always_state + +/datum/manifest/ui_status(mob/user, datum/ui_state/state) + return (isnewplayer(user) || isobserver(user) || isAI(user) || ispAI(user) || user.client?.holder) ? UI_INTERACTIVE : UI_CLOSE + +/datum/manifest/ui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if (!ui) + ui = new(user, src, "CrewManifest") + ui.open() + +/datum/manifest/ui_data(mob/user) + var/list/positions = list() + for(var/datum/job_department/department as anything in SSjob.joinable_departments) + var/open = 0 + var/list/exceptions = list() + for(var/datum/job/job as anything in department.department_jobs) + if(job.total_positions == -1) + exceptions += job.title + continue + var/open_slots = job.total_positions - job.current_positions + if(open_slots < 1) + continue + open += open_slots + positions[department.department_name] = list("exceptions" = exceptions, "open" = open) + + return list( + "manifest" = get_manifest(), + "positions" = positions + ) + diff --git a/code/datums/records/record.dm b/code/datums/records/record.dm index fae37e4afe9f..2e2b1ce30a9a 100644 --- a/code/datums/records/record.dm +++ b/code/datums/records/record.dm @@ -82,6 +82,9 @@ /// Current arrest status var/wanted_status = WANTED_NONE + ///Photo used for records, which we store here so we don't have to constantly make more of. + var/list/obj/item/photo/record_photos + /datum/record/crew/New( age = 18, blood_type = "?", @@ -118,6 +121,7 @@ /datum/record/crew/Destroy() GLOB.manifest.general -= src + QDEL_LAZYLIST(record_photos) return ..() /** @@ -168,6 +172,20 @@ /datum/record/crew/proc/get_side_photo() return get_photo("photo_side", WEST) +/// A helper proc to recreate all photos of a character from the record. +/datum/record/crew/proc/recreate_manifest_photos(add_height_chart) + delete_photos("photo_front") + make_photo("photo_front", SOUTH, add_height_chart) + delete_photos("photo_side") + make_photo("photo_side", WEST, add_height_chart) + +///Deletes the existing photo for field_name +/datum/record/crew/proc/delete_photos(field_name) + var/obj/item/photo/existing_photo = LAZYACCESS(record_photos, field_name) + if(existing_photo) + qdel(existing_photo) + LAZYREMOVE(record_photos, field_name) + /** * You shouldn't be calling this directly, use `get_front_photo()` or `get_side_photo()` * instead. @@ -186,18 +204,29 @@ * Returns an empty `/icon` if there was no `character_appearance` entry in the `fields` list, * returns the generated/cached photo otherwise. */ -/datum/record/crew/proc/get_photo(field_name, orientation) +/datum/record/crew/proc/get_photo(field_name, orientation = SOUTH) if(!field_name) return - if(!character_appearance) return new /icon() + var/obj/item/photo/existing_photo = LAZYACCESS(record_photos, field_name) + if(!existing_photo) + existing_photo = make_photo(field_name, orientation) + return existing_photo +/** + * make_photo + * + * Called if the person doesn't already have a photo, this will make a photo of the person, + * then make a picture out of it, then finally create a new photo. + */ +/datum/record/crew/proc/make_photo(field_name, orientation, add_height_chart) var/icon/picture_image if(!isicon(character_appearance)) var/mutable_appearance/appearance = character_appearance appearance.setDir(orientation) - + if(add_height_chart) + appearance.underlays += mutable_appearance('icons/obj/machines/photobooth.dmi', "height_chart", alpha = 125, appearance_flags = RESET_ALPHA|RESET_COLOR|RESET_TRANSFORM) picture_image = getFlatIcon(appearance) else picture_image = character_appearance @@ -207,9 +236,10 @@ picture.picture_desc = "This is [name]." picture.picture_image = picture_image - var/obj/item/photo/photo = new(null, picture) - field_name = photo - return photo + var/obj/item/photo/new_photo = new(null, picture) + + LAZYSET(record_photos, field_name, new_photo) + return new_photo /// Returns a paper printout of the current record's crime data. /datum/record/crew/proc/get_rapsheet(alias, header = "Rapsheet", description = "No further details.") diff --git a/code/datums/ruins/lavaland.dm b/code/datums/ruins/lavaland.dm index b0d73d36a919..63b43b702000 100644 --- a/code/datums/ruins/lavaland.dm +++ b/code/datums/ruins/lavaland.dm @@ -56,6 +56,11 @@ allow_duplicates = FALSE always_place = TRUE +/datum/map_template/ruin/lavaland/ash_walker/New() + if(rand(50)) + suffix = "lavaland_surface_ash_walker2.dmm" + . = ..() + /datum/map_template/ruin/lavaland/syndicate_base name = "Syndicate Lava Base" id = "lava-base" diff --git a/code/datums/status_effects/debuffs/drunk.dm b/code/datums/status_effects/debuffs/drunk.dm index cab2e31f9e56..026577fdc972 100644 --- a/code/datums/status_effects/debuffs/drunk.dm +++ b/code/datums/status_effects/debuffs/drunk.dm @@ -135,6 +135,7 @@ owner.apply_status_effect(/datum/status_effect/inebriated/tipsy, drunk_value) /datum/status_effect/inebriated/drunk/on_tick_effects() + var/is_alcoholic = HAS_TRAIT(owner, TRAIT_ALCOHOL_TOLERANCE) // monkestation edit: alcoholism // Handle the Ballmer Peak. // If our owner is a scientist (has the trait "TRAIT_BALLMER_SCIENTIST"), there's a 5% chance // that they'll say one of the special "ballmer message" lines, depending their drunk-ness level. @@ -146,17 +147,14 @@ if(drunk_value > BALLMER_PEAK_WINDOWS_ME) // by this point you're into windows ME territory owner.say(pick_list_replacements(VISTA_FILE, "ballmer_windows_me_msg"), forced = "ballmer") - // There's always a 30% chance to gain some drunken slurring - if(prob(30)) - owner.adjust_slurring(4 SECONDS) + // Drunk slurring scales in intensity based on how drunk we are -at 16 you will likely not even notice it, + // but when we start to scale up you definitely will + if(drunk_value >= 16) + owner.adjust_timed_status_effect(4 SECONDS, /datum/status_effect/speech/slurring/drunk, max_duration = 20 SECONDS) // And drunk people will always lose jitteriness owner.adjust_jitter(-6 SECONDS) - // Over 11, we will constantly gain slurring up to 10 seconds of slurring. - if(drunk_value >= 11) - owner.adjust_slurring_up_to(2.4 SECONDS, 10 SECONDS) - // Over 41, we have a 30% chance to gain confusion, and we will always have 20 seconds of dizziness. if(drunk_value >= 41) if(prob(30)) @@ -178,26 +176,27 @@ owner.set_eye_blur_if_lower((drunk_value * 2 SECONDS) - 140 SECONDS) // Over 81, we will gain constant toxloss - if(drunk_value >= 81) + if(!is_alcoholic && drunk_value >= 81) // monkestation edit: alcoholism owner.adjustToxLoss(1) if(owner.stat == CONSCIOUS && prob(5)) to_chat(owner, span_warning("Maybe you should lie down for a bit...")) // Over 91, we gain even more toxloss, brain damage, and have a chance of dropping into a long sleep if(drunk_value >= 91) - owner.adjustToxLoss(1) - owner.adjustOrganLoss(ORGAN_SLOT_BRAIN, 0.4) - if(owner.stat == CONSCIOUS && prob(20)) + if(!is_alcoholic) // monkestation edit: alcoholism + owner.adjustToxLoss(1) + owner.adjustOrganLoss(ORGAN_SLOT_BRAIN, 0.4) + if(owner.stat == CONSCIOUS && prob(is_alcoholic ? 5 : 20)) // monkestation edit: alcoholism // Don't put us in a deep sleep if the shuttle's here. QoL, mainly. if(SSshuttle.emergency.mode == SHUTTLE_DOCKED && is_station_level(owner.z)) to_chat(owner, span_warning("You're so tired... but you can't miss that shuttle...")) else to_chat(owner, span_warning("Just a quick nap...")) - owner.Sleeping(90 SECONDS) + owner.Sleeping(is_alcoholic ? rand(25 SECONDS, 45 SECONDS) : (90 SECONDS)) // monkestation edit: alcoholism // And finally, over 100 - let's be honest, you shouldn't be alive by now. - if(drunk_value >= 101) + if(!is_alcoholic && drunk_value >= 101) // monkestation edit: alcoholism owner.adjustToxLoss(2) /// Status effect for being fully drunk (not tipsy). diff --git a/code/datums/status_effects/debuffs/speech_debuffs.dm b/code/datums/status_effects/debuffs/speech_debuffs.dm index 7298696bfc1e..2b095bf6047f 100644 --- a/code/datums/status_effects/debuffs/speech_debuffs.dm +++ b/code/datums/status_effects/debuffs/speech_debuffs.dm @@ -191,14 +191,36 @@ return modified_char -/datum/status_effect/speech/slurring/drunk - id = "drunk_slurring" +/datum/status_effect/speech/slurring/generic + id = "generic_slurring" common_prob = 33 - uncommon_prob = 5 + uncommon_prob = 0 replacement_prob = 5 doubletext_prob = 10 text_modification_file = "slurring_drunk_text.json" +/datum/status_effect/speech/slurring/drunk + id = "drunk_slurring" + // These defaults are updated when speech event occur. + common_prob = -1 + uncommon_prob = -1 + replacement_prob = -1 + doubletext_prob = -1 + text_modification_file = "slurring_drunk_text.json" + +/datum/status_effect/speech/slurring/drunk/handle_message(datum/source, list/message_args) + var/current_drunkness = owner.get_drunk_amount() + // These numbers are arbitarily picked + // Common replacements start at about 20, and maxes out at about 85 + common_prob = clamp((current_drunkness * 0.8) - 16, 0, 50) + // Uncommon replacements (burping) start at 50 and max out at 110 (when you are dying) + uncommon_prob = clamp((current_drunkness * 0.2) - 10, 0, 12) + // Replacements start at 20 and max out at about 60 + replacement_prob = clamp((current_drunkness * 0.4) - 8, 0, 12) + // Double texting start out at about 25 and max out at about 60 + doubletext_prob = clamp((current_drunkness * 0.5) - 12, 0, 20) + return ..() + /datum/status_effect/speech/slurring/cult id = "cult_slurring" common_prob = 50 diff --git a/code/datums/storage/storage.dm b/code/datums/storage/storage.dm index 2106ae9cc652..01a37b4c80c6 100644 --- a/code/datums/storage/storage.dm +++ b/code/datums/storage/storage.dm @@ -31,7 +31,7 @@ /// list of all the mobs currently viewing the contents var/list/is_using = list() - var/locked = FALSE + var/locked = STORAGE_NOT_LOCKED /// whether or not we should open when clicked var/attack_hand_interact = TRUE /// whether or not we allow storage objects of the same size inside @@ -314,7 +314,7 @@ GLOBAL_LIST_EMPTY(cached_storage_typecaches) * @param messages if TRUE, will print out a message if the item is not valid * @param force bypass locked storage */ -/datum/storage/proc/can_insert(obj/item/to_insert, mob/user, messages = TRUE, force = FALSE) +/datum/storage/proc/can_insert(obj/item/to_insert, mob/user, messages = TRUE, force = STORAGE_NOT_LOCKED) var/obj/item/resolve_parent = parent?.resolve() if(!resolve_parent) return @@ -329,7 +329,7 @@ GLOBAL_LIST_EMPTY(cached_storage_typecaches) if(!isitem(to_insert)) return FALSE - if(locked && !force) + if(locked > force) return FALSE if((to_insert == resolve_parent) || (to_insert == real_location)) diff --git a/code/datums/storage/subtypes/surgery_tray.dm b/code/datums/storage/subtypes/surgery_tray.dm new file mode 100644 index 000000000000..358865813188 --- /dev/null +++ b/code/datums/storage/subtypes/surgery_tray.dm @@ -0,0 +1,22 @@ +/datum/storage/surgery_tray + max_total_storage = 30 + max_specific_storage = WEIGHT_CLASS_NORMAL + max_slots = 14 + +/datum/storage/surgery_tray/New() + . = ..() + set_holdable(list( + /obj/item/blood_filter, + /obj/item/bonesetter, + /obj/item/cautery, + /obj/item/circular_saw, + /obj/item/clothing/mask/surgical, + /obj/item/hemostat, + /obj/item/razor, + /obj/item/retractor, + /obj/item/scalpel, + /obj/item/stack/medical/bone_gel, + /obj/item/stack/sticky_tape/surgical, + /obj/item/surgical_drapes, + /obj/item/surgicaldrill, + )) diff --git a/code/datums/weather/weather_types/ash_storm.dm b/code/datums/weather/weather_types/ash_storm.dm index 07ca88982185..1a5bd69d2a04 100644 --- a/code/datums/weather/weather_types/ash_storm.dm +++ b/code/datums/weather/weather_types/ash_storm.dm @@ -77,11 +77,21 @@ for(var/turf/open/misc/asteroid/basalt/basalt as anything in GLOB.dug_up_basalt) if(!(basalt.loc in impacted_areas) || !(basalt.z in impacted_z_levels)) continue - GLOB.dug_up_basalt -= basalt - basalt.dug = FALSE - basalt.icon_state = "[basalt.base_icon_state]" - if(prob(basalt.floor_variance)) - basalt.icon_state += "[rand(0,12)]" + basalt.refill_dug() + +///Refills the previously dug tile +/turf/open/misc/asteroid/proc/refill_dug() + dug = FALSE + icon_state = base_icon_state + if(has_floor_variance && prob(floor_variance)) + icon_state = "[base_icon_state][rand(0,12)]" + update_appearance() + +/turf/open/misc/asteroid/basalt/refill_dug() + . = ..() + GLOB.dug_up_basalt -= src + set_basalt_light(src) + //Emberfalls are the result of an ash storm passing by close to the playable area of lavaland. They have a 10% chance to trigger in place of an ash storm. /datum/weather/ash_storm/emberfall diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 0b6f83a220b6..4c1dfd909545 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -1630,6 +1630,14 @@ act_result = is_left_clicking ? welder_act(user, tool) : welder_act_secondary(user, tool) if(TOOL_ANALYZER) act_result = is_left_clicking ? analyzer_act(user, tool) : analyzer_act_secondary(user, tool) + if(TOOL_BILLOW) + act_result = is_left_clicking ? billow_act(user, tool) : billow_act_secondary(user, tool) + if(TOOL_TONG) + act_result = is_left_clicking ? tong_act(user, tool) : tong_act_secondary(user, tool) + if(TOOL_HAMMER) + act_result = is_left_clicking ? hammer_act(user, tool) : hammer_act_secondary(user, tool) + if(TOOL_BLOWROD) + act_result = is_left_clicking ? blowrod_act(user, tool) : blowrod_act_secondary(user, tool) if(!act_result) return diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm index a810084770ea..169d1ca95319 100644 --- a/code/game/gamemodes/objective.dm +++ b/code/game/gamemodes/objective.dm @@ -148,6 +148,7 @@ GLOBAL_LIST(admin_objective_list) //Prefilled admin assignable objective list var/datum/mind/O = I if(O.late_joiner) try_target_late_joiners = TRUE + var/opt_in_disabled = CONFIG_GET(flag/disable_antag_opt_in_preferences) for(var/datum/mind/possible_target in get_crewmember_minds()) if(possible_target in owners) continue @@ -157,6 +158,8 @@ GLOBAL_LIST(admin_objective_list) //Prefilled admin assignable objective list continue if(!is_valid_target(possible_target)) continue + if (!opt_in_disabled && !opt_in_valid(possible_target)) + continue possible_targets += possible_target if(try_target_late_joiners) var/list/all_possible_targets = possible_targets.Copy() @@ -830,7 +833,12 @@ GLOBAL_LIST_EMPTY(possible_items) /datum/objective/destroy/find_target(dupe_search_range, list/blacklist) var/list/possible_targets = active_ais(TRUE) possible_targets -= blacklist - var/mob/living/silicon/ai/target_ai = pick(possible_targets) + var/mob/living/silicon/ai/target_ai + var/opt_in_disabled = CONFIG_GET(flag/disable_antag_opt_in_preferences) // NOVA EDIT ADDITION - ANTAG OPT-IN + for (var/mob/living/silicon/ai/possible_target as anything in shuffle(possible_targets)) + if (!opt_in_disabled && !opt_in_valid(possible_target)) + continue + target_ai = possible_target target = target_ai.mind update_explanation_text() return target diff --git a/code/game/machinery/_machinery.dm b/code/game/machinery/_machinery.dm index d3aa41fa3d15..b0bcd4570fa1 100644 --- a/code/game/machinery/_machinery.dm +++ b/code/game/machinery/_machinery.dm @@ -188,11 +188,7 @@ /obj/machinery/LateInitialize() . = ..() - power_change() - if(use_power == NO_POWER_USE) - return - update_current_power_usage() - setup_area_power_relationship() + post_machine_initialize() /obj/machinery/Destroy() GLOB.machines.Remove(src) @@ -211,6 +207,21 @@ unset_static_power() return ..() +/** + * Called in LateInitialize meant to be the machine replacement to it + * This sets up power for the machine and requires parent be called, + * ensuring power works on all machines unless exempted with NO_POWER_USE. + * This is the proc to override if you want to do anything in LateInitialize. + */ +/obj/machinery/proc/post_machine_initialize() + SHOULD_CALL_PARENT(TRUE) + power_change() + if(use_power == NO_POWER_USE) + return + update_current_power_usage() + setup_area_power_relationship() + + /** * proc to call when the machine starts to require power after a duration of not requiring power * sets up power related connections to its area if it exists and becomes area sensitive @@ -913,6 +924,7 @@ wrench.play_tool_sound(src, 50) setDir(turn(dir,-90)) to_chat(user, span_notice("You rotate [src].")) + SEND_SIGNAL(src, COMSIG_MACHINERY_DEFAULT_ROTATE_WRENCH, user, wrench) return TRUE /obj/machinery/proc/exchange_parts(mob/user, obj/item/storage/part_replacer/replacer_tool) diff --git a/code/game/machinery/computer/records/records.dm b/code/game/machinery/computer/records/records.dm index 2a230de5ea9f..aa04bb1bc0e7 100644 --- a/code/game/machinery/computer/records/records.dm +++ b/code/game/machinery/computer/records/records.dm @@ -22,6 +22,7 @@ . = ..() if(.) return + var/mob/user = ui.user var/datum/record/crew/target if(params["crew_ref"]) @@ -35,6 +36,7 @@ return FALSE var/value = trim(params["value"], MAX_BROADCAST_LEN) + investigate_log("[key_name(user)] changed the field: \"[field]\" with value: \"[target.vars[field]]\" to new value: \"[value || "Unknown"]\"", INVESTIGATE_RECORDS) target.vars[field] = value || "Unknown" return TRUE @@ -44,33 +46,56 @@ return FALSE // Don't let people off station futz with the station network. if(!is_station_level(z)) - balloon_alert(usr, "out of range!") + balloon_alert(user, "out of range!") return TRUE expunge_record_info(target) - balloon_alert(usr, "record expunged") + balloon_alert(user, "record expunged") playsound(src, 'sound/machines/terminal_eject.ogg', 70, TRUE) - investigate_log("[key_name(usr)] expunged the record of [target.name].", INVESTIGATE_RECORDS) + investigate_log("[key_name(user)] expunged the record of [target.name].", INVESTIGATE_RECORDS) return TRUE if("login") - authenticated = secure_login(usr) + authenticated = secure_login(user) + investigate_log("[key_name(user)] [authenticated ? "successfully logged" : "failed to log"] into the [src].", INVESTIGATE_RECORDS) return TRUE if("logout") - balloon_alert(usr, "logged out") + balloon_alert(user, "logged out") playsound(src, 'sound/machines/terminal_off.ogg', 70, TRUE) authenticated = FALSE return TRUE + if("purge_records") + // Don't let people off station futz with the station network. + if(!is_station_level(z)) + balloon_alert(user, "out of range!") + return TRUE + + ui.close() + balloon_alert(user, "purging records...") + playsound(src, 'sound/machines/terminal_alert.ogg', 70, TRUE) + + if(do_after(user, 5 SECONDS)) + for(var/datum/record/crew/entry in GLOB.manifest.general) + expunge_record_info(entry) + + balloon_alert(user, "records purged") + playsound(src, 'sound/machines/terminal_off.ogg', 70, TRUE) + investigate_log("[key_name(user)] purged all records.", INVESTIGATE_RECORDS) + else + balloon_alert(user, "interrupted!") + + return TRUE + if("view_record") if(!target) return FALSE playsound(src, "sound/machines/terminal_button0[rand(1, 8)].ogg", 50, TRUE) - update_preview(usr, params["assigned_view"], target) + update_preview(user, params["assigned_view"], target) return TRUE return FALSE diff --git a/code/game/machinery/computer/records/security.dm b/code/game/machinery/computer/records/security.dm index 9d78cfdca5ec..94dbbf7b4c92 100644 --- a/code/game/machinery/computer/records/security.dm +++ b/code/game/machinery/computer/records/security.dm @@ -146,6 +146,8 @@ if(.) return + var/mob/user = ui.user + var/datum/record/crew/target if(params["crew_ref"]) target = locate(params["crew_ref"]) in GLOB.manifest.general @@ -154,28 +156,30 @@ switch(action) if("add_crime") - add_crime(usr, target, params) + add_crime(user, target, params) return TRUE if("delete_record") + investigate_log("[user] deleted record: \"[target]\".", INVESTIGATE_RECORDS) qdel(target) return TRUE if("edit_crime") - edit_crime(usr, target, params) + edit_crime(user, target, params) return TRUE if("invalidate_crime") - invalidate_crime(usr, target, params) + invalidate_crime(user, target, params) return TRUE if("print_record") - print_record(usr, target, params) + print_record(user, target, params) return TRUE if("set_note") - var/note = params["note"] - target.security_note = trim(note, MAX_MESSAGE_LEN) + var/note = trim(params["note"], MAX_MESSAGE_LEN) + investigate_log("[user] has changed the security note of record: \"[target]\" from \"[target.security_note]\" to \"[note]\".") + target.security_note = note return TRUE if("set_wanted") @@ -305,7 +309,7 @@ /// Handles printing records via UI. Takes the params from UI_act. /obj/machinery/computer/records/security/proc/print_record(mob/user, datum/record/crew/target, list/params) if(printing) - balloon_alert(usr, "printer busy") + balloon_alert(user, "printer busy") playsound(src, 'sound/machines/terminal_error.ogg', 100, TRUE) return FALSE diff --git a/code/game/machinery/digital_clock.dm b/code/game/machinery/digital_clock.dm new file mode 100644 index 000000000000..1ad8d52da2f1 --- /dev/null +++ b/code/game/machinery/digital_clock.dm @@ -0,0 +1,158 @@ +/obj/machinery/digital_clock + name = "digital clock" + desc = "An ultra-futuristic, sleek, advanced, next-gen normal digital clock that tells the time. Powered by bluespace. Despite supposedly being better in every way to classic clocks, it just doesn't feel the same. They just don't make them the way they used to..." + icon_state = "digital_clock_base" + icon = 'icons/obj/digital_clock.dmi' + verb_say = "beeps" + verb_ask = "bloops" + verb_exclaim = "blares" + density = FALSE + layer = ABOVE_WINDOW_LAYER + custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 7, /datum/material/glass = SHEET_MATERIAL_AMOUNT * 4) + +/obj/item/wallframe/digital_clock + name = "digital clock frame" + desc = "Used to build digital clocks, just secure to the wall." + icon_state = "digital_clock_base" + icon = 'icons/obj/digital_clock.dmi' + custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 7, /datum/material/glass = SHEET_MATERIAL_AMOUNT * 4) + result_path = /obj/machinery/digital_clock + pixel_shift = 28 + +/obj/machinery/digital_clock/wrench_act_secondary(mob/living/user, obj/item/tool) + . = ..() + balloon_alert(user, "[anchored ? "un" : ""]securing...") + tool.play_tool_sound(src) + if(tool.use_tool(src, user, 6 SECONDS)) + playsound(loc, 'sound/items/deconstruct.ogg', 50, vary = TRUE) + balloon_alert(user, "[anchored ? "un" : ""]secured") + deconstruct() + return TRUE + +/obj/machinery/digital_clock/welder_act(mob/living/user, obj/item/tool) + if(user.istate & ISTATE_HARM) + return + if(atom_integrity >= max_integrity) + balloon_alert(user, "it doesn't need repairs!") + return TRUE + balloon_alert(user, "repairing display...") + if(!tool.use_tool(src, user, 4 SECONDS, amount = 0, volume=50)) + return TRUE + balloon_alert(user, "repaired") + atom_integrity = max_integrity + set_machine_stat(machine_stat & ~BROKEN) + update_appearance() + return TRUE + +/obj/machinery/digital_clock/multitool_act(mob/living/user, obj/item/tool) + if(user.istate & ISTATE_HARM) + return + if(!(obj_flags & EMAGGED)) + return + balloon_alert(user, "resetting...") + tool.play_tool_sound(src) + if(tool.use_tool(src, user, 6 SECONDS)) + playsound(loc, 'sound/items/deconstruct.ogg', 50, vary = TRUE) + balloon_alert(user, "reset") + obj_flags &= ~EMAGGED + return TRUE + +/obj/machinery/digital_clock/emag_act(mob/user) + if(obj_flags & EMAGGED) + return + playsound(src, SFX_SPARKS, 100, vary = TRUE, extrarange = SHORT_RANGE_SOUND_EXTRARANGE) + do_sparks(3, cardinal_only = FALSE, source = src) + obj_flags |= EMAGGED + +/obj/machinery/digital_clock/emp_act(severity) + . = ..() + emag_act() + +/obj/machinery/digital_clock/deconstruct(disassembled = TRUE) + if(flags_1 & NODECONSTRUCT_1) + return + if(disassembled) + new /obj/item/wallframe/digital_clock(drop_location()) + else + new /obj/item/stack/sheet/iron(drop_location(), 2) + new /obj/item/shard(drop_location()) + new /obj/item/shard(drop_location()) + qdel(src) + +/obj/machinery/digital_clock/Initialize(mapload) + . = ..() + START_PROCESSING(SSdigital_clock, src) + +/obj/machinery/digital_clock/Destroy() + STOP_PROCESSING(SSdigital_clock, src) + return ..() + +/obj/machinery/digital_clock/process(seconds_per_tick) + if(machine_stat & NOPOWER) + return + update_appearance() + + +/obj/machinery/digital_clock/update_appearance(updates=ALL) + . = ..() + if(machine_stat & (NOPOWER|BROKEN)) + set_light(0) + return + set_light(l_outer_range = 1.5, l_power = 0.7, l_color = LIGHT_COLOR_BLUE) // blue light + +/obj/machinery/digital_clock/update_overlays() + . = ..() + + if(machine_stat & (NOPOWER|BROKEN)) + return + . += update_time() + return . + +/obj/machinery/digital_clock/proc/update_time() + var/station_minutes + if(obj_flags & EMAGGED) + station_minutes = rand(0, 99) + else + station_minutes = text2num(station_time_timestamp(format = "mm")) + + // tenth / the '3' in '31' / 31 -> 3.1 -> 3 + var/station_minute_tenth = station_minutes >= 10 ? round(station_minutes * 0.1) : 0 + // one / the '1' in '31' / 31 -> 31 - (3 * 10) -> 31 - 30 -> 1 + var/station_minute_one = station_minutes - (station_minute_tenth * 10) + + var/station_hours + + if(obj_flags & EMAGGED) + station_hours = rand(0, 99) + else + station_hours = text2num(station_time_timestamp(format = "hh")) + + // one / the '1' in '12' / 12 -> 1.2 -> 1 + var/station_hours_tenth = station_minutes >= 10 ? round(station_hours * 0.1) : 0 + // tenth / the '2' in '12' / 12 -> 12 - (1 * 10) -> 12 - 10 -> 2 + var/station_hours_one = station_hours - (station_hours_tenth * 10) + + var/return_overlays = list() + + var/mutable_appearance/minute_one_overlay = mutable_appearance('icons/obj/digital_clock.dmi', "+[station_minute_one]") + minute_one_overlay.pixel_w = 0 + return_overlays += minute_one_overlay + + var/mutable_appearance/minute_tenth_overlay = mutable_appearance('icons/obj/digital_clock.dmi', "+[station_minute_tenth]") + minute_tenth_overlay.pixel_w = -4 + return_overlays += minute_tenth_overlay + + var/mutable_appearance/separator = mutable_appearance('icons/obj/digital_clock.dmi', "+separator") + return_overlays += separator + + var/mutable_appearance/hour_one_overlay = mutable_appearance('icons/obj/digital_clock.dmi', "+[station_hours_one]") + hour_one_overlay.pixel_w = -10 + return_overlays += hour_one_overlay + + var/mutable_appearance/hour_tenth_overlay = mutable_appearance('icons/obj/digital_clock.dmi', "+[station_hours_tenth]") + hour_tenth_overlay.pixel_w = -14 + return_overlays += hour_tenth_overlay + + return return_overlays + +MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/digital_clock, 28) diff --git a/code/game/machinery/dish_drive.dm b/code/game/machinery/dish_drive.dm index 4802cb63094e..1b558664798a 100644 --- a/code/game/machinery/dish_drive.dm +++ b/code/game/machinery/dish_drive.dm @@ -9,21 +9,37 @@ density = FALSE circuit = /obj/item/circuitboard/machine/dish_drive pass_flags = PASSTABLE - var/static/list/collectable_items = list(/obj/item/trash/waffles, - /obj/item/trash/tray, + /// List of dishes the drive can hold + var/list/collectable_items = list(/obj/item/trash/waffles, // NOVA EDIT CHANGE - non-static list + /obj/item/trash/waffles, + /obj/item/broken_bottle, + /obj/item/kitchen/fork, + /obj/item/plate, + /obj/item/plate_shard, /obj/item/reagent_containers/cup/bowl, /obj/item/reagent_containers/cup/glass/drinkingglass, - /obj/item/kitchen/fork, /obj/item/shard, - /obj/item/broken_bottle) - var/static/list/disposable_items = list(/obj/item/trash/waffles, /obj/item/trash/tray, + ) + /// List of items the drive detects as trash + var/static/list/disposable_items = list(/obj/item/trash/waffles, + /obj/item/trash/waffles, + /obj/item/broken_bottle, + /obj/item/plate_shard, /obj/item/shard, - /obj/item/broken_bottle) - var/time_since_dishes = 0 + /obj/item/trash/tray, + ) + /// Can this suck up dishes? var/suction_enabled = TRUE + /// Does this automatically dispose of trash? var/transmit_enabled = TRUE + /// List of dishes currently inside var/list/dish_drive_contents + /// Distance this is capable of sucking dishes up over. (2 + servo tier) + var/suck_distance = 0 + var/binrange = 7 + + COOLDOWN_DECLARE(time_since_dishes) /obj/machinery/dish_drive/Initialize(mapload) . = ..() @@ -33,41 +49,63 @@ . = ..() if(user.Adjacent(src)) . += span_notice("Alt-click it to beam its contents to any nearby disposal bins.") + if(!LAZYLEN(dish_drive_contents)) + . += "[src] is empty!" + return + // Makes a list of all dishes in the drive, as well as what dish will be taken out next. + var/list/dish_list = list() + // All the types in our list + var/list/dish_types = list() + for(var/obj/dish in dish_drive_contents) + dish_types[dish.type] += 1 + for(var/dish_path in unique_list(dish_types)) + // Counts our dish + var/dish_amount = dish_types[dish_path] + // Handles plurals + var/obj/dish = dish_path + var/dish_name = dish_amount == 1 ? initial(dish.name) : "[initial(dish.name)][plural_s(initial(dish.name))]" + dish_list += list("[dish_amount] [dish_name]") + + . += span_info("It contains [english_list(dish_list)].\n[peek(dish_drive_contents)] is at the top of the pile.") /obj/machinery/dish_drive/attack_hand(mob/living/user, list/modifiers) . = ..() if(!LAZYLEN(dish_drive_contents)) - to_chat(user, span_warning("There's nothing in [src]!")) + balloon_alert(user, "drive empty") return - var/obj/item/I = LAZYACCESS(dish_drive_contents, LAZYLEN(dish_drive_contents)) //the most recently-added item - LAZYREMOVE(dish_drive_contents, I) - user.put_in_hands(I) - to_chat(user, span_notice("You take out [I] from [src].")) + var/obj/item/dish = LAZYACCESS(dish_drive_contents, LAZYLEN(dish_drive_contents)) //the most recently-added item + LAZYREMOVE(dish_drive_contents, dish) + user.put_in_hands(dish) + balloon_alert(user, "[dish] taken") playsound(src, 'sound/items/pshoom.ogg', 50, TRUE) flick("synthesizer_beam", src) /obj/machinery/dish_drive/wrench_act(mob/living/user, obj/item/tool) . = ..() default_unfasten_wrench(user, tool) - return TOOL_ACT_TOOLTYPE_SUCCESS + return -/obj/machinery/dish_drive/attackby(obj/item/I, mob/living/user, params) - if(is_type_in_list(I, collectable_items) && !(user.istate & ISTATE_HARM)) - if(!user.transferItemToLoc(I, src)) +/obj/machinery/dish_drive/attackby(obj/item/dish, mob/living/user, params) + if(is_type_in_list(dish, collectable_items) && !(user.istate & ISTATE_HARM)) + if(!user.transferItemToLoc(dish, src)) return - LAZYADD(dish_drive_contents, I) - to_chat(user, span_notice("You put [I] in [src], and it's beamed into energy!")) + LAZYADD(dish_drive_contents, dish) + balloon_alert(user, "[dish] placed in drive") playsound(src, 'sound/items/pshoom.ogg', 50, TRUE) flick("synthesizer_beam", src) return - else if(default_deconstruction_screwdriver(user, "[initial(icon_state)]-o", initial(icon_state), I)) + else if(default_deconstruction_screwdriver(user, "[initial(icon_state)]-o", initial(icon_state), dish)) return - else if(default_deconstruction_crowbar(I, FALSE)) + else if(default_deconstruction_crowbar(dish, FALSE)) return ..() /obj/machinery/dish_drive/RefreshParts() . = ..() + suck_distance = 0 + for(var/datum/stock_part/manipulator/servo in component_parts) + suck_distance = servo.tier + // Lowers power use for total tier var/total_rating = 0 for(var/datum/stock_part/stock_part in component_parts) total_rating += stock_part.tier @@ -76,53 +114,55 @@ else update_mode_power_usage(IDLE_POWER_USE, max(0, initial(idle_power_usage) - total_rating)) update_mode_power_usage(ACTIVE_POWER_USE, max(0, initial(active_power_usage) - total_rating)) + // Board options var/obj/item/circuitboard/machine/dish_drive/board = locate() in component_parts if(board) suction_enabled = board.suction transmit_enabled = board.transmit /obj/machinery/dish_drive/process() - if(time_since_dishes <= world.time && transmit_enabled) + if(COOLDOWN_FINISHED(src, time_since_dishes) && transmit_enabled) do_the_dishes() if(!suction_enabled) return - for(var/obj/item/I in view(4, src)) - if(is_type_in_list(I, collectable_items) && I.loc != src && (!I.reagents || !I.reagents.total_volume)) - if(I.Adjacent(src)) - LAZYADD(dish_drive_contents, I) - visible_message(span_notice("[src] beams up [I]!")) - I.forceMove(src) + + for(var/obj/item/dish in view(2 + suck_distance, src)) + if(is_type_in_list(dish, collectable_items) && dish.loc != src && (!dish.reagents || !dish.reagents.total_volume) && (dish.contents.len < 1)) + if(dish.Adjacent(src)) + LAZYADD(dish_drive_contents, dish) + visible_message(span_notice("[src] beams up [dish]!")) + dish.forceMove(src) playsound(src, 'sound/items/pshoom.ogg', 50, TRUE) flick("synthesizer_beam", src) else - step_towards(I, src) + step_towards(dish, src) /obj/machinery/dish_drive/attack_ai(mob/living/user) if(machine_stat) return - to_chat(user, span_notice("You send a disposal transmission signal to [src].")) + balloon_alert(user, "disposal signal sent") do_the_dishes(TRUE) /obj/machinery/dish_drive/AltClick(mob/living/user) - if(user.can_perform_action(src, ALLOW_SILICON_REACH)) - do_the_dishes(TRUE) + do_the_dishes(TRUE) + return /obj/machinery/dish_drive/proc/do_the_dishes(manual) if(!LAZYLEN(dish_drive_contents)) if(manual) visible_message(span_notice("[src] is empty!")) return - var/obj/machinery/disposal/bin/bin = locate() in view(7, src) + var/obj/machinery/disposal/bin/bin = locate() in view(binrange, src) //NOVA EDIT CHANGE if(!bin) if(manual) visible_message(span_warning("[src] buzzes. There are no disposal bins in range!")) playsound(src, 'sound/machines/buzz-sigh.ogg', 50, TRUE) return var/disposed = 0 - for(var/obj/item/I in dish_drive_contents) - if(is_type_in_list(I, disposable_items)) - LAZYREMOVE(dish_drive_contents, I) - I.forceMove(bin) + for(var/obj/item/dish in dish_drive_contents) + if(is_type_in_list(dish, disposable_items)) + LAZYREMOVE(dish_drive_contents, dish) + dish.forceMove(bin) use_power(active_power_usage) disposed++ if (disposed) @@ -133,5 +173,7 @@ bin.update_appearance() flick("synthesizer_beam", src) else - visible_message(span_notice("There are no disposable items in [src]!")) - time_since_dishes = world.time + 600 + if(manual) + visible_message(span_notice("There are no disposable items in [src]!")) + return + COOLDOWN_START(src, time_since_dishes, 1 MINUTES) diff --git a/code/game/machinery/incident_display.dm b/code/game/machinery/incident_display.dm new file mode 100644 index 000000000000..45e826ad82d9 --- /dev/null +++ b/code/game/machinery/incident_display.dm @@ -0,0 +1,374 @@ +GLOBAL_LIST_EMPTY(map_delamination_counters) + +/// Display days since last delam on incident sign +#define DISPLAY_DELAM (1<<0) +/// Display current number of tram hits on incident sign +#define DISPLAY_TRAM (1<<1) + +DEFINE_BITFIELD(sign_features, list( + "DISPLAY_DELAM" = DISPLAY_DELAM, + "DISPLAY_TRAM" = DISPLAY_TRAM, +)) + +#define TREND_RISING "rising" +#define TREND_FALLING "falling" + +#define NAME_DUAL "safety incident display" +#define NAME_DELAM "delamination incident display" +#define NAME_TRAM "tram incident display" + +#define DESC_DUAL "A display that provides information on the station's safety record. Features an advert for SAFETY MOTH." +#define DESC_DELAM "A signs describe how long it's been since the last delamination incident. Features an advert for SAFETY MOTH." +#define DESC_TRAM "A display that provides the number of tram related safety incidents this shift. Features an advert for SAFETY MOTH." + +/** + * List of safety statistic signs on the map that have delam counting enabled. + * Required as persistence subsystem loads after the ones present at mapload, and to reset to 0 upon explosion. + */ + +/obj/machinery/incident_display + name = NAME_DELAM + desc = DESC_DELAM + icon = 'icons/obj/machines/incident_display.dmi' + icon_preview = "stat_display_delam" + icon_state = "stat_display_delam" + verb_say = "beeps" + verb_ask = "bloops" + verb_exclaim = "blares" + idle_power_usage = 450 + max_integrity = 150 + integrity_failure = 0.75 + custom_materials = list(/datum/material/titanium = SHEET_MATERIAL_AMOUNT * 4, /datum/material/alloy/titaniumglass = SHEET_MATERIAL_AMOUNT * 4) + /// What statistics we want the sign to display + var/sign_features = DISPLAY_DELAM + /// Tram hits before hazard warning + var/hit_threshold = 0 + /// Tram hits + var/hit_count = 0 + /// Shifts without delam + var/last_delam = 0 + /// Delam record high-score + var/delam_record = 0 + +/obj/machinery/incident_display/dual + name = NAME_DUAL + desc = DESC_DUAL + icon_preview = "stat_display_dual" + icon_state = "stat_display_dual" + sign_features = DISPLAY_DELAM | DISPLAY_TRAM + +/obj/machinery/incident_display/delam + name = NAME_DELAM + desc = DESC_DELAM + icon_preview = "stat_display_delam" + icon_state = "stat_display_delam" + sign_features = DISPLAY_DELAM + +/obj/machinery/incident_display/tram + name = NAME_TRAM + desc = DESC_TRAM + icon_preview = "stat_display_tram" + icon_state = "stat_display_tram" + sign_features = DISPLAY_TRAM + +MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/incident_display, 32) +MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/incident_display/delam, 32) +MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/incident_display/dual, 32) +MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/incident_display/tram, 32) + +/obj/machinery/incident_display/Initialize(mapload) + ..() + return INITIALIZE_HINT_LATELOAD + +/obj/machinery/incident_display/LateInitialize() + . = ..() + GLOB.map_delamination_counters += src + update_delam_count(SSpersistence.rounds_since_engine_exploded, SSpersistence.delam_highscore) + for(var/obj/structure/industrial_lift/tram/tram as anything in GLOB.lifts) + RegisterSignal(tram, COMSIG_TRAM_COLLISION, PROC_REF(update_tram_count)) + + update_appearance() + +/obj/machinery/incident_display/Destroy() + GLOB.map_delamination_counters -= src + return ..() + +/obj/machinery/incident_display/welder_act(mob/living/user, obj/item/tool) + if(user.istate & ISTATE_HARM) + return FALSE + + if(atom_integrity >= max_integrity && !(machine_stat & BROKEN)) + balloon_alert(user, "it doesn't need repairs!") + return TRUE + + balloon_alert(user, "repairing display...") + if(!tool.use_tool(src, user, 4 SECONDS, amount = 0, volume=50)) + return TRUE + + balloon_alert(user, "repaired") + atom_integrity = max_integrity + set_machine_stat(machine_stat & ~BROKEN) + update_appearance() + return TRUE + +// Switch modes with multitool +/obj/machinery/incident_display/multitool_act(mob/living/user, obj/item/tool) + if(user.istate & ISTATE_HARM) + return FALSE + + if(sign_features == DISPLAY_TRAM) + tool.play_tool_sound(src) + balloon_alert(user, "set to dual") + name = NAME_DUAL + desc = DESC_DUAL + icon_state = "stat_display_dual" + sign_features = DISPLAY_DELAM | DISPLAY_TRAM + update_delam_count(SSpersistence.rounds_since_engine_exploded, SSpersistence.delam_highscore) + update_tram_count(src, SSpersistence.tram_hits_this_round) + update_appearance() + return TRUE + else if(sign_features == DISPLAY_DELAM) + tool.play_tool_sound(src) + balloon_alert(user, "set to tram") + name = NAME_TRAM + desc = DESC_TRAM + icon_state = "stat_display_tram" + sign_features = DISPLAY_TRAM + update_tram_count(src, SSpersistence.tram_hits_this_round) + update_appearance() + return TRUE + else if(sign_features == (DISPLAY_DELAM + DISPLAY_TRAM)) + tool.play_tool_sound(src) + balloon_alert(user, "set to delam") + name = NAME_DELAM + desc = DESC_DELAM + icon_state = "stat_display_delam" + sign_features = DISPLAY_DELAM + update_delam_count(SSpersistence.rounds_since_engine_exploded, SSpersistence.delam_highscore) + update_appearance() + return TRUE + +// EMP causes the display to display random numbers or outright break. +/obj/machinery/incident_display/emp_act(severity) + . = ..() + if(prob(50)) + set_machine_stat(machine_stat | BROKEN) + update_appearance() + return + name = NAME_DUAL + desc = DESC_DUAL + icon_state = "stat_display_dual" + sign_features = DISPLAY_DELAM | DISPLAY_TRAM + hit_threshold = rand(1,99) + hit_count = rand(1,99) + last_delam = rand(1,99) + delam_record = rand(1,99) + update_appearance() + +/obj/machinery/incident_display/deconstruct() + if(flags_1 & NODECONSTRUCT_1) + return + + new /obj/item/stack/sheet/mineral/titanium(drop_location(), 2) + new /obj/item/shard(drop_location()) + new /obj/item/shard(drop_location()) + + qdel(src) + +/obj/machinery/incident_display/proc/update_delam_count(new_count, record) + delam_record = record + last_delam = min(new_count, 199) + update_appearance() + +/obj/machinery/incident_display/proc/update_tram_count(source, tram_collisions) + SIGNAL_HANDLER + + hit_count = min(tram_collisions, 199) + update_appearance() + +/obj/machinery/incident_display/update_appearance(updates=ALL) + . = ..() + if(machine_stat & NOPOWER) + icon_state = "stat_display_blank" + set_light(0) + return + + if(machine_stat & BROKEN) + icon_state = "stat_display_broken" + set_light(l_outer_range = 1.7, l_power = 1.5, l_color = LIGHT_COLOR_DARK_BLUE) + return + + if(sign_features == (DISPLAY_DELAM + DISPLAY_TRAM)) + icon_state = "stat_display_dual" + else if(sign_features == DISPLAY_DELAM) + icon_state = "stat_display_delam" + else if(sign_features == DISPLAY_TRAM) + icon_state = "stat_display_tram" + + set_light(l_outer_range = 1.7, l_power = 1.5, l_color = LIGHT_COLOR_FAINT_BLUE) + +/obj/machinery/incident_display/update_overlays() + . = ..() + if(machine_stat & (NOPOWER|BROKEN)) + return + + var/mutable_appearance/moff_base_emissive = emissive_appearance(icon, "moff_base_emissive", src, alpha = src.alpha) + . += moff_base_emissive + + if(sign_features & DISPLAY_DELAM) + var/mutable_appearance/delam_base_emissive = emissive_appearance(icon, "delam_base_emissive", src, alpha = src.alpha) + var/delam_display_color + . += delam_base_emissive + if(!last_delam) + delam_display_color = LIGHT_COLOR_INTENSE_RED + else + delam_display_color = LIGHT_COLOR_HOLY_MAGIC + + var/delam_pos1 = last_delam % 10 + var/mutable_appearance/delam_pos1_overlay = mutable_appearance(icon, "num_[delam_pos1]") + var/mutable_appearance/delam_pos1_emissive = emissive_appearance(icon, "num_[delam_pos1]_e", src, alpha = src.alpha) + delam_pos1_overlay.color = delam_display_color + delam_pos1_overlay.pixel_w = 9 + delam_pos1_emissive.pixel_w = 9 + delam_pos1_overlay.pixel_z = 4 + delam_pos1_emissive.pixel_z = 4 + . += delam_pos1_overlay + . += delam_pos1_emissive + + var/delam_pos2 = (last_delam / 10) % 10 + var/mutable_appearance/delam_pos2_overlay = mutable_appearance(icon, "num_[delam_pos2]") + var/mutable_appearance/delam_pos2_emissive = emissive_appearance(icon, "num_[delam_pos2]_e", src, alpha = src.alpha) + delam_pos2_overlay.color = delam_display_color + delam_pos2_overlay.pixel_w = 4 + delam_pos2_emissive.pixel_w = 4 + delam_pos2_overlay.pixel_z = 4 + delam_pos2_emissive.pixel_z = 4 + . += delam_pos2_overlay + . += delam_pos2_emissive + + if(last_delam >= 100) + var/mutable_appearance/there_i_fixed_it_overlay = mutable_appearance(icon, "num_100_red") + var/mutable_appearance/there_i_fixed_it_emissive = emissive_appearance(icon, "num_100_red", src, alpha = src.alpha) + . += there_i_fixed_it_overlay + . += there_i_fixed_it_emissive + + if(last_delam == delam_record) + var/mutable_appearance/delam_trend_overlay = mutable_appearance(icon, TREND_RISING) + var/mutable_appearance/delam_trend_emissive = emissive_appearance(icon, "[TREND_RISING]_e", src, alpha = src.alpha) + delam_trend_overlay.color = LIGHT_COLOR_VIVID_GREEN + delam_trend_overlay.pixel_w = 1 + delam_trend_emissive.pixel_w = 1 + delam_trend_overlay.pixel_z = 6 + delam_trend_emissive.pixel_z = 6 + . += delam_trend_overlay + . += delam_trend_emissive + else + var/mutable_appearance/delam_trend_overlay = mutable_appearance(icon, TREND_FALLING) + var/mutable_appearance/delam_trend_emissive = emissive_appearance(icon, "[TREND_FALLING]_e", src, alpha = src.alpha) + delam_trend_overlay.color = LIGHT_COLOR_INTENSE_RED + delam_trend_overlay.pixel_w = 1 + delam_trend_emissive.pixel_w = 1 + delam_trend_overlay.pixel_z = 6 + delam_trend_emissive.pixel_z = 6 + . += delam_trend_overlay + . += delam_trend_emissive + + if(sign_features & DISPLAY_TRAM) + var/mutable_appearance/tram_base_emissive = emissive_appearance(icon, "tram_base_emissive", src, alpha = src.alpha) + var/tram_display_color = LIGHT_COLOR_BABY_BLUE + + var/tram_pos1 = hit_count % 10 + var/mutable_appearance/tram_pos1_overlay = mutable_appearance(icon, "num_[tram_pos1]") + var/mutable_appearance/tram_pos1_emissive = emissive_appearance(icon, "num_[tram_pos1]_e", src, alpha = src.alpha) + . += tram_base_emissive + tram_pos1_overlay.color = tram_display_color + tram_pos1_overlay.pixel_w = 9 + tram_pos1_emissive.pixel_w = 9 + tram_pos1_overlay.pixel_z = -6 + tram_pos1_emissive.pixel_z = -6 + . += tram_pos1_overlay + . += tram_pos1_emissive + + var/tram_pos2 = (hit_count / 10) % 10 + var/mutable_appearance/tram_pos2_overlay = mutable_appearance(icon, "num_[tram_pos2]") + var/mutable_appearance/tram_pos2_emissive = emissive_appearance(icon, "num_[tram_pos2]_e", src, alpha = src.alpha) + tram_pos2_overlay.color = tram_display_color + tram_pos2_overlay.pixel_w = 4 + tram_pos2_emissive.pixel_w = 4 + tram_pos2_overlay.pixel_z = -6 + tram_pos2_emissive.pixel_z = -6 + . += tram_pos2_overlay + . += tram_pos2_emissive + + if(hit_count >= 100) + var/mutable_appearance/there_i_fixed_it_overlay = mutable_appearance(icon, "num_100_blue") + var/mutable_appearance/there_i_fixed_it_emissive = emissive_appearance(icon, "num_100_blue", src, alpha = src.alpha) + . += there_i_fixed_it_overlay + . += there_i_fixed_it_emissive + + if(hit_count > SSpersistence.tram_hits_last_round) + var/mutable_appearance/tram_trend_overlay = mutable_appearance(icon, TREND_RISING) + var/mutable_appearance/tram_trend_emissive = emissive_appearance(icon, "[TREND_RISING]_e", src, alpha = src.alpha) + tram_trend_overlay.color = LIGHT_COLOR_INTENSE_RED + tram_trend_overlay.pixel_w = 1 + tram_trend_emissive.pixel_w = 1 + tram_trend_overlay.pixel_z = -4 + tram_trend_emissive.pixel_z = -4 + . += tram_trend_overlay + . += tram_trend_emissive + else + var/mutable_appearance/tram_trend_overlay = mutable_appearance(icon, TREND_FALLING) + var/mutable_appearance/tram_trend_emissive = emissive_appearance(icon, "[TREND_FALLING]_e", src, alpha = src.alpha) + tram_trend_overlay.color = LIGHT_COLOR_VIVID_GREEN + tram_trend_overlay.pixel_w = 1 + tram_trend_emissive.pixel_w = 1 + tram_trend_overlay.pixel_z = -4 + tram_trend_emissive.pixel_z = -4 + . += tram_trend_overlay + . += tram_trend_emissive + +/obj/machinery/incident_display/examine(mob/user) + . = ..() + + if(sign_features & DISPLAY_DELAM) + . += span_info("It has been [last_delam] shift\s since the last delamination event at this Nanotrasen facility.") + switch (last_delam) + if(0) + . += span_info("In case you didn't notice.
") + if(1) + . += span_info("Let's do better today.
") + if(2 to 5) + . += span_info("There's room for improvement.
") + if(6 to 10) + . += span_info("Good work!
") + if(69) + . += span_info("Nice.
") + else + . += span_info("Incredible!
") + + if(sign_features & DISPLAY_TRAM) + . += span_info("The station has had [hit_count] tram incident\s this shift.") + switch (hit_count) + if(0) + . += span_info("Fantastic! Champions of safety.
") + if(1) + . += span_info("Let's do better tomorrow.
") + if(2 to 5) + . += span_info("There's room for improvement.
") + if(6 to 10) + . += span_info("Good work! Nanotrasen's finest!
") + if(69) + . += span_info("Nice.
") + else + . += span_info("Incredible! You're probably reading this from medbay.
") + +#undef DISPLAY_DELAM +#undef DISPLAY_TRAM + +#undef NAME_DUAL +#undef NAME_DELAM +#undef NAME_TRAM + +#undef DESC_DUAL +#undef DESC_DELAM +#undef DESC_TRAM diff --git a/code/game/machinery/photobooth.dm b/code/game/machinery/photobooth.dm new file mode 100644 index 000000000000..e7ecde80ba40 --- /dev/null +++ b/code/game/machinery/photobooth.dm @@ -0,0 +1,229 @@ +/** + * Photobooth + * A machine used to change occupant's security record photos, working similarly to a + * camera, but doesn't give any physical photo to the user. + * Links to buttons for remote control. + */ +/obj/machinery/photobooth + name = "photobooth" + desc = "A machine with some drapes and a camera, used to update security record photos. Requires Law Office access to use." + icon = 'icons/obj/machines/photobooth.dmi' + icon_state = "booth_open" + base_icon_state = "booth" + state_open = TRUE + circuit = /obj/item/circuitboard/machine/photobooth + light_system = OVERLAY_LIGHT_DIRECTIONAL //Used as a flash here. + light_outer_range = 6 + light_color = COLOR_WHITE + light_power = FLASH_LIGHT_POWER + light_on = FALSE + interaction_flags_atom = INTERACT_ATOM_ATTACK_HAND + req_one_access = list(ACCESS_LAWYER, ACCESS_SECURITY) + ///Boolean on whether we should add a height chart to the underlays of the people we take photos of. + var/add_height_chart = FALSE + ///Boolean on whether the machine is currently busy taking someone's pictures, so you can't start taking pictures while it's working. + var/taking_pictures = FALSE + ///The ID of the photobooth, used to connect it to a button. + var/button_id = "photobooth_machine_default" + +/** + * Security photobooth + * Adds a height chart in the background, used for people you want to evidently stick out as prisoners. + * Good for people you plan on putting in the permabrig. + */ +/obj/machinery/photobooth/security + name = "security photobooth" + desc = "A machine with some drapes and a camera, used to update security record photos. Requires Security access to use, and adds a height chart to the person." + circuit = /obj/item/circuitboard/machine/photobooth/security + req_one_access = list(ACCESS_SECURITY) + color = COLOR_LIGHT_GRAYISH_RED + add_height_chart = TRUE + button_id = "photobooth_machine_security" + +/obj/machinery/photobooth/Initialize(mapload) + . = ..() + register_context() + +/obj/machinery/photobooth/interact(mob/living/user, list/modifiers) + . = ..() + if(taking_pictures) + balloon_alert(user, "machine busy!") + return + if(state_open) + close_machine() + else + open_machine() + +/obj/machinery/photobooth/attack_hand_secondary(mob/user, list/modifiers) + if(taking_pictures) + balloon_alert(user, "machine busy!") + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + if(occupant) + if(allowed(user)) + start_taking_pictures() + else + balloon_alert(user, "access denied!") + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + return ..() + +/obj/machinery/photobooth/add_context(atom/source, list/context, obj/item/held_item, mob/user) + if(machine_stat & (BROKEN|NOPOWER) || !isnull(held_item)) + return NONE + + context[SCREENTIP_CONTEXT_LMB] = "[state_open ? "Close" : "Open"] Machine" + if(occupant) + context[SCREENTIP_CONTEXT_RMB] = "Take Pictures" + + return CONTEXTUAL_SCREENTIP_SET + +/obj/machinery/photobooth/close_machine(mob/user, density_to_set = TRUE) + if(panel_open) + balloon_alert(user, "close panel first!") + return + playsound(src, 'sound/effects/curtain.ogg', 50, TRUE) + return ..() + +/obj/machinery/photobooth/open_machine(drop = TRUE, density_to_set = FALSE) + playsound(src, 'sound/effects/curtain.ogg', 50, TRUE) + return ..() + +/obj/machinery/photobooth/update_icon_state() + . = ..() + if(machine_stat & (BROKEN|NOPOWER)) + icon_state = "[base_icon_state]_off" + else if(state_open) + icon_state = "[base_icon_state]_open" + else + icon_state = "[base_icon_state]_closed" + +/obj/machinery/photobooth/update_overlays() + . = ..() + if((machine_stat & MAINT) || panel_open) + . += "[base_icon_state]_panel" + +/obj/machinery/photobooth/screwdriver_act(mob/living/user, obj/item/tool) + if(!has_buckled_mobs() && default_deconstruction_screwdriver(user, icon_state, icon_state, tool)) + update_appearance(UPDATE_ICON) + return + return ..() + +/obj/machinery/photobooth/crowbar_act(mob/living/user, obj/item/tool) + if(default_deconstruction_crowbar(tool)) + return + return ..() + +/obj/machinery/photobooth/emag_act(mob/user, obj/item/card/emag/emag_card) + if(obj_flags & EMAGGED) + return FALSE + req_access = list() //in case someone sets this to something + req_one_access = list() + balloon_alert(user, "beeps softly") + obj_flags |= EMAGGED + return TRUE + +/** + * Handles the effects of taking pictures of the user, calling finish_taking_pictures + * to actually update the records. + */ +/obj/machinery/photobooth/proc/start_taking_pictures() + taking_pictures = TRUE + if(obj_flags & EMAGGED) + var/mob/living/carbon/carbon_occupant = occupant + for(var/i in 1 to 5) //play a ton of sounds to mimic it blinding you + playsound(src, pick('sound/items/polaroid1.ogg', 'sound/items/polaroid2.ogg'), 75, TRUE) + if(carbon_occupant) + carbon_occupant.flash_act(5) + sleep(0.2 SECONDS) + if(carbon_occupant) + carbon_occupant.emote("scream") + finish_taking_pictures() + return + if(!do_after(occupant, 2 SECONDS, src, timed_action_flags = IGNORE_HELD_ITEM)) //gives them time to put their hand items away. + taking_pictures = FALSE + return + playsound(src, 'sound/items/polaroid1.ogg', 75, TRUE) + flash() + if(!do_after(occupant, 3 SECONDS, src, timed_action_flags = IGNORE_HELD_ITEM)) + taking_pictures = FALSE + return + playsound(src, 'sound/items/polaroid2.ogg', 75, TRUE) + flash() + if(!do_after(occupant, 2 SECONDS, src, timed_action_flags = IGNORE_HELD_ITEM)) + taking_pictures = FALSE + return + finish_taking_pictures() + +///Updates the records (if possible), giving feedback, and spitting the user out if all's well. +/obj/machinery/photobooth/proc/finish_taking_pictures() + taking_pictures = FALSE + if(!GLOB.manifest.change_pictures(occupant.name, occupant, add_height_chart = add_height_chart)) + balloon_alert(occupant, "record not found!") + return + balloon_alert(occupant, "records updated") + open_machine() + +///Mimicing the camera, gives a flash effect by turning the light on and calling flash_end. +/obj/machinery/photobooth/proc/flash() + set_light_on(TRUE) + addtimer(CALLBACK(src, PROC_REF(flash_end)), FLASH_LIGHT_DURATION, TIMER_OVERRIDE|TIMER_UNIQUE) + +///Called by a timer to turn the light off to end the flash effect. +/obj/machinery/photobooth/proc/flash_end() + set_light_on(FALSE) + + +/obj/machinery/button/photobooth + name = "photobooth control button" + desc = "Operates the photobooth from a distance, allowing people to update their security record photos." + device_type = /obj/item/assembly/control/photobooth_control + req_one_access = list(ACCESS_SECURITY, ACCESS_LAWYER) + id = "photobooth_machine_default" + +/obj/machinery/button/photobooth/Initialize(mapload) + . = ..() + if(device) + var/obj/item/assembly/control/photobooth_control/ours = device + ours.id = id + +/obj/machinery/button/photobooth/multitool_act(mob/living/user, obj/item/multitool/tool) + . = ..() + if(tool.buffer && !istype(tool.buffer, /obj/machinery/photobooth)) + return + var/obj/item/assembly/control/photobooth_control/controller = device + controller.booth_machine_ref = WEAKREF(tool.buffer) + id = null + controller.id = null + balloon_alert(user, "linked to [tool.buffer]") + +/obj/item/assembly/control/photobooth_control + name = "photobooth controller" + desc = "A remote controller for the HoP's photobooth." + ///Weakref to the photobooth we're connected to. + var/datum/weakref/booth_machine_ref + +/obj/item/assembly/control/photobooth_control/Initialize(mapload) + ..() + return INITIALIZE_HINT_LATELOAD + +/obj/item/assembly/control/photobooth_control/LateInitialize() + find_machine() + +/// Locate the photobooth we're linked via ID +/obj/item/assembly/control/photobooth_control/proc/find_machine() + for(var/obj/machinery/photobooth/booth as anything in SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/photobooth)) + if(booth.button_id == id) + booth_machine_ref = WEAKREF(booth) + if(booth_machine_ref) + return TRUE + return FALSE + +/obj/item/assembly/control/photobooth_control/activate(mob/activator) + if(!booth_machine_ref) + return + var/obj/machinery/photobooth/machine = booth_machine_ref.resolve() + if(!machine) + return + if(machine.taking_pictures) + balloon_alert(activator, "machine busy!") + return + machine.start_taking_pictures() diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm index 9ed4367431fe..c7f9d5a06c42 100644 --- a/code/game/machinery/porta_turret/portable_turret.dm +++ b/code/game/machinery/porta_turret/portable_turret.dm @@ -1092,7 +1092,7 @@ DEFINE_BITFIELD(turret_flags, list( /obj/item/gun/ballistic/get_turret_properties() . = ..() - var/obj/item/ammo_box/mag = mag_type + var/obj/item/ammo_box/mag = accepted_magazine_type var/obj/item/ammo_casing/primary_ammo = initial(mag.ammo_type) .["base_icon_state"] = "syndie" diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm index ceb48b9c7440..ac4767760a4a 100644 --- a/code/game/objects/effects/landmarks.dm +++ b/code/game/objects/effects/landmarks.dm @@ -33,6 +33,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark) var/jobspawn_override = FALSE var/delete_after_roundstart = TRUE var/used = FALSE + var/required_jobtitle /obj/effect/landmark/start/proc/after_round_start() if(delete_after_roundstart) diff --git a/code/game/objects/effects/spawners/random/contraband.dm b/code/game/objects/effects/spawners/random/contraband.dm index 783d8bae81d1..ccc6cf76350f 100644 --- a/code/game/objects/effects/spawners/random/contraband.dm +++ b/code/game/objects/effects/spawners/random/contraband.dm @@ -104,3 +104,17 @@ /obj/item/restraints/legcuffs/beartrap/prearmed = 5, //not really a landmine, but still a good threat /obj/effect/mine/shrapnel = 5, ) + +/obj/effect/spawner/random/contraband/plus + name = "contraband loot spawner plus" + desc = "Where'd ya find this?" + loot = list( + /obj/item/clothing/under/syndicate = 20, + /obj/item/reagent_containers/cup/bottle/thermite = 20, + /obj/item/restraints/legcuffs/beartrap = 10, + /obj/item/food/drug/saturnx = 5, + /obj/item/reagent_containers/cup/blastoff_ampoule = 5, + /obj/item/food/drug/moon_rock = 5, + /obj/item/grenade/empgrenade = 5, + /obj/effect/spawner/random/contraband/armory = 1, + ) diff --git a/code/game/objects/effects/spawners/random/random.dm b/code/game/objects/effects/spawners/random/random.dm index 36e60620d706..f5e1bb8404e8 100644 --- a/code/game/objects/effects/spawners/random/random.dm +++ b/code/game/objects/effects/spawners/random/random.dm @@ -27,6 +27,8 @@ var/spawn_scatter_radius = 0 /// Whether the items should have a random pixel_x/y offset (maxium offset distance is ±16 pixels for x/y) var/spawn_random_offset = FALSE + /// The pixel x/y divider offsets for spawn_loot_split (spaced 1 pixel apart by default) + var/spawn_loot_split_pixel_offsets = 2 /obj/effect/spawner/random/Initialize(mapload) . = ..() @@ -52,6 +54,7 @@ if(loot?.len) var/loot_spawned = 0 + var/pixel_divider = FLOOR(16 / spawn_loot_split_pixel_offsets, 1) // 16 pixels offsets is max that should be allowed in any direction while((spawn_loot_count-loot_spawned) && loot.len) var/lootspawn = pick_weight_recursive(loot) if(!spawn_loot_double) @@ -75,7 +78,9 @@ spawned_loot.pixel_y = rand(-16, 16) else if (spawn_loot_split) if (loot_spawned) - spawned_loot.pixel_x = spawned_loot.pixel_y = ((!(loot_spawned%2)*loot_spawned/2)*-1)+((loot_spawned%2)*(loot_spawned+1)/2*1) + var/column = FLOOR(loot_spawned / pixel_divider, 1) + spawned_loot.pixel_x = spawn_loot_split_pixel_offsets * (loot_spawned % pixel_divider) + (column * spawn_loot_split_pixel_offsets) + spawned_loot.pixel_y = spawn_loot_split_pixel_offsets * (loot_spawned % pixel_divider) loot_spawned++ /** diff --git a/code/game/objects/effects/spawners/random/structure.dm b/code/game/objects/effects/spawners/random/structure.dm index 2d65d944dfce..fa7ba0963fb8 100644 --- a/code/game/objects/effects/spawners/random/structure.dm +++ b/code/game/objects/effects/spawners/random/structure.dm @@ -17,6 +17,48 @@ /obj/structure/destructible/cult/pants_altar = 1, ) +/obj/effect/spawner/random/structure/closet_empty + name = "empty closet spawner" + icon_state = "locker" + loot = list( + /obj/structure/closet = 850, + /obj/structure/closet/cabinet = 150, + /obj/structure/closet/acloset = 1, + ) + +/obj/effect/spawner/random/structure/closet_empty/make_item(spawn_loc, type_path_to_make) + var/obj/structure/closet/peek_a_boo = ..() + if(istype(peek_a_boo) && prob(50)) + peek_a_boo.open() //the crate appears immediatly out of thin air so no need to animate anything + + return peek_a_boo + +/obj/effect/spawner/random/structure/closet_empty/crate + name = "empty crate spawner" + icon_state = "crate" + loot = list( + /obj/structure/closet/crate = 20, + /obj/structure/closet/crate/wooden = 1, + /obj/structure/closet/crate/internals = 1, + /obj/structure/closet/crate/medical = 1, + /obj/structure/closet/crate/freezer = 1, + /obj/structure/closet/crate/radiation = 1, + /obj/structure/closet/crate/hydroponics = 1, + /obj/structure/closet/crate/engineering = 1, + /obj/structure/closet/crate/engineering/electrical = 1, + /obj/structure/closet/crate/science = 1, + ) + +/obj/effect/spawner/random/structure/closet_empty/crate/with_loot + name = "crate spawner with maintenance loot" + icon_state = "crate" + +/obj/effect/spawner/random/structure/closet_empty/crate/with_loot/make_item(spawn_loc, type_path_to_make) + var/obj/structure/closet/closet_to_fill = ..() + closet_to_fill.RegisterSignal(closet_to_fill, COMSIG_CLOSET_POPULATE_CONTENTS, TYPE_PROC_REF(/obj/structure/closet/, populate_with_random_maint_loot)) + + return closet_to_fill + /obj/effect/spawner/random/structure/crate_abandoned name = "locked crate spawner" icon_state = "crate_secure" diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index fcd7f2f57fe9..6225e9e1c34a 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -182,7 +182,8 @@ var/sharpness = NONE ///How a tool acts when you use it on something, such as wirecutters cutting wires while multitools measure power - var/tool_behaviour = NONE + var/tool_behaviour = null + ///How fast does the tool work var/toolspeed = 1 @@ -229,7 +230,8 @@ var/override_notes = FALSE /// Used if we want to have a custom verb text for throwing. "John Spaceman flicks the ciggerate" for example. var/throw_verb - + /// Does this use the advanced reskinning setup? + var/uses_advanced_reskins = FALSE /// A lazylist used for applying fantasy values, contains the actual modification applied to a variable. var/list/fantasy_modifications = null @@ -252,7 +254,6 @@ // Handle adding item associated actions for(var/path in actions_types) add_item_action(path) - actions_types = null if(force_string) @@ -904,6 +905,13 @@ return mutable_appearance(SSgreyscale.GetColoredIconByType(greyscale_config_belt, greyscale_colors), icon_state_to_use) return mutable_appearance('icons/obj/clothing/belt_overlays.dmi', icon_state_to_use) +/** + * Extend this to give the item an appearance when placed in a surgical tray. Uses an icon state in `medicart.dmi`. + * * tray_extended - If true, the surgical tray the item is placed on is in "table mode" + */ +/obj/item/proc/get_surgery_tool_overlay(tray_extended) + return null + /obj/item/proc/update_slot_icon() if(!ismob(loc)) return @@ -1413,6 +1421,75 @@ if(SEND_SIGNAL(src, COMSIG_ITEM_OFFER_TAKEN, offerer, taker) & COMPONENT_OFFER_INTERRUPT) return TRUE +/obj/item/clothing/glasses //Code to let you switch the side your eyepatch is on! Woo! Just an explanation, this is added to the base glasses so it works on eyepatch-huds too + var/can_switch_eye = FALSE //Having this default to false means that its easy to make sure this doesnt apply to any pre-existing items + +/obj/item/reskin_obj(mob/M) + if(!uses_advanced_reskins) + return ..() + if(!LAZYLEN(unique_reskin)) + return + + /// Is the obj a glasses icon with swappable item states? + var/is_swappable = FALSE + /// if the item are glasses, this variable stores the item. + var/obj/item/clothing/glasses/reskinned_glasses + + if(istype(src, /obj/item/clothing/glasses)) // TODO - Remove this mess about glasses, it shouldn't be necessary anymore. + reskinned_glasses = src + if(reskinned_glasses.can_switch_eye) + is_swappable = TRUE + + var/list/items = list() + + + for(var/reskin_option in unique_reskin) + var/image/item_image = image(icon = unique_reskin[reskin_option][RESKIN_ICON] ? unique_reskin[reskin_option][RESKIN_ICON] : icon, icon_state = "[unique_reskin[reskin_option][RESKIN_ICON_STATE]]") + items += list("[reskin_option]" = item_image) + sort_list(items) + + var/pick = show_radial_menu(M, src, items, custom_check = CALLBACK(src, PROC_REF(check_reskin_menu), M), radius = 38, require_near = TRUE) + if(!pick) + return + if(!unique_reskin[pick]) + return + current_skin = pick + + if(unique_reskin[pick][RESKIN_ICON]) + icon = unique_reskin[pick][RESKIN_ICON] + + if(unique_reskin[pick][RESKIN_ICON_STATE]) + if(is_swappable) + base_icon_state = unique_reskin[pick][RESKIN_ICON_STATE] + icon_state = base_icon_state + else + icon_state = unique_reskin[pick][RESKIN_ICON_STATE] + + if(unique_reskin[pick][RESKIN_WORN_ICON]) + worn_icon = unique_reskin[pick][RESKIN_WORN_ICON] + + if(unique_reskin[pick][RESKIN_WORN_ICON_STATE]) + worn_icon_state = unique_reskin[pick][RESKIN_WORN_ICON_STATE] + + if(unique_reskin[pick][RESKIN_INHAND_L]) + lefthand_file = unique_reskin[pick][RESKIN_INHAND_L] + if(unique_reskin[pick][RESKIN_INHAND_R]) + righthand_file = unique_reskin[pick][RESKIN_INHAND_R] + if(unique_reskin[pick][RESKIN_INHAND_STATE]) + inhand_icon_state = unique_reskin[pick][RESKIN_INHAND_STATE] + if(unique_reskin[pick][RESKIN_SUPPORTS_VARIATIONS_FLAGS]) + supports_variations_flags = unique_reskin[pick][RESKIN_SUPPORTS_VARIATIONS_FLAGS] + if(ishuman(M)) + var/mob/living/carbon/human/wearer = M + wearer.regenerate_icons() // update that mf + to_chat(M, "[src] is now skinned as '[pick].'") + post_reskin(M) + return TRUE + +/// Automatically called after a reskin, for any extra variable changes. +/obj/item/proc/post_reskin(mob/our_mob) + return + /// Special stuff you want to do when an outfit equips this item. /obj/item/proc/on_outfit_equip(mob/living/carbon/human/outfit_wearer, visuals_only, item_slot) return @@ -1662,3 +1739,9 @@ bare_wound_bonus = reset_fantasy_variable("bare_wound_bonus", bare_wound_bonus) toolspeed = reset_fantasy_variable("toolspeed", toolspeed) SEND_SIGNAL(src, COMSIG_ITEM_REMOVE_FANTASY_BONUSES, bonus) + +//automatically finds tool behavior if there is only one. requires an extension of the proc if a tool has multiple behaviors +/obj/item/proc/get_all_tool_behaviours() + if (!isnull(tool_behaviour)) + return list(tool_behaviour) + return null diff --git a/code/game/objects/items/boxcutter.dm b/code/game/objects/items/boxcutter.dm index 4816adc849ad..b1187aa19e13 100644 --- a/code/game/objects/items/boxcutter.dm +++ b/code/game/objects/items/boxcutter.dm @@ -14,6 +14,9 @@ resistance_flags = FIRE_PROOF force = 0 +/obj/item/boxcutter/get_all_tool_behaviours() + return list(TOOL_KNIFE) + /obj/item/boxcutter/Initialize(mapload) . = ..() AddElement(/datum/element/update_icon_updates_onmob, ITEM_SLOT_HANDS) diff --git a/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm index b59e43b7781b..589ccda5ffac 100644 --- a/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm +++ b/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm @@ -71,7 +71,6 @@ req_components = list(/datum/stock_part/capacitor = 1) needs_anchored = FALSE - /obj/item/circuitboard/machine/telecomms/broadcaster name = "Subspace Broadcaster" greyscale_colors = CIRCUIT_COLOR_ENGINEERING @@ -1065,6 +1064,19 @@ build_path = /obj/machinery/rnd/production/techfab/department/security //Service +/obj/item/circuitboard/machine/photobooth + name = "Photobooth" + greyscale_colors = CIRCUIT_COLOR_SERVICE + build_path = /obj/machinery/photobooth + req_components = list( + /datum/stock_part/matter_bin = 1, + /datum/stock_part/manipulator = 1, + ) + +/obj/item/circuitboard/machine/photobooth/security + name = "Security Photobooth" + greyscale_colors = CIRCUIT_COLOR_SECURITY + build_path = /obj/machinery/photobooth/security /obj/item/circuitboard/machine/biogenerator name = "Biogenerator" diff --git a/code/game/objects/items/cosmetics.dm b/code/game/objects/items/cosmetics.dm index 80d618e54aec..c5a156d32ff8 100644 --- a/code/game/objects/items/cosmetics.dm +++ b/code/game/objects/items/cosmetics.dm @@ -147,15 +147,6 @@ shave(user, BODY_ZONE_HEAD)//doesnt need to be BODY_ZONE_HEAD specifically, but whatever return BRUTELOSS -/obj/item/razor/proc/shave(mob/living/carbon/human/H, location = BODY_ZONE_PRECISE_MOUTH) - if(location == BODY_ZONE_PRECISE_MOUTH) - H.facial_hairstyle = "Shaved" - else - H.hairstyle = "Skinhead" - - H.update_body_parts() - playsound(loc, 'sound/items/welder2.ogg', 20, TRUE) - /obj/item/razor/attack(mob/M, mob/living/user) if(SEND_SIGNAL(M, COMSIG_MOB_SHEARED, toolspeed, src, user)) return diff --git a/code/game/objects/items/debug_items.dm b/code/game/objects/items/debug_items.dm index 0e316f2e8abd..e7cc1da1021f 100644 --- a/code/game/objects/items/debug_items.dm +++ b/code/game/objects/items/debug_items.dm @@ -46,6 +46,28 @@ return FALSE return TRUE +/obj/item/debug/omnitool/get_all_tool_behaviours() + return list(TOOL_ANALYZER, + TOOL_BLOODFILTER, + TOOL_BONESET, + TOOL_CAUTERY, + TOOL_CROWBAR, + TOOL_DRILL, + TOOL_HEMOSTAT, + TOOL_KNIFE, + TOOL_MINING, + TOOL_MULTITOOL, + TOOL_RETRACTOR, + TOOL_ROLLINGPIN, + TOOL_RUSTSCRAPER, + TOOL_SAW, + TOOL_SCALPEL, + TOOL_SCREWDRIVER, + TOOL_SHOVEL, + TOOL_WELDER, + TOOL_WIRECUTTER, + TOOL_WRENCH, + ) /obj/item/debug/omnitool/attack_self(mob/user) if(!user) diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index 2bd165ca2e64..71febfbc51c4 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -31,9 +31,12 @@ var/sound_off = 'sound/weapons/magout.ogg' /// Is the light turned on or off currently var/on = FALSE + var/start_on = FALSE /obj/item/flashlight/Initialize(mapload) . = ..() + if(start_on) + set_light_on(TRUE) if(icon_state == "[initial(icon_state)]-on") on = TRUE update_brightness() diff --git a/code/game/objects/items/devices/portable_chem_mixer.dm b/code/game/objects/items/devices/portable_chem_mixer.dm index 5344cddf283d..43c74de6c7fd 100644 --- a/code/game/objects/items/devices/portable_chem_mixer.dm +++ b/code/game/objects/items/devices/portable_chem_mixer.dm @@ -25,6 +25,7 @@ atom_storage.set_holdable(list( /obj/item/reagent_containers/cup/beaker, /obj/item/reagent_containers/cup/bottle, + /obj/item/reagent_containers/cup/tube, /obj/item/reagent_containers/cup/glass/waterbottle, /obj/item/reagent_containers/condiment, )) diff --git a/code/game/objects/items/dyekit.dm b/code/game/objects/items/dyekit.dm index df6763cd94f1..a90a46c331d5 100644 --- a/code/game/objects/items/dyekit.dm +++ b/code/game/objects/items/dyekit.dm @@ -42,9 +42,14 @@ if(!do_after(user, 3 SECONDS, target)) return var/gradient_key = beard_or_hair == "Hair" ? GRADIENT_HAIR_KEY : GRADIENT_FACIAL_HAIR_KEY - LAZYSETLEN(human_target.grad_style, GRADIENTS_LEN) - LAZYSETLEN(human_target.grad_color, GRADIENTS_LEN) - human_target.grad_style[gradient_key] = new_grad_style - human_target.grad_color[gradient_key] = sanitize_hexcolor(new_grad_color) + // MONKESTATION EDIT START + if(new_grad_style == "None") + human_target.set_haircolor(sanitize_hexcolor(new_grad_color)) + else + LAZYSETLEN(human_target.grad_style, GRADIENTS_LEN) + LAZYSETLEN(human_target.grad_color, GRADIENTS_LEN) + human_target.grad_style[gradient_key] = new_grad_style + human_target.grad_color[gradient_key] = sanitize_hexcolor(new_grad_color) + // MONKESTATION EDIT END playsound(src, 'sound/effects/spray.ogg', 5, TRUE, 5) human_target.update_body_parts() diff --git a/code/game/objects/items/handcuffs.dm b/code/game/objects/items/handcuffs.dm index 5abd3ac1fb2d..a027fd9a4c80 100644 --- a/code/game/objects/items/handcuffs.dm +++ b/code/game/objects/items/handcuffs.dm @@ -47,6 +47,8 @@ var/cuffsound = 'sound/weapons/handcuffs.ogg' ///If set, handcuffs will be destroyed on application and leave behind whatever this is set to. var/trashtype = null + /// How strong the cuffs are. Weak cuffs can be broken with wirecutters or boxcutters. + var/restraint_strength = HANDCUFFS_TYPE_STRONG /obj/item/restraints/handcuffs/apply_fantasy_bonuses(bonus) . = ..() diff --git a/code/game/objects/items/kirbyplants.dm b/code/game/objects/items/kirbyplants.dm deleted file mode 100644 index 237aa8552234..000000000000 --- a/code/game/objects/items/kirbyplants.dm +++ /dev/null @@ -1,103 +0,0 @@ - -/obj/item/kirbyplants - name = "potted plant" - icon = 'icons/obj/flora/plants.dmi' - icon_state = "plant-01" - desc = "A little bit of nature contained in a pot." - layer = ABOVE_MOB_LAYER - plane = GAME_PLANE_UPPER - w_class = WEIGHT_CLASS_HUGE - force = 10 - throwforce = 13 - throw_speed = 2 - throw_range = 4 - item_flags = NO_PIXEL_RANDOM_DROP - - /// Can this plant be trimmed by someone with TRAIT_BONSAI - var/trimmable = TRUE - var/list/static/random_plant_states - -/obj/item/kirbyplants/Initialize(mapload) - . = ..() - AddComponent(/datum/component/tactical) - AddComponent(/datum/component/two_handed, require_twohands=TRUE, force_unwielded=10, force_wielded=10) - AddElement(/datum/element/beauty, 500) - -/obj/item/kirbyplants/attackby(obj/item/I, mob/living/user, params) - . = ..() - if(trimmable && HAS_TRAIT(user,TRAIT_BONSAI) && isturf(loc) && I.get_sharpness()) - to_chat(user,span_notice("You start trimming [src].")) - if(do_after(user,3 SECONDS,target=src)) - to_chat(user,span_notice("You finish trimming [src].")) - change_visual() - -/// Cycle basic plant visuals -/obj/item/kirbyplants/proc/change_visual() - if(!random_plant_states) - generate_states() - var/current = random_plant_states.Find(icon_state) - var/next = WRAP(current+1,1,length(random_plant_states)) - icon_state = random_plant_states[next] - -/obj/item/kirbyplants/random - icon = 'icons/obj/flora/_flora.dmi' - icon_state = "random_plant" - -/obj/item/kirbyplants/random/Initialize(mapload) - . = ..() - icon = 'icons/obj/flora/plants.dmi' - if(!random_plant_states) - generate_states() - icon_state = pick(random_plant_states) - -/obj/item/kirbyplants/proc/generate_states() - random_plant_states = list() - for(var/i in 1 to 25) - var/number - if(i < 10) - number = "0[i]" - else - number = "[i]" - random_plant_states += "plant-[number]" - random_plant_states += "applebush" - - -/obj/item/kirbyplants/dead - name = "RD's potted plant" - desc = "A gift from the botanical staff, presented after the RD's reassignment. There's a tag on it that says \"Y'all come back now, y'hear?\"\nIt doesn't look very healthy..." - icon_state = "plant-25" - trimmable = FALSE - -/obj/item/kirbyplants/photosynthetic - name = "photosynthetic potted plant" - desc = "A bioluminescent plant." - icon_state = "plant-09" - light_color = COLOR_BRIGHT_BLUE - light_outer_range = 3 - -/obj/item/kirbyplants/fullysynthetic - name = "plastic potted plant" - desc = "A fake, cheap looking, plastic tree. Perfect for people who kill every plant they touch." - icon_state = "plant-26" - custom_materials = (list(/datum/material/plastic = SHEET_MATERIAL_AMOUNT * 4)) - trimmable = FALSE - -/obj/item/kirbyplants/fullysynthetic/Initialize(mapload) - . = ..() - icon_state = "plant-[rand(26, 29)]" - -/obj/item/kirbyplants/potty - name = "Potty the Potted Plant" - desc = "A secret agent staffed in the station's bar to protect the mystical cakehat." - icon_state = "potty" - trimmable = FALSE - -/obj/item/kirbyplants/fern - name = "neglected fern" - desc = "An old botanical research sample collected on a long forgotten jungle planet." - icon_state = "fern" - trimmable = FALSE - -/obj/item/kirbyplants/fern/Initialize(mapload) - . = ..() - AddElement(/datum/element/swabable, CELL_LINE_TABLE_ALGAE, CELL_VIRUS_TABLE_GENERIC, rand(2,4), 5) diff --git a/code/game/objects/items/mail.dm b/code/game/objects/items/mail.dm index 8d4ef47c0ec8..c62b002eef05 100644 --- a/code/game/objects/items/mail.dm +++ b/code/game/objects/items/mail.dm @@ -64,6 +64,7 @@ ACCOUNT_SRV = COLOR_PALE_GREEN_GRAY, ACCOUNT_CAR = COLOR_BEIGE, ACCOUNT_SEC = COLOR_PALE_RED_GRAY, + ACCOUNT_CMD = COLOR_BLUE_GRAY, ) // Icons diff --git a/code/game/objects/items/melee/energy.dm b/code/game/objects/items/melee/energy.dm index 592fc8877154..521ff825f2ca 100644 --- a/code/game/objects/items/melee/energy.dm +++ b/code/game/objects/items/melee/energy.dm @@ -34,6 +34,9 @@ fire = 100 acid = 30 +/obj/item/melee/energy/get_all_tool_behaviours() + return list(TOOL_SAW) + /obj/item/melee/energy/Initialize(mapload) . = ..() make_transformable() diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm index 09dbc6aeb8d4..4b7c51ab8ebd 100644 --- a/code/game/objects/items/stacks/medical.dm +++ b/code/game/objects/items/stacks/medical.dm @@ -418,6 +418,9 @@ novariants = TRUE merge_type = /obj/item/stack/medical/bone_gel +/obj/item/stack/medical/bone_gel/get_surgery_tool_overlay(tray_extended) + return "gel" + (tray_extended ? "" : "_out") + /obj/item/stack/medical/bone_gel/attack(mob/living/patient, mob/user) patient.balloon_alert(user, "no fractures!") return diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 370cc5def0de..ae3187b927ed 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -344,6 +344,7 @@ GLOBAL_LIST_INIT(wood_recipes, list ( \ new/datum/stack_recipe("bonfire", /obj/structure/bonfire, 10, time = 6 SECONDS, one_per_turf = TRUE, on_solid_ground = TRUE, category = CAT_TOOLS), \ new/datum/stack_recipe("easel", /obj/structure/easel, 5, time = 1 SECONDS, one_per_turf = TRUE, on_solid_ground = TRUE, category = CAT_ENTERTAINMENT), \ new/datum/stack_recipe("noticeboard", /obj/item/wallframe/noticeboard, 1, time = 1 SECONDS, one_per_turf = FALSE, on_solid_ground = FALSE, check_density = FALSE, category = CAT_FURNITURE), \ + new/datum/stack_recipe("test tube rack", /obj/item/storage/test_tube_rack, 1, time = 1 SECONDS, check_density = FALSE, category = CAT_CHEMISTRY), \ null, \ new/datum/stack_recipe_list("pews", list( new /datum/stack_recipe("pew (middle)", /obj/structure/chair/pew, 3, one_per_turf = TRUE, on_solid_ground = TRUE, category = CAT_FURNITURE), @@ -439,6 +440,7 @@ GLOBAL_LIST_INIT(cloth_recipes, list ( \ new/datum/stack_recipe("white bandana", /obj/item/clothing/mask/bandana/white, 2, check_density = FALSE, category = CAT_CLOTHING), \ null, \ new/datum/stack_recipe("backpack", /obj/item/storage/backpack, 4, check_density = FALSE, category = CAT_CONTAINERS), \ + new/datum/stack_recipe("satchel", /obj/item/storage/backpack/satchel, 4, check_density = FALSE, category = CAT_CONTAINERS), \ new/datum/stack_recipe("duffel bag", /obj/item/storage/backpack/duffelbag, 6, check_density = FALSE, category = CAT_CONTAINERS), \ null, \ new/datum/stack_recipe("plant bag", /obj/item/storage/bag/plants, 4, check_density = FALSE, category = CAT_CONTAINERS), \ diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index 78e6ca8a7a2f..f299eea303dc 100644 --- a/code/game/objects/items/stacks/stack.dm +++ b/code/game/objects/items/stacks/stack.dm @@ -402,6 +402,7 @@ if(created) created.setDir(builder.dir) + on_item_crafted(builder, created) // Use up the material use(recipe.req_amount * multiplier) @@ -431,6 +432,9 @@ //BubbleWrap END return TRUE +/// Run special logic on created items after they've been successfully crafted. +/obj/item/stack/proc/on_item_crafted(mob/builder, atom/created) + return /obj/item/stack/vv_edit_var(vname, vval) if(vname == NAMEOF(src, amount)) diff --git a/code/game/objects/items/stacks/tape.dm b/code/game/objects/items/stacks/tape.dm index 08dbc7680705..c8b46e2d2817 100644 --- a/code/game/objects/items/stacks/tape.dm +++ b/code/game/objects/items/stacks/tape.dm @@ -124,3 +124,6 @@ merge_type = /obj/item/stack/sticky_tape/surgical greyscale_colors = "#70BAE7#BD6A62" tape_gag = /obj/item/clothing/mask/muzzle/tape/surgical + +/obj/item/stack/sticky_tape/surgical/get_surgery_tool_overlay(tray_extended) + return "tape" + (tray_extended ? "" : "_out") diff --git a/code/game/objects/items/storage/bags.dm b/code/game/objects/items/storage/bags.dm index 2d4d46e6a3c6..6e73797ccaac 100644 --- a/code/game/objects/items/storage/bags.dm +++ b/code/game/objects/items/storage/bags.dm @@ -447,6 +447,7 @@ /obj/item/reagent_containers/cup/glass/waterbottle, /obj/item/reagent_containers/cup/beaker, /obj/item/reagent_containers/cup/bottle, + /obj/item/reagent_containers/cup/tube, /obj/item/reagent_containers/medigel, /obj/item/reagent_containers/pill, /obj/item/reagent_containers/syringe, @@ -477,6 +478,7 @@ /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/cup/beaker, /obj/item/reagent_containers/cup/bottle, + /obj/item/reagent_containers/cup/tube, /obj/item/reagent_containers/hypospray/medipen, /obj/item/reagent_containers/syringe, /obj/item/weapon/virusdish,//Monkestation Addition @@ -508,6 +510,7 @@ /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/cup/beaker, /obj/item/reagent_containers/cup/bottle, + /obj/item/reagent_containers/cup/tube, /obj/item/reagent_containers/syringe, /obj/item/slime_extract, /obj/item/swab, diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index c9970c7876f1..9ffe29cce503 100644 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -247,6 +247,7 @@ /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/cup/beaker, /obj/item/reagent_containers/cup/bottle, + /obj/item/reagent_containers/cup/tube, /obj/item/reagent_containers/hypospray, /obj/item/reagent_containers/medigel, /obj/item/reagent_containers/pill, @@ -850,6 +851,7 @@ /obj/item/plant_analyzer, /obj/item/reagent_containers/cup/beaker, /obj/item/reagent_containers/cup/bottle, + /obj/item/reagent_containers/cup/tube, /obj/item/reagent_containers/spray/pestspray, /obj/item/reagent_containers/spray/plantbgone, /obj/item/secateurs, diff --git a/code/game/objects/items/storage/lockbox.dm b/code/game/objects/items/storage/lockbox.dm index 96892a1dbd53..b0869c7e49f3 100644 --- a/code/game/objects/items/storage/lockbox.dm +++ b/code/game/objects/items/storage/lockbox.dm @@ -30,7 +30,10 @@ balloon_alert(user, "broken!") return if(allowed(user)) - atom_storage.locked = !locked + if(atom_storage.locked) + atom_storage.locked = STORAGE_NOT_LOCKED + else + atom_storage.locked = STORAGE_FULLY_LOCKED locked = atom_storage.locked if(locked) icon_state = icon_locked @@ -52,7 +55,7 @@ /obj/item/storage/lockbox/emag_act(mob/user, obj/item/card/emag/emag_card) if(!broken) broken = TRUE - atom_storage.locked = FALSE + atom_storage.locked = STORAGE_NOT_LOCKED icon_state = src.icon_broken balloon_alert(user, "lock destroyed") if (emag_card && user) @@ -251,17 +254,22 @@ if(!id_card) return ..() - if(iscarbon(user)) - add_fingerprint(user) - if(id_card.registered_account != buyer_account) balloon_alert(user, "incorrect bank account!") - return + return FALSE - atom_storage.locked = !privacy_lock + if(privacy_lock) + atom_storage.locked = STORAGE_NOT_LOCKED + icon_state = icon_locked + else + atom_storage.locked = STORAGE_FULLY_LOCKED + icon_state = icon_closed privacy_lock = atom_storage.locked - user.visible_message(span_notice("[user] [privacy_lock ? "" : "un"]locks [src]'s privacy lock."), - span_notice("You [privacy_lock ? "" : "un"]lock [src]'s privacy lock.")) + user.visible_message( + span_notice("[user] [privacy_lock ? "" : "un"]locks [src]'s privacy lock."), + span_notice("You [privacy_lock ? "" : "un"]lock [src]'s privacy lock."), + ) + return FALSE ///screentips for lockboxes /obj/item/storage/lockbox/add_context(atom/source, list/context, obj/item/held_item, mob/user) diff --git a/code/game/objects/items/storage/medkit.dm b/code/game/objects/items/storage/medkit.dm index 2ea5365b456b..905ef55e4ceb 100644 --- a/code/game/objects/items/storage/medkit.dm +++ b/code/game/objects/items/storage/medkit.dm @@ -21,6 +21,58 @@ var/empty = FALSE var/damagetype_healed //defines damage type of the medkit. General ones stay null. Used for medibot healing bonuses + var/static/list/list_of_everything_medkits_can_hold = list( + /obj/item/healthanalyzer, + /obj/item/dnainjector, + /obj/item/reagent_containers/dropper, + /obj/item/reagent_containers/cup/beaker, + /obj/item/reagent_containers/cup/bottle, + /obj/item/reagent_containers/pill, + /obj/item/reagent_containers/syringe, + /obj/item/reagent_containers/medigel, + /obj/item/reagent_containers/spray, + /obj/item/lighter, + /obj/item/storage/fancy/cigarettes, + /obj/item/storage/pill_bottle, + /obj/item/stack/medical, + /obj/item/flashlight/pen, + /obj/item/extinguisher/mini, + /obj/item/reagent_containers/hypospray, + /obj/item/sensor_device, + /obj/item/radio, + /obj/item/clothing/gloves, + /obj/item/lazarus_injector, + /obj/item/bikehorn/rubberducky, + /obj/item/clothing/mask/surgical, + /obj/item/clothing/mask/breath, + /obj/item/clothing/mask/breath/medical, + /obj/item/surgical_drapes, + /obj/item/scalpel, + /obj/item/circular_saw, + /obj/item/bonesetter, + /obj/item/surgicaldrill, + /obj/item/retractor, + /obj/item/cautery, + /obj/item/hemostat, + /obj/item/blood_filter, + /obj/item/shears, + /obj/item/geiger_counter, + /obj/item/clothing/neck/stethoscope, + /obj/item/stamp, + /obj/item/clothing/glasses, + /obj/item/wrench/medical, + /obj/item/clothing/mask/muzzle, + /obj/item/reagent_containers/blood, + /obj/item/tank/internals/emergency_oxygen, + /obj/item/gun/syringe/syndicate, + /obj/item/implantcase, + /obj/item/implant, + /obj/item/implanter, + /obj/item/pinpointer/crew, + /obj/item/holosign_creator/medical, + /obj/item/stack/sticky_tape, + ) + /obj/item/storage/medkit/Initialize(mapload) . = ..() atom_storage.max_specific_storage = WEIGHT_CLASS_SMALL @@ -80,6 +132,7 @@ /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/cup/beaker, /obj/item/reagent_containers/cup/bottle, + /obj/item/reagent_containers/cup/tube, /obj/item/reagent_containers/pill, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/medigel, @@ -673,3 +726,31 @@ /obj/item/storage/organbox/preloaded/Initialize(mapload) . = ..() reagents.add_reagent(/datum/reagent/cryostylane, reagents.maximum_volume) + +/obj/item/storage/test_tube_rack + name = "test tube rack" + desc = "A wooden rack for storing test tubes." + icon_state = "rack" + base_icon_state = "rack" + icon = 'icons/obj/medical/chemical.dmi' + inhand_icon_state = "contsolid" + lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' + w_class = WEIGHT_CLASS_SMALL + +/obj/item/storage/test_tube_rack/Initialize(mapload) + . = ..() + atom_storage.allow_quick_gather = TRUE + atom_storage.max_slots = 8 + atom_storage.screen_max_columns = 4 + atom_storage.screen_max_rows = 2 + atom_storage.set_holdable(list( + /obj/item/reagent_containers/cup/tube, + )) + +/obj/item/storage/test_tube_rack/attack_self(mob/user) + emptyStorage() + +/obj/item/storage/test_tube_rack/update_icon_state() + icon_state = "[base_icon_state][contents.len > 0 ? contents.len : null]" + return ..() diff --git a/code/game/objects/items/surgery_tray.dm b/code/game/objects/items/surgery_tray.dm new file mode 100644 index 000000000000..99e72b2d59be --- /dev/null +++ b/code/game/objects/items/surgery_tray.dm @@ -0,0 +1,207 @@ +/** + * Surgery Trays + * A storage object that displays tools in its contents based on tier, better tools are more visible. + * Can be folded up and carried. Click it to draw a random tool. + * + */ +/obj/item/surgery_tray + name = "surgery tray" + desc = "A Deforest brand medical cart. It is a folding model, meaning the wheels on the bottom can be retracted and the body used as a tray." + icon = 'icons/obj/medicart.dmi' + icon_state = "tray" + w_class = WEIGHT_CLASS_BULKY + slowdown = 1 + item_flags = SLOWS_WHILE_IN_HAND + + /// If true we're currently portable + var/is_portable = TRUE + /// List of things that we spawn containing + var/list/initial_contents = list( + /obj/item/blood_filter, + /obj/item/bonesetter, + /obj/item/cautery, + /obj/item/circular_saw, + /obj/item/clothing/mask/surgical, + /obj/item/hemostat, + /obj/item/razor, + /obj/item/retractor, + /obj/item/scalpel, + /obj/item/stack/medical/bone_gel, + /obj/item/stack/sticky_tape/surgical, + /obj/item/surgical_drapes, + /obj/item/surgicaldrill, + ) + +/obj/item/surgery_tray/deployed + is_portable = FALSE + +/obj/item/surgery_tray/Initialize(mapload) + . = ..() + AddElement(/datum/element/drag_pickup) + create_storage(storage_type = /datum/storage/surgery_tray) + populate_contents() + register_context() + set_tray_mode(is_portable) + +/obj/item/surgery_tray/add_context(atom/source, list/context, obj/item/held_item, mob/user) + . = ..() + context[SCREENTIP_CONTEXT_LMB] = "Take a random tool" + context[SCREENTIP_CONTEXT_RMB] = "Take a specific tool" + return CONTEXTUAL_SCREENTIP_SET + +/obj/item/surgery_tray/update_icon_state() + . = ..() + icon_state = is_portable ? "tray" : "medicart" + +/obj/item/surgery_tray/update_desc() + . = ..() + if(is_portable) + desc = "The wheels and bottom storage of this medical cart have been stowed away, \ + leaving a cumbersome tray in it's place." + else + desc = initial(desc) + +/obj/item/surgery_tray/examine(mob/living/carbon/human/user) + . = ..() + . += is_portable \ + ? span_notice("You can click and drag it to yourself to pick it up, then use it in your hand to make it a cart!") \ + : span_notice("You can click and drag it to yourself to turn it into a tray!") + +/obj/item/surgery_tray/update_overlays() + . = ..() + // assoc list of all overlays, key = the item generating the overlay, value = the overlay string + var/list/surgery_overlays = list() + // assoc list of tool behaviors to fastest toolspeed of that type we already have + // easy way for us to check if there are any lower quality tools within + var/list/recorded_tool_speeds = list() + // handle drapes separately so they're always on the bottom + if (locate(/obj/item/surgical_drapes) in contents) + . += "drapes" + // compile all the overlays from items inside us + for(var/obj/item/surgery_tool in src) + // the overlay we will use if we want to display this one + var/actual_overlay = surgery_tool.get_surgery_tool_overlay(tray_extended = !is_portable) + if (isnull(actual_overlay)) + continue // nothing to see here + + // if we don't have tool behaviour then just record the overlay + if(!length(surgery_tool.get_all_tool_behaviours())) + surgery_overlays[surgery_tool] = actual_overlay + continue + + // if we have at least one tool behaviour, check if we already recorded a faster one + for (var/surgery_tool_type in surgery_tool.get_all_tool_behaviours()) + var/highest_speed = LAZYACCESS(recorded_tool_speeds, surgery_tool_type) || INFINITY // bigger number = slower + if(surgery_tool.toolspeed > highest_speed) + continue + // the existing tool was worse than us, ditch it + surgery_overlays -= surgery_tool_type + LAZYSET(recorded_tool_speeds, surgery_tool_type, surgery_tool.toolspeed) + surgery_overlays[surgery_tool_type] = actual_overlay + + for(var/surgery_tool in surgery_overlays) + . |= surgery_overlays[surgery_tool] + +///Spawn the things we contain on initialisation +/obj/item/surgery_tray/proc/populate_contents() + for (var/thing_path in initial_contents) + new thing_path(src) + update_appearance(UPDATE_OVERLAYS) + +///Sets the surgery tray's deployment state. Silent if user is null. +/obj/item/surgery_tray/proc/set_tray_mode(new_mode, mob/user) + is_portable = new_mode + density = !is_portable + if(user) + user.visible_message(span_notice("[user] [is_portable ? "retracts" : "extends"] [src]'s wheels."), span_notice("You [is_portable ? "retract" : "extend"] [src]'s wheels.")) + + if(is_portable) + interaction_flags_item |= INTERACT_ITEM_ATTACK_HAND_PICKUP + pass_flags |= PASSTABLE + RemoveElement(/datum/element/noisy_movement) + else + interaction_flags_item &= ~INTERACT_ITEM_ATTACK_HAND_PICKUP + pass_flags &= ~PASSTABLE + AddElement(/datum/element/noisy_movement) + + update_appearance() + +/obj/item/surgery_tray/equipped(mob/user, slot, initial) + . = ..() + if(!is_portable) + set_tray_mode(TRUE, user) + +/obj/item/surgery_tray/attack_self(mob/user, modifiers) + . = ..() + if(.) + return + var/turf/open/placement_turf = get_turf(user) + if(isgroundlessturf(placement_turf) || isclosedturf(placement_turf)) + balloon_alert(user, "can't deploy!") + return TRUE + if(!user.transferItemToLoc(src, placement_turf)) + balloon_alert(user, "tray stuck!") + return TRUE + set_tray_mode(FALSE, user) + return + +/obj/item/surgery_tray/attack_hand(mob/living/user) + if(!user.can_perform_action(src, NEED_HANDS)) + return ..() + var/obj/item/grabbies = pick(contents) + if(grabbies) + atom_storage.remove_single(user, grabbies, drop_location()) + user.put_in_hands(grabbies) + return TRUE + +/obj/item/surgery_tray/dump_contents() + var/atom/drop_point = drop_location() + for(var/atom/movable/tool as anything in contents) + tool.forceMove(drop_point) + +/obj/item/surgery_tray/deconstruct(disassembled = TRUE) + dump_contents() + return ..() + +/obj/item/surgery_tray/morgue + name = "autopsy tray" + desc = "A Deforest brand surgery tray, made for use in morgues. It is a folding model, \ + meaning the wheels on the bottom can be extended outwards, making it a cart." + initial_contents = list( + /obj/item/blood_filter, + /obj/item/bonesetter, + /obj/item/cautery, + /obj/item/circular_saw, + /obj/item/clothing/mask/surgical, + /obj/item/hemostat, + /obj/item/razor, + /obj/item/retractor, + /obj/item/scalpel, + /obj/item/stack/medical/bone_gel, + /obj/item/stack/sticky_tape/surgical, + /obj/item/surgical_drapes, + /obj/item/surgicaldrill, + ) + +/datum/storage/surgery_tray + max_total_storage = 30 + max_specific_storage = WEIGHT_CLASS_NORMAL + max_slots = 14 + +/datum/storage/surgery_tray/New() + . = ..() + set_holdable(list( + /obj/item/blood_filter, + /obj/item/bonesetter, + /obj/item/cautery, + /obj/item/circular_saw, + /obj/item/clothing/mask/surgical, + /obj/item/hemostat, + /obj/item/razor, + /obj/item/retractor, + /obj/item/scalpel, + /obj/item/stack/medical/bone_gel, + /obj/item/stack/sticky_tape/surgical, + /obj/item/surgical_drapes, + /obj/item/surgicaldrill, + )) diff --git a/code/game/objects/items/syndie_spraycan.dm b/code/game/objects/items/syndie_spraycan.dm index 5428f046d96e..78ffb6a4772c 100644 --- a/code/game/objects/items/syndie_spraycan.dm +++ b/code/game/objects/items/syndie_spraycan.dm @@ -36,7 +36,7 @@ try_draw_new_rune(user, target) return COMPONENT_CANCEL_ATTACK_CHAIN - if (istype(target, /obj/effect/decal/cleanable/traitor_rune) && multi_stage) //monkestation edit: adds multi_stage check + if (istype(target, /obj/effect/decal/cleanable/traitor_rune)) try_complete_rune(user, target) return COMPONENT_CANCEL_ATTACK_CHAIN diff --git a/code/game/objects/items/tools/crowbar.dm b/code/game/objects/items/tools/crowbar.dm index 3d07896b414b..41d5aa4afc73 100644 --- a/code/game/objects/items/tools/crowbar.dm +++ b/code/game/objects/items/tools/crowbar.dm @@ -103,6 +103,9 @@ toolspeed = 0.7 force_opens = TRUE +/obj/item/crowbar/power/get_all_tool_behaviours() + return list(TOOL_CROWBAR, TOOL_WIRECUTTER) + /obj/item/crowbar/power/Initialize(mapload) . = ..() AddComponent( \ diff --git a/code/game/objects/items/tools/screwdriver.dm b/code/game/objects/items/tools/screwdriver.dm index adb9058be658..0fec9c2cc1c3 100644 --- a/code/game/objects/items/tools/screwdriver.dm +++ b/code/game/objects/items/tools/screwdriver.dm @@ -101,6 +101,9 @@ greyscale_config_inhand_left = null greyscale_config_inhand_right = null +/obj/item/screwdriver/power/get_all_tool_behaviours() + return list(TOOL_SCREWDRIVER, TOOL_WRENCH) + /obj/item/screwdriver/power/Initialize(mapload) . = ..() AddComponent( \ diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm index b0161496ec61..5e0e5b1c4092 100644 --- a/code/game/objects/items/weaponry.dm +++ b/code/game/objects/items/weaponry.dm @@ -420,6 +420,9 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 /// Whether the switchblade starts extended or not. var/start_extended = FALSE +/obj/item/switchblade/get_all_tool_behaviours() + return list(TOOL_KNIFE) + /obj/item/switchblade/Initialize(mapload) . = ..() AddElement(/datum/element/update_icon_updates_onmob, ITEM_SLOT_HANDS) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm b/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm index fc4b2c033217..9aeb4153e0d5 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm @@ -100,6 +100,9 @@ req_access = list() locked = FALSE +/obj/structure/closet/secure_closet/freezer/meat/all_access + req_access = null + /obj/structure/closet/secure_closet/freezer/gulag_fridge name = "refrigerator" @@ -146,3 +149,6 @@ /obj/structure/closet/secure_closet/freezer/cream_pie/PopulateContents() ..() new /obj/item/food/pie/cream(src) + +/obj/structure/closet/secure_closet/freezer/fridge/all_access + req_access = null diff --git a/code/game/objects/structures/mystery_box.dm b/code/game/objects/structures/mystery_box.dm index 41164a8778f5..b97f0cda751d 100644 --- a/code/game/objects/structures/mystery_box.dm +++ b/code/game/objects/structures/mystery_box.dm @@ -187,7 +187,7 @@ GLOBAL_LIST_INIT(mystery_box_extended, list( if(grant_extra_mag && istype(instantiated_gun, /obj/item/gun/ballistic)) var/obj/item/gun/ballistic/instantiated_ballistic = instantiated_gun if(!instantiated_ballistic.internal_magazine) - var/obj/item/ammo_box/magazine/extra_mag = new instantiated_ballistic.mag_type(loc) + var/obj/item/ammo_box/magazine/extra_mag = new instantiated_ballistic.accepted_magazine_type(loc) user.put_in_hands(extra_mag) user.visible_message(span_notice("[user] takes [presented_item] from [src]."), span_notice("You take [presented_item] from [src]."), vision_distance = COMBAT_MESSAGE_RANGE) diff --git a/code/game/objects/structures/signs/signs_interactive.dm b/code/game/objects/structures/signs/signs_interactive.dm index 5c3b85c7764f..1e407034f4a7 100644 --- a/code/game/objects/structures/signs/signs_interactive.dm +++ b/code/game/objects/structures/signs/signs_interactive.dm @@ -1,5 +1,3 @@ -#define COLLISION_HAZARD_THRESHOLD 11 - /obj/structure/sign/clock name = "wall clock" desc = "It's your run-of-the-mill wall clock showing both the local Coalition Standard Time and the galactic Treaty Coordinated Time. Perfect for staring at instead of working." @@ -26,141 +24,3 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/sign/calendar, 32) . += span_info("Events:") for(var/holidayname in GLOB.holidays) . += span_info("[holidayname]") - -/** - * List of delamination counter signs on the map. - * Required as persistence subsystem loads after the ones present at mapload, and to reset to 0 upon explosion. - */ -GLOBAL_LIST_EMPTY(map_delamination_counters) - -/obj/structure/sign/delamination_counter - name = "delamination counter" - sign_change_name = "Flip Sign- Supermatter Delamination" - desc = "A pair of flip signs describe how long it's been since the last delamination incident." - icon_state = "days_since_explosion" - is_editable = TRUE - var/since_last = 0 - -MAPPING_DIRECTIONAL_HELPERS(/obj/structure/sign/delamination_counter, 32) - -/obj/structure/sign/delamination_counter/Initialize(mapload) - . = ..() - GLOB.map_delamination_counters += src - if (!mapload) - update_count(SSpersistence.rounds_since_engine_exploded) - -/obj/structure/sign/delamination_counter/Destroy() - GLOB.map_delamination_counters -= src - return ..() - -/obj/structure/sign/delamination_counter/proc/update_count(new_count) - since_last = min(new_count, 99) - update_appearance() - -/obj/structure/sign/delamination_counter/update_overlays() - . = ..() - - var/ones = since_last % 10 - var/mutable_appearance/ones_overlay = mutable_appearance('icons/obj/signs.dmi', "days_[ones]") - ones_overlay.pixel_w = 4 - . += ones_overlay - - var/tens = (since_last / 10) % 10 - var/mutable_appearance/tens_overlay = mutable_appearance('icons/obj/signs.dmi', "days_[tens]") - tens_overlay.pixel_w = -5 - . += tens_overlay - -/obj/structure/sign/delamination_counter/examine(mob/user) - . = ..() - . += span_info("It has been [since_last] day\s since the last delamination event at a Nanotrasen facility.") - switch (since_last) - if (0) - . += span_info("In case you didn't notice.") - if(1) - . += span_info("Let's do better today.") - if(2 to 5) - . += span_info("There's room for improvement.") - if(6 to 10) - . += span_info("Good work!") - if(11 to INFINITY) - . += span_info("Incredible!") - -/obj/structure/sign/collision_counter - name = "incident counter" - sign_change_name = "Indicator board- Tram incidents" - desc = "A display that indicates how many tram related incidents have occured today." - icon_state = "tram_hits" - is_editable = TRUE - var/hit_count = 0 - var/tram_id = TRAM_LIFT_ID - /// Has the tram hit enough people it now flashes hazard lights? - var/hazard_flash = FALSE - -/obj/structure/sign/collision_counter/Initialize(mapload) - ..() - return INITIALIZE_HINT_LATELOAD - -/obj/structure/sign/collision_counter/LateInitialize() - . = ..() - for(var/obj/structure/industrial_lift/tram/tram as anything in GLOB.lifts) - if(tram.lift_id != tram_id) - continue - RegisterSignal(tram, COMSIG_TRAM_COLLISION, PROC_REF(new_hit)) - update_appearance() - -/obj/structure/sign/collision_counter/Destroy() - return ..() - -/obj/structure/sign/collision_counter/proc/new_hit(lift_master, collided_type) - SIGNAL_HANDLER - - if(!ismob(collided_type)) - return - - var/mob/victim = collided_type // Real players only, no gaming high score - if(!victim.client) - return - - hit_count++ - - if(hazard_flash) - update_appearance() - return - - if(hit_count == COLLISION_HAZARD_THRESHOLD) // When we hit the threshold, enable flashing the lights - hazard_flash = TRUE - icon_state = "tram_hits_alert" - update_appearance() - return - - update_appearance() - -/obj/structure/sign/collision_counter/update_overlays() - . = ..() - - var/ones = hit_count % 10 - var/mutable_appearance/ones_overlay = mutable_appearance('icons/obj/signs.dmi', "hits_[ones]") - ones_overlay.pixel_w = 4 - . += ones_overlay - - var/tens = (hit_count / 10) % 10 - var/mutable_appearance/tens_overlay = mutable_appearance('icons/obj/signs.dmi', "hits_[tens]") - tens_overlay.pixel_w = -5 - . += tens_overlay - -/obj/structure/sign/collision_counter/examine(mob/user) - . = ..() - . += span_info("The station has had [hit_count] incident\s this shift.") - switch (hit_count) - if(0) - . += span_info("Fantastic! Champions of safety.") - if(1) - . += span_info("Let's do better tomorrow.") - if(2 to 5) - . += span_info("There's room for improvement.") - if(6 to 10) - . += span_info("Good work! Nanotrasen's finest!") - if(11 to INFINITY) - . += span_info("Incredible! You're probably reading this from medbay.") - -#undef COLLISION_HAZARD_THRESHOLD diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index d5b59979d036..ba5db89873ed 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -816,6 +816,14 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/sink/kitchen, (-16)) alpha = 255 opaque_closed = TRUE +/obj/structure/curtain/bounty/start_closed + icon_state = "bounty-closed" + +/obj/structure/curtain/bounty/start_closed/Initialize(mapload) + . = ..() + if(open) + toggle() + /obj/structure/curtain/cloth color = null alpha = 255 diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index af406ec7d14e..a4bbc3c2fe0d 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -651,10 +651,15 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/window/reinforced/plasma/spawner, 0) /obj/structure/window/reinforced/tinted name = "tinted window" icon_state = "twindow" + +MAPPING_DIRECTIONAL_HELPERS(/obj/structure/window/reinforced/tinted/spawner, 0) + /obj/structure/window/reinforced/tinted/frosted name = "frosted window" icon_state = "fwindow" +MAPPING_DIRECTIONAL_HELPERS(/obj/structure/window/reinforced/tinted/frosted/spawner, 0) + /* Full Tile Windows (more atom_integrity) */ /obj/structure/window/fulltile diff --git a/code/game/turfs/open/space/space.dm b/code/game/turfs/open/space/space.dm index 4572672223e1..3cb8222d07fa 100644 --- a/code/game/turfs/open/space/space.dm +++ b/code/game/turfs/open/space/space.dm @@ -267,6 +267,13 @@ GLOBAL_VAR_INIT(starlight_color, pick(COLOR_TEAL, COLOR_GREEN, COLOR_CYAN, COLOR . = ..() AddElement(/datum/element/turf_z_transparency) +/turf/open/space/openspace/Destroy() + // Signals persist through destroy, GO HOME + var/turf/below = GET_TURF_BELOW(src) + if(below) + UnregisterSignal(below, COMSIG_TURF_CHANGE) + return ..() + /turf/open/space/openspace/zAirIn() return TRUE diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 33431a5783ba..2d0830b6e175 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -6,6 +6,16 @@ html = msg, confidential = TRUE) +/proc/message_high_admins(msg) + for(var/client/admin in GLOB.admins) + var/datum/admins/D = GLOB.admin_datums[admin.ckey] + if(D.check_for_rights(R_BAN)) + msg = "ADMIN LOG: [msg]" + to_chat(admin, + type = MESSAGE_TYPE_ADMINLOG, + html = msg, + confidential = TRUE) + /proc/relay_msg_admins(msg) msg = "RELAY: [msg]" to_chat(GLOB.admins, diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index b6d545ce7d5d..a6c087f2b074 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -98,6 +98,8 @@ GLOBAL_PROTECT(admin_verbs_admin) /client/proc/spawn_pollution, /client/proc/view_player_camera, /client/proc/log_viewer_new, + /client/proc/request_more_opfor, + /client/proc/view_opfors, ) GLOBAL_LIST_INIT(admin_verbs_ban, list(/client/proc/unban_panel, /client/proc/ban_panel, /client/proc/stickybanpanel, /client/proc/library_control)) GLOBAL_PROTECT(admin_verbs_ban) @@ -152,7 +154,7 @@ GLOBAL_LIST_INIT(admin_verbs_fun, list( /client/proc/toggle_random_events, )) GLOBAL_PROTECT(admin_verbs_fun) -GLOBAL_LIST_INIT(admin_verbs_spawn, list(/datum/admins/proc/spawn_atom, /datum/admins/proc/podspawn_atom, /datum/admins/proc/spawn_cargo, /datum/admins/proc/spawn_objasmob, /client/proc/respawn_character, /datum/admins/proc/beaker_panel)) +GLOBAL_LIST_INIT(admin_verbs_spawn, list(/datum/admins/proc/spawn_atom, /datum/admins/proc/podspawn_atom, /datum/admins/proc/spawn_cargo, /datum/admins/proc/spawn_objasmob, /client/proc/respawn_character, /datum/admins/proc/beaker_panel, /client/proc/spawn_mixtape)) //Monkestation Addition: mixtape spawner GLOBAL_PROTECT(admin_verbs_spawn) GLOBAL_LIST_INIT(admin_verbs_server, world.AVerbsServer()) GLOBAL_PROTECT(admin_verbs_server) diff --git a/code/modules/admin/sql_ban_system.dm b/code/modules/admin/sql_ban_system.dm index 05b73e6d0d67..376612c4f8aa 100644 --- a/code/modules/admin/sql_ban_system.dm +++ b/code/modules/admin/sql_ban_system.dm @@ -370,6 +370,7 @@ ROLE_TRAITOR, ROLE_VAMPIRICACCIDENT, ROLE_WIZARD, + BAN_OPFOR, ), ) for(var/department in long_job_lists) diff --git a/code/modules/admin/sql_message_system.dm b/code/modules/admin/sql_message_system.dm index 944fcb64bc6a..0e94ffaa6ce0 100644 --- a/code/modules/admin/sql_message_system.dm +++ b/code/modules/admin/sql_message_system.dm @@ -674,7 +674,7 @@ output += "Note left by [span_prefix("[admin_key]")] on [timestamp]" output += "
[text]
" if("watchlist entry") - message_admins("Notice: [key_name_admin(target_ckey)] has been on the watchlist since [timestamp] and has just connected - Reason: [text]") + message_high_admins("Notice: [key_name_admin(target_ckey)] has been on the watchlist since [timestamp] and has just connected - Reason: [text]") send2tgs_adminless_only("Watchlist", "[key_name(target_ckey)] is on the watchlist and has just connected - Reason: [text]") if("memo") output += "[span_memo("Memo by [admin_key]")] on [timestamp]" diff --git a/code/modules/admin/verbs/secrets.dm b/code/modules/admin/verbs/secrets.dm index 3a47f8ddf368..c4a79dd6f2ba 100644 --- a/code/modules/admin/verbs/secrets.dm +++ b/code/modules/admin/verbs/secrets.dm @@ -103,7 +103,7 @@ GLOBAL_DATUM(everyone_a_traitor, /datum/everyone_is_a_traitor_controller) if(!length(living.diseases)) continue for(var/datum/disease/advanced/disease as anything in living.diseases) - disease.cure(living) + disease.cure(target = living) if("list_bombers") holder.list_bombers() diff --git a/code/modules/antagonists/abductor/equipment/gear/abductor_items.dm b/code/modules/antagonists/abductor/equipment/gear/abductor_items.dm index bd5e49e807c8..09d2d56e62a6 100644 --- a/code/modules/antagonists/abductor/equipment/gear/abductor_items.dm +++ b/code/modules/antagonists/abductor/equipment/gear/abductor_items.dm @@ -556,30 +556,35 @@ Congratulations! You are now trained for invasive xenobiology research!"} name = "alien scalpel" desc = "It's a gleaming sharp knife made out of silvery-green metal." icon = 'icons/obj/abductor.dmi' + surgical_tray_overlay = "scalpel_alien" toolspeed = 0.25 /obj/item/hemostat/alien name = "alien hemostat" desc = "You've never seen this before." icon = 'icons/obj/abductor.dmi' + surgical_tray_overlay = "hemostat_alien" toolspeed = 0.25 /obj/item/retractor/alien name = "alien retractor" desc = "You're not sure if you want the veil pulled back." icon = 'icons/obj/abductor.dmi' + surgical_tray_overlay = "retractor_alien" toolspeed = 0.25 /obj/item/circular_saw/alien name = "alien saw" desc = "Do the aliens also lose this, and need to find an alien hatchet?" icon = 'icons/obj/abductor.dmi' + surgical_tray_overlay = "saw_alien" toolspeed = 0.25 /obj/item/surgicaldrill/alien name = "alien drill" desc = "Maybe alien surgeons have finally found a use for the drill." icon = 'icons/obj/abductor.dmi' + surgical_tray_overlay = "drill_alien" toolspeed = 0.25 /obj/item/cautery/alien @@ -587,6 +592,7 @@ Congratulations! You are now trained for invasive xenobiology research!"} desc = "Why would bloodless aliens have a tool to stop bleeding? \ Unless..." icon = 'icons/obj/abductor.dmi' + surgical_tray_overlay = "cautery_alien" toolspeed = 0.25 /obj/item/clothing/head/helmet/abductor @@ -625,6 +631,24 @@ Congratulations! You are now trained for invasive xenobiology research!"} ///Which toolset do we have active currently? var/active_toolset = TOOLSET_MEDICAL +/obj/item/abductor/alien_omnitool/get_all_tool_behaviours() + return list( + TOOL_BLOODFILTER, + TOOL_BONESET, + TOOL_CAUTERY, + TOOL_CROWBAR, + TOOL_DRILL, + TOOL_HEMOSTAT, + TOOL_MULTITOOL, + TOOL_RETRACTOR, + TOOL_SAW, + TOOL_SCALPEL, + TOOL_SCREWDRIVER, + TOOL_WELDER, + TOOL_WIRECUTTER, + TOOL_WRENCH, + ) + /obj/item/abductor/alien_omnitool/Initialize(mapload) . = ..() set_toolset() //This populates the tool list, and sets it to the hacking configuration. diff --git a/code/modules/antagonists/ashwalker/ashwalker.dm b/code/modules/antagonists/ashwalker/ashwalker.dm index 773e7894f370..040e95211457 100644 --- a/code/modules/antagonists/ashwalker/ashwalker.dm +++ b/code/modules/antagonists/ashwalker/ashwalker.dm @@ -1,6 +1,39 @@ /datum/team/ashwalkers name = "Ashwalkers" - show_roundend_report = FALSE + ///A list of "worthy" (meat-bearing) sacrifices made to the Necropolis + var/sacrifices_made = 0 + ///A list of how many eggs were created by the Necropolis + var/eggs_created = 0 + +/datum/team/ashwalkers/roundend_report() + var/list/report = list() + + report += span_header("An Ash Walker Tribe inhabited the wastes...
") + if(length(members)) //The team is generated alongside the tendril, and it's entirely possible that nobody takes the role. + report += "The [member_name]s were:" + report += printplayerlist(members) + + var/datum/objective/protect_object/necropolis_objective = locate(/datum/objective/protect_object) in objectives + + if(necropolis_objective) + objectives -= necropolis_objective //So we don't count it in the check for other objectives. + report += "The [name] was tasked with defending the Necropolis:" + if(necropolis_objective.check_completion()) + report += span_greentext("The nest stands! Glory to the Necropolis!
") + else + report += span_redtext("The Necropolis was destroyed, the tribe has fallen...
") + + if(length(objectives)) + report += span_header("The [name]'s other objectives were:") + printobjectives(objectives) + + report += "The [name] managed to perform [sacrifices_made] sacrifices to the Necropolis. From this, the Necropolis produced [eggs_created] Ash Walker eggs." + + else + report += "But none of its eggs hatched!" + + return "
[report.Join("
")]
" + /datum/antagonist/ashwalker name = "\improper Ash Walker" diff --git a/code/modules/antagonists/changeling/changeling_power.dm b/code/modules/antagonists/changeling/changeling_power.dm index 1786ea648dcd..18461a8e5182 100644 --- a/code/modules/antagonists/changeling/changeling_power.dm +++ b/code/modules/antagonists/changeling/changeling_power.dm @@ -32,6 +32,8 @@ var/ignores_fakedeath = FALSE /// used by a few powers that toggle var/active = FALSE + /// Does this ability stop working if you are burning? + var/disabled_by_fire = TRUE /* changeling code now relies on on_purchase to grant powers. @@ -61,6 +63,9 @@ the same goes for Remove(). if you override Remove(), call parent or else your p /datum/action/changeling/proc/try_to_sting(mob/living/user, mob/living/target) if(!can_sting(user, target)) return FALSE + if(disabled_by_fire && user.fire_stacks && user.on_fire) + user.balloon_alert(user, "on fire!") + return FALSE var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling) if(sting_action(user, target)) sting_feedback(user, target) diff --git a/code/modules/antagonists/changeling/powers/adrenaline.dm b/code/modules/antagonists/changeling/powers/adrenaline.dm index 5f96508d690c..df1d94c2defe 100644 --- a/code/modules/antagonists/changeling/powers/adrenaline.dm +++ b/code/modules/antagonists/changeling/powers/adrenaline.dm @@ -7,6 +7,7 @@ dna_cost = 2 req_human = TRUE req_stat = UNCONSCIOUS + disabled_by_fire = FALSE //Recover from stuns. /datum/action/changeling/adrenaline/sting_action(mob/living/user) diff --git a/code/modules/antagonists/changeling/powers/biodegrade.dm b/code/modules/antagonists/changeling/powers/biodegrade.dm index 16bd707831b2..fbe5ca054924 100644 --- a/code/modules/antagonists/changeling/powers/biodegrade.dm +++ b/code/modules/antagonists/changeling/powers/biodegrade.dm @@ -6,6 +6,7 @@ chemical_cost = 30 //High cost to prevent spam dna_cost = 2 req_human = TRUE + disabled_by_fire = FALSE /datum/action/changeling/biodegrade/sting_action(mob/living/carbon/human/user) var/used = FALSE // only one form of shackles removed per use diff --git a/code/modules/antagonists/changeling/powers/defib_grasp.dm b/code/modules/antagonists/changeling/powers/defib_grasp.dm index 135b9b243f72..867a595e17dc 100644 --- a/code/modules/antagonists/changeling/powers/defib_grasp.dm +++ b/code/modules/antagonists/changeling/powers/defib_grasp.dm @@ -6,6 +6,7 @@ while we are dead or in stasis. Will also stun cyborgs momentarily." owner_has_control = FALSE dna_cost = 0 + disabled_by_fire = FALSE /// Flags to pass to fully heal when we get zapped var/heal_flags = HEAL_DAMAGE|HEAL_BODY|HEAL_STATUS|HEAL_CC_STATUS diff --git a/code/modules/antagonists/changeling/powers/fakedeath.dm b/code/modules/antagonists/changeling/powers/fakedeath.dm index 9e2e272a8c15..ba29f7cf5cb7 100644 --- a/code/modules/antagonists/changeling/powers/fakedeath.dm +++ b/code/modules/antagonists/changeling/powers/fakedeath.dm @@ -7,6 +7,7 @@ req_dna = 1 req_stat = DEAD ignores_fakedeath = TRUE + disabled_by_fire = FALSE /// How long it takes for revival to ready upon entering stasis. /// The changeling can opt to stay in fakedeath for longer, though. diff --git a/code/modules/antagonists/changeling/powers/headcrab.dm b/code/modules/antagonists/changeling/powers/headcrab.dm index 7daebc4cfb2b..ecaa2aedf502 100644 --- a/code/modules/antagonists/changeling/powers/headcrab.dm +++ b/code/modules/antagonists/changeling/powers/headcrab.dm @@ -6,6 +6,9 @@ chemical_cost = 20 dna_cost = 1 req_human = TRUE + req_stat = DEAD + ignores_fakedeath = TRUE + disabled_by_fire = FALSE /datum/action/changeling/headcrab/sting_action(mob/living/user) set waitfor = FALSE diff --git a/code/modules/antagonists/changeling/powers/mutations.dm b/code/modules/antagonists/changeling/powers/mutations.dm index d6ae824ef6c3..92ae8dae9f9f 100644 --- a/code/modules/antagonists/changeling/powers/mutations.dm +++ b/code/modules/antagonists/changeling/powers/mutations.dm @@ -194,6 +194,7 @@ sharpness = SHARP_EDGED wound_bonus = -20 bare_wound_bonus = 20 + resistance_flags = FLAMMABLE //MONKESTATION ADDITION var/can_drop = FALSE var/fake = FALSE @@ -288,6 +289,7 @@ throw_range = 0 throw_speed = 0 can_hold_up = FALSE + resistance_flags = FLAMMABLE //MONKESTATION ADDITION /obj/item/gun/magic/tentacle/Initialize(mapload, silent) . = ..() @@ -493,6 +495,7 @@ lefthand_file = 'icons/mob/inhands/antag/changeling_lefthand.dmi' righthand_file = 'icons/mob/inhands/antag/changeling_righthand.dmi' block_chance = 50 + resistance_flags = FLAMMABLE //MONKESTATION ADDITION var/remaining_uses //Set by the changeling ability. @@ -542,6 +545,7 @@ flags_inv = HIDEJUMPSUIT cold_protection = 0 heat_protection = 0 + resistance_flags = FLAMMABLE //MONKESTATION ADDITION /datum/armor/armor_changeling melee = 40 @@ -550,7 +554,7 @@ energy = 50 bomb = 10 bio = 10 - fire = 90 + /*fire = 90*/ //MONKESTATION REMOVAL acid = 90 /obj/item/clothing/suit/armor/changeling/Initialize(mapload) @@ -567,6 +571,7 @@ item_flags = DROPDEL armor_type = /datum/armor/helmet_changeling flags_inv = HIDEEARS|HIDEHAIR|HIDEEYES|HIDEFACIALHAIR|HIDEFACE|HIDESNOUT + resistance_flags = FLAMMABLE //MONKESTATION ADDITION /datum/armor/helmet_changeling melee = 40 @@ -575,7 +580,7 @@ energy = 50 bomb = 10 bio = 10 - fire = 90 + /*fire = 90*/ //MONKESTATION REMOVAL acid = 90 /obj/item/clothing/head/helmet/changeling/Initialize(mapload) diff --git a/code/modules/antagonists/changeling/powers/shriek.dm b/code/modules/antagonists/changeling/powers/shriek.dm index badd18f19f0a..3b5bba443006 100644 --- a/code/modules/antagonists/changeling/powers/shriek.dm +++ b/code/modules/antagonists/changeling/powers/shriek.dm @@ -6,6 +6,7 @@ chemical_cost = 20 dna_cost = 1 req_human = TRUE + disabled_by_fire = FALSE //A flashy ability, good for crowd control and sowing chaos. /datum/action/changeling/resonant_shriek/sting_action(mob/user) @@ -41,6 +42,7 @@ button_icon_state = "dissonant_shriek" chemical_cost = 20 dna_cost = 1 + disabled_by_fire = FALSE /datum/action/changeling/dissonant_shriek/sting_action(mob/user) ..() diff --git a/code/modules/antagonists/changeling/powers/strained_muscles.dm b/code/modules/antagonists/changeling/powers/strained_muscles.dm index e28c17169eae..1d8c0ddcbd02 100644 --- a/code/modules/antagonists/changeling/powers/strained_muscles.dm +++ b/code/modules/antagonists/changeling/powers/strained_muscles.dm @@ -11,6 +11,7 @@ req_human = TRUE var/stacks = 0 //Increments every 5 seconds; damage increases over time active = FALSE //Whether or not you are a hedgehog + disabled_by_fire = FALSE /datum/action/changeling/strained_muscles/sting_action(mob/living/carbon/user) ..() diff --git a/code/modules/antagonists/cult/cult.dm b/code/modules/antagonists/cult/cult.dm index dc2c4808468f..c7bb4e2a820f 100644 --- a/code/modules/antagonists/cult/cult.dm +++ b/code/modules/antagonists/cult/cult.dm @@ -355,11 +355,15 @@ return var/datum/team/cult/cult = team var/list/target_candidates = list() + var/opt_in_disabled = CONFIG_GET(flag/disable_antag_opt_in_preferences) for(var/mob/living/carbon/human/player in GLOB.player_list) + if (!opt_in_disabled && !opt_in_valid(player)) + continue if(player.mind && !player.mind.has_antag_datum(/datum/antagonist/cult) && !is_convertable_to_cult(player) && player.stat != DEAD) target_candidates += player.mind + if(target_candidates.len == 0) - message_admins("Cult Sacrifice: Could not find unconvertible target, checking for convertible target.") + message_admins("Cult Sacrifice: Could not find unconvertible target, checking for convertible target, this could be because NO ONE was set to Round Remove forcibly picking target.") for(var/mob/living/carbon/human/player in GLOB.player_list) if(player.mind && !player.mind.has_antag_datum(/datum/antagonist/cult) && player.stat != DEAD) target_candidates += player.mind diff --git a/code/modules/antagonists/cult/cult_items.dm b/code/modules/antagonists/cult/cult_items.dm index 97b4a0c62127..4094842d5d1e 100644 --- a/code/modules/antagonists/cult/cult_items.dm +++ b/code/modules/antagonists/cult/cult_items.dm @@ -775,7 +775,7 @@ Striking a noncultist, however, will tear their flesh."} desc = "Blood for blood." color = "#ff0000" guns_left = 24 - mag_type = /obj/item/ammo_box/magazine/internal/blood + accepted_magazine_type = /obj/item/ammo_box/magazine/internal/blood fire_sound = 'sound/magic/wand_teleport.ogg' /obj/item/gun/ballistic/rifle/enchanted/arcane_barrage/blood/can_trigger_gun(mob/living/user, akimbo_usage) diff --git a/code/modules/antagonists/heretic/items/hunter_rifle.dm b/code/modules/antagonists/heretic/items/hunter_rifle.dm index f682b13c9b89..3d21843d0977 100644 --- a/code/modules/antagonists/heretic/items/hunter_rifle.dm +++ b/code/modules/antagonists/heretic/items/hunter_rifle.dm @@ -11,7 +11,7 @@ icon_state = "moistprime" inhand_icon_state = "moistprime" worn_icon_state = "moistprime" - mag_type = /obj/item/ammo_box/magazine/internal/boltaction/lionhunter + accepted_magazine_type = /obj/item/ammo_box/magazine/internal/boltaction/lionhunter fire_sound = 'sound/weapons/gun/sniper/shot.ogg' /obj/item/gun/ballistic/rifle/lionhunter/Initialize(mapload) diff --git a/code/modules/antagonists/revenant/revenant_blight.dm b/code/modules/antagonists/revenant/revenant_blight.dm index 3a1db5705eff..386a56bbd018 100644 --- a/code/modules/antagonists/revenant/revenant_blight.dm +++ b/code/modules/antagonists/revenant/revenant_blight.dm @@ -15,7 +15,7 @@ var/stagedamage = 0 //Highest stage reached. var/finalstage = 0 //Because we're spawning off the cure in the final stage, we need to check if we've done the final stage's effects. -/datum/disease/revblight/cure() +/datum/disease/revblight/cure(add_resistance = TRUE, mob/living/carbon/target) if(affected_mob) affected_mob.remove_atom_colour(TEMPORARY_COLOUR_PRIORITY, "#1d2953") if(affected_mob.dna && affected_mob.dna.species) diff --git a/code/modules/antagonists/traitor/objectives/final_objective/final_objective.dm b/code/modules/antagonists/traitor/objectives/final_objective/final_objective.dm index d3a3133593c2..a8d433415860 100644 --- a/code/modules/antagonists/traitor/objectives/final_objective/final_objective.dm +++ b/code/modules/antagonists/traitor/objectives/final_objective/final_objective.dm @@ -7,7 +7,7 @@ /datum/traitor_objective/ultimate/supermatter_cascade = 1, /datum/traitor_objective/ultimate/infect_ai = 1, /datum/traitor_objective/ultimate/dark_matteor = 1, - /datum/traitor_objective/ultimate/wizard = 1, //monkestation edit +// /datum/traitor_objective/ultimate/wizard = 1, //monkestation edit ) weight = 100 diff --git a/code/modules/asset_cache/assets/chemmaster.dm b/code/modules/asset_cache/assets/chemmaster.dm new file mode 100644 index 000000000000..d37e6de91a58 --- /dev/null +++ b/code/modules/asset_cache/assets/chemmaster.dm @@ -0,0 +1,15 @@ +///Icons for containers printed in ChemMaster +/datum/asset/spritesheet/chemmaster + name = "chemmaster" + +/datum/asset/spritesheet/chemmaster/create_spritesheets() + var/list/ids = list() + for(var/category in GLOB.chem_master_containers) + for(var/obj/item/reagent_containers/container as anything in GLOB.chem_master_containers[category]) + var/icon_file = initial(container.icon) + var/icon_state = initial(container.icon_state) + var/id = sanitize_css_class_name("[container]") + if(id in ids) // exclude duplicate containers + continue + ids += id + Insert(id, icon_file, icon_state) diff --git a/code/modules/asset_cache/assets/condiments.dm b/code/modules/asset_cache/assets/condiments.dm index 89bd3eed0cfb..d5a7490904d3 100644 --- a/code/modules/asset_cache/assets/condiments.dm +++ b/code/modules/asset_cache/assets/condiments.dm @@ -1,22 +1,24 @@ /datum/asset/spritesheet/simple/condiments name = "condiments" assets = list( - CONDIMASTER_STYLE_FALLBACK = 'icons/ui_icons/condiments/emptycondiment.png', - "enzyme" = 'icons/ui_icons/condiments/enzyme.png', + CONDIMASTER_STYLE_FALLBACK = 'icons/ui_icons/condiments/bottle.png', "flour" = 'icons/ui_icons/condiments/flour.png', - "mayonnaise" = 'icons/ui_icons/condiments/mayonnaise.png', - "milk" = 'icons/ui_icons/condiments/milk.png', - "blackpepper" = 'icons/ui_icons/condiments/peppermillsmall.png', "rice" = 'icons/ui_icons/condiments/rice.png', - "sodiumchloride" = 'icons/ui_icons/condiments/saltshakersmall.png', - "soymilk" = 'icons/ui_icons/condiments/soymilk.png', - "soysauce" = 'icons/ui_icons/condiments/soysauce.png', "sugar" = 'icons/ui_icons/condiments/sugar.png', - "ketchup" = 'icons/ui_icons/condiments/ketchup.png', + "milk" = 'icons/ui_icons/condiments/milk.png', + "enzyme" = 'icons/ui_icons/condiments/enzyme.png', "capsaicin" = 'icons/ui_icons/condiments/hotsauce.png', "frostoil" = 'icons/ui_icons/condiments/coldsauce.png', "bbqsauce" = 'icons/ui_icons/condiments/bbqsauce.png', - "cornoil" = 'icons/ui_icons/condiments/oliveoil.png', + "soymilk" = 'icons/ui_icons/condiments/soymilk.png', + "soysauce" = 'icons/ui_icons/condiments/soysauce.png', + "ketchup" = 'icons/ui_icons/condiments/ketchup.png', + "mayonnaise" = 'icons/ui_icons/condiments/mayonnaise.png', + "oliveoil" = 'icons/ui_icons/condiments/oliveoil.png', + "cooking_oil" = 'icons/ui_icons/condiments/cookingoil.png', "peanut_butter" = 'icons/ui_icons/condiments/peanutbutter.png', "cherryjelly" = 'icons/ui_icons/condiments/cherryjelly.png', + "honey" = 'icons/ui_icons/condiments/honey.png', + "blackpepper" = 'icons/ui_icons/condiments/peppermillsmall.png', + "sodiumchloride" = 'icons/ui_icons/condiments/saltshakersmall.png', ) diff --git a/code/modules/asset_cache/assets/patches.dm b/code/modules/asset_cache/assets/patches.dm deleted file mode 100644 index 2c5bf7e252a8..000000000000 --- a/code/modules/asset_cache/assets/patches.dm +++ /dev/null @@ -1,8 +0,0 @@ -/datum/asset/spritesheet/simple/patches - name = "patches" - assets = list( - "bandaid" = 'icons/ui_icons/patches/bandaid.png', - "bandaid_brute" = 'icons/ui_icons/patches/bandaid_brute.png', - "bandaid_burn" = 'icons/ui_icons/patches/bandaid_burn.png', - "bandaid_both" = 'icons/ui_icons/patches/bandaid_both.png' - ) diff --git a/code/modules/asset_cache/assets/pills.dm b/code/modules/asset_cache/assets/pills.dm deleted file mode 100644 index bbc551e544d5..000000000000 --- a/code/modules/asset_cache/assets/pills.dm +++ /dev/null @@ -1,26 +0,0 @@ -/datum/asset/spritesheet/simple/pills - name = "pills" - assets = list( - "pill1" = 'icons/ui_icons/pills/pill1.png', - "pill2" = 'icons/ui_icons/pills/pill2.png', - "pill3" = 'icons/ui_icons/pills/pill3.png', - "pill4" = 'icons/ui_icons/pills/pill4.png', - "pill5" = 'icons/ui_icons/pills/pill5.png', - "pill6" = 'icons/ui_icons/pills/pill6.png', - "pill7" = 'icons/ui_icons/pills/pill7.png', - "pill8" = 'icons/ui_icons/pills/pill8.png', - "pill9" = 'icons/ui_icons/pills/pill9.png', - "pill10" = 'icons/ui_icons/pills/pill10.png', - "pill11" = 'icons/ui_icons/pills/pill11.png', - "pill12" = 'icons/ui_icons/pills/pill12.png', - "pill13" = 'icons/ui_icons/pills/pill13.png', - "pill14" = 'icons/ui_icons/pills/pill14.png', - "pill15" = 'icons/ui_icons/pills/pill15.png', - "pill16" = 'icons/ui_icons/pills/pill16.png', - "pill17" = 'icons/ui_icons/pills/pill17.png', - "pill18" = 'icons/ui_icons/pills/pill18.png', - "pill19" = 'icons/ui_icons/pills/pill19.png', - "pill20" = 'icons/ui_icons/pills/pill20.png', - "pill21" = 'icons/ui_icons/pills/pill21.png', - "pill22" = 'icons/ui_icons/pills/pill22.png', - ) diff --git a/code/modules/bitrunning/server/loot.dm b/code/modules/bitrunning/server/loot.dm index 91889bce0a5f..2c6c8a2da4c1 100644 --- a/code/modules/bitrunning/server/loot.dm +++ b/code/modules/bitrunning/server/loot.dm @@ -25,6 +25,7 @@ points += generated_domain.reward_points playsound(src, 'sound/machines/terminal_success.ogg', 30, vary = TRUE) + radio.talk_into(src, "A prisoner has finished bitrunning, make sure to pick up the ore crate.", RADIO_CHANNEL_SECURITY) //MONKESTATION ADDITION: security forgets about crates so we make sure to remind them each time var/bonus = calculate_rewards() diff --git a/code/modules/bitrunning/server/quantum_server.dm b/code/modules/bitrunning/server/quantum_server.dm index e95096090ec2..9c2284ba6cfe 100644 --- a/code/modules/bitrunning/server/quantum_server.dm +++ b/code/modules/bitrunning/server/quantum_server.dm @@ -54,7 +54,7 @@ . = ..() radio = new(src) - radio.set_frequency(FREQ_SUPPLY) + radio.set_frequency(FREQ_SECURITY) //MONKESTATION EDIT radio.subspace_transmission = TRUE radio.canhear_range = 0 radio.recalculateChannels() diff --git a/code/modules/capture_the_flag/ctf_equipment.dm b/code/modules/capture_the_flag/ctf_equipment.dm index 53a66ed29b52..d2226b773c14 100644 --- a/code/modules/capture_the_flag/ctf_equipment.dm +++ b/code/modules/capture_the_flag/ctf_equipment.dm @@ -37,7 +37,7 @@ // LASER RIFLE /obj/item/gun/ballistic/automatic/laser/ctf - mag_type = /obj/item/ammo_box/magazine/recharge/ctf/rifle + accepted_magazine_type = /obj/item/ammo_box/magazine/recharge/ctf/rifle desc = "This looks like it could really hurt in melee." force = 50 weapon_weight = WEAPON_HEAVY @@ -70,7 +70,7 @@ inhand_icon_state = "shotgun_combat" worn_icon_state = "gun" slot_flags = null - mag_type = /obj/item/ammo_box/magazine/recharge/ctf/shotgun + accepted_magazine_type = /obj/item/ammo_box/magazine/recharge/ctf/shotgun empty_indicator = TRUE fire_sound = 'sound/weapons/gun/shotgun/shot_alt.ogg' semi_auto = TRUE @@ -103,7 +103,7 @@ name = "designated marksman rifle" icon_state = "ctfmarksman" inhand_icon_state = "ctfmarksman" - mag_type = /obj/item/ammo_box/magazine/recharge/ctf/marksman + accepted_magazine_type = /obj/item/ammo_box/magazine/recharge/ctf/marksman fire_delay = 1 SECONDS /obj/item/ammo_box/magazine/recharge/ctf/marksman @@ -125,7 +125,7 @@ /obj/item/gun/ballistic/automatic/pistol/deagle/ctf desc = "This looks like it could really hurt in melee." force = 75 - mag_type = /obj/item/ammo_box/magazine/recharge/ctf/deagle + accepted_magazine_type = /obj/item/ammo_box/magazine/recharge/ctf/deagle /obj/item/gun/ballistic/automatic/pistol/deagle/ctf/Initialize(mapload) . = ..() @@ -236,7 +236,7 @@ // Rifle /obj/item/gun/ballistic/automatic/laser/ctf/red - mag_type = /obj/item/ammo_box/magazine/recharge/ctf/rifle/red + accepted_magazine_type = /obj/item/ammo_box/magazine/recharge/ctf/rifle/red /obj/item/ammo_box/magazine/recharge/ctf/rifle/red ammo_type = /obj/item/ammo_casing/caseless/laser/ctf/rifle/red @@ -252,7 +252,7 @@ // Shotgun /obj/item/gun/ballistic/shotgun/ctf/red - mag_type = /obj/item/ammo_box/magazine/recharge/ctf/shotgun/red + accepted_magazine_type = /obj/item/ammo_box/magazine/recharge/ctf/shotgun/red /obj/item/ammo_box/magazine/recharge/ctf/shotgun/red ammo_type = /obj/item/ammo_casing/caseless/laser/ctf/shotgun/red @@ -268,7 +268,7 @@ // DMR /obj/item/gun/ballistic/automatic/laser/ctf/marksman/red - mag_type = /obj/item/ammo_box/magazine/recharge/ctf/marksman/red + accepted_magazine_type = /obj/item/ammo_box/magazine/recharge/ctf/marksman/red /obj/item/ammo_box/magazine/recharge/ctf/marksman/red ammo_type = /obj/item/ammo_casing/caseless/laser/ctf/marksman/red @@ -302,7 +302,7 @@ // Rifle /obj/item/gun/ballistic/automatic/laser/ctf/blue - mag_type = /obj/item/ammo_box/magazine/recharge/ctf/rifle/blue + accepted_magazine_type = /obj/item/ammo_box/magazine/recharge/ctf/rifle/blue /obj/item/ammo_box/magazine/recharge/ctf/rifle/blue ammo_type = /obj/item/ammo_casing/caseless/laser/ctf/rifle/blue @@ -316,7 +316,7 @@ // Shotgun /obj/item/gun/ballistic/shotgun/ctf/blue - mag_type = /obj/item/ammo_box/magazine/recharge/ctf/shotgun/blue + accepted_magazine_type = /obj/item/ammo_box/magazine/recharge/ctf/shotgun/blue /obj/item/ammo_box/magazine/recharge/ctf/shotgun/blue ammo_type = /obj/item/ammo_casing/caseless/laser/ctf/shotgun/blue @@ -331,7 +331,7 @@ // DMR /obj/item/gun/ballistic/automatic/laser/ctf/marksman/blue - mag_type = /obj/item/ammo_box/magazine/recharge/ctf/marksman/blue + accepted_magazine_type = /obj/item/ammo_box/magazine/recharge/ctf/marksman/blue /obj/item/ammo_box/magazine/recharge/ctf/marksman/blue ammo_type = /obj/item/ammo_casing/caseless/laser/ctf/marksman/blue @@ -361,7 +361,7 @@ // Rifle /obj/item/gun/ballistic/automatic/laser/ctf/green - mag_type = /obj/item/ammo_box/magazine/recharge/ctf/rifle/green + accepted_magazine_type = /obj/item/ammo_box/magazine/recharge/ctf/rifle/green /obj/item/ammo_box/magazine/recharge/ctf/rifle/green ammo_type = /obj/item/ammo_casing/caseless/laser/ctf/rifle/green @@ -377,7 +377,7 @@ // Shotgun /obj/item/gun/ballistic/shotgun/ctf/green - mag_type = /obj/item/ammo_box/magazine/recharge/ctf/shotgun/green + accepted_magazine_type = /obj/item/ammo_box/magazine/recharge/ctf/shotgun/green /obj/item/ammo_box/magazine/recharge/ctf/shotgun/green ammo_type = /obj/item/ammo_casing/caseless/laser/ctf/shotgun/green @@ -393,7 +393,7 @@ // DMR /obj/item/gun/ballistic/automatic/laser/ctf/marksman/green - mag_type = /obj/item/ammo_box/magazine/recharge/ctf/marksman/green + accepted_magazine_type = /obj/item/ammo_box/magazine/recharge/ctf/marksman/green /obj/item/ammo_box/magazine/recharge/ctf/marksman/green ammo_type = /obj/item/ammo_casing/caseless/laser/ctf/marksman/green @@ -427,7 +427,7 @@ // Rifle /obj/item/gun/ballistic/automatic/laser/ctf/yellow - mag_type = /obj/item/ammo_box/magazine/recharge/ctf/rifle/yellow + accepted_magazine_type = /obj/item/ammo_box/magazine/recharge/ctf/rifle/yellow /obj/item/ammo_box/magazine/recharge/ctf/rifle/yellow ammo_type = /obj/item/ammo_casing/caseless/laser/ctf/rifle/yellow @@ -443,7 +443,7 @@ // Shotgun /obj/item/gun/ballistic/shotgun/ctf/yellow - mag_type = /obj/item/ammo_box/magazine/recharge/ctf/shotgun/yellow + accepted_magazine_type = /obj/item/ammo_box/magazine/recharge/ctf/shotgun/yellow /obj/item/ammo_box/magazine/recharge/ctf/shotgun/yellow ammo_type = /obj/item/ammo_casing/caseless/laser/ctf/shotgun/yellow @@ -459,7 +459,7 @@ // DMR /obj/item/gun/ballistic/automatic/laser/ctf/marksman/yellow - mag_type = /obj/item/ammo_box/magazine/recharge/ctf/marksman/yellow + accepted_magazine_type = /obj/item/ammo_box/magazine/recharge/ctf/marksman/yellow /obj/item/ammo_box/magazine/recharge/ctf/marksman/yellow ammo_type = /obj/item/ammo_casing/caseless/laser/ctf/marksman/yellow diff --git a/code/modules/cargo/order.dm b/code/modules/cargo/order.dm index bfafabd73b1b..39c685007e9d 100644 --- a/code/modules/cargo/order.dm +++ b/code/modules/cargo/order.dm @@ -184,7 +184,14 @@ /datum/supply_order/proc/generateCombo(miscbox, misc_own, misc_contents, misc_cost) for (var/I in misc_contents) - new I(miscbox) + var/obj/item = new I(miscbox) + + if(istype(item, /obj/item/gun)) + var/obj/item/gun/gun_actually = item + QDEL_NULL(gun_actually.pin) + var/obj/item/firing_pin/permit_pin/new_pin = new(gun_actually) + gun_actually.pin = new_pin + generateManifest(miscbox, misc_own, "", misc_cost) return diff --git a/code/modules/clothing/chameleon.dm b/code/modules/clothing/chameleon.dm index d8d2c657f340..9df9c53233b6 100644 --- a/code/modules/clothing/chameleon.dm +++ b/code/modules/clothing/chameleon.dm @@ -1203,7 +1203,7 @@ if(istype(gun_to_set, /obj/item/gun/ballistic)) var/obj/item/gun/ballistic/ball_gun = gun_to_set - var/obj/item/ammo_box/ball_ammo = new ball_gun.mag_type(gun_to_set) + var/obj/item/ammo_box/ball_ammo = new ball_gun.accepted_magazine_type(gun_to_set) qdel(ball_gun) if(!istype(ball_ammo) || !ball_ammo.ammo_type) diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm index 26a961933646..fb05df7e26d3 100644 --- a/code/modules/clothing/suits/jobs.dm +++ b/code/modules/clothing/suits/jobs.dm @@ -20,6 +20,7 @@ /obj/item/plant_analyzer, /obj/item/reagent_containers/cup/beaker, /obj/item/reagent_containers/cup/bottle, + /obj/item/reagent_containers/cup/tube, /obj/item/reagent_containers/spray/pestspray, /obj/item/reagent_containers/spray/plantbgone, /obj/item/secateurs, @@ -267,6 +268,7 @@ /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/cup/beaker, /obj/item/reagent_containers/cup/bottle, + /obj/item/reagent_containers/cup/tube, /obj/item/reagent_containers/hypospray, /obj/item/reagent_containers/syringe, /obj/item/retractor, diff --git a/code/modules/clothing/suits/labcoat.dm b/code/modules/clothing/suits/labcoat.dm index 743cb8d2c06a..1b5f22cceeaf 100644 --- a/code/modules/clothing/suits/labcoat.dm +++ b/code/modules/clothing/suits/labcoat.dm @@ -18,6 +18,7 @@ /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/cup/beaker, /obj/item/reagent_containers/cup/bottle, + /obj/item/reagent_containers/cup/tube, /obj/item/reagent_containers/hypospray, /obj/item/reagent_containers/pill, /obj/item/reagent_containers/syringe, diff --git a/code/modules/clothing/suits/wintercoats.dm b/code/modules/clothing/suits/wintercoats.dm index ec4370f61d4c..d4461b8812f1 100644 --- a/code/modules/clothing/suits/wintercoats.dm +++ b/code/modules/clothing/suits/wintercoats.dm @@ -221,6 +221,7 @@ /obj/item/holosign_creator, /obj/item/reagent_containers/cup/beaker, /obj/item/reagent_containers/cup/bottle, + /obj/item/reagent_containers/cup/tube, /obj/item/reagent_containers/spray, ) hoodtype = /obj/item/clothing/head/hooded/winterhood/janitor @@ -276,6 +277,7 @@ /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/cup/beaker, /obj/item/reagent_containers/cup/bottle, + /obj/item/reagent_containers/cup/tube, /obj/item/reagent_containers/hypospray, /obj/item/reagent_containers/pill, /obj/item/reagent_containers/syringe, @@ -382,6 +384,7 @@ /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/cup/beaker, /obj/item/reagent_containers/cup/bottle, + /obj/item/reagent_containers/cup/tube, /obj/item/reagent_containers/hypospray, /obj/item/reagent_containers/pill, /obj/item/reagent_containers/syringe, diff --git a/code/modules/clothing/under/accessories/badges.dm b/code/modules/clothing/under/accessories/badges.dm index f5c68023128b..69c426bf476e 100644 --- a/code/modules/clothing/under/accessories/badges.dm +++ b/code/modules/clothing/under/accessories/badges.dm @@ -170,6 +170,7 @@ else display = span_notice("The dogtag is all scratched up.") +/* /// Reskins for the pride pin accessory, mapped by display name to icon state GLOBAL_LIST_INIT(pride_pin_reskins, list( "Rainbow Pride" = "pride", @@ -181,6 +182,7 @@ GLOBAL_LIST_INIT(pride_pin_reskins, list( "Intersex Pride" = "pride_intersex", "Lesbian Pride" = "pride_lesbian", )) +*/ /obj/item/clothing/accessory/pride name = "pride pin" diff --git a/code/modules/events/electrical_storm.dm b/code/modules/events/electrical_storm.dm index 1309887d4b73..e2e3eb6b0a6a 100644 --- a/code/modules/events/electrical_storm.dm +++ b/code/modules/events/electrical_storm.dm @@ -1,9 +1,10 @@ /datum/round_event_control/electrical_storm name = "Electrical Storm" typepath = /datum/round_event/electrical_storm - earliest_start = 10 MINUTES + earliest_start = 45 MINUTES min_players = 5 - weight = 20 + weight = 5 + max_occurrences = 1 category = EVENT_CATEGORY_ENGINEERING description = "Destroys all lights in a large area." min_wizard_trigger_potency = 0 diff --git a/code/modules/events/ghost_role/alien_infestation.dm b/code/modules/events/ghost_role/alien_infestation.dm index 47e930204c57..f627d10c07e5 100644 --- a/code/modules/events/ghost_role/alien_infestation.dm +++ b/code/modules/events/ghost_role/alien_infestation.dm @@ -1,16 +1,31 @@ -/datum/round_event_control/alien_infestation +/datum/round_event_control/antagonist/solo/from_ghosts/alien_infestation name = "Alien Infestation" - typepath = /datum/round_event/ghost_role/alien_infestation + typepath = /datum/round_event/antagonist/solo/ghost/alien_infestation weight = 5 min_players = 35 //monkie edit: 10 to 35 (tg what the fuck) - earliest_start = 60 MINUTES //monkie edit: 20 to 90 + earliest_start = 45 MINUTES //monkie edit: 20 to 90 //dynamic_should_hijack = TRUE category = EVENT_CATEGORY_ENTITIES description = "A xenomorph larva spawns on a random vent." -/datum/round_event_control/alien_infestation/can_spawn_event(players_amt, allow_magic = FALSE, fake_check = FALSE) //MONKESTATION ADDITION: fake_check = FALSE + maximum_antags = 1 + antag_flag = ROLE_ALIEN + enemy_roles = list( + JOB_AI, + JOB_CAPTAIN, + JOB_DETECTIVE, + JOB_HEAD_OF_SECURITY, + JOB_SECURITY_OFFICER, + JOB_WARDEN, + JOB_SECURITY_ASSISTANT, + ) + required_enemies = 5 + max_occurrences = 1 + prompted_picking = TRUE + +/datum/round_event_control/antagonist/solo/from_ghosts/alien_infestation/can_spawn_event(players_amt, allow_magic = FALSE, fake_check = FALSE) //MONKESTATION ADDITION: fake_check = FALSE . = ..() if(!.) return . @@ -19,33 +34,45 @@ if(A.stat != DEAD) return FALSE -/datum/round_event/ghost_role/alien_infestation +/datum/round_event/antagonist/solo/ghost/alien_infestation announce_when = 400 - - minimum_required = 1 - role_name = "alien larva" - - // 50% chance of being incremented by one - var/spawncount = 1 fakeable = TRUE -/datum/round_event/ghost_role/alien_infestation/setup() +/datum/round_event/antagonist/solo/ghost/alien_infestation/setup() announce_when = rand(announce_when, announce_when + 50) - if(prob(50)) - spawncount++ - setup = TRUE //MONKESTATION ADDITION -/datum/round_event/ghost_role/alien_infestation/announce(fake) - var/living_aliens = FALSE - for(var/mob/living/carbon/alien/A in GLOB.player_list) - if(A.stat != DEAD) - living_aliens = TRUE - - if(living_aliens || fake) - priority_announce("Unidentified lifesigns detected coming aboard [station_name()]. Secure any exterior access, including ducting and ventilation.", "Lifesign Alert", ANNOUNCER_ALIENS) + var/datum/round_event_control/antagonist/solo/cast_control = control + antag_count = cast_control.get_antag_amount() + if(prob(50)) + antag_count++ + + antag_flag = cast_control.antag_flag + antag_datum = cast_control.antag_datum + restricted_roles = cast_control.restricted_roles + prompted_picking = cast_control.prompted_picking + var/list/candidates = cast_control.get_candidates() + + //guh + var/list/cliented_list = list() + for(var/mob/living/mob as anything in candidates) + cliented_list += mob.client + if(length(cliented_list)) + mass_adjust_antag_rep(cliented_list, 1) + + if(prompted_picking) + candidates = SSpolling.poll_candidates( + question = "Would you like to be a [cast_control.name]?", + check_jobban = antag_flag, + role = antag_flag, + poll_time = 20 SECONDS, + group = candidates, + pic_source = antag_datum, + role_name_text = lowertext(cast_control.name), + ) + + var/list/weighted_candidates = return_antag_rep_weight(candidates) -/datum/round_event/ghost_role/alien_infestation/spawn_role() var/list/vents = list() for(var/obj/machinery/atmospherics/components/unary/vent_pump/temp_vent in GLOB.machines) if(QDELETED(temp_vent)) @@ -63,21 +90,32 @@ message_admins("An event attempted to spawn an alien but no suitable vents were found. Shutting down.") return MAP_ERROR - var/list/candidates = SSpolling.poll_ghost_candidates(check_jobban = ROLE_ALIEN, role = ROLE_ALIEN, pic_source = /mob/living/carbon/alien/larva, role_name_text = role_name) + for(var/i in 1 to antag_count) + if(!length(candidates)) + break - if(!length(candidates)) - return NOT_ENOUGH_PLAYERS + var/client/mob_client = pick_n_take_weighted(weighted_candidates) + var/mob/candidate = mob_client.mob + if(candidate.client) //I hate this + candidate.client.prefs.reset_antag_rep() + if(!candidate.mind) + candidate.mind = new /datum/mind(candidate.key) - while(spawncount > 0 && vents.len && length(candidates)) var/obj/vent = pick_n_take(vents) - var/mob/dead/observer/selected = pick_n_take(candidates) var/mob/living/carbon/alien/larva/new_xeno = new(vent.loc) - new_xeno.key = selected.key + new_xeno.key = candidate.key new_xeno.move_into_vent(vent) - spawncount-- message_admins("[ADMIN_LOOKUPFLW(new_xeno)] has been made into an alien by an event.") new_xeno.log_message("was spawned as an alien by an event.", LOG_GAME) - spawned_mobs += new_xeno - return SUCCESSFUL_SPAWN + setup = TRUE //MONKESTATION ADDITION + +/datum/round_event/antagonist/solo/ghost/alien_infestation/announce(fake) + var/living_aliens = FALSE + for(var/mob/living/carbon/alien/A in GLOB.player_list) + if(A.stat != DEAD) + living_aliens = TRUE + + if(living_aliens || fake) + priority_announce("Unidentified lifesigns detected coming aboard [station_name()]. Secure any exterior access, including ducting and ventilation.", "Lifesign Alert", ANNOUNCER_ALIENS) diff --git a/code/modules/events/wizard/embeddies.dm b/code/modules/events/wizard/embeddies.dm index 689e48b4641a..1ae6769cb8c1 100644 --- a/code/modules/events/wizard/embeddies.dm +++ b/code/modules/events/wizard/embeddies.dm @@ -75,7 +75,7 @@ GLOBAL_DATUM(global_funny_embedding, /datum/global_funny_embedding) /datum/global_funny_embedding/proc/handle_current_items() for(var/obj/item/embed_item in world) CHECK_TICK - if(!(embed_item.flags_1 & INITIALIZED_1)) + if(QDELETED(embed_item) || !(embed_item.flags_1 & INITIALIZED_1)) continue if(!embed_item.embedding) embed_item.embedding = embed_type diff --git a/code/modules/food_and_drinks/machinery/gibber.dm b/code/modules/food_and_drinks/machinery/gibber.dm index 3b474d0ff6f8..626b25025eb1 100644 --- a/code/modules/food_and_drinks/machinery/gibber.dm +++ b/code/modules/food_and_drinks/machinery/gibber.dm @@ -173,7 +173,9 @@ if(ishuman(occupant)) var/mob/living/carbon/human/gibee = occupant - if(gibee.dna && gibee.dna.species) + if(prob(40) && (sourcejob in list(JOB_SECURITY_OFFICER,JOB_WARDEN,JOB_HEAD_OF_SECURITY,JOB_SECURITY_ASSISTANT))) // monkestation edit: add secass + typeofmeat = /obj/item/food/meat/slab/pig + else if(gibee.dna && gibee.dna.species) typeofmeat = gibee.dna.species.meat typeofskin = gibee.dna.species.skinned_type diff --git a/code/modules/industrial_lift/industrial_lift.dm b/code/modules/industrial_lift/industrial_lift.dm index b495fc21228a..461fb24fb766 100644 --- a/code/modules/industrial_lift/industrial_lift.dm +++ b/code/modules/industrial_lift/industrial_lift.dm @@ -434,7 +434,10 @@ GLOBAL_LIST_INIT(all_radial_directions, list( var/datum/callback/land_slam = new(collided, TYPE_PROC_REF(/mob/living/, tram_slam_land)) collided.throw_at(throw_target, 200 * collision_lethality, 4 * collision_lethality, callback = land_slam) - SEND_SIGNAL(src, COMSIG_TRAM_COLLISION, collided) + //increment the hit counter signs + if(ismob(collided) && collided.client) + SSpersistence.tram_hits_this_round++ + SEND_SIGNAL(src, COMSIG_TRAM_COLLISION, SSpersistence.tram_hits_this_round) unset_movement_registrations(exited_locs) group_move(things_to_move, going) diff --git a/code/modules/jobs/job_types/_job.dm b/code/modules/jobs/job_types/_job.dm index a465a9c5f7ea..8bba53bfeafe 100644 --- a/code/modules/jobs/job_types/_job.dm +++ b/code/modules/jobs/job_types/_job.dm @@ -399,7 +399,7 @@ /// Returns an atom where the mob should spawn in. -/datum/job/proc/get_roundstart_spawn_point() +/datum/job/proc/get_roundstart_spawn_point(chosen_title) if(random_spawns_possible) if(HAS_TRAIT(SSstation, STATION_TRAIT_LATE_ARRIVALS)) return get_latejoin_spawn_point() @@ -416,22 +416,40 @@ return hangover_spawn_point || get_latejoin_spawn_point() if(length(GLOB.jobspawn_overrides[title])) return pick(GLOB.jobspawn_overrides[title]) - var/obj/effect/landmark/start/spawn_point = get_default_roundstart_spawn_point() + var/obj/effect/landmark/start/spawn_point = get_default_roundstart_spawn_point(chosen_title) if(!spawn_point) //if there isn't a spawnpoint send them to latejoin, if there's no latejoin go yell at your mapper return get_latejoin_spawn_point() return spawn_point /// Handles finding and picking a valid roundstart effect landmark spawn point, in case no uncommon different spawning events occur. -/datum/job/proc/get_default_roundstart_spawn_point() +/datum/job/proc/get_default_roundstart_spawn_point(chosen_title) + var/list/spawn_points_picked = list() + var/list/spawn_points_not_picked = list() for(var/obj/effect/landmark/start/spawn_point as anything in GLOB.start_landmarks_list) if(spawn_point.name != title) continue - . = spawn_point - if(spawn_point.used) //so we can revert to spawning them on top of eachother if something goes wrong - continue - spawn_point.used = TRUE - break + if(spawn_point.required_jobtitle && spawn_point.required_jobtitle == chosen_title) // we default to jobtitle spawns first + . = spawn_point + if(spawn_point.used) //so we can revert to spawning them on top of eachother if something goes wrong + continue + spawn_point.used = TRUE + break + else + + if(spawn_point.used) + spawn_points_picked += spawn_point + else + spawn_points_not_picked += spawn_point + + var/obj/effect/landmark/start/picked = pick(spawn_points_not_picked) + + if(!picked) + picked = pick(spawn_points_picked) + + . = picked + picked.used = TRUE + if(!.) log_world("Couldn't find a round start spawn point for [title]") diff --git a/code/modules/jobs/job_types/captain.dm b/code/modules/jobs/job_types/captain.dm index c4f5d4e7e3a2..c49071d37027 100755 --- a/code/modules/jobs/job_types/captain.dm +++ b/code/modules/jobs/job_types/captain.dm @@ -21,7 +21,7 @@ plasmaman_outfit = /datum/outfit/plasmaman/captain paycheck = PAYCHECK_COMMAND - paycheck_department = ACCOUNT_SEC + paycheck_department = ACCOUNT_CMD liver_traits = list(TRAIT_ROYAL_METABOLISM) diff --git a/code/modules/jobs/job_types/prisoner.dm b/code/modules/jobs/job_types/prisoner.dm index d99852d5fbef..5da3f5437f1a 100644 --- a/code/modules/jobs/job_types/prisoner.dm +++ b/code/modules/jobs/job_types/prisoner.dm @@ -27,23 +27,25 @@ /datum/job/prisoner/New() . = ..() - RegisterSignal(SSdcs, COMSIG_GLOB_CREWMEMBER_JOINED, PROC_REF(add_pref_crime)) + RegisterSignal(SSdcs, COMSIG_GLOB_CREWMEMBER_JOINED, PROC_REF(handle_prisoner_joining)) -/datum/job/prisoner/proc/add_pref_crime(datum/source, mob/living/crewmember, rank) +/datum/job/prisoner/proc/handle_prisoner_joining(datum/source, mob/living/crewmember, rank) SIGNAL_HANDLER if(rank != title) return //not a prisoner var/crime_name = crewmember.client?.prefs?.read_preference(/datum/preference/choiced/prisoner_crime) if(!crime_name) - return - if(crime_name == "Random") + stack_trace("[crewmember] joined as a Prisoner without having a prisoner crime set.") + crime_name = pick(assoc_to_keys(GLOB.prisoner_crimes)) + else if(crime_name == "Random") crime_name = pick(assoc_to_keys(GLOB.prisoner_crimes)) var/datum/prisoner_crime/crime = GLOB.prisoner_crimes[crime_name] var/datum/record/crew/target_record = crewmember.mind?.crewfile || find_record(crewmember.real_name) var/datum/crime/past_crime = new(crime.name, crime.desc, "Central Command", "Indefinite.") target_record?.crimes += past_crime + target_record.recreate_manifest_photos(add_height_chart = TRUE) to_chat(crewmember, span_warning("You are imprisoned for \"[crime_name]\".")) crewmember.add_mob_memory(/datum/memory/key/permabrig_crimes, crimes = crime_name) @@ -100,7 +102,7 @@ /// Iterates over all turfs in the target area and returns the first non-dense one /datum/job/prisoner/proc/get_random_open_turf_in_area() - var/list/turfs = get_area_turfs(/area/station/security/prison) + var/list/turfs = get_area_turfs(/area/station/security/prison/safe) var/turf/open/target_turf = null var/sanity = 0 while(!target_turf && sanity < 100) diff --git a/code/modules/jobs/job_types/virologist.dm b/code/modules/jobs/job_types/virologist.dm index 6e4a0859f73f..59e1d531f44c 100644 --- a/code/modules/jobs/job_types/virologist.dm +++ b/code/modules/jobs/job_types/virologist.dm @@ -55,7 +55,7 @@ uniform = /obj/item/clothing/under/rank/medical/virologist backpack_contents = list( // /obj/item/extrapolator = 1, //monkestation edit - extrapolator is useless with pathology. - /obj/item/storage/box/vials = 1, + /obj/item/storage/box/tube = 1, ) suit = /obj/item/clothing/suit/toggle/labcoat/virologist suit_store = /obj/item/flashlight/pen diff --git a/code/modules/language/language_holder.dm b/code/modules/language/language_holder.dm index 1103d7bc6740..20da6423d47e 100644 --- a/code/modules/language/language_holder.dm +++ b/code/modules/language/language_holder.dm @@ -286,9 +286,11 @@ Key procs /datum/language_holder/lizard understood_languages = list(/datum/language/common = list(LANGUAGE_ATOM), - /datum/language/draconic = list(LANGUAGE_ATOM)) + /datum/language/draconic = list(LANGUAGE_ATOM), + /datum/language/ashtongue = list(LANGUAGE_ATOM)) spoken_languages = list(/datum/language/common = list(LANGUAGE_ATOM), - /datum/language/draconic = list(LANGUAGE_ATOM)) + /datum/language/draconic = list(LANGUAGE_ATOM), + /datum/language/ashtongue = list(LANGUAGE_ATOM)) /datum/language_holder/lizard/ash selected_language = /datum/language/draconic diff --git a/code/modules/lighting/lighting_corner.dm b/code/modules/lighting/lighting_corner.dm index dc0ad04162ae..270a2a3eec23 100644 --- a/code/modules/lighting/lighting_corner.dm +++ b/code/modules/lighting/lighting_corner.dm @@ -105,9 +105,9 @@ lum_g += delta_g lum_b += delta_b - add_r = clamp((lum_r - 1.3) * 0.45, 0, 0.3) - add_g = clamp((lum_g - 1.3) * 0.45, 0, 0.3) - add_b = clamp((lum_b - 1.3) * 0.45, 0, 0.3) + add_r = clamp((lum_r - 1.35) * 0.4, 0, 0.3) + add_g = clamp((lum_g - 1.35) * 0.4, 0, 0.3) + add_b = clamp((lum_b - 1.35) * 0.4, 0, 0.3) // Cull additive overlays that would be below 0.09 alpha in any color. applying_additive = max(add_r, add_g, add_b) > 0.09 // Cull additive overlays whose color alpha sum is lower than 0.09 diff --git a/code/modules/lighting/lighting_object.dm b/code/modules/lighting/lighting_object.dm index 7b475d38b4f5..36a247f0f8eb 100644 --- a/code/modules/lighting/lighting_object.dm +++ b/code/modules/lighting/lighting_object.dm @@ -21,7 +21,7 @@ GLOBAL_LIST_EMPTY(default_lighting_underlays_by_z) current_underlay = new(GLOB.default_lighting_underlays_by_z[source.z]) - additive_underlay = mutable_appearance(LIGHTING_ICON, ("light"), source.z, source, LIGHTING_PLANE_ADDITIVE, 255, RESET_COLOR | RESET_ALPHA | RESET_TRANSFORM) + additive_underlay = mutable_appearance(LIGHTING_ICON, ("light"), source.z, source, LIGHTING_PLANE_ADDITIVE, 200, RESET_COLOR | RESET_ALPHA | RESET_TRANSFORM) additive_underlay.blend_mode = BLEND_ADD diff --git a/code/modules/mining/equipment/mining_tools.dm b/code/modules/mining/equipment/mining_tools.dm index 4ec3f754e58c..7431a7d3d463 100644 --- a/code/modules/mining/equipment/mining_tools.dm +++ b/code/modules/mining/equipment/mining_tools.dm @@ -196,6 +196,9 @@ attack_verb_simple = list("bash", "bludgeon", "thrash", "whack") wound_bonus = 10 +/obj/item/trench_tool/get_all_tool_behaviours() + return list(TOOL_MINING, TOOL_SHOVEL, TOOL_WRENCH) + /obj/item/trench_tool/Initialize(mapload) . = ..() AddElement(/datum/element/update_icon_updates_onmob) diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm index 5706baa595bd..ed00c93095fd 100644 --- a/code/modules/mob/dead/new_player/new_player.dm +++ b/code/modules/mob/dead/new_player/new_player.dm @@ -233,6 +233,7 @@ humanc.increment_scar_slot() humanc.load_persistent_scars() + SSpersistence.load_modular_persistence(humanc.get_organ_slot(ORGAN_SLOT_BRAIN)) //monkestation edit start if(GLOB.dj_booth) diff --git a/code/modules/mob/inventory.dm b/code/modules/mob/inventory.dm index dcc19b859344..5d3d80745a3d 100644 --- a/code/modules/mob/inventory.dm +++ b/code/modules/mob/inventory.dm @@ -1,4 +1,4 @@ -//These procs handle putting s tuff in your hands +//These procs handle putting stuff in your hands //as they handle all relevant stuff like adding it to the player's screen and updating their overlays. ///Returns the thing we're currently holding diff --git a/code/modules/mob/living/brain/brain_item.dm b/code/modules/mob/living/brain/brain_item.dm index dba17bb6647f..bdf67c3af531 100644 --- a/code/modules/mob/living/brain/brain_item.dm +++ b/code/modules/mob/living/brain/brain_item.dm @@ -220,13 +220,13 @@ return if((brainmob && (brainmob.client || brainmob.get_ghost())) || decoy_override) if(organ_flags & ORGAN_FAILING) - return span_info("It seems to still have a bit of energy within it, but it's rather damaged... You may be able to restore it with some mannitol.") + . += span_info("It seems to still have a bit of energy within it, but it's rather damaged... You may be able to restore it with some mannitol.") else if(damage >= BRAIN_DAMAGE_DEATH*0.5) - return span_info("You can feel the small spark of life still left in this one, but it's got some bruises. You may be able to restore it with some mannitol.") + . += span_info("You can feel the small spark of life still left in this one, but it's got some bruises. You may be able to restore it with some mannitol.") else - return span_info("You can feel the small spark of life still left in this one.") + . += span_info("You can feel the small spark of life still left in this one.") else - return span_info("This one is completely devoid of life.") + . += span_info("This one is completely devoid of life.") /obj/item/organ/internal/brain/attack(mob/living/carbon/C, mob/user) if(!istype(C)) diff --git a/code/modules/mob/living/carbon/alien/larva/powers.dm b/code/modules/mob/living/carbon/alien/larva/powers.dm index bfb5e49e96e0..06012785cc6f 100644 --- a/code/modules/mob/living/carbon/alien/larva/powers.dm +++ b/code/modules/mob/living/carbon/alien/larva/powers.dm @@ -3,29 +3,28 @@ desc = "Allows you to hide beneath tables and certain objects." button_icon_state = "alien_hide" plasma_cost = 0 - /// The layer we are on while hiding - var/hide_layer = ABOVE_NORMAL_TURF_LAYER - var/hide_plane = WALL_PLANE + var/hidden = FALSE + //the status of our hide +// var/hide_layer = ABOVE_NORMAL_TURF_LAYER +// var/hide_plane = WALL_PLANE /datum/action/cooldown/alien/hide/Activate(atom/target) - if(owner.layer == hide_layer) - owner.layer = initial(owner.layer) - owner.plane = initial(owner.plane) + if(hidden == TRUE) + owner.plane += 2 owner.visible_message( span_notice("[owner] slowly peeks up from the ground..."), span_noticealien("You stop hiding."), ) - + hidden = FALSE REMOVE_TRAIT(owner, TRAIT_IGNORE_ELEVATION, ACTION_TRAIT) else - owner.layer = hide_layer - owner.plane = hide_plane + owner.plane -= 2 owner.visible_message( span_name("[owner] scurries to the ground!"), span_noticealien("You are now hiding."), ) ADD_TRAIT(owner, TRAIT_IGNORE_ELEVATION, ACTION_TRAIT) - + hidden = TRUE return TRUE /datum/action/cooldown/alien/larva_evolve @@ -50,7 +49,7 @@ return FALSE return TRUE - +/* /datum/action/cooldown/alien/larva_evolve/Activate(atom/target) var/mob/living/carbon/alien/larva/larva = owner var/static/list/caste_options @@ -104,3 +103,4 @@ larva.alien_evolve(new_xeno) return TRUE +*/ diff --git a/code/modules/mob/living/carbon/alien/special/alien_embryo.dm b/code/modules/mob/living/carbon/alien/special/alien_embryo.dm index 363fa866d805..a430deb718db 100644 --- a/code/modules/mob/living/carbon/alien/special/alien_embryo.dm +++ b/code/modules/mob/living/carbon/alien/special/alien_embryo.dm @@ -134,13 +134,13 @@ if(gib_on_success) new_xeno.visible_message(span_danger("[new_xeno] bursts out of [owner] in a shower of gore!"), span_userdanger("You exit [owner], your previous host."), span_hear("You hear organic matter ripping and tearing!")) - owner.investigate_log("has been gibbed by an alien larva.", INVESTIGATE_DEATHS) - owner.gib(TRUE) + owner.apply_damage(150, BRUTE, BODY_ZONE_CHEST, wound_bonus = 30, sharpness = SHARP_POINTY) //You aren't getting gibbed but you aren't going to be having fun + owner.spawn_gibs() else new_xeno.visible_message(span_danger("[new_xeno] wriggles out of [owner]!"), span_userdanger("You exit [owner], your previous host.")) owner.log_message("had an alien larva within them escape (without being gibbed).", LOG_ATTACK, log_globally = FALSE) - owner.adjustBruteLoss(40) - owner.cut_overlay(overlay) + owner.apply_damage(150, BRUTE, BODY_ZONE_CHEST, wound_bonus = 30, sharpness = SHARP_POINTY) //You aren't getting gibbed but you aren't going to be having fun + owner.spawn_gibs() qdel(src) diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index 172e8b2c467f..5b9cd941a310 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -434,6 +434,12 @@ . += span_info("Traits: [get_quirk_string(FALSE, CAT_QUIRK_ALL)]") . += "" + if (!CONFIG_GET(flag/disable_antag_opt_in_preferences)) + var/opt_in_status = mind?.get_effective_opt_in_level() + if (!isnull(opt_in_status)) + var/stringified_optin = GLOB.antag_opt_in_strings["[opt_in_status]"] + . += span_info("Antag Opt-in Status: [stringified_optin]") + SEND_SIGNAL(src, COMSIG_ATOM_EXAMINE, user, .) /** diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 8180e27be6ce..0c82fd8a0ae8 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -251,6 +251,7 @@ apply_damage(damage, BRUTE, affecting, run_armor_check(affecting, MELEE)) return TRUE +/* /mob/living/carbon/human/attack_alien(mob/living/carbon/alien/adult/user, list/modifiers) if(check_shields(user, 0, "the [user.name]")) visible_message(span_danger("[user] attempts to touch [src]!"), \ @@ -305,7 +306,7 @@ if(!dismembering_strike(user, user.zone_selected)) //Dismemberment successful return TRUE apply_damage(damage, BRUTE, affecting, armor_block) - +*/ diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index 14003b86da49..7c8306ca3e01 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -22,7 +22,7 @@ return ..() /mob/living/carbon/human/mob_negates_gravity() - return dna.species.negates_gravity(src) || ..() + return dna?.species?.negates_gravity(src) || ..() /mob/living/carbon/human/Move(NewLoc, direct) . = ..() diff --git a/code/modules/mob/living/carbon/init_signals.dm b/code/modules/mob/living/carbon/init_signals.dm index 930e863b335a..e3cc487eeb7d 100644 --- a/code/modules/mob/living/carbon/init_signals.dm +++ b/code/modules/mob/living/carbon/init_signals.dm @@ -84,12 +84,7 @@ SIGNAL_HANDLER for(var/datum/disease/disease as anything in diseases) - // monkestation edit start - virology (cure() on advanced diseases has the infected mob as the first argument now) - if(istype(disease, /datum/disease/advanced)) - disease.cure(src, FALSE) - else - disease.cure(FALSE) - // monkestation end + disease.cure(add_resistance = TRUE, target = src) // monkestation edit - virology bs /** * On gain of TRAIT_TOXIMMUNE diff --git a/code/modules/mob/living/death.dm b/code/modules/mob/living/death.dm index 71e8210bacc6..957839645d92 100644 --- a/code/modules/mob/living/death.dm +++ b/code/modules/mob/living/death.dm @@ -104,6 +104,8 @@ med_hud_set_status() stop_pulling() + set_ssd_indicator(FALSE) + SEND_SIGNAL(src, COMSIG_LIVING_DEATH, gibbed) SEND_GLOBAL_SIGNAL(COMSIG_GLOB_MOB_DEATH, src, gibbed) diff --git a/code/modules/mob/living/simple_animal/hostile/mimic.dm b/code/modules/mob/living/simple_animal/hostile/mimic.dm index b97f2bba17ad..10d21416f355 100644 --- a/code/modules/mob/living/simple_animal/hostile/mimic.dm +++ b/code/modules/mob/living/simple_animal/hostile/mimic.dm @@ -234,7 +234,7 @@ GLOBAL_LIST_INIT(animatable_blacklist, list(/obj/structure/table, /obj/structure projectiletype = initial(M.projectile_type) if(istype(G, /obj/item/gun/ballistic)) Pewgun = G - var/obj/item/ammo_box/magazine/M = Pewgun.mag_type + var/obj/item/ammo_box/magazine/M = Pewgun.accepted_magazine_type casingtype = initial(M.ammo_type) if(istype(G, /obj/item/gun/energy)) Zapgun = G diff --git a/code/modules/mod/mod_theme.dm b/code/modules/mod/mod_theme.dm index 26b206ef3de4..f0bcd0be0fbd 100644 --- a/code/modules/mod/mod_theme.dm +++ b/code/modules/mod/mod_theme.dm @@ -317,7 +317,7 @@ resistance_flags = FIRE_PROOF|LAVA_PROOF max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT - complexity_max = DEFAULT_MAX_COMPLEXITY - 5 + complexity_max = DEFAULT_MAX_COMPLEXITY - 2 charge_drain = DEFAULT_CHARGE_DRAIN * 2 allowed_suit_storage = list( /obj/item/resonator, @@ -474,6 +474,7 @@ /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/cup/beaker, /obj/item/reagent_containers/cup/bottle, + /obj/item/reagent_containers/cup/tube, /obj/item/reagent_containers/hypospray, /obj/item/reagent_containers/pill, /obj/item/reagent_containers/syringe, @@ -569,6 +570,7 @@ /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/cup/beaker, /obj/item/reagent_containers/cup/bottle, + /obj/item/reagent_containers/cup/tube, /obj/item/reagent_containers/hypospray, /obj/item/reagent_containers/pill, /obj/item/reagent_containers/syringe, @@ -1291,7 +1293,7 @@ post-void war era modular suit to ever be safely utilized by an operator. This ancient clunker is still functional, \ though it's missing several modern-day luxuries from updated Nakamura Engineering designs. \ Primarily, the suit's myoelectric suit layer is entirely non-existant, and the servos do very little to \ - help distribute the weight evenly across the wearer's body, making it slow and bulky to move in. \ + help distribute the weight evenly across the wearer's body when the suit is deactivated, making it slow and bulky to move in. \ The internal heads-up display is rendered in nearly unreadable cyan, as the visor suggests, \ leaving the user unable to see long distances. However, the way the helmet retracts is pretty cool." default_skin = "prototype" @@ -1300,8 +1302,8 @@ siemens_coefficient = 0 complexity_max = DEFAULT_MAX_COMPLEXITY + 5 charge_drain = DEFAULT_CHARGE_DRAIN * 2 - slowdown_inactive = 2 - slowdown_active = 1.5 + slowdown_inactive = 1.5 + slowdown_active = 1 ui_theme = "hackerman" inbuilt_modules = list(/obj/item/mod/module/anomaly_locked/kinesis/prebuilt/prototype) allowed_suit_storage = list( diff --git a/code/modules/mod/mod_types.dm b/code/modules/mod/mod_types.dm index e33472006c4b..3da0067f0eb6 100644 --- a/code/modules/mod/mod_types.dm +++ b/code/modules/mod/mod_types.dm @@ -106,6 +106,7 @@ /obj/item/mod/module/orebag, /obj/item/mod/module/clamp, /obj/item/mod/module/drill, + /obj/item/mod/module/mouthhole, ) default_pins = list( /obj/item/mod/module/gps, @@ -304,7 +305,7 @@ applied_modules = list( /obj/item/mod/module/storage, /obj/item/mod/module/noslip, - /obj/item/mod/module/status_readout, + /obj/item/mod/module/status_readout/ninja, /obj/item/mod/module/stealth/ninja, /obj/item/mod/module/dispenser/ninja, /obj/item/mod/module/dna_lock/reinforced, diff --git a/code/modules/mod/modules/_module.dm b/code/modules/mod/modules/_module.dm index 44ed493cc2d3..887e818e0037 100644 --- a/code/modules/mod/modules/_module.dm +++ b/code/modules/mod/modules/_module.dm @@ -337,6 +337,8 @@ var/list/accepted_anomalies = list(/obj/item/assembly/signaler/anomaly) /// If this one starts with a core in. var/prebuilt = FALSE + /// If the core is removable once socketed. + var/core_removable = TRUE /obj/item/mod/module/anomaly_locked/Initialize(mapload) . = ..() @@ -355,13 +357,15 @@ if(!length(accepted_anomalies)) return if(core) - . += span_notice("There is a [core.name] installed in it. You could remove it with a screwdriver...") + . += span_notice("There is a [core.name] installed in it. [core_removable ? "You could remove it with a screwdriver..." : "Unfortunately, due to a design quirk, it's unremovable."]") else var/list/core_list = list() for(var/path in accepted_anomalies) var/atom/core_path = path core_list += initial(core_path.name) . += span_notice("You need to insert \a [english_list(core_list, and_text = " or ")] for this module to function.") + if(!core_removable) + . += span_notice("Due to some design quirk, once a core is inserted, it won't be removable.") /obj/item/mod/module/anomaly_locked/on_select() if(!core) @@ -398,6 +402,9 @@ if(!core) balloon_alert(user, "no core!") return + if(!core_removable) + balloon_alert(user, "can't remove core!") + return balloon_alert(user, "removing core...") if(!do_after(user, 3 SECONDS, target = src)) balloon_alert(user, "interrupted!") diff --git a/code/modules/mod/modules/module_kinesis.dm b/code/modules/mod/modules/module_kinesis.dm index 8fe4ba9f07c0..8387aedee2a7 100644 --- a/code/modules/mod/modules/module_kinesis.dm +++ b/code/modules/mod/modules/module_kinesis.dm @@ -218,6 +218,10 @@ /obj/item/mod/module/anomaly_locked/kinesis/prebuilt prebuilt = TRUE +/obj/item/mod/module/anomaly_locked/kinesis/prebuilt/locked + core_removable = FALSE + + /obj/item/mod/module/anomaly_locked/kinesis/prebuilt/prototype name = "MOD prototype kinesis module" complexity = 0 diff --git a/code/modules/mod/modules/module_pathfinder.dm b/code/modules/mod/modules/module_pathfinder.dm index 5f40982e9e90..2b4f9c70f5f0 100644 --- a/code/modules/mod/modules/module_pathfinder.dm +++ b/code/modules/mod/modules/module_pathfinder.dm @@ -10,7 +10,7 @@ The implant is stored in the module and needs to be injected in a human to function. \ Nakamura Engineering swears up and down there's airbrakes." icon_state = "pathfinder" - complexity = 2 + complexity = 1 use_power_cost = DEFAULT_CHARGE_DRAIN * 10 incompatible_modules = list(/obj/item/mod/module/pathfinder) /// The pathfinding implant. diff --git a/code/modules/mod/modules/modules_engineering.dm b/code/modules/mod/modules/modules_engineering.dm index e41b35aa51ee..a609236b02fe 100644 --- a/code/modules/mod/modules/modules_engineering.dm +++ b/code/modules/mod/modules/modules_engineering.dm @@ -85,7 +85,7 @@ these are only capable of working in zero-gravity environments, a blessing to some Engineers." icon_state = "tether" module_type = MODULE_ACTIVE - complexity = 3 + complexity = 2 use_power_cost = DEFAULT_CHARGE_DRAIN incompatible_modules = list(/obj/item/mod/module/tether) cooldown_time = 1.5 SECONDS diff --git a/code/modules/mod/modules/modules_general.dm b/code/modules/mod/modules/modules_general.dm index 5ce86023956a..ea8e4409ee1b 100644 --- a/code/modules/mod/modules/modules_general.dm +++ b/code/modules/mod/modules/modules_general.dm @@ -38,9 +38,12 @@ /obj/item/mod/module/storage/proc/on_chestplate_unequip(obj/item/source, force, atom/newloc, no_move, invdrop, silent) if(QDELETED(source) || !mod.wearer || newloc == mod.wearer || !mod.wearer.s_store) return - to_chat(mod.wearer, span_notice("[src] tries to store [mod.wearer.s_store] inside itself.")) - if(atom_storage?.attempt_insert(mod.wearer.s_store, mod.wearer, override = TRUE)) - mod.wearer.temporarilyRemoveItemFromInventory(mod.wearer.s_store) + if(!atom_storage?.attempt_insert(mod.wearer.s_store, mod.wearer, override = TRUE)) + balloon_alert(mod.wearer, "storage failed!") + to_chat(mod.wearer, span_warning("[src] fails to store [mod.wearer.s_store] inside itself!")) + return + to_chat(mod.wearer, span_notice("[src] stores [mod.wearer.s_store] inside itself.")) + mod.wearer.temporarilyRemoveItemFromInventory(mod.wearer.s_store) /obj/item/mod/module/storage/large_capacity name = "MOD expanded storage module" @@ -163,6 +166,68 @@ overlay_state_active = "module_jetpackadv_on" full_speed = TRUE +///Status Readout - Puts a lot of information including health, nutrition, fingerprints, temperature to the suit TGUI. +/obj/item/mod/module/status_readout + name = "MOD status readout module" + desc = "A once-common module, this technology unfortunately went out of fashion in the safer regions of space; \ + and found new life in the research networks of the Periphery. This particular unit hooks into the suit's spine, \ + capable of capturing and displaying all possible biometric data of the wearer; sleep, nutrition, fitness, fingerprints, \ + and even useful information such as their overall health and wellness. The vitals monitor also comes with a speaker, loud enough \ + to alert anyone nearby that someone has, in fact, died." + icon_state = "status" + complexity = 1 + use_power_cost = DEFAULT_CHARGE_DRAIN * 0.1 + incompatible_modules = list(/obj/item/mod/module/status_readout) + tgui_id = "status_readout" + /// Does this show the round ID and shift time? + var/show_time = FALSE + /// Death sound. May or may not be funny. Vareditable at your own risk. + var/death_sound = 'sound/effects/flatline3.ogg' + /// Death sound volume. Please be responsible with this. + var/death_sound_volume = 50 + +/obj/item/mod/module/status_readout/add_ui_data() + . = ..() + .["show_time"] = show_time + .["statustime"] = station_time_timestamp() + .["statusid"] = GLOB.round_id + .["statushealth"] = mod.wearer?.health || 0 + .["statusmaxhealth"] = mod.wearer?.getMaxHealth() || 0 + .["statusbrute"] = mod.wearer?.getBruteLoss() || 0 + .["statusburn"] = mod.wearer?.getFireLoss() || 0 + .["statustoxin"] = mod.wearer?.getToxLoss() || 0 + .["statusoxy"] = mod.wearer?.getOxyLoss() || 0 + .["statustemp"] = mod.wearer?.bodytemperature || 0 + .["statusnutrition"] = mod.wearer?.nutrition || 0 + .["statusfingerprints"] = mod.wearer ? md5(mod.wearer.dna.unique_identity) : null + .["statusdna"] = mod.wearer?.dna.unique_enzymes + .["statusviruses"] = null + if(!length(mod.wearer?.diseases)) + return . + var/list/viruses = list() + for(var/datum/disease/virus as anything in mod.wearer.diseases) + var/list/virus_data = list() + virus_data["name"] = virus.name + virus_data["type"] = virus.spread_text + virus_data["stage"] = virus.stage + virus_data["maxstage"] = virus.max_stages + virus_data["cure"] = virus.cure_text + viruses += list(virus_data) + .["statusviruses"] = viruses + + return . + +/obj/item/mod/module/status_readout/on_suit_activation() + RegisterSignal(mod.wearer, COMSIG_LIVING_DEATH, PROC_REF(death_sound)) + +/obj/item/mod/module/status_readout/on_suit_deactivation(deleting) + UnregisterSignal(mod.wearer, COMSIG_LIVING_DEATH) + +/obj/item/mod/module/status_readout/proc/death_sound(mob/living/carbon/human/wearer) + SIGNAL_HANDLER + if(death_sound && death_sound_volume) + playsound(wearer, death_sound, death_sound_volume, FALSE) + ///Eating Apparatus - Lets the user eat/drink with the suit on. /obj/item/mod/module/mouthhole name = "MOD eating apparatus module" @@ -181,8 +246,8 @@ /obj/item/mod/module/mouthhole/on_install() former_flags = mod.helmet.flags_cover former_visor_flags = mod.helmet.visor_flags_cover - mod.helmet.flags_cover &= ~HEADCOVERSMOUTH|PEPPERPROOF - mod.helmet.visor_flags_cover &= ~HEADCOVERSMOUTH|PEPPERPROOF + mod.helmet.flags_cover &= ~(HEADCOVERSMOUTH|PEPPERPROOF) + mod.helmet.visor_flags_cover &= ~(HEADCOVERSMOUTH|PEPPERPROOF) /obj/item/mod/module/mouthhole/on_uninstall(deleting = FALSE) if(deleting) @@ -358,7 +423,7 @@ ensuring they're comfortable; even if they're some that like it hot." icon_state = "regulator" module_type = MODULE_TOGGLE - complexity = 2 + complexity = 1 active_power_cost = DEFAULT_CHARGE_DRAIN * 0.3 incompatible_modules = list(/obj/item/mod/module/thermal_regulator) cooldown_time = 0.5 SECONDS @@ -389,7 +454,7 @@ however, this incredibly sensitive module is shorted out by EMPs. Luckily, cloning has been outlawed." icon_state = "dnalock" module_type = MODULE_USABLE - complexity = 2 + complexity = 1 use_power_cost = DEFAULT_CHARGE_DRAIN * 3 incompatible_modules = list(/obj/item/mod/module/dna_lock, /obj/item/mod/module/eradication_lock) cooldown_time = 0.5 SECONDS @@ -472,6 +537,11 @@ incompatible_modules = list(/obj/item/mod/module/plasma_stabilizer) overlay_state_inactive = "module_plasma" +/obj/item/mod/module/plasma_stabilizer/generate_worn_overlay() + if(locate(/obj/item/mod/module/infiltrator) in mod.modules) + return list() + return ..() + /obj/item/mod/module/plasma_stabilizer/on_equip() ADD_TRAIT(mod.wearer, TRAIT_NOSELFIGNITION_HEAD_ONLY, MOD_TRAIT) @@ -484,7 +554,7 @@ /obj/item/mod/module/hat_stabilizer name = "MOD hat stabilizer module" desc = "A simple set of deployable stands, directly atop one's head; \ - these will deploy under a select few hats to keep them from falling off, allowing them to be worn atop the sealed helmet. \ + these will deploy under a hat to keep it from falling off, allowing them to be worn atop the sealed helmet. \ You still need to take the hat off your head while the helmet deploys, though. \ This is a must-have for Nanotrasen Captains, enabling them to show off their authoritative hat even while in their MODsuit." icon_state = "hat_holder" @@ -493,36 +563,9 @@ even though it comes inbuilt into the Magnate/Corporate MODS and spawns in maints, I like the idea of stealing them*/ /// Currently "stored" hat. No armor or function will be inherited, ONLY the icon. var/obj/item/clothing/head/attached_hat - /// Whitelist of attachable hats, read note in Initialize() below this line - var/static/list/attachable_hats_list - -/obj/item/mod/module/hat_stabilizer/Initialize(mapload) - . = ..() - attachable_hats_list = typecacheof( - //List of attachable hats. Make sure these and their subtypes are all tested, so they dont appear janky. - //This list should also be gimmicky, so captains can have fun. I.E. the Santahat, Pirate hat, Tophat, Chefhat... - //Yes, I said it, the captain should have fun. - list( - /obj/item/clothing/head/hats/caphat, - /obj/item/clothing/head/costume/crown, - /obj/item/clothing/head/hats/centhat, - /obj/item/clothing/head/hats/centcom_cap, - /obj/item/clothing/head/costume/pirate, - /obj/item/clothing/head/costume/santa, - /obj/item/clothing/head/utility/hardhat/reindeer, - /obj/item/clothing/head/costume/sombrero/green, - /obj/item/clothing/head/costume/kitty, - /obj/item/clothing/head/costume/rabbitears, - /obj/item/clothing/head/costume/festive, - /obj/item/clothing/head/costume/powdered_wig, - /obj/item/clothing/head/costume/weddingveil, - /obj/item/clothing/head/hats/tophat, - /obj/item/clothing/head/costume/nursehat, - /obj/item/clothing/head/utility/chefhat, - /obj/item/clothing/head/costume/papersack, - /obj/item/clothing/head/caphat/beret, - /obj/item/clothing/head/helmet/space/beret, - )) + /// Original cover flags for the MOD helmet, before a hat is placed + var/former_flags + var/former_visor_flags /obj/item/mod/module/hat_stabilizer/on_suit_activation() RegisterSignal(mod.helmet, COMSIG_ATOM_EXAMINE, PROC_REF(add_examine)) @@ -552,14 +595,15 @@ if(!mod.active) balloon_alert(user, "suit must be active!") return - if(!is_type_in_typecache(hitting_item, attachable_hats_list)) - balloon_alert(user, "this hat won't fit!") - return if(attached_hat) balloon_alert(user, "hat already attached!") return if(mod.wearer.transferItemToLoc(hitting_item, src, force = FALSE, silent = TRUE)) attached_hat = hitting_item + former_flags = mod.helmet.flags_cover + former_visor_flags = mod.helmet.visor_flags_cover + mod.helmet.flags_cover |= attached_hat.flags_cover + mod.helmet.visor_flags_cover |= attached_hat.visor_flags_cover balloon_alert(user, "hat attached, right-click to remove") mod.wearer.update_clothing(mod.slot_flags) @@ -579,6 +623,8 @@ else balloon_alert_to_viewers("the hat falls to the floor!") attached_hat = null + mod.helmet.flags_cover = former_flags + mod.helmet.visor_flags_cover = former_visor_flags mod.wearer.update_clothing(mod.slot_flags) ///Sign Language Translator - allows people to sign over comms using the modsuit's gloves. diff --git a/code/modules/mod/modules/modules_maint.dm b/code/modules/mod/modules/modules_maint.dm index 9829321f6400..d3eb905a2068 100644 --- a/code/modules/mod/modules/modules_maint.dm +++ b/code/modules/mod/modules/modules_maint.dm @@ -287,6 +287,7 @@ playsound(src, 'sound/effects/curseattack.ogg', 50) mod.wearer.AddElement(/datum/element/forced_gravity, NEGATIVE_GRAVITY) RegisterSignal(mod.wearer, COMSIG_MOVABLE_MOVED, PROC_REF(check_upstairs)) + RegisterSignal(mod.wearer, COMSIG_MOB_SAY, PROC_REF(on_talk)) ADD_TRAIT(mod.wearer, TRAIT_SILENT_FOOTSTEPS, MOD_TRAIT) check_upstairs() //todo at some point flip your screen around @@ -300,7 +301,7 @@ if(deleting) playsound(src, 'sound/effects/curseattack.ogg', 50) qdel(mod.wearer.RemoveElement(/datum/element/forced_gravity, NEGATIVE_GRAVITY)) - UnregisterSignal(mod.wearer, COMSIG_MOVABLE_MOVED) + UnregisterSignal(mod.wearer, list(COMSIG_MOVABLE_MOVED, COMSIG_MOB_SAY)) step_count = 0 REMOVE_TRAIT(mod.wearer, TRAIT_SILENT_FOOTSTEPS, MOD_TRAIT) var/turf/open/openspace/current_turf = get_turf(mod.wearer) @@ -334,3 +335,7 @@ QDEL_IN(mod.wearer, FLY_TIME) #undef FLY_TIME + +/obj/item/mod/module/atrocinator/proc/on_talk(datum/source, list/speech_args) + SIGNAL_HANDLER + speech_args[SPEECH_SPANS] |= "upside_down" diff --git a/code/modules/mod/modules/modules_medical.dm b/code/modules/mod/modules/modules_medical.dm index 46f698e0d5fb..10d3be3b0f41 100644 --- a/code/modules/mod/modules/modules_medical.dm +++ b/code/modules/mod/modules/modules_medical.dm @@ -13,24 +13,30 @@ but it's up to you to do something with it." icon_state = "health" module_type = MODULE_ACTIVE - complexity = 2 + complexity = 1 use_power_cost = DEFAULT_CHARGE_DRAIN incompatible_modules = list(/obj/item/mod/module/health_analyzer) cooldown_time = 0.5 SECONDS tgui_id = "health_analyzer" /// Scanning mode, changes how we scan something. var/mode = HEALTH_SCAN + /// Do we relay the wearer's health data to the info tab? Mainly useful for turning off if you also have a status readout. + var/show_vitals = TRUE /// List of all scanning modes. var/static/list/modes = list(HEALTH_SCAN, WOUND_SCAN, CHEM_SCAN) /obj/item/mod/module/health_analyzer/add_ui_data() . = ..() - .["userhealth"] = mod.wearer?.health || 0 - .["usermaxhealth"] = mod.wearer?.getMaxHealth() || 0 - .["userbrute"] = mod.wearer?.getBruteLoss() || 0 - .["userburn"] = mod.wearer?.getFireLoss() || 0 - .["usertoxin"] = mod.wearer?.getToxLoss() || 0 - .["useroxy"] = mod.wearer?.getOxyLoss() || 0 + .["show_vitals"] = show_vitals + if(show_vitals) + .["userhealth"] = mod.wearer?.health || 0 + .["usermaxhealth"] = mod.wearer?.getMaxHealth() || 0 + .["userbrute"] = mod.wearer?.getBruteLoss() || 0 + .["userburn"] = mod.wearer?.getFireLoss() || 0 + .["usertoxin"] = mod.wearer?.getToxLoss() || 0 + .["useroxy"] = mod.wearer?.getOxyLoss() || 0 + + return . /obj/item/mod/module/health_analyzer/on_select_use(atom/target) . = ..() @@ -50,11 +56,16 @@ /obj/item/mod/module/health_analyzer/get_configuration() . = ..() .["mode"] = add_ui_configuration("Scan Mode", "list", mode, modes) + .["show_vitals"] = add_ui_configuration("Self Vitals Display", "bool", show_vitals) + + return . /obj/item/mod/module/health_analyzer/configure_edit(key, value) switch(key) if("mode") mode = value + if("show_vitals") + show_vitals = value #undef HEALTH_SCAN #undef WOUND_SCAN diff --git a/code/modules/mod/modules/modules_ninja.dm b/code/modules/mod/modules/modules_ninja.dm index 64613a4bcec8..02bcc706c5ed 100644 --- a/code/modules/mod/modules/modules_ninja.dm +++ b/code/modules/mod/modules/modules_ninja.dm @@ -287,52 +287,24 @@ empulse(src, heavy_range = 4, light_range = 6) drain_power(use_power_cost) -///Status Readout - Puts a lot of information including health, nutrition, fingerprints, temperature to the suit TGUI. -/obj/item/mod/module/status_readout - name = "MOD status readout module" - desc = "A once-common module, this technology went unfortunately out of fashion; \ - and right into the arachnid grip of the Spider Clan. This hooks into the suit's spine, \ - capable of capturing and displaying all possible biometric data of the wearer; sleep, nutrition, fitness, fingerprints, \ - and even useful information such as their overall health and wellness." - icon_state = "status" - complexity = 1 - use_power_cost = DEFAULT_CHARGE_DRAIN * 0.1 - incompatible_modules = list(/obj/item/mod/module/status_readout) - tgui_id = "status_readout" - -/obj/item/mod/module/status_readout/add_ui_data() - . = ..() - .["statustime"] = station_time_timestamp() - .["statusid"] = GLOB.round_id - .["statushealth"] = mod.wearer?.health || 0 - .["statusmaxhealth"] = mod.wearer?.getMaxHealth() || 0 - .["statusbrute"] = mod.wearer?.getBruteLoss() || 0 - .["statusburn"] = mod.wearer?.getFireLoss() || 0 - .["statustoxin"] = mod.wearer?.getToxLoss() || 0 - .["statusoxy"] = mod.wearer?.getOxyLoss() || 0 - .["statustemp"] = mod.wearer?.bodytemperature || 0 - .["statusnutrition"] = mod.wearer?.nutrition || 0 - .["statusfingerprints"] = mod.wearer ? md5(mod.wearer.dna.unique_identity) : null - .["statusdna"] = mod.wearer?.dna.unique_enzymes - .["statusviruses"] = null - if(!length(mod.wearer?.diseases)) - return - var/list/viruses = list() - for(var/datum/disease/virus as anything in mod.wearer.diseases) - var/list/virus_data = list() - virus_data["name"] = virus.name - virus_data["type"] = virus.spread_text - virus_data["stage"] = virus.stage - virus_data["maxstage"] = virus.max_stages - virus_data["cure"] = virus.cure_text - viruses += list(virus_data) - .["statusviruses"] = viruses +/// Ninja Status Readout - Like the normal status display (see the base type), but with a clock. +/obj/item/mod/module/status_readout/ninja + name = "MOD Spider Clan status readout module" + desc = "A once-common module, this technology unfortunately went out of fashion in the safer regions of space; \ + and, according to the extra markings on this particular unit's casing, right into the arachnid grip of the Spider Clan. \ + Like other similar units, this one hooks into the suit's spine, and is capable of capturing and displaying \ + all possible biometric data of the wearer; sleep, nutrition, fitness, fingerprints, \ + and even useful information such as their overall health and wellness. This one comes with a clock that calibrates to the \ + local system time, and an operational ID number display. The vital monitor's speaker has been removed." + show_time = TRUE + death_sound = null + death_sound_volume = null ///Energy Net - Ensnares enemies in a net that prevents movement. /obj/item/mod/module/energy_net name = "MOD energy net module" desc = "A custom-built net-thrower. While conventional implementations of this capturing device \ - tilize monomolecular fibers or cutting razorwire, this uses hardlight technology to deploy a \ + utilize monomolecular fibers or cutting razorwire, this uses hardlight technology to deploy a \ trapping field capable of immobilizing even the strongest opponents." icon_state = "energy_net" removable = FALSE diff --git a/code/modules/mod/modules/modules_science.dm b/code/modules/mod/modules/modules_science.dm index af0d43a12755..c8d3cef027ae 100644 --- a/code/modules/mod/modules/modules_science.dm +++ b/code/modules/mod/modules/modules_science.dm @@ -90,6 +90,9 @@ /obj/item/mod/module/anomaly_locked/antigrav/prebuilt prebuilt = TRUE +/obj/item/mod/module/anomaly_locked/antigrav/prebuilt/locked + core_removable = FALSE + ///Teleporter - Lets the user teleport to a nearby location. /obj/item/mod/module/anomaly_locked/teleporter name = "MOD teleporter module" @@ -128,3 +131,6 @@ /obj/item/mod/module/anomaly_locked/teleporter/prebuilt prebuilt = TRUE + +/obj/item/mod/module/anomaly_locked/teleporter/prebuilt/locked + core_removable = FALSE diff --git a/code/modules/mod/modules/modules_security.dm b/code/modules/mod/modules/modules_security.dm index 8669e7debe8d..d943c2c7d99b 100644 --- a/code/modules/mod/modules/modules_security.dm +++ b/code/modules/mod/modules/modules_security.dm @@ -364,8 +364,8 @@ Its loud ping is much harder to hide in an indoor station than in the outdoor operations it was designed for." icon_state = "active_sonar" module_type = MODULE_USABLE - use_power_cost = DEFAULT_CHARGE_DRAIN * 5 - complexity = 3 + use_power_cost = DEFAULT_CHARGE_DRAIN * 4 + complexity = 2 incompatible_modules = list(/obj/item/mod/module/active_sonar) cooldown_time = 25 SECONDS diff --git a/code/modules/mod/modules/modules_service.dm b/code/modules/mod/modules/modules_service.dm index 061c81313225..5381a26e88bd 100644 --- a/code/modules/mod/modules/modules_service.dm +++ b/code/modules/mod/modules/modules_service.dm @@ -27,7 +27,7 @@ allowing them to cook food from a distance, with the greatest of ease. Not recommended for use against grapes." icon_state = "microwave_beam" module_type = MODULE_ACTIVE - complexity = 2 + complexity = 1 use_power_cost = DEFAULT_CHARGE_DRAIN * 5 incompatible_modules = list(/obj/item/mod/module/microwave_beam, /obj/item/mod/module/organ_thrower) cooldown_time = 10 SECONDS diff --git a/code/modules/mod/modules/modules_supply.dm b/code/modules/mod/modules/modules_supply.dm index f5cd29622911..70e57e685b01 100644 --- a/code/modules/mod/modules/modules_supply.dm +++ b/code/modules/mod/modules/modules_supply.dm @@ -118,7 +118,7 @@ your drill is surely the one that both pierces and creates the heavens." icon_state = "drill" module_type = MODULE_ACTIVE - complexity = 2 + complexity = 1 use_power_cost = DEFAULT_CHARGE_DRAIN incompatible_modules = list(/obj/item/mod/module/drill) cooldown_time = 0.5 SECONDS diff --git a/code/modules/mod/modules/modules_visor.dm b/code/modules/mod/modules/modules_visor.dm index 33ee50a7ed0e..e8656fe92331 100644 --- a/code/modules/mod/modules/modules_visor.dm +++ b/code/modules/mod/modules/modules_visor.dm @@ -5,7 +5,7 @@ name = "MOD visor module" desc = "A heads-up display installed into the visor of the suit. They say these also let you see behind you." module_type = MODULE_TOGGLE - complexity = 2 + complexity = 1 active_power_cost = DEFAULT_CHARGE_DRAIN * 0.3 incompatible_modules = list(/obj/item/mod/module/visor) cooldown_time = 0.5 SECONDS diff --git a/code/modules/modular_computers/file_system/programs/budgetordering.dm b/code/modules/modular_computers/file_system/programs/budgetordering.dm index 4386f612b53e..8b67d3012574 100644 --- a/code/modules/modular_computers/file_system/programs/budgetordering.dm +++ b/code/modules/modular_computers/file_system/programs/budgetordering.dm @@ -292,6 +292,14 @@ if("toggleprivate") self_paid = !self_paid . = TRUE + if("company_import_window") + var/datum/component/armament/company_imports/gun_comp = computer.GetComponent(/datum/component/armament/company_imports) + if(!gun_comp) + computer.AddComponent(/datum/component/armament/company_imports, subtypesof(/datum/armament_entry/company_import), 0) + gun_comp = computer.GetComponent(/datum/component/armament/company_imports) + gun_comp.parent_prog ||= src + gun_comp.ui_interact(usr) + . = TRUE if(.) post_signal(cargo_shuttle) diff --git a/code/modules/paperwork/pen.dm b/code/modules/paperwork/pen.dm index f9d1a3505119..af5d288d7e73 100644 --- a/code/modules/paperwork/pen.dm +++ b/code/modules/paperwork/pen.dm @@ -360,6 +360,9 @@ icon_state = "pendriver" toolspeed = 1.2 // gotta have some downside +/obj/item/pen/screwdriver/get_all_tool_behaviours() + return list(TOOL_SCREWDRIVER) + /obj/item/pen/screwdriver/Initialize(mapload) . = ..() AddComponent( \ diff --git a/code/modules/plumbing/plumbers/pill_press.dm b/code/modules/plumbing/plumbers/pill_press.dm index c8eed1e3d78a..873177819cbe 100644 --- a/code/modules/plumbing/plumbers/pill_press.dm +++ b/code/modules/plumbing/plumbers/pill_press.dm @@ -1,113 +1,115 @@ +///the minimum size of a pill or patch +#define MIN_VOLUME 5 +///the maximum size a pill or patch can be +#define MAX_VOLUME 50 +///max amount of pills allowed on our tile before we start storing them instead +#define MAX_FLOOR_PRODUCTS 10 + ///We take a constant input of reagents, and produce a pill once a set volume is reached /obj/machinery/plumbing/pill_press name = "chemical press" - desc = "A press that makes pills, patches and bottles." + desc = "A press that makes pills, patches and tubes." icon_state = "pill_press" - active_power_usage = BASE_MACHINE_ACTIVE_CONSUMPTION * 2 ///category for plumbing RCD category="Storage" - - ///maximum size of a pill - var/max_pill_volume = 50 - ///maximum size of a patch - var/max_patch_volume = 40 - ///maximum size of a bottle - var/max_bottle_volume = 30 - ///current operating product (pills or patches) + /// current operating product (pills or patches) var/product = "pill" - ///the minimum size a pill or patch can be - var/min_volume = 5 - ///the maximum size a pill or patch can be - var/max_volume = 50 - ///selected size of the product + /// selected size of the product var/current_volume = 10 - ///prefix for the product name + /// prefix for the product name var/product_name = "factory" - ///the icon_state number for the pill. - var/pill_number = RANDOM_PILL_STYLE - ///list of id's and icons for the pill selection of the ui - var/list/pill_styles - /// Currently selected patch style - var/patch_style = DEFAULT_PATCH_STYLE - /// List of available patch styles for UI - var/list/patch_styles - ///list of products stored in the machine, so we dont have 610 pills on one tile + /// All packaging types wrapped up in 1 big list + var/static/list/packaging_types = null + ///The type of packaging to use + var/packaging_type + ///Category of packaging + var/packaging_category + /// list of products stored in the machine, so we dont have 610 pills on one tile var/list/stored_products = list() - ///max amount of pills allowed on our tile before we start storing them instead - var/max_floor_products = 10 - -/obj/machinery/plumbing/pill_press/examine(mob/user) - . = ..() - . += span_notice("The [name] currently has [stored_products.len] stored. There needs to be less than [max_floor_products] on the floor to continue dispensing.") /obj/machinery/plumbing/pill_press/Initialize(mapload, bolt, layer) . = ..() + if(!packaging_types) + var/datum/asset/spritesheet/simple/assets = get_asset_datum(/datum/asset/spritesheet/chemmaster) + + var/list/types = list( + CAT_PILLS = GLOB.chem_master_containers[CAT_PILLS], + CAT_PATCHES = GLOB.chem_master_containers[CAT_PATCHES], + CAT_TUBES = list(/obj/item/reagent_containers/cup/tube), + ) + + packaging_types = list() + for(var/category in types) + var/list/packages = types[category] + + var/list/category_item = list("cat_name" = category) + for(var/obj/item/reagent_containers/container as anything in packages) + var/list/package_item = list( + "class_name" = assets.icon_class_name(sanitize_css_class_name("[container]")), + "ref" = REF(container) + ) + category_item["products"] += list(package_item) + + packaging_types += list(category_item) + + packaging_type = REF(GLOB.chem_master_containers[CAT_PILLS][1]) + decode_category() + AddComponent(/datum/component/plumbing/simple_demand, bolt, layer) +/obj/machinery/plumbing/pill_press/examine(mob/user) + . = ..() + . += span_notice("The [name] currently has [stored_products.len] stored. There needs to be less than [MAX_FLOOR_PRODUCTS] on the floor to continue dispensing.") + +/// decode product category from it's type path and returns the decoded typepath +/obj/machinery/plumbing/pill_press/proc/decode_category() + var/obj/item/reagent_containers/container = locate(packaging_type) + if(ispath(container, /obj/item/reagent_containers/pill/patch)) + packaging_category = CAT_PATCHES + else if(ispath(container, /obj/item/reagent_containers/pill)) + packaging_category = CAT_PILLS + else + packaging_category = CAT_TUBES + return container + /obj/machinery/plumbing/pill_press/process(seconds_per_tick) - if(machine_stat & NOPOWER) + if(!is_operational) return + + //shift & check to account for floating point inaccuracies if(reagents.total_volume >= current_volume) - if (product == "pill") - var/obj/item/reagent_containers/pill/P = new(src) - reagents.trans_to(P, current_volume) - P.name = trim("[product_name] pill") - stored_products += P - if(pill_number == RANDOM_PILL_STYLE) - P.icon_state = "pill[rand(1,21)]" + var/obj/item/reagent_containers/container = locate(packaging_type) + container = new container(src) + var/suffix + switch(packaging_category) + if(CAT_PILLS) + suffix = "Pill" + if(CAT_PATCHES) + suffix = "Patch" else - P.icon_state = "pill[pill_number]" - if(P.icon_state == "pill4") //mirrored from chem masters - P.desc = "A tablet or capsule, but not just any, a red one, one taken by the ones not scared of knowledge, freedom, uncertainty and the brutal truths of reality." - else if (product == "patch") - var/obj/item/reagent_containers/pill/patch/P = new(src) - reagents.trans_to(P, current_volume) - P.name = trim("[product_name] patch") - P.icon_state = patch_style - stored_products += P - else if (product == "bottle") - var/obj/item/reagent_containers/cup/bottle/P = new(src) - reagents.trans_to(P, current_volume) - P.name = trim("[product_name] bottle") - stored_products += P + suffix = "Tube" + container.name = "[product_name] [suffix]" + reagents.trans_to(container, current_volume) + stored_products += container + + //dispense stored products on the floor if(stored_products.len) var/pill_amount = 0 - for(var/thing in loc) - if(!istype(thing, /obj/item/reagent_containers/cup/bottle) && !istype(thing, /obj/item/reagent_containers/pill)) - continue + for(var/obj/item/reagent_containers/thing in loc) pill_amount++ - if(pill_amount >= max_floor_products) //too much so just stop + if(pill_amount >= MAX_FLOOR_PRODUCTS) //too much so just stop break - if(pill_amount < max_floor_products && anchored) + if(pill_amount < MAX_FLOOR_PRODUCTS && anchored) var/atom/movable/AM = stored_products[1] //AM because forceMove is all we need stored_products -= AM AM.forceMove(drop_location()) use_power(active_power_usage * seconds_per_tick) -/obj/machinery/plumbing/pill_press/proc/load_styles() - //expertly copypasted from chemmasters - var/datum/asset/spritesheet/simple/assets = get_asset_datum(/datum/asset/spritesheet/simple/pills) - pill_styles = list() - for (var/x in 1 to PILL_STYLE_COUNT) - var/list/SL = list() - SL["id"] = x - SL["class_name"] = assets.icon_class_name("pill[x]") - pill_styles += list(SL) - var/datum/asset/spritesheet/simple/patches_assets = get_asset_datum(/datum/asset/spritesheet/simple/patches) - patch_styles = list() - for (var/raw_patch_style in PATCH_STYLE_LIST) - //adding class_name for use in UI - var/list/patch_style = list() - patch_style["style"] = raw_patch_style - patch_style["class_name"] = patches_assets.icon_class_name(raw_patch_style) - patch_styles += list(patch_style) - /obj/machinery/plumbing/pill_press/ui_assets(mob/user) return list( - get_asset_datum(/datum/asset/spritesheet/simple/pills), - get_asset_datum(/datum/asset/spritesheet/simple/patches), + get_asset_datum(/datum/asset/spritesheet/chemmaster) ) /obj/machinery/plumbing/pill_press/ui_interact(mob/user, datum/tgui/ui) @@ -116,45 +118,45 @@ ui = new(user, src, "ChemPress", name) ui.open() +/obj/machinery/plumbing/pill_press/ui_static_data(mob/user) + var/list/data = list() + + data["min_volume"] = MIN_VOLUME + data["max_volume"] = MAX_VOLUME + data["packaging_types"] = packaging_types + + return data + /obj/machinery/plumbing/pill_press/ui_data(mob/user) - if(!pill_styles || !patch_styles) - load_styles() var/list/data = list() - data["pill_style"] = pill_number + data["current_volume"] = current_volume data["product_name"] = product_name - data["pill_styles"] = pill_styles - data["product"] = product - data["min_volume"] = min_volume - data["max_volume"] = max_volume - data["patch_style"] = patch_style - data["patch_styles"] = patch_styles + data["packaging_type"] = packaging_type + data["packaging_category"] = packaging_category + return data /obj/machinery/plumbing/pill_press/ui_act(action, params) . = ..() if(.) return + . = TRUE switch(action) - if("change_pill_style") - pill_number = clamp(text2num(params["id"]), 1 , PILL_STYLE_COUNT) if("change_current_volume") - current_volume = clamp(text2num(params["volume"]), min_volume, max_volume) + current_volume = round(clamp(text2num(params["volume"]), MIN_VOLUME, MAX_VOLUME)) if("change_product_name") var/formatted_name = html_encode(params["name"]) if (length(formatted_name) > MAX_NAME_LEN) - product_name = copytext(formatted_name, 1, MAX_NAME_LEN+1) + product_name = copytext(formatted_name, 1, MAX_NAME_LEN + 1) else product_name = formatted_name if("change_product") - product = params["product"] - if (product == "pill") - max_volume = max_pill_volume - else if (product == "patch") - max_volume = max_patch_volume - else if (product == "bottle") - max_volume = max_bottle_volume - current_volume = clamp(current_volume, min_volume, max_volume) - if("change_patch_style") - patch_style = params["patch_style"] + packaging_type = params["ref"] + var/obj/item/reagent_containers/container = decode_category() + current_volume = clamp(current_volume, MIN_VOLUME, initial(container.volume)) + +#undef MIN_VOLUME +#undef MAX_VOLUME +#undef MAX_FLOOR_PRODUCTS diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm index 2a4fbca64fc6..907254c741a1 100644 --- a/code/modules/power/cell.dm +++ b/code/modules/power/cell.dm @@ -137,6 +137,12 @@ /obj/item/stock_parts/cell/proc/percent() // return % charge of cell return 100 * charge / maxcharge +/** + * Returns the amount of charge used on the cell. + */ +/obj/item/stock_parts/cell/proc/used_charge() + return maxcharge - charge + // use power from a cell /obj/item/stock_parts/cell/use(amount, force) if(rigged && amount > 0) diff --git a/code/modules/power/power.dm b/code/modules/power/power.dm index 57be64eb0e2c..2b95d751d871 100644 --- a/code/modules/power/power.dm +++ b/code/modules/power/power.dm @@ -18,7 +18,9 @@ ///The powernet our machine is connected to. var/datum/powernet/powernet ///Cable layer to which the machine is connected. - var/machinery_layer = MACHINERY_LAYER_1 + var/cable_layer = CABLE_LAYER_2 + ///Can the cable_layer be tweked with a multi tool + var/can_change_cable_layer = FALSE /obj/machinery/power/Initialize(mapload) . = ..() @@ -44,6 +46,30 @@ /obj/machinery/power/proc/should_have_node() return FALSE +/obj/machinery/power/examine(mob/user) + . = ..() + if(can_change_cable_layer) + if(!QDELETED(powernet)) + . += span_notice("It's operating on the [LOWER_TEXT(GLOB.cable_layer_to_name["[cable_layer]"])].") + else + . += span_warning("It's disconnected from the [LOWER_TEXT(GLOB.cable_layer_to_name["[cable_layer]"])].") + . += span_notice("It's power line can be changed with a [EXAMINE_HINT("multitool")].") + +/obj/machinery/power/multitool_act(mob/living/user, obj/item/tool) + if(can_change_cable_layer) + return cable_layer_act(user, tool) + +/// Called on multitool_act when we can change cable layers, override to add more conditions +/obj/machinery/power/proc/cable_layer_act(mob/living/user, obj/item/tool) + var/choice = tgui_input_list(user, "Select Power Line For Operation", "Select Cable Layer", GLOB.cable_name_to_layer) + if(isnull(choice) || QDELETED(src) || QDELETED(user) || QDELETED(tool) || !user.Adjacent(src) || !user.is_holding(tool)) + return + + cable_layer = GLOB.cable_name_to_layer[choice] + balloon_alert(user, "now operating on the [choice]") + return + + /obj/machinery/power/proc/add_avail(amount) if(powernet) powernet.newavail += amount @@ -203,7 +229,7 @@ if(!T || !istype(T)) return FALSE - var/obj/structure/cable/C = T.get_cable_node(machinery_layer) //check if we have a node cable on the machine turf, the first found is picked + var/obj/structure/cable/C = T.get_cable_node(cable_layer) //check if we have a node cable on the machine turf, the first found is picked if(!C || !C.powernet) var/obj/machinery/power/terminal/term = locate(/obj/machinery/power/terminal) in T if(!term || !term.powernet) @@ -442,11 +468,12 @@ /////////////////////////////////////////////// // return a cable able connect to machinery on layer if there's one on the turf, null if there isn't one -/turf/proc/get_cable_node(machinery_layer = MACHINERY_LAYER_1) +/turf/proc/get_cable_node(cable_layer = CABLE_LAYER_ALL) if(!can_have_cabling()) return null for(var/obj/structure/cable/C in src) - if(C.machinery_layer & machinery_layer) + if(C.cable_layer & cable_layer) C.update_appearance() // I hate this. it's here because update_icon_state SCANS nearby turfs for objects to connect to. Wastes cpu time return C return null + diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm index d8c55f3eea3e..e9ad7288efc1 100644 --- a/code/modules/power/supermatter/supermatter.dm +++ b/code/modules/power/supermatter/supermatter.dm @@ -498,6 +498,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal) return final_countdown = TRUE + SEND_GLOBAL_SIGNAL(COMSIG_MAIN_SM_DELAMINATING, final_countdown) var/datum/sm_delam/last_delamination_strategy = delamination_strategy var/list/count_down_messages = delamination_strategy.count_down_messages() diff --git a/code/modules/power/supermatter/supermatter_delamination/_sm_delam.dm b/code/modules/power/supermatter/supermatter_delamination/_sm_delam.dm index e63712f0d248..fc3d30591d8d 100644 --- a/code/modules/power/supermatter/supermatter_delamination/_sm_delam.dm +++ b/code/modules/power/supermatter/supermatter_delamination/_sm_delam.dm @@ -21,9 +21,10 @@ GLOBAL_LIST_INIT(sm_delam_list, list( /// [/obj/machinery/power/supermatter_crystal/proc/count_down] /datum/sm_delam/proc/delaminate(obj/machinery/power/supermatter_crystal/sm) if (sm.is_main_engine) + SSpersistence.delam_highscore = SSpersistence.rounds_since_engine_exploded SSpersistence.rounds_since_engine_exploded = ROUNDCOUNT_ENGINE_JUST_EXPLODED - for (var/obj/structure/sign/delamination_counter/sign as anything in GLOB.map_delamination_counters) - sign.update_count(ROUNDCOUNT_ENGINE_JUST_EXPLODED) + for (var/obj/machinery/incident_display/sign as anything in GLOB.map_delamination_counters) + sign.update_delam_count(ROUNDCOUNT_ENGINE_JUST_EXPLODED) qdel(sm) #undef ROUNDCOUNT_ENGINE_JUST_EXPLODED diff --git a/code/modules/projectiles/ammunition/_firing.dm b/code/modules/projectiles/ammunition/_firing.dm index a1e0fb9692d6..c911da396b36 100644 --- a/code/modules/projectiles/ammunition/_firing.dm +++ b/code/modules/projectiles/ammunition/_firing.dm @@ -2,13 +2,15 @@ distro += variance var/targloc = get_turf(target) ready_proj(target, user, quiet, zone_override, fired_from) + var/obj/projectile/thrown_proj if(pellets == 1) if(distro) //We have to spread a pixel-precision bullet. throw_proj was called before so angles should exist by now... if(randomspread) spread = round((rand() - 0.5) * distro) else //Smart spread spread = round(1 - 0.5) * distro - if(!throw_proj(target, targloc, user, params, spread, fired_from)) + thrown_proj = throw_proj(target, targloc, user, params, spread, fired_from) + if(isnull(thrown_proj)) return FALSE else if(isnull(loaded_projectile)) @@ -29,6 +31,7 @@ var/throwtarget = get_step(fired_from, get_dir(target, fired_from)) firer.safe_throw_at(throwtarget, 1, 2) update_appearance() + SEND_SIGNAL(src, COMSIG_FIRE_CASING, target, user, fired_from, randomspread, spread, zone_override, params, distro, thrown_proj) return TRUE /obj/item/ammo_casing/proc/tk_firing(mob/living/user, atom/fired_from) @@ -59,6 +62,8 @@ reagents.trans_to(loaded_projectile, reagents.total_volume, transfered_by = user) //For chemical darts/bullets qdel(reagents) + SEND_SIGNAL(src, COMSIG_CASING_READY_PROJECTILE, target, user, quiet, zone_override, fired_from) + /obj/item/ammo_casing/proc/throw_proj(atom/target, turf/targloc, mob/living/user, params, spread, atom/fired_from) var/turf/curloc = get_turf(fired_from) if (!istype(targloc) || !istype(curloc) || !loaded_projectile) diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 8cea3e0b7fcb..bd12ddd9a4fa 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -49,6 +49,9 @@ /// Just 'slightly' snowflakey way to modify projectile damage for projectiles fired from this gun. var/projectile_damage_multiplier = 1 + /// Even snowflakier way to modify projectile wounding bonus/potential for projectiles fired from this gun. + var/projectile_wound_bonus = 0 + var/spread = 0 //Spread induced by the gun itself. var/randomspread = 1 //Set to 0 for shotguns. This is used for weapons that don't fire all their bullets at once. @@ -75,6 +78,7 @@ pin = new pin(src) add_seclight_point() + give_manufacturer_examine() /obj/item/gun/Destroy() if(isobj(pin)) //Can still be the initial path, then we skip diff --git a/code/modules/projectiles/guns/ballistic.dm b/code/modules/projectiles/guns/ballistic.dm index 53743b9985ca..f5eb4bb7c71f 100644 --- a/code/modules/projectiles/guns/ballistic.dm +++ b/code/modules/projectiles/guns/ballistic.dm @@ -47,8 +47,10 @@ ///Whether the gun will spawn loaded with a magazine var/spawnwithmagazine = TRUE - ///Compatible magazines with the gun - var/mag_type = /obj/item/ammo_box/magazine/m10mm //Removes the need for max_ammo and caliber info + /// What type (includes subtypes) of magazine will this gun accept being put into it + var/obj/item/ammo_box/magazine/accepted_magazine_type = /obj/item/ammo_box/magazine/m10mm + /// Change this if the gun should spawn with a different magazine type to what accepted_magazine_type defines. Will create errors if not a type or subtype of accepted magazine. + var/obj/item/ammo_box/magazine/spawn_magazine_type ///Whether the sprite has a visible magazine or not var/mag_display = TRUE ///Whether the sprite has a visible ammo display or not @@ -127,12 +129,14 @@ /obj/item/gun/ballistic/Initialize(mapload) . = ..() + if(!spawn_magazine_type) + spawn_magazine_type = accepted_magazine_type if (!spawnwithmagazine) bolt_locked = TRUE update_appearance() return if (!magazine) - magazine = new mag_type(src) + magazine = new spawn_magazine_type(src) if(bolt_type == BOLT_TYPE_STANDARD || internal_magazine) //Internal magazines shouldn't get magazine + 1. chamber_round() else @@ -303,7 +307,7 @@ ///Handles all the logic needed for magazine insertion /obj/item/gun/ballistic/proc/insert_magazine(mob/user, obj/item/ammo_box/magazine/AM, display_message = TRUE) - if(!istype(AM, mag_type)) + if(!istype(AM, accepted_magazine_type)) balloon_alert(user, "[AM.name] doesn't fit!") return FALSE if(user.transferItemToLoc(AM, src)) @@ -699,9 +703,9 @@ GLOBAL_LIST_INIT(gun_saw_types, typecacheof(list( if(magazine) magazine.top_off() else - if(!mag_type) + if(!accepted_magazine_type) return - magazine = new mag_type(src) + magazine = new accepted_magazine_type(src) chamber_round() update_appearance() diff --git a/code/modules/projectiles/guns/ballistic/automatic.dm b/code/modules/projectiles/guns/ballistic/automatic.dm index 4a6a242261fe..ff218b477844 100644 --- a/code/modules/projectiles/guns/ballistic/automatic.dm +++ b/code/modules/projectiles/guns/ballistic/automatic.dm @@ -54,7 +54,7 @@ actions_types = list() mag_display = TRUE empty_indicator = TRUE - mag_type = /obj/item/ammo_box/magazine/smgm9mm + accepted_magazine_type = /obj/item/ammo_box/magazine/smgm9mm pin = null bolt_type = BOLT_TYPE_LOCKING show_bolt_icon = FALSE @@ -72,7 +72,7 @@ icon_state = "c20r" inhand_icon_state = "c20r" selector_switch_icon = TRUE - mag_type = /obj/item/ammo_box/magazine/smgm45 + accepted_magazine_type = /obj/item/ammo_box/magazine/smgm45 fire_delay = 2 burst_size = 3 pin = /obj/item/firing_pin/implant/pindicate @@ -105,7 +105,7 @@ icon_state = "wt550" w_class = WEIGHT_CLASS_BULKY inhand_icon_state = "arg" - mag_type = /obj/item/ammo_box/magazine/wt550m9 + accepted_magazine_type = /obj/item/ammo_box/magazine/wt550m9 fire_delay = 2 can_suppress = FALSE burst_size = 1 @@ -126,7 +126,7 @@ desc = "An ancient 9mm submachine gun pattern updated and simplified to lower costs, though perhaps simplified too much." icon_state = "plastikov" inhand_icon_state = "plastikov" - mag_type = /obj/item/ammo_box/magazine/plastikov9mm + accepted_magazine_type = /obj/item/ammo_box/magazine/plastikov9mm burst_size = 5 spread = 25 can_suppress = FALSE @@ -140,7 +140,7 @@ name = "\improper Type U3 Uzi" desc = "A lightweight, burst-fire submachine gun, for when you really want someone dead. Uses 9mm rounds." icon_state = "miniuzi" - mag_type = /obj/item/ammo_box/magazine/uzim9mm + accepted_magazine_type = /obj/item/ammo_box/magazine/uzim9mm burst_size = 2 bolt_type = BOLT_TYPE_OPEN show_bolt_icon = FALSE @@ -155,7 +155,7 @@ w_class = WEIGHT_CLASS_BULKY inhand_icon_state = "m90" selector_switch_icon = TRUE - mag_type = /obj/item/ammo_box/magazine/m556 + accepted_magazine_type = /obj/item/ammo_box/magazine/m556 can_suppress = FALSE var/obj/item/gun/ballistic/revolver/grenadelauncher/underbarrel burst_size = 3 @@ -211,7 +211,7 @@ selector_switch_icon = TRUE w_class = WEIGHT_CLASS_BULKY slot_flags = 0 - mag_type = /obj/item/ammo_box/magazine/tommygunm45 + accepted_magazine_type = /obj/item/ammo_box/magazine/tommygunm45 can_suppress = FALSE burst_size = 1 actions_types = list() @@ -230,7 +230,7 @@ icon_state = "arg" inhand_icon_state = "arg" slot_flags = 0 - mag_type = /obj/item/ammo_box/magazine/m556 + accepted_magazine_type = /obj/item/ammo_box/magazine/m556 can_suppress = FALSE burst_size = 3 fire_delay = 1 @@ -246,7 +246,7 @@ base_icon_state = "l6" w_class = WEIGHT_CLASS_HUGE slot_flags = 0 - mag_type = /obj/item/ammo_box/magazine/mm712x82 + accepted_magazine_type = /obj/item/ammo_box/magazine/mm712x82 weapon_weight = WEAPON_HEAVY burst_size = 1 actions_types = list() @@ -316,7 +316,7 @@ ..() /obj/item/gun/ballistic/automatic/l6_saw/attackby(obj/item/A, mob/user, params) - if(!cover_open && istype(A, mag_type)) + if(!cover_open && istype(A, accepted_magazine_type)) balloon_alert(user, "open the cover!") return ..() @@ -330,7 +330,7 @@ inhand_icon_state = "moistnugget" worn_icon_state = null weapon_weight = WEAPON_HEAVY - mag_type = /obj/item/ammo_box/magazine/m10mm/rifle + accepted_magazine_type = /obj/item/ammo_box/magazine/m10mm/rifle fire_delay = 30 burst_size = 1 can_unsuppress = TRUE @@ -348,7 +348,7 @@ icon_state = "oldrifle" w_class = WEIGHT_CLASS_BULKY inhand_icon_state = "arg" - mag_type = /obj/item/ammo_box/magazine/recharge + accepted_magazine_type = /obj/item/ammo_box/magazine/recharge empty_indicator = TRUE fire_delay = 2 can_suppress = FALSE diff --git a/code/modules/projectiles/guns/ballistic/bow.dm b/code/modules/projectiles/guns/ballistic/bow.dm index 930acaa5330f..8039a4b010b5 100644 --- a/code/modules/projectiles/guns/ballistic/bow.dm +++ b/code/modules/projectiles/guns/ballistic/bow.dm @@ -7,7 +7,7 @@ inhand_icon_state = "bow" load_sound = null fire_sound = null - mag_type = /obj/item/ammo_box/magazine/internal/bow + accepted_magazine_type = /obj/item/ammo_box/magazine/internal/bow force = 15 attack_verb_continuous = list("whipped", "cracked") attack_verb_simple = list("whip", "crack") diff --git a/code/modules/projectiles/guns/ballistic/launchers.dm b/code/modules/projectiles/guns/ballistic/launchers.dm index da7bc8e8bad9..a46e67dcd4ab 100644 --- a/code/modules/projectiles/guns/ballistic/launchers.dm +++ b/code/modules/projectiles/guns/ballistic/launchers.dm @@ -6,7 +6,7 @@ name = "grenade launcher" icon_state = "dshotgun_sawn" inhand_icon_state = "gun" - mag_type = /obj/item/ammo_box/magazine/internal/grenadelauncher + accepted_magazine_type = /obj/item/ammo_box/magazine/internal/grenadelauncher fire_sound = 'sound/weapons/gun/general/grenade_launch.ogg' w_class = WEIGHT_CLASS_NORMAL pin = /obj/item/firing_pin/implant/pindicate @@ -26,7 +26,7 @@ name = "multi grenade launcher" icon = 'icons/mecha/mecha_equipment.dmi' icon_state = "mecha_grenadelnchr" - mag_type = /obj/item/ammo_box/magazine/internal/cylinder/grenademulti + accepted_magazine_type = /obj/item/ammo_box/magazine/internal/cylinder/grenademulti pin = /obj/item/firing_pin gun_flags = GUN_SMOKE_PARTICLES @@ -38,7 +38,7 @@ desc = "A prototype pistol designed to fire self propelled rockets." icon_state = "gyropistol" fire_sound = 'sound/weapons/gun/general/grenade_launch.ogg' - mag_type = /obj/item/ammo_box/magazine/m75 + accepted_magazine_type = /obj/item/ammo_box/magazine/m75 burst_size = 1 fire_delay = 0 actions_types = list() @@ -51,7 +51,7 @@ A sticker near the cheek rest reads, \"ENSURE AREA BEHIND IS CLEAR BEFORE FIRING\"" icon_state = "rocketlauncher" inhand_icon_state = "rocketlauncher" - mag_type = /obj/item/ammo_box/magazine/internal/rocketlauncher + accepted_magazine_type = /obj/item/ammo_box/magazine/internal/rocketlauncher fire_sound = 'sound/weapons/gun/general/rocket_launch.ogg' w_class = WEIGHT_CLASS_BULKY can_suppress = FALSE diff --git a/code/modules/projectiles/guns/ballistic/pistol.dm b/code/modules/projectiles/guns/ballistic/pistol.dm index 6c5cd0ff4021..07c59f41fe55 100644 --- a/code/modules/projectiles/guns/ballistic/pistol.dm +++ b/code/modules/projectiles/guns/ballistic/pistol.dm @@ -3,7 +3,7 @@ desc = "A small, easily concealable 9mm handgun. Has a threaded barrel for suppressors." icon_state = "pistol" w_class = WEIGHT_CLASS_SMALL - mag_type = /obj/item/ammo_box/magazine/m9mm + accepted_magazine_type = /obj/item/ammo_box/magazine/m9mm can_suppress = TRUE burst_size = 1 fire_delay = 0 @@ -29,7 +29,7 @@ spawnwithmagazine = FALSE /obj/item/gun/ballistic/automatic/pistol/fire_mag - mag_type = /obj/item/ammo_box/magazine/m9mm/fire + accepted_magazine_type = /obj/item/ammo_box/magazine/m9mm/fire /obj/item/gun/ballistic/automatic/pistol/suppressed/Initialize(mapload) . = ..() @@ -40,7 +40,7 @@ name = "\improper Ansem pistol" desc = "The spiritual successor of the Makarov, or maybe someone just dropped their gun in a bucket of paint. The gun is chambered in 10mm." icon_state = "pistol_evil" - mag_type = /obj/item/ammo_box/magazine/m10mm + accepted_magazine_type = /obj/item/ammo_box/magazine/m10mm empty_indicator = TRUE suppressor_x_offset = 12 @@ -49,7 +49,7 @@ desc = "A classic .45 handgun with a small magazine capacity." icon_state = "m1911" w_class = WEIGHT_CLASS_NORMAL - mag_type = /obj/item/ammo_box/magazine/m45 + accepted_magazine_type = /obj/item/ammo_box/magazine/m45 can_suppress = FALSE fire_sound = 'sound/weapons/gun/pistol/shot_alt.ogg' rack_sound = 'sound/weapons/gun/pistol/rack.ogg' @@ -64,7 +64,7 @@ desc = "A robust .50 AE handgun." icon_state = "deagle" force = 14 - mag_type = /obj/item/ammo_box/magazine/m50 + accepted_magazine_type = /obj/item/ammo_box/magazine/m50 can_suppress = FALSE mag_display = TRUE fire_sound = 'sound/weapons/gun/rifle/shot.ogg' @@ -93,7 +93,7 @@ fire_delay = 1 spread = 10 projectile_damage_multiplier = 1.25 - mag_type = /obj/item/ammo_box/magazine/r10mm + accepted_magazine_type = /obj/item/ammo_box/magazine/r10mm actions_types = list(/datum/action/item_action/toggle_firemode) obj_flags = UNIQUE_RENAME // if you did the sidequest, you get the customization @@ -105,7 +105,7 @@ desc = "An old Soviet machine pistol. It fires quickly, but kicks like a mule. Uses 9mm ammo. Has a threaded barrel for suppressors." icon_state = "aps" w_class = WEIGHT_CLASS_NORMAL - mag_type = /obj/item/ammo_box/magazine/m9mm_aps + accepted_magazine_type = /obj/item/ammo_box/magazine/m9mm_aps can_suppress = TRUE burst_size = 3 fire_delay = 1 diff --git a/code/modules/projectiles/guns/ballistic/revolver.dm b/code/modules/projectiles/guns/ballistic/revolver.dm index 64c25041ff7c..6d2e9d9c3c9f 100644 --- a/code/modules/projectiles/guns/ballistic/revolver.dm +++ b/code/modules/projectiles/guns/ballistic/revolver.dm @@ -2,7 +2,7 @@ name = "\improper .357 revolver" desc = "A suspicious revolver. Uses .357 ammo." icon_state = "revolver" - mag_type = /obj/item/ammo_box/magazine/internal/cylinder + accepted_magazine_type = /obj/item/ammo_box/magazine/internal/cylinder fire_sound = 'sound/weapons/gun/revolver/shot_alt.ogg' load_sound = 'sound/weapons/gun/revolver/load_bullet.ogg' eject_sound = 'sound/weapons/gun/revolver/empty.ogg' @@ -101,7 +101,7 @@ /obj/item/gun/ballistic/revolver/c38 name = "\improper .38 revolver" desc = "A classic, if not outdated, lethal firearm. Uses .38 Special rounds." - mag_type = /obj/item/ammo_box/magazine/internal/cylinder/rev38 + accepted_magazine_type = /obj/item/ammo_box/magazine/internal/cylinder/rev38 icon_state = "c38" fire_sound = 'sound/weapons/gun/revolver/shot.ogg' @@ -155,7 +155,7 @@ icon_state = "nagant" can_suppress = TRUE - mag_type = /obj/item/ammo_box/magazine/internal/cylinder/rev762 + accepted_magazine_type = /obj/item/ammo_box/magazine/internal/cylinder/rev762 // A gun to play Russian Roulette! @@ -165,7 +165,7 @@ name = "\improper Russian revolver" desc = "A Russian-made revolver for drinking games. Uses .357 ammo, and has a mechanism requiring you to spin the chamber before each trigger pull." icon_state = "russianrevolver" - mag_type = /obj/item/ammo_box/magazine/internal/cylinder/rus357 + accepted_magazine_type = /obj/item/ammo_box/magazine/internal/cylinder/rus357 var/spun = FALSE hidden_chambered = TRUE //Cheater. gun_flags = NOT_A_REAL_GUN diff --git a/code/modules/projectiles/guns/ballistic/rifle.dm b/code/modules/projectiles/guns/ballistic/rifle.dm index b160ac8f1c9a..4f05d6a6eff2 100644 --- a/code/modules/projectiles/guns/ballistic/rifle.dm +++ b/code/modules/projectiles/guns/ballistic/rifle.dm @@ -5,7 +5,7 @@ w_class = WEIGHT_CLASS_BULKY inhand_icon_state = "moistnugget" worn_icon_state = "moistnugget" - mag_type = /obj/item/ammo_box/magazine/internal/boltaction + accepted_magazine_type = /obj/item/ammo_box/magazine/internal/boltaction bolt_wording = "bolt" bolt_type = BOLT_TYPE_LOCKING semi_auto = FALSE @@ -60,7 +60,7 @@ icon_state = "moistnugget" inhand_icon_state = "moistnugget" slot_flags = ITEM_SLOT_BACK - mag_type = /obj/item/ammo_box/magazine/internal/boltaction + accepted_magazine_type = /obj/item/ammo_box/magazine/internal/boltaction can_bayonet = TRUE knife_x_offset = 27 knife_y_offset = 13 @@ -127,7 +127,7 @@ icon_state = "speargun" inhand_icon_state = "speargun" worn_icon_state = "speargun" - mag_type = /obj/item/ammo_box/magazine/internal/boltaction/harpoon + accepted_magazine_type = /obj/item/ammo_box/magazine/internal/boltaction/harpoon fire_sound = 'sound/weapons/gun/sniper/shot.ogg' can_be_sawn_off = FALSE @@ -143,7 +143,7 @@ Tiger Co-op assassins, cryo-frozen Space Russians, and security personnel with \ little care for professional conduct while making 'arrests' point blank in the back of the head \ until the gun clicks. EXTREMELY moist." - mag_type = /obj/item/ammo_box/magazine/internal/boltaction/surplus + accepted_magazine_type = /obj/item/ammo_box/magazine/internal/boltaction/surplus can_jam = TRUE /obj/item/gun/ballistic/rifle/boltaction/prime @@ -173,7 +173,7 @@ inhand_x_dimension = 64 inhand_y_dimension = 64 fire_sound = 'sound/weapons/gun/sniper/shot.ogg' - mag_type = /obj/item/ammo_box/magazine/internal/boltaction/pipegun + accepted_magazine_type = /obj/item/ammo_box/magazine/internal/boltaction/pipegun initial_caliber = CALIBER_SHOTGUN alternative_caliber = CALIBER_A762 initial_fire_sound = 'sound/weapons/gun/sniper/shot.ogg' @@ -195,7 +195,7 @@ icon_state = "musket_prime" inhand_icon_state = "musket_prime" worn_icon_state = "musket_prime" - mag_type = /obj/item/ammo_box/magazine/internal/boltaction/pipegun/prime + accepted_magazine_type = /obj/item/ammo_box/magazine/internal/boltaction/pipegun/prime projectile_damage_multiplier = 1 /// MAGICAL BOLT ACTIONS + ARCANE BARRAGE? /// @@ -204,7 +204,7 @@ name = "enchanted bolt action rifle" desc = "Careful not to lose your head." var/guns_left = 30 - mag_type = /obj/item/ammo_box/magazine/internal/enchanted + accepted_magazine_type = /obj/item/ammo_box/magazine/internal/enchanted can_be_sawn_off = FALSE /obj/item/gun/ballistic/rifle/enchanted/arcane_barrage @@ -221,7 +221,7 @@ trigger_guard = TRIGGER_GUARD_ALLOW_ALL show_bolt_icon = FALSE //It's a magic hand, not a rifle - mag_type = /obj/item/ammo_box/magazine/internal/arcane_barrage + accepted_magazine_type = /obj/item/ammo_box/magazine/internal/arcane_barrage /obj/item/gun/ballistic/rifle/enchanted/dropped() . = ..() @@ -268,7 +268,7 @@ rack_sound = 'sound/weapons/gun/sniper/rack.ogg' suppressed_sound = 'sound/weapons/gun/general/heavy_shot_suppressed.ogg' recoil = 2 - mag_type = /obj/item/ammo_box/magazine/sniper_rounds + accepted_magazine_type = /obj/item/ammo_box/magazine/sniper_rounds internal_magazine = FALSE w_class = WEIGHT_CLASS_NORMAL slot_flags = ITEM_SLOT_BACK diff --git a/code/modules/projectiles/guns/ballistic/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm index 28e09341bd1e..26b59a795ddb 100644 --- a/code/modules/projectiles/guns/ballistic/shotgun.dm +++ b/code/modules/projectiles/guns/ballistic/shotgun.dm @@ -16,7 +16,7 @@ force = 10 flags_1 = CONDUCT_1 slot_flags = ITEM_SLOT_BACK - mag_type = /obj/item/ammo_box/magazine/internal/shot + accepted_magazine_type = /obj/item/ammo_box/magazine/internal/shot semi_auto = FALSE internal_magazine = TRUE casing_ejector = FALSE @@ -35,7 +35,7 @@ . = 1 /obj/item/gun/ballistic/shotgun/lethal - mag_type = /obj/item/ammo_box/magazine/internal/shot/lethal + accepted_magazine_type = /obj/item/ammo_box/magazine/internal/shot/lethal // RIOT SHOTGUN // @@ -45,7 +45,7 @@ icon_state = "riotshotgun" inhand_icon_state = "shotgun" fire_delay = 8 - mag_type = /obj/item/ammo_box/magazine/internal/shot/riot + accepted_magazine_type = /obj/item/ammo_box/magazine/internal/shot/riot sawn_desc = "Come with me if you want to live." can_be_sawn_off = TRUE @@ -61,7 +61,7 @@ icon_state = "cshotgun" inhand_icon_state = "shotgun_combat" fire_delay = 5 - mag_type = /obj/item/ammo_box/magazine/internal/shot/com + accepted_magazine_type = /obj/item/ammo_box/magazine/internal/shot/com w_class = WEIGHT_CLASS_HUGE //Dual Feed Shotgun @@ -78,9 +78,9 @@ worn_icon_state = "cshotgun" w_class = WEIGHT_CLASS_HUGE semi_auto = TRUE - mag_type = /obj/item/ammo_box/magazine/internal/shot/tube + accepted_magazine_type = /obj/item/ammo_box/magazine/internal/shot/tube /// If defined, the secondary tube is this type, if you want different shell loads - var/alt_mag_type + var/alt_accepted_magazine_type /// If TRUE, we're drawing from the alternate_magazine var/toggled = FALSE /// The B tube @@ -89,7 +89,7 @@ /obj/item/gun/ballistic/shotgun/automatic/dual_tube/bounty name = "bounty cycler shotgun" desc = "An advanced shotgun with two separate magazine tubes. This one shows signs of bounty hunting customization, meaning it likely has a dual rubber shot/fire slug load." - alt_mag_type = /obj/item/ammo_box/magazine/internal/shot/tube/fire + alt_accepted_magazine_type = /obj/item/ammo_box/magazine/internal/shot/tube/fire /obj/item/gun/ballistic/shotgun/automatic/dual_tube/examine(mob/user) . = ..() @@ -97,8 +97,8 @@ /obj/item/gun/ballistic/shotgun/automatic/dual_tube/Initialize(mapload) . = ..() - alt_mag_type = alt_mag_type || mag_type - alternate_magazine = new alt_mag_type(src) + alt_accepted_magazine_type = alt_accepted_magazine_type || accepted_magazine_type + alternate_magazine = new alt_accepted_magazine_type(src) /obj/item/gun/ballistic/shotgun/automatic/dual_tube/Destroy() QDEL_NULL(alternate_magazine) @@ -139,7 +139,7 @@ inhand_x_dimension = 32 inhand_y_dimension = 32 weapon_weight = WEAPON_MEDIUM - mag_type = /obj/item/ammo_box/magazine/m12g + accepted_magazine_type = /obj/item/ammo_box/magazine/m12g can_suppress = FALSE burst_size = 1 fire_delay = 0 @@ -161,7 +161,7 @@ /obj/item/gun/ballistic/shotgun/bulldog/Initialize(mapload) . = ..() - secondary_magazine_type = secondary_magazine_type || mag_type + secondary_magazine_type = secondary_magazine_type || accepted_magazine_type secondary_magazine = new secondary_magazine_type(src) update_appearance() @@ -260,7 +260,7 @@ force = 10 flags_1 = CONDUCT_1 slot_flags = ITEM_SLOT_BACK - mag_type = /obj/item/ammo_box/magazine/internal/shot/dual + accepted_magazine_type = /obj/item/ammo_box/magazine/internal/shot/dual sawn_desc = "Omar's coming!" obj_flags = UNIQUE_RENAME rack_sound_volume = 0 @@ -290,7 +290,7 @@ name = "hunting shotgun" desc = "A hunting shotgun used by the wealthy to hunt \"game\"." sawn_desc = "A sawn-off hunting shotgun. In its new state, it's remarkably less effective at hunting... anything." - mag_type = /obj/item/ammo_box/magazine/internal/shot/dual/slugs + accepted_magazine_type = /obj/item/ammo_box/magazine/internal/shot/dual/slugs /obj/item/gun/ballistic/shotgun/hook name = "hook modified sawn-off shotgun" @@ -301,7 +301,7 @@ righthand_file = 'icons/mob/inhands/weapons/guns_righthand.dmi' inhand_x_dimension = 32 inhand_y_dimension = 32 - mag_type = /obj/item/ammo_box/magazine/internal/shot/bounty + accepted_magazine_type = /obj/item/ammo_box/magazine/internal/shot/bounty weapon_weight = WEAPON_MEDIUM semi_auto = TRUE flags_1 = CONDUCT_1 diff --git a/code/modules/projectiles/guns/ballistic/toy.dm b/code/modules/projectiles/guns/ballistic/toy.dm index 87d22b1ae7a7..605ec3133fc8 100644 --- a/code/modules/projectiles/guns/ballistic/toy.dm +++ b/code/modules/projectiles/guns/ballistic/toy.dm @@ -4,7 +4,7 @@ icon_state = "saber" selector_switch_icon = TRUE inhand_icon_state = "gun" - mag_type = /obj/item/ammo_box/magazine/toy/smg + accepted_magazine_type = /obj/item/ammo_box/magazine/toy/smg fire_sound = 'sound/items/syringeproj.ogg' force = 0 throwforce = 0 @@ -21,12 +21,12 @@ /obj/item/gun/ballistic/automatic/pistol/toy name = "foam force pistol" desc = "A small, easily concealable toy handgun. Ages 8 and up." - mag_type = /obj/item/ammo_box/magazine/toy/pistol + accepted_magazine_type = /obj/item/ammo_box/magazine/toy/pistol fire_sound = 'sound/items/syringeproj.ogg' gun_flags = TOY_FIREARM_OVERLAY | NOT_A_REAL_GUN /obj/item/gun/ballistic/automatic/pistol/toy/riot - mag_type = /obj/item/ammo_box/magazine/toy/pistol/riot + accepted_magazine_type = /obj/item/ammo_box/magazine/toy/pistol/riot /obj/item/gun/ballistic/automatic/pistol/riot/Initialize(mapload) magazine = new /obj/item/ammo_box/magazine/toy/pistol/riot(src) @@ -37,7 +37,7 @@ desc = "A toy shotgun with wood furniture and a four-shell capacity underneath. Ages 8 and up." force = 0 throwforce = 0 - mag_type = /obj/item/ammo_box/magazine/internal/shot/toy + accepted_magazine_type = /obj/item/ammo_box/magazine/internal/shot/toy fire_sound = 'sound/items/syringeproj.ogg' clumsy_check = FALSE item_flags = NONE @@ -67,7 +67,7 @@ inhand_y_dimension = 32 worn_icon_state = "gun" worn_icon = null - mag_type = /obj/item/ammo_box/magazine/internal/shot/toy/crossbow + accepted_magazine_type = /obj/item/ammo_box/magazine/internal/shot/toy/crossbow fire_sound = 'sound/items/syringeproj.ogg' slot_flags = ITEM_SLOT_BELT w_class = WEIGHT_CLASS_SMALL @@ -78,17 +78,17 @@ desc = "A bullpup three-round burst toy SMG, designated 'C-20r'. Ages 8 and up." can_suppress = TRUE item_flags = NONE - mag_type = /obj/item/ammo_box/magazine/toy/smgm45/riot + accepted_magazine_type = /obj/item/ammo_box/magazine/toy/smgm45/riot casing_ejector = FALSE clumsy_check = FALSE gun_flags = TOY_FIREARM_OVERLAY | NOT_A_REAL_GUN /obj/item/gun/ballistic/automatic/c20r/toy/unrestricted //Use this for actual toys pin = /obj/item/firing_pin - mag_type = /obj/item/ammo_box/magazine/toy/smgm45 + accepted_magazine_type = /obj/item/ammo_box/magazine/toy/smgm45 /obj/item/gun/ballistic/automatic/c20r/toy/unrestricted/riot - mag_type = /obj/item/ammo_box/magazine/toy/smgm45/riot + accepted_magazine_type = /obj/item/ammo_box/magazine/toy/smgm45/riot /obj/item/gun/ballistic/automatic/l6_saw/toy //This is the syndicate variant with syndicate firing pin and riot darts. name = "donksoft LMG" @@ -96,14 +96,14 @@ fire_sound = 'sound/items/syringeproj.ogg' can_suppress = FALSE item_flags = NONE - mag_type = /obj/item/ammo_box/magazine/toy/m762/riot + accepted_magazine_type = /obj/item/ammo_box/magazine/toy/m762/riot casing_ejector = FALSE clumsy_check = FALSE gun_flags = TOY_FIREARM_OVERLAY | NOT_A_REAL_GUN /obj/item/gun/ballistic/automatic/l6_saw/toy/unrestricted //Use this for actual toys pin = /obj/item/firing_pin - mag_type = /obj/item/ammo_box/magazine/toy/m762 + accepted_magazine_type = /obj/item/ammo_box/magazine/toy/m762 /obj/item/gun/ballistic/automatic/l6_saw/toy/unrestricted/riot - mag_type = /obj/item/ammo_box/magazine/toy/m762/riot + accepted_magazine_type = /obj/item/ammo_box/magazine/toy/m762/riot diff --git a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm index 98c8e9e9adc4..fde4d21ea444 100644 --- a/code/modules/reagents/chemistry/machinery/chem_master.dm +++ b/code/modules/reagents/chemistry/machinery/chem_master.dm @@ -1,143 +1,184 @@ -/** - * Machine that allows to identify and separate reagents in fitting container - * as well as to create new containers with separated reagents in it. - * - * Contains logic for both ChemMaster and CondiMaster, switched by "condi". - */ +#define TRANSFER_MODE_DESTROY 0 +#define TRANSFER_MODE_MOVE 1 +#define TARGET_BEAKER "beaker" +#define TARGET_BUFFER "buffer" + +/// List of containers the Chem Master machine can print +GLOBAL_LIST_INIT(chem_master_containers, list( + CAT_CONDIMENTS = list( + /obj/item/reagent_containers/cup/bottle, + /obj/item/reagent_containers/condiment/flour, + /obj/item/reagent_containers/condiment/sugar, + /obj/item/reagent_containers/condiment/rice, + /obj/item/reagent_containers/condiment/cornmeal, + /obj/item/reagent_containers/condiment/milk, + /obj/item/reagent_containers/condiment/soymilk, + /obj/item/reagent_containers/condiment/yoghurt, + /obj/item/reagent_containers/condiment/saltshaker, + /obj/item/reagent_containers/condiment/peppermill, + /obj/item/reagent_containers/condiment/soysauce, + /obj/item/reagent_containers/condiment/bbqsauce, + /obj/item/reagent_containers/condiment/enzyme, + /obj/item/reagent_containers/condiment/hotsauce, + /obj/item/reagent_containers/condiment/coldsauce, + /obj/item/reagent_containers/condiment/mayonnaise, + /obj/item/reagent_containers/condiment/ketchup, + /obj/item/reagent_containers/condiment/quality_oil, + /obj/item/reagent_containers/condiment/cooking_oil, + /obj/item/reagent_containers/condiment/peanut_butter, + /obj/item/reagent_containers/condiment/cherryjelly, + /obj/item/reagent_containers/condiment/honey, + /obj/item/reagent_containers/condiment/pack, + ), + CAT_TUBES = list( + /obj/item/reagent_containers/cup/tube + ), + CAT_PILLS = typecacheof(list( + /obj/item/reagent_containers/pill/style + )), + CAT_PATCHES = typecacheof(list( + /obj/item/reagent_containers/pill/patch/style + )) +)) + /obj/machinery/chem_master name = "ChemMaster 3000" desc = "Used to separate chemicals and distribute them in a variety of forms." density = TRUE layer = BELOW_OBJ_LAYER icon = 'icons/obj/medical/chemical.dmi' - icon_state = "mixer0" - base_icon_state = "mixer" + icon_state = "chemmaster" + base_icon_state = "chemmaster" idle_power_usage = BASE_MACHINE_IDLE_CONSUMPTION * 0.2 resistance_flags = FIRE_PROOF | ACID_PROOF circuit = /obj/item/circuitboard/machine/chem_master - - /// Input reagents container + /// Icons for different percentages of buffer reagents + var/fill_icon = 'icons/obj/reagentfillings.dmi' + var/fill_icon_state = "chemmaster" + var/list/fill_icon_thresholds = list(10,20,30,40,50,60,70,80,90,100) + /// Inserted reagent container var/obj/item/reagent_containers/beaker - /// Pill bottle for newly created pills - var/obj/item/storage/pill_bottle/bottle - /// Whether separated reagents should be moved back to container or destroyed. 1 - move, 0 - destroy - var/mode = 1 - /// Decides what UI to show. If TRUE shows UI of CondiMaster, if FALSE - ChemMaster - var/condi = FALSE - /// Currently selected pill style - var/chosen_pill_style = 1 - /// Currently selected condiment bottle style - var/chosen_condi_style = CONDIMASTER_STYLE_AUTO - /// Current UI screen. On the moment of writing this comment there were two: 'home' - main screen, and 'analyze' - info about specific reagent - var/screen = "home" - /// Info to display on 'analyze' screen - var/analyze_vars[0] - /// List of available pill styles for UI - var/list/pill_styles - /// List of available condibottle styles for UI - var/list/condi_styles - /// Currently selected patch style - var/patch_style = DEFAULT_PATCH_STYLE - /// List of available patch styles for UI - var/list/patch_styles + /// Whether separated reagents should be moved back to container or destroyed. + var/transfer_mode = TRANSFER_MODE_MOVE + /// Whether reagent analysis screen is active + var/reagent_analysis_mode = FALSE + /// Reagent being analyzed + var/datum/reagent/analyzed_reagent + /// List of printable container types + var/list/printable_containers = list() + /// Container used by default to reset to (REF) + var/default_container + /// Selected printable container type (REF) + var/selected_container + /// Whether the machine has an option to suggest container + var/has_container_suggestion = FALSE + /// Whether to suggest container or not + var/do_suggest_container = FALSE + /// The container suggested by main reagent in the buffer + var/suggested_container + /// Whether the machine is busy with printing containers + var/is_printing = FALSE + /// Number of printed containers in the current printing cycle for UI progress bar + var/printing_progress + var/printing_total + /// Default duration of printing cycle + var/printing_speed = 0.75 SECONDS // Duration of animation + /// The amount of containers printed in one cycle + var/printing_amount = 1 /obj/machinery/chem_master/Initialize(mapload) create_reagents(100) - . = ..() + load_printable_containers() + default_container = REF(printable_containers[printable_containers[1]][1]) + selected_container = default_container + return ..() /obj/machinery/chem_master/Destroy() QDEL_NULL(beaker) - QDEL_NULL(bottle) return ..() -/obj/machinery/chem_master/RefreshParts() - . = ..() - reagents.maximum_volume = 0 - for(var/obj/item/reagent_containers/cup/beaker/B in component_parts) - reagents.maximum_volume += B.reagents.maximum_volume - -/obj/machinery/chem_master/ex_act(severity, target) - if(severity <= EXPLODE_LIGHT) - return FALSE +/obj/machinery/chem_master/on_deconstruction() + replace_beaker() return ..() -/obj/machinery/chem_master/contents_explosion(severity, target) - . = ..() - switch(severity) - if(EXPLODE_DEVASTATE) - if(beaker) - SSexplosions.high_mov_atom += beaker - if(bottle) - SSexplosions.high_mov_atom += bottle - if(EXPLODE_HEAVY) - if(beaker) - SSexplosions.med_mov_atom += beaker - if(bottle) - SSexplosions.med_mov_atom += bottle - if(EXPLODE_LIGHT) - if(beaker) - SSexplosions.low_mov_atom += beaker - if(bottle) - SSexplosions.low_mov_atom += bottle - -/obj/machinery/chem_master/handle_atom_del(atom/A) +/obj/machinery/chem_master/handle_atom_del(atom/deleted_atom) ..() - if(A == beaker) + if(deleted_atom == beaker) beaker = null - reagents.clear_reagents() - update_appearance() - else if(A == bottle) - bottle = null + update_appearance(UPDATE_ICON) -/obj/machinery/chem_master/update_icon_state() - icon_state = "[base_icon_state][beaker ? 1 : 0][(machine_stat & BROKEN) ? "_b" : (powered() ? null : "_nopower")]" - return ..() +/obj/machinery/chem_master/RefreshParts() + . = ..() + reagents.maximum_volume = 0 + for(var/obj/item/reagent_containers/cup/beaker/beaker in component_parts) + reagents.maximum_volume += beaker.reagents.maximum_volume + printing_amount = 0 + for(var/datum/stock_part/manipulator/manipulator in component_parts)//Monkestation Edit: We use manipulators instead of servos + printing_amount += manipulator.tier + +/obj/machinery/chem_master/update_appearance(updates=ALL) + . = ..() + if(panel_open || (machine_stat & (NOPOWER|BROKEN))) + set_light(0) + else + set_light(1, 1, "#fffb00") /obj/machinery/chem_master/update_overlays() . = ..() + if(!isnull(beaker)) + . += mutable_appearance(icon, base_icon_state + "_overlay_container") if(machine_stat & BROKEN) - . += "waitlight" + . += mutable_appearance(icon, base_icon_state + "_overlay_broken") + if(panel_open) + . += mutable_appearance(icon, base_icon_state + "_overlay_panel") -/obj/machinery/chem_master/blob_act(obj/structure/blob/B) - if (prob(50)) - qdel(src) + if(is_printing) + . += mutable_appearance(icon, base_icon_state + "_overlay_extruder_active") + else + . += mutable_appearance(icon, base_icon_state + "_overlay_extruder") + + // Screen overlay + if(!panel_open && !(machine_stat & (NOPOWER | BROKEN))) + var/screen_overlay = base_icon_state + "_overlay_screen" + if(reagent_analysis_mode) + screen_overlay += "_analysis" + else if(is_printing) + screen_overlay += "_active" + else if(reagents.total_volume > 0) + screen_overlay += "_main" + . += mutable_appearance(icon, screen_overlay) + . += emissive_appearance(icon, base_icon_state + "_overlay_lightmask", src, alpha = src.alpha) + + // Buffer reagents overlay + if(reagents.total_volume) + var/threshold = null + for(var/i in 1 to fill_icon_thresholds.len) + if(ROUND_UP(100 * reagents.total_volume / reagents.maximum_volume) >= fill_icon_thresholds[i]) + threshold = i + if(threshold) + var/fill_name = "[fill_icon_state][fill_icon_thresholds[threshold]]" + var/mutable_appearance/filling = mutable_appearance(fill_icon, fill_name) + filling.color = mix_color_from_reagents(reagents.reagent_list) + . += filling /obj/machinery/chem_master/wrench_act(mob/living/user, obj/item/tool) . = ..() default_unfasten_wrench(user, tool) return TOOL_ACT_TOOLTYPE_SUCCESS -/obj/machinery/chem_master/attackby(obj/item/I, mob/user, params) - if(default_deconstruction_screwdriver(user, "mixer0_nopower", "mixer0", I)) +/obj/machinery/chem_master/attackby(obj/item/item, mob/user, params) + if(default_deconstruction_screwdriver(user, icon_state, icon_state, item)) + update_appearance(UPDATE_ICON) return - - else if(default_deconstruction_crowbar(I)) + if(default_deconstruction_crowbar(item)) return - - if(is_reagent_container(I) && !(I.item_flags & ABSTRACT) && I.is_open_container()) - . = TRUE // no afterattack - if(panel_open) - to_chat(user, span_warning("You can't use the [src.name] while its panel is opened!")) - return - var/obj/item/reagent_containers/B = I - . = TRUE // no afterattack - if(!user.transferItemToLoc(B, src)) - return - replace_beaker(user, B) - to_chat(user, span_notice("You add [B] to [src].")) - ui_interact(user) - update_appearance() - else if(!condi && istype(I, /obj/item/storage/pill_bottle)) - if(bottle) - to_chat(user, span_warning("A pill bottle is already loaded into [src]!")) - return - if(!user.transferItemToLoc(I, src)) - return - bottle = I - to_chat(user, span_notice("You add [I] into the dispenser slot.")) - ui_interact(user) - else - return ..() + if(is_reagent_container(item) && !(item.item_flags & ABSTRACT) && item.is_open_container()) + . = TRUE // No afterattack + var/obj/item/reagent_containers/beaker = item + replace_beaker(user, beaker) + if(!panel_open) + ui_interact(user) + return ..() /obj/machinery/chem_master/attack_hand_secondary(mob/user, list/modifiers) . = ..() @@ -154,62 +195,28 @@ /obj/machinery/chem_master/attack_ai_secondary(mob/user, list/modifiers) return attack_hand_secondary(user, modifiers) -/** - * Handles process of moving input reagents containers in/from machine - * - * When called checks for previously inserted beaker and gives it to user. - * Then, if new_beaker provided, places it into src.beaker. - * Returns `boolean`. TRUE if user provided (ignoring whether threre was any beaker change) and FALSE if not. - * - * Arguments: - * * user - Mob that initialized replacement, gets previously inserted beaker if there's any - * * new_beaker - New beaker to insert. Optional - */ +/// Insert new beaker and/or eject the inserted one /obj/machinery/chem_master/proc/replace_beaker(mob/living/user, obj/item/reagent_containers/new_beaker) - if(!user) + if(!user?.transferItemToLoc(new_beaker, src)) return FALSE if(beaker) try_put_in_hand(beaker, user) beaker = null if(new_beaker) beaker = new_beaker - update_appearance() + update_appearance(UPDATE_ICON) return TRUE -/obj/machinery/chem_master/on_deconstruction() - replace_beaker() - if(bottle) - bottle.forceMove(drop_location()) - adjust_item_drop_location(bottle) - bottle = null - return ..() - -/obj/machinery/chem_master/proc/load_styles() - //Calculate the span tags and ids fo all the available pill icons - var/datum/asset/spritesheet/simple/assets = get_asset_datum(/datum/asset/spritesheet/simple/pills) - pill_styles = list() - for (var/x in 1 to PILL_STYLE_COUNT) - var/list/SL = list() - SL["id"] = x - SL["className"] = assets.icon_class_name("pill[x]") - pill_styles += list(SL) - - var/datum/asset/spritesheet/simple/patches_assets = get_asset_datum(/datum/asset/spritesheet/simple/patches) - patch_styles = list() - for (var/raw_patch_style in PATCH_STYLE_LIST) - //adding class_name for use in UI - var/list/patch_style = list() - patch_style["style"] = raw_patch_style - patch_style["class_name"] = patches_assets.icon_class_name(raw_patch_style) - patch_styles += list(patch_style) - - condi_styles = strip_condi_styles_to_icons(get_condi_styles()) +/obj/machinery/chem_master/proc/load_printable_containers() + printable_containers = list( + CAT_TUBES = GLOB.chem_master_containers[CAT_TUBES], + CAT_PILLS = GLOB.chem_master_containers[CAT_PILLS], + CAT_PATCHES = GLOB.chem_master_containers[CAT_PATCHES], + ) /obj/machinery/chem_master/ui_assets(mob/user) return list( - get_asset_datum(/datum/asset/spritesheet/simple/pills), - get_asset_datum(/datum/asset/spritesheet/simple/condiments), - get_asset_datum(/datum/asset/spritesheet/simple/patches), + get_asset_datum(/datum/asset/spritesheet/chemmaster) ) /obj/machinery/chem_master/ui_interact(mob/user, datum/tgui/ui) @@ -218,45 +225,97 @@ ui = new(user, src, "ChemMaster", name) ui.open() +/obj/machinery/chem_master/ui_static_data(mob/user) + var/list/data = list() + data["categories"] = list() + for(var/category in printable_containers) + var/container_data = list() + for(var/obj/item/reagent_containers/container as anything in printable_containers[category]) + container_data += list(list( + "icon" = sanitize_css_class_name("[container]"), + "ref" = REF(container), + "name" = initial(container.name), + "volume" = initial(container.volume), + )) + data["categories"]+= list(list( + "name" = category, + "containers" = container_data, + )) + + return data + /obj/machinery/chem_master/ui_data(mob/user) var/list/data = list() - data["isBeakerLoaded"] = beaker ? 1 : 0 - data["beakerCurrentVolume"] = beaker ? round(beaker.reagents.total_volume, 0.01) : null - data["beakerMaxVolume"] = beaker ? beaker.volume : null - data["mode"] = mode - data["condi"] = condi - data["screen"] = screen - data["analyzeVars"] = analyze_vars - data["chosenPillStyle"] = chosen_pill_style - data["chosenCondiStyle"] = chosen_condi_style - data["autoCondiStyle"] = CONDIMASTER_STYLE_AUTO - data["isPillBottleLoaded"] = bottle ? 1 : 0 - if(bottle) - data["pillBottleCurrentAmount"] = bottle.contents.len - data["pillBottleMaxAmount"] = bottle.atom_storage.max_slots - - var/beaker_contents[0] - if(beaker) - for(var/datum/reagent/R in beaker.reagents.reagent_list) - var/chem_name = R.name - if(istype(R, /datum/reagent/ammonia/urine) && user.client?.prefs.read_preference(/datum/preference/toggle/prude_mode)) - chem_name = "Ammonia?" - beaker_contents.Add(list(list("name" = chem_name, "id" = ckey(R.name), "volume" = round(R.volume, 0.01)))) // list in a list because Byond merges the first list... - data["beakerContents"] = beaker_contents - - var/buffer_contents[0] - if(reagents.total_volume) - for(var/datum/reagent/N in reagents.reagent_list) - buffer_contents.Add(list(list("name" = N.name, "id" = ckey(N.name), "volume" = round(N.volume, 0.01)))) // ^ - data["bufferContents"] = buffer_contents - - //Calculated once since it'll never change - if(!pill_styles || !condi_styles || !patch_style || !patch_styles) - load_styles() - data["pillStyles"] = pill_styles - data["condiStyles"] = condi_styles - data["patch_style"] = patch_style - data["patch_styles"] = patch_styles + + data["reagentAnalysisMode"] = reagent_analysis_mode + if(reagent_analysis_mode && analyzed_reagent) + //Monkestation Addition: prude mode + var/chem_name = analyzed_reagent.name + if(istype(analyzed_reagent, /datum/reagent/ammonia/urine) && user.client?.prefs.read_preference(/datum/preference/toggle/prude_mode)) + chem_name = "Ammonia?" + //End Monkestation Addition + var/state + switch(analyzed_reagent.reagent_state) + if(SOLID) + state = "Solid" + if(LIQUID) + state = "Liquid" + if(GAS) + state = "Gas" + else + state = "Unknown" + data["analysisData"] = list( + "name" = chem_name, //Monkestation Edit: prude mode + "state" = state, + "pH" = analyzed_reagent.ph, + "color" = analyzed_reagent.color, + "description" = analyzed_reagent.description, + "purity" = analyzed_reagent.purity, + "metaRate" = analyzed_reagent.metabolization_rate, + "overdose" = analyzed_reagent.overdose_threshold, + "addictionTypes" = reagents.parse_addictions(analyzed_reagent), + ) + else + data["isPrinting"] = is_printing + data["printingProgress"] = printing_progress + data["printingTotal"] = printing_total + data["hasBeaker"] = beaker ? TRUE : FALSE + data["beakerCurrentVolume"] = beaker ? round(beaker.reagents.total_volume, 0.01) : null + data["beakerMaxVolume"] = beaker ? beaker.volume : null + var/list/beaker_contents = list() + if(beaker) + for(var/datum/reagent/reagent in beaker.reagents.reagent_list) + beaker_contents.Add(list(list("name" = reagent.name, "ref" = REF(reagent), "volume" = round(reagent.volume, 0.01)))) + data["beakerContents"] = beaker_contents + + var/list/buffer_contents = list() + if(reagents.total_volume) + for(var/datum/reagent/reagent in reagents.reagent_list) + buffer_contents.Add(list(list("name" = reagent.name, "ref" = REF(reagent), "volume" = round(reagent.volume, 0.01)))) + data["bufferContents"] = buffer_contents + data["bufferCurrentVolume"] = round(reagents.total_volume, 0.01) + data["bufferMaxVolume"] = reagents.maximum_volume + + data["transferMode"] = transfer_mode + + data["hasContainerSuggestion"] = !!has_container_suggestion + if(has_container_suggestion) + data["doSuggestContainer"] = !!do_suggest_container + if(do_suggest_container) + if(reagents.total_volume > 0) + var/master_reagent = reagents.get_master_reagent() + suggested_container = get_suggested_container(master_reagent) + else + suggested_container = default_container + data["suggestedContainer"] = suggested_container + selected_container = suggested_container + else if (isnull(selected_container)) + selected_container = default_container + + data["selectedContainerRef"] = selected_container + var/obj/item/reagent_containers/container = locate(selected_container) + data["selectedContainerVolume"] = initial(container.volume) + return data /obj/machinery/chem_master/ui_act(action, params) @@ -268,377 +327,171 @@ replace_beaker(usr) return TRUE - if(action == "ejectPillBottle") - if(!bottle) - return FALSE - bottle.forceMove(drop_location()) - adjust_item_drop_location(bottle) - bottle = null - return TRUE - if(action == "transfer") - var/reagent = GLOB.name2reagent[params["id"]] + var/reagent_ref = params["reagentRef"] var/amount = text2num(params["amount"]) - var/to_container = params["to"] - // Custom amount - if (amount == -1) - amount = text2num(input( - "Enter the amount you want to transfer:", - name, "")) - if (amount == null || amount <= 0) - return FALSE - use_power(active_power_usage) - if (to_container == "beaker" && !mode) - reagents.remove_reagent(reagent, amount) - return TRUE - if (!beaker) - return FALSE - if (to_container == "buffer") - var/datum/reagent/R = beaker.reagents.get_reagent(reagent) - if(!check_reactions(R, beaker.reagents)) - return FALSE - beaker.reagents.trans_id_to(src, reagent, amount) - return TRUE - if (to_container == "beaker" && mode) - var/datum/reagent/R = reagents.get_reagent(reagent) - if(!check_reactions(R, reagents)) - return FALSE - reagents.trans_id_to(beaker, reagent, amount) + var/target = params["target"] + return transfer_reagent(reagent_ref, amount, target) + + if(action == "toggleTransferMode") + transfer_mode = !transfer_mode + return TRUE + + if(action == "analyze") + analyzed_reagent = locate(params["reagentRef"]) + if(analyzed_reagent) + reagent_analysis_mode = TRUE + update_appearance(UPDATE_ICON) return TRUE - return FALSE - if(action == "toggleMode") - mode = !mode + if(action == "stopAnalysis") + reagent_analysis_mode = FALSE + analyzed_reagent = null + update_appearance(UPDATE_ICON) + return TRUE + + if(action == "stopPrinting") + is_printing = FALSE return TRUE - if(action == "pillStyle") - var/id = text2num(params["id"]) - chosen_pill_style = id + if(action == "toggleContainerSuggestion") + do_suggest_container = !do_suggest_container return TRUE - if(action == "condiStyle") - chosen_condi_style = params["id"] + if(action == "selectContainer") + selected_container = params["ref"] return TRUE if(action == "create") if(reagents.total_volume == 0) return FALSE - var/item_type = params["type"] - // Get amount of items - var/amount = text2num(params["amount"]) - if(amount == null) - amount = text2num(input(usr, - "Max 10. Buffer content will be split evenly.", - "How many to make?", 1)) - amount = clamp(round(amount), 0, 10) - if (amount <= 0) + var/item_count = text2num(params["itemCount"]) + if(item_count <= 0) return FALSE - // Get units per item - var/vol_each = text2num(params["volume"]) - var/vol_each_text = params["volume"] - var/vol_each_max = reagents.total_volume / amount - var/list/style + create_containers(item_count) + return TRUE + +/// Create N selected containers with reagents from buffer split between them +/obj/machinery/chem_master/proc/create_containers(item_count = 1) + var/obj/item/reagent_containers/container_style = locate(selected_container) + var/is_pill_subtype = ispath(container_style, /obj/item/reagent_containers/pill) + var/volume_in_each = reagents.total_volume / item_count + var/printing_amount_current = is_pill_subtype ? printing_amount * 2 : printing_amount + + // Generate item name + var/item_name_default = initial(container_style.name) + if(!(initial(container_style.reagent_flags) & OPENCONTAINER)) // Closed containers get reagent name and units in the name + item_name_default = "[reagents.get_master_reagent_name()] [item_name_default] ([volume_in_each]u)" + var/item_name = tgui_input_text(usr, + "Container name", + "Name", + item_name_default, + MAX_NAME_LEN) + + if(!item_name || !reagents.total_volume || QDELETED(src) || !usr.can_perform_action(src, ALLOW_SILICON_REACH)) + return FALSE + + // Print and fill containers + is_printing = TRUE + update_appearance(UPDATE_ICON) + printing_progress = 0 + printing_total = item_count + while(item_count > 0) + if(!is_printing) + break use_power(active_power_usage) - if (item_type == "pill") - vol_each_max = min(50, vol_each_max) - else if (item_type == "patch") - vol_each_max = min(40, vol_each_max) - else if (item_type == "bottle") - vol_each_max = min(30, vol_each_max) - else if (item_type == "condimentPack") - vol_each_max = min(10, vol_each_max) - else if (item_type == "condimentBottle") - var/list/styles = get_condi_styles() - if (chosen_condi_style == CONDIMASTER_STYLE_AUTO || !(chosen_condi_style in styles)) - style = guess_condi_style(reagents) - else - style = styles[chosen_condi_style] - vol_each_max = min(50, vol_each_max) - else - return FALSE - if(vol_each_text == "auto") - vol_each = vol_each_max - if(vol_each == null) - vol_each = text2num(input(usr, - "Maximum [vol_each_max] units per item.", - "How many units to fill?", - vol_each_max)) - vol_each = round(clamp(vol_each, 0, vol_each_max), 0.01) - if(vol_each <= 0) - return FALSE - // Get item name - var/name = strip_html(params["name"], limit = 100) - var/name_has_units = item_type == "pill" || item_type == "patch" - if(!name) - var/name_default - if (style && style["name"] && !style["generate_name"]) - name_default = style["name"] - else - name_default = reagents.get_master_reagent_name() - if (name_has_units) - name_default += " ([vol_each]u)" - name = tgui_input_text(usr, - "Give it a name!", - "Name", - name_default, - MAX_NAME_LEN) - if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.can_perform_action(src, ALLOW_SILICON_REACH)) - return FALSE - // Start filling - if(item_type == "pill") - var/obj/item/reagent_containers/pill/P - var/target_loc = drop_location() - var/drop_threshold = INFINITY - if(bottle) - if(bottle.atom_storage) - drop_threshold = bottle.atom_storage.max_slots - bottle.contents.len - target_loc = bottle - for(var/i in 1 to amount) - if(i-1 < drop_threshold) - P = new/obj/item/reagent_containers/pill(target_loc) - else - P = new/obj/item/reagent_containers/pill(drop_location()) - P.name = trim("[name] pill") - if(chosen_pill_style == RANDOM_PILL_STYLE) - P.icon_state ="pill[rand(1,21)]" - else - P.icon_state = "pill[chosen_pill_style]" - if(P.icon_state == "pill4") - P.desc = "A tablet or capsule, but not just any, a red one, one taken by the ones not scared of knowledge, freedom, uncertainty and the brutal truths of reality." - adjust_item_drop_location(P) - reagents.trans_to(P, vol_each, transfered_by = usr) - return TRUE - if(item_type == "patch") - var/obj/item/reagent_containers/pill/patch/P - for(var/i in 1 to amount) - P = new/obj/item/reagent_containers/pill/patch(drop_location()) - P.name = trim("[name] patch") - P.icon_state = patch_style - adjust_item_drop_location(P) - reagents.trans_to(P, vol_each, transfered_by = usr) - return TRUE - if(item_type == "bottle") - var/obj/item/reagent_containers/cup/bottle/P - for(var/i in 1 to amount) - P = new/obj/item/reagent_containers/cup/bottle(drop_location()) - P.name = trim("[name] bottle") - adjust_item_drop_location(P) - reagents.trans_to(P, vol_each, transfered_by = usr) - return TRUE - if(item_type == "condimentPack") - var/obj/item/reagent_containers/condiment/pack/P - for(var/i in 1 to amount) - P = new/obj/item/reagent_containers/condiment/pack(drop_location()) - P.originalname = name - P.name = trim("[name] pack") - P.desc = "A small condiment pack. The label says it contains [name]." - reagents.trans_to(P, vol_each, transfered_by = usr) - return TRUE - if(item_type == "condimentBottle") - var/obj/item/reagent_containers/condiment/P - for(var/i in 1 to amount) - P = new/obj/item/reagent_containers/condiment(drop_location()) - if (style) - apply_condi_style(P, style) - P.renamedByPlayer = TRUE - P.name = name - reagents.trans_to(P, vol_each, transfered_by = usr) - return TRUE + stoplag(printing_speed) + for(var/i in 1 to printing_amount_current) + if(!item_count) + continue + var/obj/item/reagent_containers/item = new container_style(drop_location()) + adjust_item_drop_location(item) + item.name = item_name + item.reagents.clear_reagents() + reagents.trans_to(item, volume_in_each, transfered_by = src) + printing_progress++ + item_count-- + update_appearance(UPDATE_ICON) + is_printing = FALSE + update_appearance(UPDATE_ICON) + return TRUE + +/// Transfer reagents to specified target from the opposite source +/obj/machinery/chem_master/proc/transfer_reagent(reagent_ref, amount, target) + if (amount == -1) + amount = text2num(input("Enter the amount you want to transfer:", name, "")) + if (amount == null || amount <= 0) + return FALSE + if (!beaker && target == TARGET_BEAKER && transfer_mode == TRANSFER_MODE_MOVE) + return FALSE + var/datum/reagent/reagent = locate(reagent_ref) + if (!reagent) return FALSE - if(action == "analyze") - var/datum/reagent/analyzed_reagent = GLOB.name2reagent[params["id"]] - if(analyzed_reagent) - var/state = "Unknown" - if(initial(analyzed_reagent.reagent_state) == SOLID) - state = "Solid" - else if(initial(analyzed_reagent.reagent_state) == LIQUID) - state = "Liquid" - else if(initial(analyzed_reagent.reagent_state) == GAS) - state = "Gas" - var/metabolization_rate = initial(analyzed_reagent.metabolization_rate) * (60 / SSMOBS_DT) - analyze_vars = list("name" = initial(analyzed_reagent.name), "state" = state, "color" = initial(analyzed_reagent.color), "description" = initial(analyzed_reagent.description), "metaRate" = metabolization_rate, "overD" = initial(analyzed_reagent.overdose_threshold), "pH" = initial(analyzed_reagent.ph)) - screen = "analyze" - return TRUE + use_power(active_power_usage) - if(action == "goScreen") - screen = params["screen"] + if (target == TARGET_BUFFER) + if(!check_reactions(reagent, beaker.reagents)) + return FALSE + beaker.reagents.trans_id_to(src, reagent.type, amount) + update_appearance(UPDATE_ICON) return TRUE - if(action == "change_patch_style") - patch_style = params["patch_style"] + if (target == TARGET_BEAKER && transfer_mode == TRANSFER_MODE_DESTROY) + reagents.remove_reagent(reagent.type, amount) + update_appearance(UPDATE_ICON) + return TRUE + if (target == TARGET_BEAKER && transfer_mode == TRANSFER_MODE_MOVE) + if(!check_reactions(reagent, reagents)) + return FALSE + reagents.trans_id_to(beaker, reagent.type, amount) + update_appearance(UPDATE_ICON) return TRUE return FALSE -/obj/machinery/chem_master/adjust_item_drop_location(atom/movable/AM) // Special version for chemmasters and condimasters - if (AM == beaker) - AM.pixel_x = AM.base_pixel_x - 8 - AM.pixel_y = AM.base_pixel_y + 8 - return null - else if (AM == bottle) - if (length(bottle.contents)) - AM.pixel_x = AM.base_pixel_x - 13 - else - AM.pixel_x = AM.base_pixel_x - 7 - AM.pixel_y = AM.base_pixel_y - 8 - return null - else - var/md5 = md5(AM.name) - for (var/i in 1 to 32) - . += hex2num(md5[i]) - . = . % 9 - AM.pixel_x = AM.base_pixel_x + ((.%3)*6) - AM.pixel_y = AM.base_pixel_y - 8 + (round( . / 3)*8) - -/** - * Translates styles data into UI compatible format - * - * Expects to receive list of availables condiment styles in its complete format, and transforms them in simplified form with enough data to get UI going. - * Returns list(list("id" = , "className" = , "title" = ),..). - * - * Arguments: - * * styles - List of styles for condiment bottles in internal format: [/obj/machinery/chem_master/proc/get_condi_styles] - */ -/obj/machinery/chem_master/proc/strip_condi_styles_to_icons(list/styles) - var/list/icons = list() - for (var/s in styles) - if (styles[s] && styles[s]["class_name"]) - var/list/icon = list() - var/list/style = styles[s] - icon["id"] = s - icon["className"] = style["class_name"] - icon["title"] = "[style["name"]]\n[style["desc"]]" - icons += list(icon) - - return icons - -/** - * Defines and provides list of available condiment bottle styles - * - * Uses typelist() for styles storage after initialization. - * For fallback style must provide style with key (const) CONDIMASTER_STYLE_FALLBACK - * Returns list( - * = list( - * "icon_state" = , - * "name" = , - * "desc" = , - * ?"generate_name" = , - * ?"icon_empty" = , - * ?"fill_icon_thresholds" = , - * ?"inhand_icon_state" = , - * ?"lefthand_file" = , - * ?"righthand_file" = , - * ), - * .. - * ) - * - */ -/obj/machinery/chem_master/proc/get_condi_styles() - var/list/styles = typelist("condi_styles") - if (!styles.len) - //Possible_states has the reagent type as key and a list of, in order, the icon_state, the name and the desc as values. Was used in the condiment/on_reagent_change(changetype) to change names, descs and sprites. - styles += list( - CONDIMASTER_STYLE_FALLBACK = list("icon_state" = "emptycondiment", "icon_empty" = "", "name" = "condiment bottle", "desc" = "Just your average condiment bottle.", "fill_icon_thresholds" = list(0, 10, 25, 50, 75, 100), "generate_name" = TRUE), - "enzyme" = list("icon_state" = "enzyme", "icon_empty" = "", "name" = "universal enzyme bottle", "desc" = "Used in cooking various dishes."), - "flour" = list("icon_state" = "flour", "icon_empty" = "", "name" = "flour sack", "desc" = "A big bag of flour. Good for baking!"), - "mayonnaise" = list("icon_state" = "mayonnaise", "icon_empty" = "", "name" = "mayonnaise jar", "desc" = "An oily condiment made from egg yolks."), - "milk" = list("icon_state" = "milk", "icon_empty" = "", "name" = "space milk", "desc" = "It's milk. White and nutritious goodness!"), - "blackpepper" = list("icon_state" = "peppermillsmall", "inhand_icon_state" = "", "icon_empty" = "emptyshaker", "name" = "pepper mill", "desc" = "Often used to flavor food or make people sneeze."), - "rice" = list("icon_state" = "rice", "icon_empty" = "", "name" = "rice sack", "desc" = "A big bag of rice. Good for cooking!"), - "sodiumchloride" = list("icon_state" = "saltshakersmall", "inhand_icon_state" = "", "icon_empty" = "emptyshaker", "name" = "salt shaker", "desc" = "Salt. From dead crew, presumably."), - "soymilk" = list("icon_state" = "soymilk", "icon_empty" = "", "name" = "soy milk", "desc" = "It's soy milk. White and nutritious goodness!"), - "soysauce" = list("icon_state" = "soysauce", "inhand_icon_state" = "", "icon_empty" = "", "name" = "soy sauce bottle", "desc" = "A salty soy-based flavoring."), - "sugar" = list("icon_state" = "sugar", "icon_empty" = "", "name" = "sugar sack", "desc" = "Tasty spacey sugar!"), - "ketchup" = list("icon_state" = "ketchup", "icon_empty" = "", "name" = "ketchup bottle", "desc" = "A tomato slurry in a tall plastic bottle. Somehow still vaguely American."), - "capsaicin" = list("icon_state" = "hotsauce", "icon_empty" = "", "name" = "hotsauce bottle", "desc" = "You can almost TASTE the stomach ulcers!"), - "frostoil" = list("icon_state" = "coldsauce", "icon_empty" = "", "name" = "coldsauce bottle", "desc" = "Leaves the tongue numb from its passage."), - "cornoil" = list("icon_state" = "oliveoil", "icon_empty" = "", "name" = "corn oil bottle", "desc" = "A delicious oil used in cooking. Made from corn."), - "bbqsauce" = list("icon_state" = "bbqsauce", "icon_empty" = "", "name" = "bbq sauce bottle", "desc" = "Hand wipes not included."), - "peanut_butter" = list("icon_state" = "peanutbutter", "icon_empty" = "", "name" = "peanut butter jar", "desc" = "A creamy paste made from ground peanuts."), - "honey" = list("icon_state" = "honey", "icon_empty" = "", "name" = "honey bottle", "desc" = "A cheerful bear-shaped bottle of tasty honey."), - "cherryjelly" = list("icon_state" = "cherryjelly", "icon_empty" = "", "name" = "cherry jelly jar", "desc" = "A jar of super-sweet cherry jelly."), - ) - var/list/carton_in_hand = list( - "inhand_icon_state" = "carton", - "lefthand_file" = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi', - "righthand_file" = 'icons/mob/inhands/equipment/kitchen_righthand.dmi' - ) - for (var/style_reagent in list("flour", "milk", "rice", "soymilk", "sugar")) - if (style_reagent in styles) - styles[style_reagent] += carton_in_hand - var/datum/asset/spritesheet/simple/assets = get_asset_datum(/datum/asset/spritesheet/simple/condiments) - for (var/reagent in styles) - styles[reagent]["class_name"] = assets.icon_class_name(reagent) - return styles - -/** - * Provides condiment bottle style based on reagents. - * - * Gets style from available by key, using last part of main reagent type (eg. "rice" for /datum/reagent/consumable/rice) as key. - * If not available returns fallback style, or null if no such thing. - * Returns list that is one of condibottle styles from [/obj/machinery/chem_master/proc/get_condi_styles] - */ -/obj/machinery/chem_master/proc/guess_condi_style(datum/reagents/reagents) - var/list/styles = get_condi_styles() - if (reagents.reagent_list.len > 0) - var/main_reagent = reagents.get_master_reagent_id() - if (main_reagent) - var/list/path = splittext("[main_reagent]", "/") - main_reagent = path[path.len] - if(main_reagent in styles) - return styles[main_reagent] - return styles[CONDIMASTER_STYLE_FALLBACK] - -/** - * Applies style to condiment bottle. - * - * Applies props provided in "style" assuming that "container" is freshly created with no styles applied before. - * User specified name for bottle applied after this method during bottle creation, - * so container.name overwritten here for consistency rather than with some purpose in mind. - * - * Arguments: - * * container - condiment bottle that gets style applied to it - * * style - assoc list, must probably one from [/obj/machinery/chem_master/proc/get_condi_styles] - */ -/obj/machinery/chem_master/proc/apply_condi_style(obj/item/reagent_containers/condiment/container, list/style) - container.name = style["name"] - container.desc = style["desc"] - container.icon_state = style["icon_state"] - container.icon_empty = style["icon_empty"] - container.fill_icon_thresholds = style["fill_icon_thresholds"] - if ("inhand_icon_state" in style) - container.inhand_icon_state = style["inhand_icon_state"] - if (style["lefthand_file"] || style["righthand_file"]) - container.lefthand_file = style["lefthand_file"] - container.righthand_file = style["righthand_file"] - - -//Checks to see if the target reagent is being created (reacting) and if so prevents transfer -//Only prevents reactant from being moved so that people can still manlipulate input reagents +/// Checks to see if the target reagent is being created (reacting) and if so prevents transfer +/// Only prevents reactant from being moved so that people can still manlipulate input reagents /obj/machinery/chem_master/proc/check_reactions(datum/reagent/reagent, datum/reagents/holder) if(!reagent) return FALSE var/canMove = TRUE - for(var/e in holder.reaction_list) - var/datum/equilibrium/E = e - if(E.reaction.reaction_flags & REACTION_COMPETITIVE) + for(var/datum/equilibrium/equilibrium as anything in holder.reaction_list) + if(equilibrium.reaction.reaction_flags & REACTION_COMPETITIVE) continue - for(var/result in E.reaction.required_reagents) - var/datum/reagent/R = result - if(R == reagent.type) + for(var/datum/reagent/result as anything in equilibrium.reaction.required_reagents) + if(result == reagent.type) canMove = FALSE if(!canMove) - say("Cannot move arrested chemical reaction reagents!") + say("Cannot move reagent during reaction!") return canMove -/** - * Machine that allows to identify and separate reagents in fitting container - * as well as to create new containers with separated reagents in it. - * - * All logic related to this is in [/obj/machinery/chem_master] and condimaster specific UI enabled by "condi = TRUE" - */ +/// Retrieve REF to the best container for provided reagent +/obj/machinery/chem_master/proc/get_suggested_container(datum/reagent/reagent) + var/preferred_container = reagent.default_container + for(var/category in printable_containers) + for(var/container in printable_containers[category]) + if(container == preferred_container) + return REF(container) + return default_container + +/obj/machinery/chem_master/examine(mob/user) + . = ..() + if(in_range(user, src) || isobserver(user)) + . += span_notice("The status display reads:
Reagent buffer capacity: [reagents.maximum_volume] units.
Number of containers printed at once increased by [100 * (printing_amount / initial(printing_amount)) - 100]%.") + /obj/machinery/chem_master/condimaster name = "CondiMaster 3000" desc = "Used to create condiments and other cooking supplies." - condi = TRUE + icon_state = "condimaster" + has_container_suggestion = TRUE + +/obj/machinery/chem_master/condimaster/load_printable_containers() + printable_containers = list( + CAT_CONDIMENTS = GLOB.chem_master_containers[CAT_CONDIMENTS], + ) + +#undef TRANSFER_MODE_DESTROY +#undef TRANSFER_MODE_MOVE +#undef TARGET_BEAKER +#undef TARGET_BUFFER diff --git a/code/modules/reagents/chemistry/machinery/pandemic.dm b/code/modules/reagents/chemistry/machinery/pandemic.dm index 2379ba3baefb..d67449a7fb91 100644 --- a/code/modules/reagents/chemistry/machinery/pandemic.dm +++ b/code/modules/reagents/chemistry/machinery/pandemic.dm @@ -200,14 +200,14 @@ use_power(active_power_usage) adv_disease = adv_disease.Copy() var/list/data = list("viruses" = list(adv_disease)) - var/obj/item/reagent_containers/cup/bottle/bottle = new(drop_location()) - bottle.name = "[adv_disease.name] culture bottle" - bottle.desc = "A small bottle. Contains [adv_disease.agent] culture in synthblood medium." + var/obj/item/reagent_containers/cup/tube/bottle = new(drop_location()) + bottle.name = "[adv_disease.name] culture tube" + bottle.desc = "A small test tube containing [adv_disease.agent] culture in synthblood medium." bottle.reagents.add_reagent(/datum/reagent/blood, 20, data) wait = TRUE update_appearance() var/turf/source_turf = get_turf(src) - log_virus("A culture bottle was printed for the virus [adv_disease.admin_details()] at [loc_name(source_turf)] by [key_name(usr)]") + log_virus("A culture tube was printed for the virus [adv_disease.admin_details()] at [loc_name(source_turf)] by [key_name(usr)]") addtimer(CALLBACK(src, PROC_REF(reset_replicator_cooldown)), 5 SECONDS) return TRUE @@ -222,8 +222,8 @@ use_power(active_power_usage) var/id = index var/datum/disease/disease = SSdisease.archive_diseases[id] - var/obj/item/reagent_containers/cup/bottle/bottle = new(drop_location()) - bottle.name = "[disease.name] vaccine bottle" + var/obj/item/reagent_containers/cup/tube/bottle = new(drop_location()) + bottle.name = "[disease.name] vaccine tube" bottle.reagents.add_reagent(/datum/reagent/vaccine, 15, list(id)) wait = TRUE update_appearance() diff --git a/code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm index 8fc6946ddaa5..79d9a191e845 100644 --- a/code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm @@ -62,7 +62,7 @@ if(boozepwr > 0 && !HAS_TRAIT(drinker, TRAIT_LIVING_DRUNK)) var/obj/item/organ/internal/liver/liver = drinker.get_organ_slot(ORGAN_SLOT_LIVER) if (istype(liver)) - liver.apply_organ_damage(((max(sqrt(volume) * (boozepwr ** ALCOHOL_EXPONENT) * liver.alcohol_tolerance * seconds_per_tick, 0))/150)) + liver.apply_organ_damage(((max(sqrt(volume) * (boozepwr ** ALCOHOL_EXPONENT) * liver.alcohol_tolerance * seconds_per_tick, 0))/150), maximum = HAS_TRAIT(drinker, TRAIT_ALCOHOL_TOLERANCE) ? (STANDARD_ORGAN_THRESHOLD - 10) : null) return ..() /datum/reagent/consumable/ethanol/expose_obj(obj/exposed_obj, reac_volume) diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm index 6c0d47f27375..4c000052b996 100644 --- a/code/modules/reagents/chemistry/reagents/food_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm @@ -169,7 +169,7 @@ penetrates_skin = NONE var/fry_temperature = 450 //Around ~350 F (117 C) which deep fryers operate around in the real world chemical_flags = REAGENT_CAN_BE_SYNTHESIZED - default_container = /obj/item/reagent_containers/condiment/quality_oil + default_container = /obj/item/reagent_containers/condiment/cooking_oil turf_exposure = TRUE /datum/reagent/consumable/cooking_oil/expose_obj(obj/exposed_obj, reac_volume) @@ -540,6 +540,7 @@ color = "#302000" // rgb: 48, 32, 0 taste_description = "slime" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED + default_container = /obj/item/reagent_containers/condiment/cooking_oil turf_exposure = TRUE /datum/reagent/consumable/cornoil/expose_turf(turf/open/exposed_turf, reac_volume) diff --git a/code/modules/reagents/chemistry/reagents/unique/eigenstasium.dm b/code/modules/reagents/chemistry/reagents/unique/eigenstasium.dm index e14a4050b953..95f83c223f64 100644 --- a/code/modules/reagents/chemistry/reagents/unique/eigenstasium.dm +++ b/code/modules/reagents/chemistry/reagents/unique/eigenstasium.dm @@ -69,7 +69,7 @@ to_chat(living_mob, span_userdanger("You feel like part of yourself has split off!")) //Teleports you home if it's pure enough - if(creation_purity > 0.9 && location_created && data["ingested"]) + if(/* creation_purity > 0.9 && */ location_created && data["ingested"]) // monkestation edit: begone purity do_sparks(5,FALSE,living_mob) do_teleport(living_mob, location_created, 0, asoundin = 'sound/effects/phasein.ogg') do_sparks(5,FALSE,living_mob) @@ -111,8 +111,10 @@ ///Lets you link lockers together /datum/reagent/eigenstate/expose_turf(turf/exposed_turf, reac_volume) . = ..() + /* monkestation start - get rid of purity bs if(creation_purity < 0.8) return + monkestation end*/ var/list/lockers = list() for(var/obj/structure/closet/closet in exposed_turf.contents) lockers += closet diff --git a/code/modules/reagents/reagent_containers.dm b/code/modules/reagents/reagent_containers.dm index 41894fce4919..0da5d92aa3c0 100644 --- a/code/modules/reagents/reagent_containers.dm +++ b/code/modules/reagents/reagent_containers.dm @@ -321,10 +321,9 @@ SIGNAL_HANDLER update_appearance() - if(reasses_processing()) - START_PROCESSING(SSobj, src) - else if(datum_flags & DF_ISPROCESSING) - STOP_PROCESSING(SSobj, src) + //Monkestation Addition: For Australium + reagent_processing() + //End Monkestation Addition return NONE diff --git a/code/modules/reagents/reagent_containers/condiment.dm b/code/modules/reagents/reagent_containers/condiment.dm index 28db9519a016..55b78626c23e 100644 --- a/code/modules/reagents/reagent_containers/condiment.dm +++ b/code/modules/reagents/reagent_containers/condiment.dm @@ -9,7 +9,7 @@ name = "condiment bottle" desc = "Just your average condiment bottle." icon = 'icons/obj/food/containers.dmi' - icon_state = "emptycondiment" + icon_state = "bottle" inhand_icon_state = "beer" //Generic held-item sprite until unique ones are made. lefthand_file = 'icons/mob/inhands/items/drinks_lefthand.dmi' righthand_file = 'icons/mob/inhands/items/drinks_righthand.dmi' @@ -273,6 +273,13 @@ list_reagents = list(/datum/reagent/consumable/vinegar = 50) fill_icon_thresholds = null +/obj/item/reagent_containers/condiment/cooking_oil + name = "cooking oil" + desc = "For all your deep-frying needs." + icon_state = "cooking_oil" + list_reagents = list(/datum/reagent/consumable/cooking_oil = 50) + fill_icon_thresholds = null + /obj/item/reagent_containers/condiment/quality_oil name = "quality oil" desc = "For the fancy chef inside everyone." @@ -378,6 +385,19 @@ icon_state = "condi_chocolate" list_reagents = list(/datum/reagent/consumable/choccyshake = 10) + +/obj/item/reagent_containers/condiment/hotsauce + name = "hotsauce bottle" + desc= "You can almost TASTE the stomach ulcers!" + icon_state = "hotsauce" + list_reagents = list(/datum/reagent/consumable/capsaicin = 50) + +/obj/item/reagent_containers/condiment/coldsauce + name = "coldsauce bottle" + desc= "Leaves the tongue numb from its passage." + icon_state = "coldsauce" + list_reagents = list(/datum/reagent/consumable/frostoil = 50) + //Food packs. To easily apply deadly toxi... delicious sauces to your food! /obj/item/reagent_containers/condiment/pack diff --git a/code/modules/reagents/reagent_containers/cups/_cup.dm b/code/modules/reagents/reagent_containers/cups/_cup.dm index 58327a74a307..c836ffa3682c 100644 --- a/code/modules/reagents/reagent_containers/cups/_cup.dm +++ b/code/modules/reagents/reagent_containers/cups/_cup.dm @@ -615,3 +615,15 @@ volume = 240 icon_state = "coffeepot_bluespace" fill_icon_thresholds = list(0) + +///Test tubes created by chem master and pandemic and placed in racks +/obj/item/reagent_containers/cup/tube + name = "tube" + desc = "A small test tube." + icon_state = "test_tube" + fill_icon_state = "tube" + inhand_icon_state = "atoxinbottle" + worn_icon_state = "test_tube" + possible_transfer_amounts = list(5, 10, 15, 30) + volume = 30 + fill_icon_thresholds = list(0, 1, 20, 40, 60, 80, 100) diff --git a/code/modules/reagents/reagent_containers/cups/bottle.dm b/code/modules/reagents/reagent_containers/cups/bottle.dm index 8fb3012a703a..9394124c9d2a 100644 --- a/code/modules/reagents/reagent_containers/cups/bottle.dm +++ b/code/modules/reagents/reagent_containers/cups/bottle.dm @@ -7,8 +7,8 @@ fill_icon_state = "bottle" inhand_icon_state = "atoxinbottle" worn_icon_state = "bottle" - possible_transfer_amounts = list(5, 10, 15, 25, 30) - volume = 30 + possible_transfer_amounts = list(5, 10, 15, 25, 50) + volume = 50 fill_icon_thresholds = list(0, 1, 20, 40, 60, 80, 100) /obj/item/reagent_containers/cup/bottle/Initialize(mapload) @@ -62,7 +62,6 @@ /obj/item/reagent_containers/cup/bottle/phlogiston name = "Phlogiston bottle" desc = "A small bottle of Phlogiston, that will set you on fire if used." - volume = 50 list_reagents = list(/datum/reagent/phlogiston = 30) /obj/item/reagent_containers/cup/bottle/ammoniated_mercury @@ -442,7 +441,6 @@ fill_icon_state = "syrup" fill_icon_thresholds = list(0, 20, 40, 60, 80, 100) possible_transfer_amounts = list(5, 10) - volume = 50 amount_per_transfer_from_this = 5 spillable = FALSE ///variable to tell if the bottle can be refilled diff --git a/code/modules/reagents/reagent_containers/patch.dm b/code/modules/reagents/reagent_containers/patch.dm index c6f9061316bd..62fcde5eff4a 100644 --- a/code/modules/reagents/reagent_containers/patch.dm +++ b/code/modules/reagents/reagent_containers/patch.dm @@ -44,3 +44,46 @@ desc = "Helps with brute and burn injuries. Slightly toxic." list_reagents = list(/datum/reagent/medicine/c2/synthflesh = 20) icon_state = "bandaid_both" + +// Patch styles for chem master + +/obj/item/reagent_containers/pill/patch/style + icon_state = "bandaid_blank" +/obj/item/reagent_containers/pill/patch/style/brute + icon_state = "bandaid_brute_2" +/obj/item/reagent_containers/pill/patch/style/burn + icon_state = "bandaid_burn_2" +/obj/item/reagent_containers/pill/patch/style/bruteburn + icon_state = "bandaid_both" +/obj/item/reagent_containers/pill/patch/style/toxin + icon_state = "bandaid_toxin_2" +/obj/item/reagent_containers/pill/patch/style/oxygen + icon_state = "bandaid_suffocation_2" +/obj/item/reagent_containers/pill/patch/style/omni + icon_state = "bandaid_mix" +/obj/item/reagent_containers/pill/patch/style/bruteplus + icon_state = "bandaid_brute" +/obj/item/reagent_containers/pill/patch/style/burnplus + icon_state = "bandaid_burn" +/obj/item/reagent_containers/pill/patch/style/toxinplus + icon_state = "bandaid_toxin" +/obj/item/reagent_containers/pill/patch/style/oxygenplus + icon_state = "bandaid_suffocation" +/obj/item/reagent_containers/pill/patch/style/monkey + icon_state = "bandaid_monke" +/obj/item/reagent_containers/pill/patch/style/clown + icon_state = "bandaid_clown" +/obj/item/reagent_containers/pill/patch/style/one + icon_state = "bandaid_1" +/obj/item/reagent_containers/pill/patch/style/two + icon_state = "bandaid_2" +/obj/item/reagent_containers/pill/patch/style/three + icon_state = "bandaid_3" +/obj/item/reagent_containers/pill/patch/style/four + icon_state = "bandaid_4" +/obj/item/reagent_containers/pill/patch/style/exclamation + icon_state = "bandaid_exclaimationpoint" +/obj/item/reagent_containers/pill/patch/style/question + icon_state = "bandaid_questionmark" +/obj/item/reagent_containers/pill/patch/style/colonthree + icon_state = "bandaid_colonthree" diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm index 74ee4a0d73fd..e65d5ac5c46e 100644 --- a/code/modules/reagents/reagent_containers/pill.dm +++ b/code/modules/reagents/reagent_containers/pill.dm @@ -317,3 +317,54 @@ icon_state = "pill8" list_reagents = list(/datum/reagent/iron = 30) rename_with_volume = TRUE + +// Pill styles for chem master + +/obj/item/reagent_containers/pill/style + icon_state = "pill0" +/obj/item/reagent_containers/pill/style/purplered + icon_state = "pill1" +/obj/item/reagent_containers/pill/style/greenwhite + icon_state = "pill2" +/obj/item/reagent_containers/pill/style/teal + icon_state = "pill3" +/obj/item/reagent_containers/pill/style/red + icon_state = "pill4" +/obj/item/reagent_containers/pill/style/redwhite + icon_state = "pill5" +/obj/item/reagent_containers/pill/style/tealbrown + icon_state = "pill6" +/obj/item/reagent_containers/pill/style/yellowflat + icon_state = "pill7" +/obj/item/reagent_containers/pill/style/tealflat + icon_state = "pill8" +/obj/item/reagent_containers/pill/style/whiteflat + icon_state = "pill9" +/obj/item/reagent_containers/pill/style/purpleflat + icon_state = "pill10" +/obj/item/reagent_containers/pill/style/limelat + icon_state = "pill11" +/obj/item/reagent_containers/pill/style/redflat + icon_state = "pill12" +/obj/item/reagent_containers/pill/style/greenpurpleflat + icon_state = "pill13" +/obj/item/reagent_containers/pill/style/yellowpurpleflat + icon_state = "pill14" +/obj/item/reagent_containers/pill/style/redyellowflat + icon_state = "pill15" +/obj/item/reagent_containers/pill/style/bluetealflat + icon_state = "pill16" +/obj/item/reagent_containers/pill/style/greenlimeflat + icon_state = "pill17" +/obj/item/reagent_containers/pill/style/white + icon_state = "pill18" +/obj/item/reagent_containers/pill/style/whitered + icon_state = "pill19" +/obj/item/reagent_containers/pill/style/purpleyellow + icon_state = "pill20" +/obj/item/reagent_containers/pill/style/blackwhite + icon_state = "pill21" +/obj/item/reagent_containers/pill/style/limewhite + icon_state = "pill22" +/obj/item/reagent_containers/pill/style/happy + icon_state = "pill_happy" diff --git a/code/modules/religion/burdened/psyker.dm b/code/modules/religion/burdened/psyker.dm index 9a8a9d2100f5..b06e618e0775 100644 --- a/code/modules/religion/burdened/psyker.dm +++ b/code/modules/religion/burdened/psyker.dm @@ -141,7 +141,7 @@ icon_state = "chaplain" force = 10 fire_sound = 'sound/weapons/gun/revolver/shot.ogg' - mag_type = /obj/item/ammo_box/magazine/internal/cylinder/rev77 + accepted_magazine_type = /obj/item/ammo_box/magazine/internal/cylinder/rev77 obj_flags = UNIQUE_RENAME custom_materials = null actions_types = list(/datum/action/item_action/pray_refill) diff --git a/code/modules/requests/request_manager.dm b/code/modules/requests/request_manager.dm index 10cf6c900731..bb8d73f3bdba 100644 --- a/code/modules/requests/request_manager.dm +++ b/code/modules/requests/request_manager.dm @@ -134,7 +134,7 @@ GLOBAL_DATUM_INIT(requests, /datum/request_manager, new) requests[C.ckey] = list() requests[C.ckey] += request requests_by_id.len++ - requests_by_id[request.id] = request + requests_by_id["[request.id]"] = request /datum/request_manager/mentor/request_for_client(client/C, type, message, additional_info) var/datum/request/request = new(C, type, message, additional_info) @@ -164,7 +164,7 @@ GLOBAL_DATUM_INIT(requests, /datum/request_manager, new) // Get the request this relates to var/id = params["id"] != null ? text2num(params["id"]) : null if (!id) - to_chat(usr, "Failed to find a request ID in your action, please report this", confidential = TRUE) + to_chat(usr, span_danger("Failed to find a request ID in your action, please report this!"), confidential = TRUE) CRASH("Received an action without a request ID, this shouldn't happen!") var/datum/request/request = !id ? null : requests_by_id[id] diff --git a/code/modules/research/designs/autolathe/multi-department_designs.dm b/code/modules/research/designs/autolathe/multi-department_designs.dm index 1ab1a3dbb52d..c8e78b4af567 100644 --- a/code/modules/research/designs/autolathe/multi-department_designs.dm +++ b/code/modules/research/designs/autolathe/multi-department_designs.dm @@ -437,6 +437,18 @@ ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL | DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_SERVICE +/datum/design/digital_clock_frame + name = "Digital Clock Frame" + id = "digital_clock_frame" + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE + materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT*7, /datum/material/glass = SHEET_MATERIAL_AMOUNT*4) + build_path = /obj/item/wallframe/digital_clock + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_MOUNTS, + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SERVICE + /datum/design/razor name = "Electric Razor" id = "razor" diff --git a/code/modules/research/designs/autolathe/service_designs.dm b/code/modules/research/designs/autolathe/service_designs.dm index a71f5aa566ea..b40b8231a1bf 100644 --- a/code/modules/research/designs/autolathe/service_designs.dm +++ b/code/modules/research/designs/autolathe/service_designs.dm @@ -411,7 +411,7 @@ id = "plastic_trees" build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE materials = list(/datum/material/plastic = 8000) - build_path = /obj/item/kirbyplants/fullysynthetic + build_path = /obj/item/kirbyplants/random/fullysynthetic category = list( RND_CATEGORY_INITIAL, RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SERVICE, diff --git a/code/modules/research/designs/machine_designs.dm b/code/modules/research/designs/machine_designs.dm index 7907f7362679..b92908f21373 100644 --- a/code/modules/research/designs/machine_designs.dm +++ b/code/modules/research/designs/machine_designs.dm @@ -318,6 +318,26 @@ ) departmental_flags = DEPARTMENT_BITFLAG_SECURITY +/datum/design/board/photobooth + name = "Photobooth Board" + desc = "The circuit board for a photobooth." + id = "photobooth" + build_path = /obj/item/circuitboard/machine/photobooth + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_SERVICE + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE + +/datum/design/board/security_photobooth + name = "Security Photobooth Board" + desc = "The circuit board for a security photobooth." + id = "security_photobooth" + build_path = /obj/item/circuitboard/machine/photobooth/security + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_SECURITY + ) + departmental_flags = DEPARTMENT_BITFLAG_SECURITY + /datum/design/board/biogenerator name = "Biogenerator Board" desc = "The circuit board for a biogenerator." diff --git a/code/modules/research/designs/mechfabricator_designs.dm b/code/modules/research/designs/mechfabricator_designs.dm index ec29ee5f36b0..d6849f41c04e 100644 --- a/code/modules/research/designs/mechfabricator_designs.dm +++ b/code/modules/research/designs/mechfabricator_designs.dm @@ -1893,6 +1893,19 @@ ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL +/datum/design/module/statusreadout + name = "Status Readout Module" + id = "mod_statusreadout" + materials = list( + /datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT * 3, + /datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, + /datum/material/titanium = SMALL_MATERIAL_AMOUNT * 2, + ) + build_path = /obj/item/mod/module/status_readout + category = list( + RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_MEDICAL + ) + /datum/design/module/patienttransport name = "Patient Transport Module" id = "mod_patienttransport" diff --git a/code/modules/research/machinery/_production.dm b/code/modules/research/machinery/_production.dm index 2dc7f7852271..9d7eafa848bb 100644 --- a/code/modules/research/machinery/_production.dm +++ b/code/modules/research/machinery/_production.dm @@ -223,6 +223,7 @@ new path(get_turf(src)) SSblackbox.record_feedback("nested tally", "item_printed", amount, list("[initial(name)]", "[initial(path.name)]")) + finalize_build() /obj/machinery/rnd/production/proc/efficient_with(path) return !ispath(path, /obj/item/stack/sheet) && !ispath(path, /obj/item/stack/ore/bluespace_crystal) @@ -335,6 +336,8 @@ return TRUE +/obj/machinery/rnd/production/proc/finalize_build() + /obj/machinery/rnd/production/proc/eject_sheets(eject_sheet, eject_amt) var/datum/component/material_container/mat_container = materials.mat_container diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index b4a3ddfe36db..feab11b01e32 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -298,7 +298,7 @@ "swab", "syringe", "xlarge_beaker", - "vial", + "tube", "synth_eyes", "synth_tongue", "synth_liver", @@ -1171,8 +1171,10 @@ "idcard", "libraryconsole", "mining", + "photobooth", "rdcamera", "seccamera", + "security_photobooth", ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) @@ -1755,6 +1757,7 @@ "mod_defib", "mod_threadripper", "mod_surgicalprocessor", + "mod_statusreadout", ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3500) diff --git a/code/modules/security_levels/keycard_authentication.dm b/code/modules/security_levels/keycard_authentication.dm index 0b0f3ccd2f20..6d744e5f03d4 100644 --- a/code/modules/security_levels/keycard_authentication.dm +++ b/code/modules/security_levels/keycard_authentication.dm @@ -3,6 +3,7 @@ GLOBAL_DATUM_INIT(keycard_events, /datum/events, new) #define KEYCARD_RED_ALERT "Red Alert" #define KEYCARD_EMERGENCY_MAINTENANCE_ACCESS "Emergency Maintenance Access" #define KEYCARD_BSA_UNLOCK "Bluespace Artillery Unlock" +#define KEYCARD_PIN_UNRESTRICT "Unrestrict Permit Firing Pins" #define ACCESS_GRANTING_COOLDOWN (30 SECONDS) @@ -82,6 +83,10 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/keycard_auth, 26) event_source = null update_appearance() . = TRUE + if("pin_unrestrict") + if(!event_source) + sendEvent(KEYCARD_PIN_UNRESTRICT) + . = TRUE if("bsa_unlock") if(!event_source) sendEvent(KEYCARD_BSA_UNLOCK) @@ -157,6 +162,8 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/keycard_auth, 26) make_maint_all_access() if(KEYCARD_BSA_UNLOCK) toggle_bluespace_artillery() + if(KEYCARD_PIN_UNRESTRICT) + toggle_permit_pins() GLOBAL_VAR_INIT(emergency_access, FALSE) /proc/make_maint_all_access() @@ -188,3 +195,4 @@ GLOBAL_VAR_INIT(emergency_access, FALSE) #undef KEYCARD_RED_ALERT #undef KEYCARD_EMERGENCY_MAINTENANCE_ACCESS #undef KEYCARD_BSA_UNLOCK +#undef KEYCARD_PIN_UNRESTRICT diff --git a/code/modules/shuttle/shuttle.dm b/code/modules/shuttle/shuttle.dm index 47e62be1ebaa..769de2efb336 100644 --- a/code/modules/shuttle/shuttle.dm +++ b/code/modules/shuttle/shuttle.dm @@ -650,10 +650,10 @@ return SHUTTLE_CAN_DOCK if(dwidth > stationary_dock.dwidth) - return SHUTTLE_DWIDTH_TOO_LARGE + return "[SHUTTLE_DWIDTH_TOO_LARGE] [stationary_dock.dwidth] vs [dwidth]" if(width-dwidth > stationary_dock.width-stationary_dock.dwidth) - return SHUTTLE_WIDTH_TOO_LARGE + return "[SHUTTLE_WIDTH_TOO_LARGE] [stationary_dock.dwidth] vs [dwidth] + [width]" if(dheight > stationary_dock.dheight) return SHUTTLE_DHEIGHT_TOO_LARGE diff --git a/code/modules/station_goals/meteor_shield.dm b/code/modules/station_goals/meteor_shield.dm index 6eec271a01fc..cb527fd12d87 100644 --- a/code/modules/station_goals/meteor_shield.dm +++ b/code/modules/station_goals/meteor_shield.dm @@ -13,7 +13,7 @@ // A chain of satellites encircles the station // Satellites be actived to generate a shield that will block unorganic matter from passing it. /datum/station_goal/station_shield - name = "Station Shield" + name = "Hard-Kill Meteor Protection System" // monkestation edit var/coverage_goal = 500 requires_space = TRUE diff --git a/code/modules/surgery/organs/tongue.dm b/code/modules/surgery/organs/tongue.dm index 49ae8b937a48..f5359a46b6cc 100644 --- a/code/modules/surgery/organs/tongue.dm +++ b/code/modules/surgery/organs/tongue.dm @@ -126,7 +126,18 @@ say_mod = "hisses" taste_sensitivity = 10 // combined nose + tongue, extra sensitive modifies_speech = TRUE - languages_native = list(/datum/language/draconic) + languages_native = list(/datum/language/draconic, /datum/language/ashtongue) + + //MONKESTATION EDIT START + + /// How long is our hissssssss? + var/draw_length = 3 + +/obj/item/organ/internal/tongue/lizard/Initialize(mapload) + . = ..() + draw_length = rand(2, 6) + if(prob(10)) + draw_length += 2 /obj/item/organ/internal/tongue/lizard/modify_speech(datum/source, list/speech_args) var/static/regex/lizard_hiss = new("s+", "g") @@ -137,14 +148,16 @@ var/static/regex/lizard_eckS = new(@"\bX([\-|r|R]|\b)", "g") var/message = speech_args[SPEECH_MESSAGE] if(message[1] != "*") - message = lizard_hiss.Replace(message, "sss") - message = lizard_hiSS.Replace(message, "SSS") - message = lizard_kss.Replace(message, "$1kss") - message = lizard_kSS.Replace(message, "$1KSS") - message = lizard_ecks.Replace(message, "ecks$1") - message = lizard_eckS.Replace(message, "ECKS$1") + message = lizard_hiss.Replace(message, repeat_string(draw_length, "s")) + message = lizard_hiSS.Replace(message, repeat_string(draw_length, "S")) + message = lizard_kss.Replace(message, "$1k[repeat_string(max(draw_length - 1, 1), "s")]") + message = lizard_kSS.Replace(message, "$1K[repeat_string(max(draw_length - 1, 1), "S")]") + message = lizard_ecks.Replace(message, "eck[repeat_string(max(draw_length - 2, 1), "s")]$1") + message = lizard_eckS.Replace(message, "ECK[repeat_string(max(draw_length - 2, 1), "S")]$1") speech_args[SPEECH_MESSAGE] = message + //MONKESTATION EDIT END + /obj/item/organ/internal/tongue/lizard/silver name = "silver tongue" desc = "A genetic branch of the high society Silver Scales that gives them their silverizing properties. To them, it is everything, and society traitors have their tongue forcibly revoked. Oddly enough, it itself is just blue." diff --git a/code/modules/surgery/tools.dm b/code/modules/surgery/tools.dm index 604d59d7667f..5ebc3bf6ff5e 100644 --- a/code/modules/surgery/tools.dm +++ b/code/modules/surgery/tools.dm @@ -12,6 +12,11 @@ w_class = WEIGHT_CLASS_TINY tool_behaviour = TOOL_RETRACTOR toolspeed = 1 + /// How this looks when placed in a surgical tray + var/surgical_tray_overlay = "retractor_normal" + +/obj/item/retractor/get_surgery_tool_overlay(tray_extended) + return surgical_tray_overlay /obj/item/retractor/augment desc = "Micro-mechanical manipulator for retracting stuff." @@ -34,6 +39,11 @@ attack_verb_simple = list("attack", "pinch") tool_behaviour = TOOL_HEMOSTAT toolspeed = 1 + /// How this looks when placed in a surgical tray + var/surgical_tray_overlay = "hemostat_normal" + +/obj/item/hemostat/get_surgery_tool_overlay(tray_extended) + return surgical_tray_overlay /obj/item/hemostat/augment desc = "Tiny servos power a pair of pincers to stop bleeding." @@ -56,7 +66,11 @@ attack_verb_simple = list("burn") tool_behaviour = TOOL_CAUTERY toolspeed = 1 - heat = 500 + /// How this looks when placed in a surgical tray + var/surgical_tray_overlay = "cautery_normal" + +/obj/item/cautery/get_surgery_tool_overlay(tray_extended) + return surgical_tray_overlay /obj/item/cautery/ignition_effect(atom/ignitable_atom, mob/user) . = span_notice("[user] touches the end of [src] to \the [ignitable_atom], igniting it with a puff of smoke.") @@ -71,6 +85,7 @@ icon = 'icons/obj/medical/surgery_tools.dmi' icon_state = "e_cautery" inhand_icon_state = "e_cautery" + surgical_tray_overlay = "cautery_advanced" lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT*2, /datum/material/glass =SHEET_MATERIAL_AMOUNT, /datum/material/plasma =SHEET_MATERIAL_AMOUNT, /datum/material/uranium = SHEET_MATERIAL_AMOUNT*1.5, /datum/material/titanium = SHEET_MATERIAL_AMOUNT*1.5) @@ -81,6 +96,9 @@ light_outer_range = 1 light_color = COLOR_SOFT_RED +/obj/item/cautery/advanced/get_all_tool_behaviours() + return list(TOOL_CAUTERY, TOOL_DRILL) + /obj/item/cautery/advanced/Initialize(mapload) . = ..() AddComponent( \ @@ -132,11 +150,16 @@ sharpness = SHARP_POINTY wound_bonus = 10 bare_wound_bonus = 10 + /// How this looks when placed in a surgical tray + var/surgical_tray_overlay = "drill_normal" /obj/item/surgicaldrill/Initialize(mapload) . = ..() AddElement(/datum/element/eyestab) +/obj/item/surgicaldrill/get_surgery_tool_overlay(tray_extended) + return surgical_tray_overlay + /obj/item/surgicaldrill/suicide_act(mob/living/user) user.visible_message(span_suicide("[user] rams [src] into [user.p_their()] chest! It looks like [user.p_theyre()] trying to commit suicide!")) addtimer(CALLBACK(user, TYPE_PROC_REF(/mob/living/carbon, gib), null, null, TRUE, TRUE), 25) @@ -175,6 +198,8 @@ toolspeed = 1 wound_bonus = 10 bare_wound_bonus = 15 + /// How this looks when placed in a surgical tray + var/surgical_tray_overlay = "scalpel_normal" /obj/item/scalpel/Initialize(mapload) . = ..() @@ -185,14 +210,17 @@ ) AddElement(/datum/element/eyestab) -/obj/item/scalpel/augment - desc = "Ultra-sharp blade attached directly to your bone for extra-accuracy." - toolspeed = 0.5 +/obj/item/scalpel/get_surgery_tool_overlay(tray_extended) + return surgical_tray_overlay /obj/item/scalpel/suicide_act(mob/living/user) user.visible_message(span_suicide("[user] is slitting [user.p_their()] [pick("wrists", "throat", "stomach")] with [src]! It looks like [user.p_theyre()] trying to commit suicide!")) return BRUTELOSS +/obj/item/scalpel/augment + desc = "Ultra-sharp blade attached directly to your bone for extra-accuracy." + toolspeed = 0.5 + /obj/item/circular_saw name = "circular saw" desc = "For heavy duty cutting." @@ -218,6 +246,8 @@ toolspeed = 1 wound_bonus = 15 bare_wound_bonus = 10 + /// How this looks when placed in a surgical tray + var/surgical_tray_overlay = "saw_normal" /obj/item/circular_saw/Initialize(mapload) . = ..() @@ -229,6 +259,9 @@ ) //saws are very accurate and fast at butchering +/obj/item/circular_saw/get_surgery_tool_overlay(tray_extended) + return surgical_tray_overlay + /obj/item/circular_saw/augment desc = "A small but very fast spinning saw. It rips and tears until it is done." w_class = WEIGHT_CLASS_SMALL @@ -330,6 +363,7 @@ desc = "An advanced scalpel which uses laser technology to cut." icon_state = "e_scalpel" inhand_icon_state = "e_scalpel" + surgical_tray_overlay = "scalpel_advanced" lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT*3, /datum/material/glass =HALF_SHEET_MATERIAL_AMOUNT * 1.5, /datum/material/silver =SHEET_MATERIAL_AMOUNT, /datum/material/gold =HALF_SHEET_MATERIAL_AMOUNT * 1.5, /datum/material/diamond =SMALL_MATERIAL_AMOUNT * 2, /datum/material/titanium = SHEET_MATERIAL_AMOUNT*2) @@ -342,6 +376,9 @@ light_color = LIGHT_COLOR_BLUE sharpness = SHARP_EDGED +/obj/item/scalpel/advanced/get_all_tool_behaviours() + return list(TOOL_SAW, TOOL_SCALPEL) + /obj/item/scalpel/advanced/Initialize(mapload) . = ..() AddComponent( \ @@ -386,11 +423,15 @@ custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT*6, /datum/material/glass = SHEET_MATERIAL_AMOUNT*2, /datum/material/silver = SHEET_MATERIAL_AMOUNT*2, /datum/material/titanium =SHEET_MATERIAL_AMOUNT * 2.5) icon_state = "adv_retractor" inhand_icon_state = "adv_retractor" + surgical_tray_overlay = "retractor_advanced" lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' w_class = WEIGHT_CLASS_NORMAL toolspeed = 0.7 +/obj/item/retractor/advanced/get_all_tool_behaviours() + return list(TOOL_HEMOSTAT, TOOL_RETRACTOR) + /obj/item/retractor/advanced/Initialize(mapload) . = ..() AddComponent( \ @@ -516,6 +557,9 @@ tool_behaviour = TOOL_BONESET toolspeed = 1 +/obj/item/bonesetter/get_surgery_tool_overlay(tray_extended) + return "bonesetter" + (tray_extended ? "" : "_out") + /obj/item/blood_filter name = "blood filter" desc = "For filtering the blood." @@ -533,6 +577,9 @@ /// Assoc list of chem ids to names, used for deciding which chems to filter when used for surgery var/list/whitelist = list() +/obj/item/blood_filter/get_surgery_tool_overlay(tray_extended) + return "filter" + /obj/item/blood_filter/ui_interact(mob/user, datum/tgui/ui) ui = SStgui.try_update_ui(user, src, ui) if(!ui) diff --git a/code/modules/tgui/tgui.dm b/code/modules/tgui/tgui.dm index 9e185d8f5368..d442cd16c9c0 100644 --- a/code/modules/tgui/tgui.dm +++ b/code/modules/tgui/tgui.dm @@ -82,7 +82,7 @@ * return bool - TRUE if a new pooled window is opened, FALSE in all other situations including if a new pooled window didn't open because one already exists. */ /datum/tgui/proc/open() - if(!user.client) + if(!user?.client) return FALSE if(window) return FALSE @@ -202,7 +202,7 @@ * optional force bool Send an update even if UI is not interactive. */ /datum/tgui/proc/send_full_update(custom_data, force) - if(!user.client || !initialized || closing) + if(!user?.client || !initialized || closing) return if(!COOLDOWN_FINISHED(src, refresh_cooldown)) refreshing = TRUE @@ -225,7 +225,7 @@ * optional force bool Send an update even if UI is not interactive. */ /datum/tgui/proc/send_update(custom_data, force) - if(!user.client || !initialized || closing) + if(!user?.client || !initialized || closing) return var/should_update_data = force || status >= UI_UPDATE window.send_message("update", get_payload( diff --git a/code/modules/unit_tests/_unit_tests.dm b/code/modules/unit_tests/_unit_tests.dm index ae5669d104f1..80895a0dfd56 100644 --- a/code/modules/unit_tests/_unit_tests.dm +++ b/code/modules/unit_tests/_unit_tests.dm @@ -81,7 +81,6 @@ #include "anchored_mobs.dm" #include "anonymous_themes.dm" #include "antag_moodlets.dm" -#include "antag_special_roles.dm" #include "area_contents.dm" #include "armor_verification.dm" #include "autowiki.dm" diff --git a/code/modules/unit_tests/antag_special_roles.dm b/code/modules/unit_tests/antag_special_roles.dm deleted file mode 100644 index 7f2b1b2d5fc5..000000000000 --- a/code/modules/unit_tests/antag_special_roles.dm +++ /dev/null @@ -1,13 +0,0 @@ -/// Verifies that all antag special roles are in GLOB.special_roles -/datum/unit_test/antag_special_roles - -/datum/unit_test/antag_special_roles/Run() - for(var/datum/antagonist/antag as anything in subtypesof(/datum/antagonist)) - // Ignore antags that don't have preview outfits, as they likely aren't preferences. - if(!ispath(antag::preview_outfit)) - continue - // For obvious reasons, skip over unset roles. - var/role = antag::job_rank - if(!istext(role)) - continue - TEST_ASSERT(!isnull(GLOB.special_roles[role]), "Antagonist role [role] (used by [antag]) was not present in GLOB.special_roles!") diff --git a/code/modules/unit_tests/screenshots/screenshot_antag_icons_opforcandidate.png b/code/modules/unit_tests/screenshots/screenshot_antag_icons_opforcandidate.png new file mode 100644 index 000000000000..14aa12ff2e19 Binary files /dev/null and b/code/modules/unit_tests/screenshots/screenshot_antag_icons_opforcandidate.png differ diff --git a/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_lizard.png b/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_lizard.png index 57af1ed0121e..5d391bc88a98 100644 Binary files a/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_lizard.png and b/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_lizard.png differ diff --git a/code/modules/wiremod/shell/module.dm b/code/modules/wiremod/shell/module.dm index 5c269e8c7e8d..bffff02e5fbc 100644 --- a/code/modules/wiremod/shell/module.dm +++ b/code/modules/wiremod/shell/module.dm @@ -2,7 +2,7 @@ name = "MOD circuit adapter module" desc = "A module shell that allows a circuit to be inserted into, and interface with, a MODsuit." module_type = MODULE_USABLE - complexity = 3 + complexity = 1 idle_power_cost = DEFAULT_CHARGE_DRAIN * 0.5 incompatible_modules = list(/obj/item/mod/module/circuit) cooldown_time = 0.5 SECONDS diff --git a/config/maps.txt b/config/maps.txt index 2a42a84bcde3..a8e7d6d4273b 100644 --- a/config/maps.txt +++ b/config/maps.txt @@ -54,3 +54,8 @@ map boxstation minplayers 25 votable endmap + +map blueshift + minplayers 75 + votable +endmap diff --git a/html/changelogs/AutoChangeLog-pr-1587.yml b/html/changelogs/AutoChangeLog-pr-1587.yml deleted file mode 100644 index 5db35f39b8b5..000000000000 --- a/html/changelogs/AutoChangeLog-pr-1587.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "Uristthedorf" -delete-after: True -changes: - - rscadd: "Adds cybernetic brains for androids." - - rscadd: "Adds robotic flavor for androids." - - image: "Adds cybernetic brain sprite." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1719.yml b/html/changelogs/AutoChangeLog-pr-1719.yml deleted file mode 100644 index 4de91b7443e2..000000000000 --- a/html/changelogs/AutoChangeLog-pr-1719.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "MomoBerri" -delete-after: True -changes: - - qol: "Removed vague elite lavaland mob text." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1794.yml b/html/changelogs/AutoChangeLog-pr-1794.yml deleted file mode 100644 index dd6e6f1fb107..000000000000 --- a/html/changelogs/AutoChangeLog-pr-1794.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Uristthedorf" -delete-after: True -changes: - - bugfix: "Mounted Chainsaw arm is now treated like it's robotic." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-1881.yml b/html/changelogs/AutoChangeLog-pr-1881.yml deleted file mode 100644 index 06798659b4ae..000000000000 --- a/html/changelogs/AutoChangeLog-pr-1881.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "TTNT789" -delete-after: True -changes: - - balance: "added a surplus discount for borers" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-2038.yml b/html/changelogs/AutoChangeLog-pr-2038.yml deleted file mode 100644 index 0d380f0e95ba..000000000000 --- a/html/changelogs/AutoChangeLog-pr-2038.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Absolucy, LemonInTheDark" -delete-after: True -changes: - - balance: "Tcomms now works across connected (vertically) zlevels. No more hunting in maint for the relay." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-2093.yml b/html/changelogs/AutoChangeLog-pr-2093.yml deleted file mode 100644 index d376511fdba8..000000000000 --- a/html/changelogs/AutoChangeLog-pr-2093.yml +++ /dev/null @@ -1,7 +0,0 @@ -author: "MrMelbert, NikoTheDude, Ported by Hardly" -delete-after: True -changes: - - rscadd: "Added examine text, describe your character in ways that a 32x32 sprite can't!" - - rscadd: "Added temporary examine text alongside an indicator" - - rscadd: "Added character records text" - - admin: "Admins can see all flavor texts of a character" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-2164.yml b/html/changelogs/AutoChangeLog-pr-2164.yml deleted file mode 100644 index 0e2271bc40cf..000000000000 --- a/html/changelogs/AutoChangeLog-pr-2164.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Absolucy" -delete-after: True -changes: - - qol: "The memories for the Smoker quirk now actually mention the preferred brand." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-2174.yml b/html/changelogs/AutoChangeLog-pr-2174.yml deleted file mode 100644 index d73b3d1a6902..000000000000 --- a/html/changelogs/AutoChangeLog-pr-2174.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "TTNT789" -delete-after: True -changes: - - rscadd: "3 new cane swords all currently admin spawn only" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-2282.yml b/html/changelogs/AutoChangeLog-pr-2282.yml deleted file mode 100644 index e58122055ee5..000000000000 --- a/html/changelogs/AutoChangeLog-pr-2282.yml +++ /dev/null @@ -1,8 +0,0 @@ -author: "Absolucy" -delete-after: True -changes: - - refactor: "Refactored how meteor shields detect meteors to blow up." - - bugfix: "Meteor shields are no longer rendered useless by lag." - - bugfix: "Meteor shields now properly affect meteor event weights for the storyteller in addition to the normal event subsystem." - - qol: "Meteor shields can now be shrunk down into tiny capsules, and deployed from said capsules." - - balance: "The meteor shield crate now contains 5 shield sat capsules." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-2345.yml b/html/changelogs/AutoChangeLog-pr-2345.yml deleted file mode 100644 index e842e64805c3..000000000000 --- a/html/changelogs/AutoChangeLog-pr-2345.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Absolucy" -delete-after: True -changes: - - qol: "Roles such as brainwashed, abductee, etc no longer disqualify you from midround antag." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-851.yml b/html/changelogs/AutoChangeLog-pr-851.yml deleted file mode 100644 index 0b9394efa664..000000000000 --- a/html/changelogs/AutoChangeLog-pr-851.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "The-Black-Screen" -delete-after: True -changes: - - rscadd: "added `secure.dm` to `monkestation/code/game/objects/structures/crate_lockers/crates`, added `security.dm` to `monkestation/code/game/objects/structures/crate_lockers/closets/secure`" - - code_imp: "added onto `security.dm` in `monkestation/code/modules/cargo/crates`" \ No newline at end of file diff --git a/html/changelogs/archive/2024-06.yml b/html/changelogs/archive/2024-06.yml index 354c060c9a14..6b2a2daa1718 100644 --- a/html/changelogs/archive/2024-06.yml +++ b/html/changelogs/archive/2024-06.yml @@ -381,3 +381,160 @@ - balance: The PTL can now output up to quettawatts of power. - balance: The PTL can now generate up to 5,000,000 credits per tick at max. - balance: Adjusted the PTL money generation curve. +2024-06-22: + Absolucy: + - qol: Roles such as brainwashed, abductee, etc no longer disqualify you from midround + antag. + - qol: The memories for the Smoker quirk now actually mention the preferred brand. + - refactor: Refactored how meteor shields detect meteors to blow up. + - bugfix: Meteor shields are no longer rendered useless by lag. + - bugfix: Meteor shields now properly affect meteor event weights for the storyteller + in addition to the normal event subsystem. + - qol: Meteor shields can now be shrunk down into tiny capsules, and deployed from + said capsules. + - balance: The meteor shield crate now contains 5 shield sat capsules. + Absolucy, LemonInTheDark: + - balance: Tcomms now works across connected (vertically) zlevels. No more hunting + in maint for the relay. + MomoBerri: + - qol: Removed vague elite lavaland mob text. + MrMelbert, NikoTheDude, Ported by Hardly: + - rscadd: Added examine text, describe your character in ways that a 32x32 sprite + can't! + - rscadd: Added temporary examine text alongside an indicator + - rscadd: Added character records text + - admin: Admins can see all flavor texts of a character + TTNT789: + - balance: added a surplus discount for borers + - rscadd: 3 new cane swords all currently admin spawn only + The-Black-Screen: + - rscadd: added `secure.dm` to `monkestation/code/game/objects/structures/crate_lockers/crates`, + added `security.dm` to `monkestation/code/game/objects/structures/crate_lockers/closets/secure` + - code_imp: added onto `security.dm` in `monkestation/code/modules/cargo/crates` + Uristthedorf: + - rscadd: Adds cybernetic brains for androids. + - rscadd: Adds robotic flavor for androids. + - image: Adds cybernetic brain sprite. + - bugfix: Mounted Chainsaw arm is now treated like it's robotic. +2024-06-23: + RikuTheKiller: + - bugfix: Satchels can now be crafted out of cloth. + - bugfix: The secass description now reads "a" instead of "an", happy now? + ThePooba: + - bugfix: Fixed the button not appearing for thermoregulator on hardsuit + - bugfix: Energy cost for Hardsuits thermoregulator (it would run out in minutes) + - bugfix: Borers and Alien Larva can now hide on Multiple Z levels instead of just + one +2024-06-24: + Absolucy: + - qol: Mechcomp teleporters now work across different floors on multi-z maps such + as Icebox or Tram. + Tractor Mann: + - rscadd: You can emag jukeboxes! you always could, but now it enables Hacked songs! +2024-06-25: + Absolucy: + - bugfix: Eigenstasium no longer cares about purity, a mechanic which we do not + even use. + - bugfix: Fixed some assorted runtime errors. + - bugfix: Fixed some overlay sprite issues with the disease splicer. + - bugfix: Fixed curing diseases via aheals or such actually WORK. + - refactor: Made `pick_weight` more robust and performant. + - balance: '(carlarctg) Reduced the complexity cost of a lot of MODules: Pathfinder + 2 -> 1, Tether 3 -> 2, Temperature Regulator 2 -> 1, DNA lock 2 -> 1, Health + analyzer 2 -> 1, Sonar 2 -> 1, Microwave beam 2 -> 1, Drill 2 -> 1, All visors + (including NV and thermals) 2 -> 1, Circuit Adapter 2 -> 1' + - balance: (carlarctg) The Mining MODsuit has had its complexity increased to 13 + and now starts with the eating apparatus module, with a total base complexity + of 10/13 now. + - balance: (carlarctg) The Prototype MODsuit's active slowdown has been decreased + from 1.5 (!) to 1. + - spellcheck: (carlarctg) Fixed a type on the energy net module. + - rscadd: (Hatterhat) A really old data disk with the MOD module designs for the + status readout was recovered, and has been haphazardly hotpatched into the research + networks. + - rscadd: (Hatterhat) Also, the status readout module now plays a sound on death. + - qol: (Hatterhat) The MODsuit health analyzer's info tab health readout can now + be disabled in its settings. + - rscadd: (Melbert) The Atrocinator will now flip you even more. + - qol: (StaringGasMask) Now plasmamen can use the infiltrator MODsuit without having + their species revealed. The helmet's still not sealed, so remember your mask. + - qol: (Hatterhat) When a MOD fails to store something in itself when retracting, + you're now notified in both the chat and by a balloon alert. + - qol: (Momo8289) You can now use any hat with the hat stabilizer MOD. + - bugfix: (Momo8289) The MOD eating apparatus module now properly disables pepper + spray protection. + Absolucy, Melbert: + - balance: The alcohol tolerance quirk now prevents alcohol from killing you (on + its own). Now your character can be an alcoholic trainwreck without dying from + liver failure just for being yourself! You'll still be, well, a drunken wreck, + tho. + - rscadd: When you are drunk, the strength of your slurring now varies based on + how drunk you are. Being "a little drunk" only rarely slurs your words, being + average drunk is the same as the old effect, while being very drunk now slurs + your words even more. + - rscadd: Some non-alcohol sources of slurring, such as concussions, now give "generic + slurring" rather than "drunk slurring", which less resemble being drunk (ie, + no burping). + - rscadd: Mind restoration now heals ALL slurring, rather than only drunk slurring + (which includes cult / heretic slurring). + AlbertNanotracen: + - admin: Added an spawn mixtape verb to the admin tab. + - qol: Chemmaster UI tweaked + - qol: Chemical Press UI tweaked + - bugfix: Fixed chem master showing wrong data during reagent analysis + - bugfix: Fixed chem master not working with fermented drinks + - image: Chemmaster resprited, now has an indicator for buffer reagents + - refactor: Refactored chemmaster code, it now uses reagent containers instead of + styles + - balance: Chemmaster has printing animation of 0.75 second duration. Outputs 1 + container or up to 2 pills/patches per cycle by default. Can be upgraded to + output up to 4 and 8 with t4 manipulators. + - image: Resprited many condiment containers + - image: Added a sprite for cooking oil / corn oil container + - image: Replaced old condiment bottles with the newer bottles in Condi Master + - rscadd: Added test tubes and racks for them + - balance: All 30u bottles now have 50u volume and chem master/factory output/chemical + press/pandemic spawn tubes instead of bottles + - bugfix: fixed the advanced watering can + Glyphee: + - balance: removed freerunning from goblins by default + - balance: 'raised stunmod + + :cl:' + HimKobold: + - rscadd: Added the ability for hair dye spray to fully change your hair color by + selecting "None" in the "Choose Gradient" popup list. + - bugfix: '#2062 + + \:cl:' + JackEnoff, KnigTheThrasher: + - balance: Certain changeling abilities won't work while on fire. + - balance: Changeling stuff will burn down when lit on fire (can be regenerated + when you aren't burning) + KnigTheThrasher: + - rscadd: security gets spammed each time a bitrunner finishes their job because + they forget to take crates from perma + - rscdel: Deleted few doors in delta transfer area for easier access to the escape + pod + - rscdel: Deleted that oil stain under boxstation bit den door + - bugfix: fixed missing pipes in delta visitation area + - bugfix: fixed a backwards bench in delta perma + MrMelbert, KnigTheThrasher: + - rscadd: Lizards can customize their lisp + - code_imp: Added a modular file for species features +2024-06-26: + Absolucy: + - rscadd: Holomaps now show meteor defense coverage, visualized by a blue grid. + - sound: Meteor defense zap sounds should be able to be heard from further away + now. + - balance: Meteor defense sats can now always be ordered from cargo, regardless + of station goal. + - balance: Meteor defense sats now cover upwards and downwards too, making them + less of a pain on multi-Z stations. + - refactor: Tracking which tiles are covered by meteor defense sats is now much + more intuitive and efficient. + - qol: Meteors now drop debris when zapped by meteor defense sats. + - qol: Examining meteor defense sats now also shows how many meteors have been zapped + overall by all sats. + - balance: Slightly boosted the range of meteor defense satellite from 14 to 16 + tiles. diff --git a/icons/effects/mapping_helpers.dmi b/icons/effects/mapping_helpers.dmi index 3e7726842a24..a5455b5dbc7e 100644 Binary files a/icons/effects/mapping_helpers.dmi and b/icons/effects/mapping_helpers.dmi differ diff --git a/icons/effects/random_spawners.dmi b/icons/effects/random_spawners.dmi index 0e2dad78d744..9b65176e5584 100644 Binary files a/icons/effects/random_spawners.dmi and b/icons/effects/random_spawners.dmi differ diff --git a/icons/mob/inhands/equipment/medical_lefthand.dmi b/icons/mob/inhands/equipment/medical_lefthand.dmi index 99a9adaa2420..15097cb5b96f 100644 Binary files a/icons/mob/inhands/equipment/medical_lefthand.dmi and b/icons/mob/inhands/equipment/medical_lefthand.dmi differ diff --git a/icons/mob/inhands/equipment/medical_righthand.dmi b/icons/mob/inhands/equipment/medical_righthand.dmi index 2c27f086b1e8..e8943a37e538 100644 Binary files a/icons/mob/inhands/equipment/medical_righthand.dmi and b/icons/mob/inhands/equipment/medical_righthand.dmi differ diff --git a/icons/obj/cosmetic.dmi b/icons/obj/cosmetic.dmi index c5bd95f6c69b..8cb1e38ad88e 100644 Binary files a/icons/obj/cosmetic.dmi and b/icons/obj/cosmetic.dmi differ diff --git a/icons/obj/devices/remote.dmi b/icons/obj/devices/remote.dmi new file mode 100644 index 000000000000..e6a008bb6230 Binary files /dev/null and b/icons/obj/devices/remote.dmi differ diff --git a/icons/obj/digital_clock.dmi b/icons/obj/digital_clock.dmi new file mode 100644 index 000000000000..9ab096bf5935 Binary files /dev/null and b/icons/obj/digital_clock.dmi differ diff --git a/icons/obj/food/containers.dmi b/icons/obj/food/containers.dmi index 949c589225f0..aea93b956fc3 100644 Binary files a/icons/obj/food/containers.dmi and b/icons/obj/food/containers.dmi differ diff --git a/icons/obj/machines/incident_display.dmi b/icons/obj/machines/incident_display.dmi new file mode 100644 index 000000000000..80d63134f1d0 Binary files /dev/null and b/icons/obj/machines/incident_display.dmi differ diff --git a/icons/obj/machines/photobooth.dmi b/icons/obj/machines/photobooth.dmi new file mode 100644 index 000000000000..c4e812bdf47f Binary files /dev/null and b/icons/obj/machines/photobooth.dmi differ diff --git a/icons/obj/medical/chemical.dmi b/icons/obj/medical/chemical.dmi index d8aed182b645..75625c206eb1 100644 Binary files a/icons/obj/medical/chemical.dmi and b/icons/obj/medical/chemical.dmi differ diff --git a/icons/obj/medicart.dmi b/icons/obj/medicart.dmi new file mode 100644 index 000000000000..c25ea0039dc4 Binary files /dev/null and b/icons/obj/medicart.dmi differ diff --git a/icons/obj/reagentfillings.dmi b/icons/obj/reagentfillings.dmi index 4413c505b3df..d4e97ebaa48e 100644 Binary files a/icons/obj/reagentfillings.dmi and b/icons/obj/reagentfillings.dmi differ diff --git a/icons/obj/signs.dmi b/icons/obj/signs.dmi index 9e7dac378eff..6d06c39e7c3e 100644 Binary files a/icons/obj/signs.dmi and b/icons/obj/signs.dmi differ diff --git a/icons/obj/weapons/guns/ammo.dmi b/icons/obj/weapons/guns/ammo.dmi index 94a006215bfa..f575c90ce33e 100644 Binary files a/icons/obj/weapons/guns/ammo.dmi and b/icons/obj/weapons/guns/ammo.dmi differ diff --git a/icons/ui_icons/condiments/bbqsauce.png b/icons/ui_icons/condiments/bbqsauce.png index 3ec5868b4cfd..c934c2d60ed0 100644 Binary files a/icons/ui_icons/condiments/bbqsauce.png and b/icons/ui_icons/condiments/bbqsauce.png differ diff --git a/icons/ui_icons/condiments/bottle.png b/icons/ui_icons/condiments/bottle.png new file mode 100644 index 000000000000..1a73419e727b Binary files /dev/null and b/icons/ui_icons/condiments/bottle.png differ diff --git a/icons/ui_icons/condiments/cherryjelly.png b/icons/ui_icons/condiments/cherryjelly.png index 3940c4e1cab0..96ea15cb3030 100644 Binary files a/icons/ui_icons/condiments/cherryjelly.png and b/icons/ui_icons/condiments/cherryjelly.png differ diff --git a/icons/ui_icons/condiments/coldsauce.png b/icons/ui_icons/condiments/coldsauce.png index a204ce150fa1..1ba6af6847b5 100644 Binary files a/icons/ui_icons/condiments/coldsauce.png and b/icons/ui_icons/condiments/coldsauce.png differ diff --git a/icons/ui_icons/condiments/cookingoil.png b/icons/ui_icons/condiments/cookingoil.png new file mode 100644 index 000000000000..dc8a192e4017 Binary files /dev/null and b/icons/ui_icons/condiments/cookingoil.png differ diff --git a/icons/ui_icons/condiments/emptycondiment.png b/icons/ui_icons/condiments/emptycondiment.png deleted file mode 100644 index c34f29087364..000000000000 Binary files a/icons/ui_icons/condiments/emptycondiment.png and /dev/null differ diff --git a/icons/ui_icons/condiments/enzyme.png b/icons/ui_icons/condiments/enzyme.png index 2d20c564eeb0..a72a83a5c6cc 100644 Binary files a/icons/ui_icons/condiments/enzyme.png and b/icons/ui_icons/condiments/enzyme.png differ diff --git a/icons/ui_icons/condiments/flour.png b/icons/ui_icons/condiments/flour.png index 3b8447bf5e73..bcbb22db3fc2 100644 Binary files a/icons/ui_icons/condiments/flour.png and b/icons/ui_icons/condiments/flour.png differ diff --git a/icons/ui_icons/condiments/honey.png b/icons/ui_icons/condiments/honey.png new file mode 100644 index 000000000000..7cf510d6f5b0 Binary files /dev/null and b/icons/ui_icons/condiments/honey.png differ diff --git a/icons/ui_icons/condiments/hotsauce.png b/icons/ui_icons/condiments/hotsauce.png index e217226570aa..c243da054aaa 100644 Binary files a/icons/ui_icons/condiments/hotsauce.png and b/icons/ui_icons/condiments/hotsauce.png differ diff --git a/icons/ui_icons/condiments/ketchup.png b/icons/ui_icons/condiments/ketchup.png index c9b8516ff8f7..4896289ec23c 100644 Binary files a/icons/ui_icons/condiments/ketchup.png and b/icons/ui_icons/condiments/ketchup.png differ diff --git a/icons/ui_icons/condiments/mayonnaise.png b/icons/ui_icons/condiments/mayonnaise.png index d9b44ee2c30d..0d6301b8935a 100644 Binary files a/icons/ui_icons/condiments/mayonnaise.png and b/icons/ui_icons/condiments/mayonnaise.png differ diff --git a/icons/ui_icons/condiments/milk.png b/icons/ui_icons/condiments/milk.png index b2d0bf97db89..e0c4cf03cc8d 100644 Binary files a/icons/ui_icons/condiments/milk.png and b/icons/ui_icons/condiments/milk.png differ diff --git a/icons/ui_icons/condiments/oliveoil.png b/icons/ui_icons/condiments/oliveoil.png index 647608a7caff..ee1bea5bf9bf 100644 Binary files a/icons/ui_icons/condiments/oliveoil.png and b/icons/ui_icons/condiments/oliveoil.png differ diff --git a/icons/ui_icons/condiments/peanutbutter.png b/icons/ui_icons/condiments/peanutbutter.png index dd751efaa3e9..a9d048d5e9ac 100644 Binary files a/icons/ui_icons/condiments/peanutbutter.png and b/icons/ui_icons/condiments/peanutbutter.png differ diff --git a/icons/ui_icons/condiments/peppermillsmall.png b/icons/ui_icons/condiments/peppermillsmall.png index 2473641a05c0..8cd77e2ceeb8 100644 Binary files a/icons/ui_icons/condiments/peppermillsmall.png and b/icons/ui_icons/condiments/peppermillsmall.png differ diff --git a/icons/ui_icons/condiments/rice.png b/icons/ui_icons/condiments/rice.png index 62ea6b7f3a78..b49fb8429793 100644 Binary files a/icons/ui_icons/condiments/rice.png and b/icons/ui_icons/condiments/rice.png differ diff --git a/icons/ui_icons/condiments/saltshakersmall.png b/icons/ui_icons/condiments/saltshakersmall.png index d21e322239c9..70b17e2cb556 100644 Binary files a/icons/ui_icons/condiments/saltshakersmall.png and b/icons/ui_icons/condiments/saltshakersmall.png differ diff --git a/icons/ui_icons/condiments/soymilk.png b/icons/ui_icons/condiments/soymilk.png index ecca184908d4..1117e532fce8 100644 Binary files a/icons/ui_icons/condiments/soymilk.png and b/icons/ui_icons/condiments/soymilk.png differ diff --git a/icons/ui_icons/condiments/soysauce.png b/icons/ui_icons/condiments/soysauce.png index 92b129447a2f..aafb139f3231 100644 Binary files a/icons/ui_icons/condiments/soysauce.png and b/icons/ui_icons/condiments/soysauce.png differ diff --git a/icons/ui_icons/condiments/sugar.png b/icons/ui_icons/condiments/sugar.png index d21788dc342c..3cb1264ed35f 100644 Binary files a/icons/ui_icons/condiments/sugar.png and b/icons/ui_icons/condiments/sugar.png differ diff --git a/interface/stylesheet.dm b/interface/stylesheet.dm index 6b1a5788e639..a247d3ad9c83 100644 --- a/interface/stylesheet.dm +++ b/interface/stylesheet.dm @@ -172,6 +172,8 @@ h1.alert, h2.alert {color: #000000;} .swarmer {color: #2C75FF;} .resonate {color: #298F85;} +.upside_down {display: inline; -moz-transform: scale(-1, -1); -webkit-transform: scale(-1, -1); -o-transform: scale(-1, -1); -ms-transform: scale(-1, -1); transform: scale(-1, -1);} + //MONKESTATION ADDITION START .brass { color: #BE8700; diff --git a/monkestation/code/datums/records/record.dm b/monkestation/code/datums/records/record.dm index 8322eaaa6d0d..42d3f4d2a164 100644 --- a/monkestation/code/datums/records/record.dm +++ b/monkestation/code/datums/records/record.dm @@ -87,6 +87,8 @@ var/security_note /// Current arrest status var/wanted_status = WANTED_NONE + ///Photo used for records, which we store here so we don't have to constantly make more of. + var/list/obj/item/photo/record_photos /datum/record/crew/New( age = 18, @@ -125,6 +127,7 @@ /datum/record/crew/Destroy() GLOB.manifest.general -= src + QDEL_LAZYLIST(record_photos) return ..() /** @@ -172,6 +175,21 @@ /datum/record/crew/proc/get_side_photo() return get_photo("photo_side", WEST) +/// A helper proc to recreate all photos of a character from the record. +/datum/record/crew/proc/recreate_manifest_photos(add_height_chart) + delete_photos("photo_front") + make_photo("photo_front", SOUTH, add_height_chart) + delete_photos("photo_side") + make_photo("photo_side", WEST, add_height_chart) + +///Deletes the existing photo for field_name +/datum/record/crew/proc/delete_photos(field_name) + var/obj/item/photo/existing_photo = LAZYACCESS(record_photos, field_name) + if(existing_photo) + qdel(existing_photo) + LAZYREMOVE(record_photos, field_name) + + /** * You shouldn't be calling this directly, use `get_front_photo()` or `get_side_photo()` * instead. @@ -190,17 +208,30 @@ * Returns an empty `/icon` if there was no `character_appearance` entry in the `fields` list, * returns the generated/cached photo otherwise. */ -/datum/record/crew/proc/get_photo(field_name, orientation) +/datum/record/crew/proc/get_photo(field_name, orientation = SOUTH) if(!field_name) return if(!character_appearance) return new /icon() + var/obj/item/photo/existing_photo = LAZYACCESS(record_photos, field_name) + if(!existing_photo) + existing_photo = make_photo(field_name, orientation) + return existing_photo +/** + * make_photo + * + * Called if the person doesn't already have a photo, this will make a photo of the person, + * then make a picture out of it, then finally create a new photo. + */ +/datum/record/crew/proc/make_photo(field_name, orientation, add_height_chart) var/icon/picture_image if(!isicon(character_appearance)) var/mutable_appearance/appearance = character_appearance appearance.setDir(orientation) + if(add_height_chart) + appearance.underlays += mutable_appearance('icons/obj/machines/photobooth.dmi', "height_chart", alpha = 125, appearance_flags = RESET_ALPHA|RESET_COLOR|RESET_TRANSFORM) picture_image = getFlatIcon(appearance) else @@ -211,9 +242,10 @@ picture.picture_desc = "This is [name]." picture.picture_image = picture_image - var/obj/item/photo/photo = new(null, picture) - field_name = photo - return photo + var/obj/item/photo/new_photo = new(null, picture) + + LAZYSET(record_photos, field_name, new_photo) + return new_photo /// Returns a paper printout of the current record's crime data. /datum/record/crew/proc/get_rapsheet(alias, header = "Rapsheet", description = "No further details.") diff --git a/monkestation/code/game/objects/items/guns/SRN.dm b/monkestation/code/game/objects/items/guns/SRN.dm index 63e66f9cf9f4..04eb37ce000b 100644 --- a/monkestation/code/game/objects/items/guns/SRN.dm +++ b/monkestation/code/game/objects/items/guns/SRN.dm @@ -6,7 +6,7 @@ inhand_icon_state = "srnlauncher" lefthand_file = 'monkestation/icons/mob/inhands/weapons/guns_lefthand.dmi' righthand_file = 'monkestation/icons/mob/inhands/weapons/guns_righthand.dmi' - mag_type = /obj/item/ammo_box/magazine/internal/SRN_rocket + accepted_magazine_type = /obj/item/ammo_box/magazine/internal/SRN_rocket fire_sound = 'sound/weapons/gun/general/rocket_launch.ogg' bolt_type = BOLT_TYPE_NO_BOLT fire_sound_volume = 80 diff --git a/monkestation/code/game/objects/items/guns/shotguns.dm b/monkestation/code/game/objects/items/guns/shotguns.dm index de0e1d03bf48..da66020f8481 100644 --- a/monkestation/code/game/objects/items/guns/shotguns.dm +++ b/monkestation/code/game/objects/items/guns/shotguns.dm @@ -9,7 +9,7 @@ righthand_file = 'icons/mob/inhands/weapons/64x_guns_right.dmi' w_class = WEIGHT_CLASS_BULKY force = 15 //blunt edge and really heavy - mag_type = /obj/item/ammo_box/magazine/internal/shot/six + accepted_magazine_type = /obj/item/ammo_box/magazine/internal/shot/six burst_size = 6 pb_knockback = 12 unique_reskin = null @@ -43,7 +43,7 @@ fire_sound_volume = 100 knockback_distance = 100 death = 100 - mag_type = /obj/item/ammo_box/magazine/internal/shot/hundred + accepted_magazine_type = /obj/item/ammo_box/magazine/internal/shot/hundred /obj/item/ammo_box/magazine/internal/shot/six diff --git a/monkestation/code/modules/admin/verbs/spawn_mixtape.dm b/monkestation/code/modules/admin/verbs/spawn_mixtape.dm new file mode 100644 index 000000000000..bffca51317a0 --- /dev/null +++ b/monkestation/code/modules/admin/verbs/spawn_mixtape.dm @@ -0,0 +1,57 @@ +/client/proc/spawn_mixtape() + set category = "Admin.Game" + set name = "Spawn Mixtape" + set desc = "Select an approved mixtape to spawn at your location." + + var/datum/mixtape_spawner/tgui = new(usr)//create the datum + tgui.ui_interact(usr)//datum has a tgui component, here we open the window + +/datum/mixtape_spawner + var/client/holder //client of whoever is using this datum + +/datum/mixtape_spawner/New(user)//user can either be a client or a mob due to byondcode(tm) + if (istype(user, /client)) + var/client/user_client = user + holder = user_client //if its a client, assign it to holder + else + var/mob/user_mob = user + holder = user_mob.client //if its a mob, assign the mob's client to holder + +/datum/mixtape_spawner/ui_state(mob/user) + return GLOB.admin_state + +/datum/mixtape_spawner/ui_close() + qdel(src) + +/datum/mixtape_spawner/ui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "MixtapeSpawner") + ui.open() + +/datum/mixtape_spawner/ui_data(mob/user) + var/list/data = list() + if(!length(SScassette_storage.cassette_datums)) + return + for(var/datum/cassette_data/cassette in SScassette_storage.cassette_datums) + data["approved_cassettes"] += list(list( + "name" = cassette.cassette_name, + "desc" = cassette.cassette_desc, + "cassette_design_front" = cassette.cassette_design_front, + "creator_ckey" = cassette.cassette_author_ckey, + "creator_name" = cassette.cassette_author, + "song_names" = cassette.song_names, + "id" = cassette.cassette_id + )) + return data + +/datum/mixtape_spawner/ui_act(action, params) + . = ..() + if(.) + return + switch(action) + if("spawn") + if (params["id"]) + new/obj/item/device/cassette_tape(usr.loc, params["id"]) + SSblackbox.record_feedback("tally", "admin_verb", 1, "Spawn Mixtape") + log_admin("[key_name(usr)] created mixtape [params["id"]] at [usr.loc].") diff --git a/monkestation/code/modules/aesthetics/airlock/airlock.dm b/monkestation/code/modules/aesthetics/airlock/airlock.dm index 6447edc0ab60..ef8df67e23e5 100644 --- a/monkestation/code/modules/aesthetics/airlock/airlock.dm +++ b/monkestation/code/modules/aesthetics/airlock/airlock.dm @@ -275,7 +275,7 @@ icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/security.dmi' /obj/machinery/door/airlock/security/old - icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/security2.dmi' + icon = 'monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/security.dmi' assemblytype = /obj/structure/door_assembly/door_assembly_sec/old /obj/machinery/door/airlock/security/old/glass diff --git a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/service.dmi b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/service.dmi index ad5f8da851bb..6a1f6d8cad96 100644 Binary files a/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/service.dmi and b/monkestation/code/modules/aesthetics/airlock/icons/airlocks/station/service.dmi differ diff --git a/monkestation/code/modules/aesthetics/objects/railing.dm b/monkestation/code/modules/aesthetics/objects/railing.dm index 9fc5af17deae..e908a749f3bd 100644 --- a/monkestation/code/modules/aesthetics/objects/railing.dm +++ b/monkestation/code/modules/aesthetics/objects/railing.dm @@ -7,12 +7,15 @@ material_flags = MATERIAL_EFFECTS | MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS var/neighbor_status = list() ///list of smoothing we need doing + var/standard_smoothing = TRUE /obj/structure/railing/wood custom_materials = list(/datum/material/wood = 100) /obj/structure/railing/Initialize(mapload) . = ..() + if(!standard_smoothing) + material_flags = NONE return INITIALIZE_HINT_LATELOAD /obj/structure/railing/LateInitialize() @@ -74,69 +77,65 @@ /obj/structure/railing/update_icon(update_neighbors = TRUE) . = ..() - check_neighbors(update_neighbors) - overlays.Cut() + if(standard_smoothing) + check_neighbors(update_neighbors) + overlays.Cut() - var/turf/turf = get_turf(src) - if(dir == SOUTH) - SET_PLANE(src, GAME_PLANE_FOV_HIDDEN, turf) - layer = ABOVE_MOB_LAYER + 0.01 + var/turf/turf = get_turf(src) + if(dir == SOUTH) + SET_PLANE(src, GAME_PLANE_FOV_HIDDEN, turf) + layer = ABOVE_MOB_LAYER + 0.01 - else if(dir != NORTH) - SET_PLANE(src, GAME_PLANE_FOV_HIDDEN, turf) - else - SET_PLANE(src, GAME_PLANE, turf) - layer = initial(layer) + else if(dir != NORTH) + SET_PLANE(src, GAME_PLANE_FOV_HIDDEN, turf) + else + SET_PLANE(src, GAME_PLANE, turf) + layer = initial(layer) - if(!neighbor_status || !anchored) - icon_state = "railing0-[density]" - else - icon_state = "railing1-[density]" + if(!neighbor_status || !anchored) + icon_state = "railing0-[density]" + else + icon_state = "railing1-[density]" - if(("corneroverlay_l" in neighbor_status) && ("corneroverlay_r" in neighbor_status)) - icon_state = "blank" + if(("corneroverlay_l" in neighbor_status) && ("corneroverlay_r" in neighbor_status)) + icon_state = "blank" - var/turf/right_turf = get_step(src, turn(src.dir, -90)) - var/turf/left_turf = get_step(src, turn(src.dir, 90)) + var/turf/right_turf = get_step(src, turn(src.dir, -90)) + var/turf/left_turf = get_step(src, turn(src.dir, 90)) - if((!locate(/obj/structure/railing) in right_turf.contents)) - if(!("mcorneroverlay_l" in neighbor_status)) - overlays += image(icon, "frontend_r[density]") - else - overlays += image(icon, "frontoverlay_r[density]") + if((!locate(/obj/structure/railing) in right_turf.contents)) + if(!("mcorneroverlay_l" in neighbor_status)) + overlays += image(icon, "frontend_r[density]") + else + overlays += image(icon, "frontoverlay_r[density]") - if((!locate(/obj/structure/railing) in left_turf.contents)) - if(!("mcorneroverlay_l" in neighbor_status)) - overlays += image(icon, "frontend_l[density]") - else - overlays += image(icon, "frontoverlay_l[density]") + if((!locate(/obj/structure/railing) in left_turf.contents)) + if(!("mcorneroverlay_l" in neighbor_status)) + overlays += image(icon, "frontend_l[density]") + else + overlays += image(icon, "frontoverlay_l[density]") - if("corneroverlay_l" in neighbor_status) - overlays += image(icon, "corneroverlay_l[density]") - if("corneroverlay_r" in neighbor_status) - overlays += image(icon, "corneroverlay_r[density]") - if("frontoverlay_l" in neighbor_status) - overlays += image(icon, "frontoverlay_l[density]") - if("frontoverlay_r" in neighbor_status) - overlays += image(icon, "frontoverlay_r[density]") - if("mcorneroverlay_l" in neighbor_status) - var/pix_offset_x = 0 - var/pix_offset_y = 0 - switch(dir) - if(NORTH) - pix_offset_x = 32 - if(SOUTH) - pix_offset_x = -32 - if(EAST) - pix_offset_y = -32 - if(WEST) - pix_offset_y = 32 - overlays += image(icon, "mcorneroverlay_l[density]", pixel_x = pix_offset_x, pixel_y = pix_offset_y) - -/obj/structure/railing/wrestling - name = "boxing ring" - icon = 'monkestation/code/modules/aesthetics/icons/railing_wrestling.dmi' - material_flags = null + if("corneroverlay_l" in neighbor_status) + overlays += image(icon, "corneroverlay_l[density]") + if("corneroverlay_r" in neighbor_status) + overlays += image(icon, "corneroverlay_r[density]") + if("frontoverlay_l" in neighbor_status) + overlays += image(icon, "frontoverlay_l[density]") + if("frontoverlay_r" in neighbor_status) + overlays += image(icon, "frontoverlay_r[density]") + if("mcorneroverlay_l" in neighbor_status) + var/pix_offset_x = 0 + var/pix_offset_y = 0 + switch(dir) + if(NORTH) + pix_offset_x = 32 + if(SOUTH) + pix_offset_x = -32 + if(EAST) + pix_offset_y = -32 + if(WEST) + pix_offset_y = 32 + overlays += image(icon, "mcorneroverlay_l[density]", pixel_x = pix_offset_x, pixel_y = pix_offset_y) diff --git a/monkestation/code/modules/antagonists/borers/code/abilities/toggle_stealth.dm b/monkestation/code/modules/antagonists/borers/code/abilities/toggle_stealth.dm index 3810ee6bbb7d..3b537d01f036 100644 --- a/monkestation/code/modules/antagonists/borers/code/abilities/toggle_stealth.dm +++ b/monkestation/code/modules/antagonists/borers/code/abilities/toggle_stealth.dm @@ -1,30 +1,29 @@ /datum/action/cooldown/borer/toggle_hiding name = "Toggle Hiding" button_icon_state = "hide" - var/hide_layer = ABOVE_NORMAL_TURF_LAYER - var/hide_plane = WALL_PLANE + var/hidden = FALSE ability_explanation = "\ Turns your hiding abilities on/off\n\ Whilst on, you will hide under most objects, like tables.\n\ If you are a diveworm, you will bore into hosts twice as fast whilst not hidden\n\ " - // WALL_PLANE lets the borer hide under tables + // -2 plane to make the borer move into or out of the WALL_PLANE and its original plane irrespective of level offset /datum/action/cooldown/borer/toggle_hiding/Trigger(trigger_flags, atom/target) . = ..() if(!.) return FALSE var/mob/living/basic/cortical_borer/cortical_owner = owner - if(owner.layer != hide_layer) + if(hidden == FALSE) cortical_owner.upgrade_flags |= BORER_HIDING owner.balloon_alert(owner, "started hiding") - owner.layer = hide_layer - owner.plane = WALL_PLANE - + owner.plane -= 2 + hidden = TRUE ADD_TRAIT(owner, TRAIT_IGNORE_ELEVATION, ACTION_TRAIT) else cortical_owner.upgrade_flags &= ~BORER_HIDING owner.balloon_alert(owner, "stopped hiding") - owner.layer = BELOW_MOB_LAYER - owner.plane = initial(owner.plane) + owner.plane +=2 + hidden = FALSE REMOVE_TRAIT(owner, TRAIT_IGNORE_ELEVATION, ACTION_TRAIT) StartCooldown() + \ No newline at end of file diff --git a/monkestation/code/modules/antagonists/clock_cult/items/weaponry.dm b/monkestation/code/modules/antagonists/clock_cult/items/weaponry.dm index f72dd0ebf14f..7997a1ae6a4a 100644 --- a/monkestation/code/modules/antagonists/clock_cult/items/weaponry.dm +++ b/monkestation/code/modules/antagonists/clock_cult/items/weaponry.dm @@ -229,7 +229,7 @@ inhand_icon_state = "clockwork_bow" base_icon_state = "bow_clockwork" force = 10 - mag_type = /obj/item/ammo_box/magazine/internal/bow/clockwork + accepted_magazine_type = /obj/item/ammo_box/magazine/internal/bow/clockwork /// Time between bolt recharges var/recharge_time = 1.5 SECONDS /// Typecache of valid turfs to have the weapon's special effect on diff --git a/monkestation/code/modules/antagonists/traitor/objectives/final_objective/become_wizard.dm b/monkestation/code/modules/antagonists/traitor/objectives/final_objective/become_wizard.dm index 834e1e7fe5c7..60c5791e9412 100644 --- a/monkestation/code/modules/antagonists/traitor/objectives/final_objective/become_wizard.dm +++ b/monkestation/code/modules/antagonists/traitor/objectives/final_objective/become_wizard.dm @@ -1,3 +1,5 @@ +/* commented out for now until reworked + /datum/traitor_objective/ultimate/wizard name = "Go to %AREA% and invoke a rune of power." description = "Go to %AREA% and draw a rune of power with the provided impliment. Then, invoke the rune to gain great magical power." @@ -142,3 +144,5 @@ icon = 'monkestation/icons/effects/96x96.dmi' icon_state = "traitor_wizard_rune_draw" duration = 4 SECONDS + +*/ diff --git a/monkestation/code/modules/bloodsuckers/monster_hunters/weapons/hunter_revolver.dm b/monkestation/code/modules/bloodsuckers/monster_hunters/weapons/hunter_revolver.dm index 934062cf62df..4c6f29e5ec5e 100644 --- a/monkestation/code/modules/bloodsuckers/monster_hunters/weapons/hunter_revolver.dm +++ b/monkestation/code/modules/bloodsuckers/monster_hunters/weapons/hunter_revolver.dm @@ -3,7 +3,7 @@ desc = "Does minimal damage but slows down the enemy." icon_state = "revolver" icon = 'monkestation/icons/bloodsuckers/weapons.dmi' - mag_type = /obj/item/ammo_box/magazine/internal/cylinder/bloodsilver + accepted_magazine_type = /obj/item/ammo_box/magazine/internal/cylinder/bloodsilver initial_caliber = CALIBER_BLOODSILVER /datum/movespeed_modifier/silver_bullet diff --git a/monkestation/code/modules/blueshift/appliances/colony.dm b/monkestation/code/modules/blueshift/appliances/colony.dm new file mode 100644 index 000000000000..01f6b2ea07c7 --- /dev/null +++ b/monkestation/code/modules/blueshift/appliances/colony.dm @@ -0,0 +1,755 @@ +// Machine that makes water and nothing else + +/obj/machinery/plumbing/synthesizer/water_synth + name = "water synthesizer" + desc = "An infinitely useful device for those finding themselves in a frontier without a stable source of water. \ + Using a simplified version of the chemistry dispenser's synthesizer process, it can create water out of nothing \ + but good old electricity." + icon = 'monkestation/code/modules/blueshift/icons/chemistry_machines.dmi' + icon_state = "water_synth" + anchored = FALSE + /// Reagents that this can dispense, overrides the default list on init + var/static/list/synthesizable_reagents = list( + /datum/reagent/water, + ) + /// What this repacks into + var/repacked_type = /obj/item/flatpacked_machine/water_synth + +/obj/machinery/plumbing/synthesizer/water_synth/Initialize(mapload, bolt = FALSE, layer) + . = ..() + dispensable_reagents = synthesizable_reagents + AddElement(/datum/element/repackable, repacked_type, 2 SECONDS) + AddElement(/datum/element/manufacturer_examine, COMPANY_FRONTIER) + +// Deployable item for cargo for the water synth + +/obj/item/flatpacked_machine/water_synth + name = "water synthesizer parts kit" + icon = 'monkestation/code/modules/blueshift/icons/chemistry_machines.dmi' + icon_state = "water_synth_parts" + w_class = WEIGHT_CLASS_NORMAL + type_to_deploy = /obj/machinery/plumbing/synthesizer/water_synth + deploy_time = 2 SECONDS + custom_materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 2.5, + /datum/material/glass = SHEET_MATERIAL_AMOUNT, + ) + +// Machine that makes botany nutrients for hydroponics farming + +/obj/machinery/plumbing/synthesizer/colony_hydroponics + name = "hydroponics chemical synthesizer" + desc = "An infinitely useful device for those finding themselves in a frontier without a stable source of nutrients for crops. \ + Using a simplified version of the chemistry dispenser's synthesizer process, it can create hydroponics nutrients out of nothing \ + but good old electricity." + icon = 'monkestation/code/modules/blueshift/icons/chemistry_machines.dmi' + icon_state = "hydro_synth" + anchored = FALSE + /// Reagents that this can dispense, overrides the default list on init + var/static/list/synthesizable_reagents = list( + /datum/reagent/plantnutriment/eznutriment, + /datum/reagent/plantnutriment/left4zednutriment, + /datum/reagent/plantnutriment/robustharvestnutriment, + /datum/reagent/plantnutriment/endurogrow, + /datum/reagent/plantnutriment/liquidearthquake, + /datum/reagent/toxin/plantbgone/weedkiller, + /datum/reagent/toxin/pestkiller, + ) + /// What this repacks into + var/repacked_type = /obj/item/flatpacked_machine/hydro_synth + +/obj/machinery/plumbing/synthesizer/colony_hydroponics/Initialize(mapload, bolt = FALSE, layer) + . = ..() + dispensable_reagents = synthesizable_reagents + AddElement(/datum/element/repackable, repacked_type, 2 SECONDS) + AddElement(/datum/element/manufacturer_examine, COMPANY_FRONTIER) + +// Deployable item for cargo for the hydro synth + +/obj/item/flatpacked_machine/hydro_synth + name = "hydroponics chemical synthesizer parts kit" + icon = 'monkestation/code/modules/blueshift/icons/chemistry_machines.dmi' + icon_state = "hydro_synth_parts" + w_class = WEIGHT_CLASS_NORMAL + type_to_deploy = /obj/machinery/plumbing/synthesizer/colony_hydroponics + deploy_time = 2 SECONDS + custom_materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 2.5, + /datum/material/glass = SHEET_MATERIAL_AMOUNT, + ) + +// Chem dispenser with a limited range of thematic reagents to dispense + +/obj/machinery/chem_dispenser/frontier_appliance + name = "sustenance dispenser" + desc = "Creates and dispenses a small pre-defined set of chemicals and other liquids for the convenience of those typically on the frontier. \ + While the machine is loved by many, it also has a reputation for making some of the worst coffees this side of the galaxy. Use at your own risk." + icon = 'monkestation/code/modules/blueshift/icons/chemistry_machines.dmi' + icon_state = "dispenser" + base_icon_state = "dispenser" + pass_flags = PASSTABLE + anchored_tabletop_offset = 4 + anchored = FALSE + circuit = null + powerefficiency = 0.5 + recharge_amount = 50 + show_ph = FALSE + // God's strongest coffee machine + dispensable_reagents = list( + /datum/reagent/water, + /datum/reagent/consumable/powdered_milk, + /datum/reagent/consumable/sugar, + /datum/reagent/consumable/powdered_lemonade, + /datum/reagent/consumable/powdered_coco, + /datum/reagent/consumable/powdered_coffee, + /datum/reagent/consumable/powdered_tea, + /datum/reagent/consumable/vanilla, + /datum/reagent/consumable/caramel, + /datum/reagent/consumable/korta_nectar, + /datum/reagent/consumable/korta_milk, + /datum/reagent/consumable/astrotame, + /datum/reagent/consumable/salt, + /datum/reagent/consumable/blackpepper, + /datum/reagent/consumable/nutraslop, + /datum/reagent/consumable/enzyme, + ) + /// Since we don't have a board to take from, we use this to give the dispenser a cell on spawning + var/cell_we_spawn_with = /obj/item/stock_parts/cell/crap/empty + +/obj/machinery/chem_dispenser/frontier_appliance/Initialize(mapload) + . = ..() + AddElement(/datum/element/manufacturer_examine, COMPANY_FRONTIER) + cell = new cell_we_spawn_with(src) + +/obj/machinery/chem_dispenser/frontier_appliance/display_beaker() + var/mutable_appearance/overlayed_beaker = beaker_overlay || mutable_appearance(icon, "disp_beaker") + return overlayed_beaker + +/obj/machinery/chem_dispenser/frontier_appliance/RefreshParts() + . = ..() + powerefficiency = 0.5 + recharge_amount = 50 + +/obj/machinery/chem_dispenser/frontier_appliance/examine(mob/user) + . = ..() + . += span_notice("It cannot be repacked, but can be deconstructed normally.") + +// Deployable item for cargo for the sustenance machine + +/obj/item/flatpacked_machine/sustenance_machine + name = "sustenance dispenser parts kit" + icon = 'monkestation/code/modules/blueshift/icons/chemistry_machines.dmi' + icon_state = "dispenser_parts" + w_class = WEIGHT_CLASS_NORMAL + type_to_deploy = /obj/machinery/chem_dispenser/frontier_appliance + deploy_time = 2 SECONDS + custom_materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 2, + /datum/material/glass = SHEET_MATERIAL_AMOUNT, + /datum/material/titanium = HALF_SHEET_MATERIAL_AMOUNT, + ) + +// We can't just use electrolyzer reactions, because that'd let electrolyzers do co2 cracking + +GLOBAL_LIST_INIT(cracker_reactions, cracker_reactions_list()) + +/// Global proc to build up the list of co2 cracker reactions +/proc/cracker_reactions_list() + var/list/built_reaction_list = list() + for(var/reaction_path in subtypesof(/datum/cracker_reaction)) + var/datum/cracker_reaction/reaction = new reaction_path() + + built_reaction_list[reaction.id] = reaction + + return built_reaction_list + +/datum/cracker_reaction + var/list/requirements + var/name = "reaction" + var/id = "r" + var/desc = "" + var/list/factor + +/// Called when the co2 cracker reaction is run, should be where the code for actually changing gasses around is run +/datum/cracker_reaction/proc/react(turf/location, datum/gas_mixture/air_mixture, working_power) + return + +/// Checks if this reaction can actually be run +/datum/cracker_reaction/proc/reaction_check(datum/gas_mixture/air_mixture) + var/temp = air_mixture.temperature + var/list/cached_gases = air_mixture.gases + if((requirements["MIN_TEMP"] && temp < requirements["MIN_TEMP"]) || (requirements["MAX_TEMP"] && temp > requirements["MAX_TEMP"])) + return FALSE + for(var/id in requirements) + if(id == "MIN_TEMP" || id == "MAX_TEMP") + continue + if(!cached_gases[id] || cached_gases[id][MOLES] < requirements[id]) + return FALSE + return TRUE + +/datum/cracker_reaction/co2_cracking + name = "CO2 Cracking" + id = "co2_cracking" + desc = "Conversion of CO2 into equal amounts of O2" + requirements = list( + /datum/gas/carbon_dioxide = MINIMUM_MOLE_COUNT, + ) + factor = list( + /datum/gas/carbon_dioxide = "1 mole of CO2 gets consumed", + /datum/gas/oxygen = "1 mole of O2 gets produced", + "Location" = "Can only happen on turfs with an active CO2 cracker.", + ) + +/datum/cracker_reaction/co2_cracking/react(turf/location, datum/gas_mixture/air_mixture, working_power) + var/old_heat_capacity = air_mixture.heat_capacity() + air_mixture.assert_gases(/datum/gas/water_vapor, /datum/gas/oxygen) + var/proportion = min(air_mixture.gases[/datum/gas/carbon_dioxide][MOLES] * INVERSE(2), (2.5 * (working_power ** 2))) + air_mixture.gases[/datum/gas/carbon_dioxide][MOLES] -= proportion + air_mixture.gases[/datum/gas/oxygen][MOLES] += proportion + var/new_heat_capacity = air_mixture.heat_capacity() + if(new_heat_capacity > MINIMUM_HEAT_CAPACITY) + air_mixture.temperature = max(air_mixture.temperature * old_heat_capacity / new_heat_capacity, TCMB) + +// CO2 cracker machine itself + +/obj/machinery/electrolyzer/co2_cracker + name = "portable CO2 cracker" + desc = "A portable device that is the savior of many a colony on the frontier. Performing similarly to an electrolyzer, \ + it takes in nearby gasses and breaks them into different gasses. The big draw of this one? It can crack carbon dioxide \ + into breathable oxygen. Handy for places where CO2 is all too common, and oxygen is all too hard to find." + icon = 'monkestation/code/modules/blueshift/icons/portable_machines.dmi' + circuit = null + working_power = 1 + /// Soundloop for while the thermomachine is turned on + var/datum/looping_sound/conditioner_running/soundloop + /// What this repacks into + var/repacked_type = /obj/item/flatpacked_machine/co2_cracker + +/obj/machinery/electrolyzer/co2_cracker/Initialize(mapload) + . = ..() + soundloop = new(src, FALSE) + AddElement(/datum/element/repackable, repacked_type, 2 SECONDS) + AddElement(/datum/element/manufacturer_examine, COMPANY_FRONTIER) + +/obj/machinery/electrolyzer/co2_cracker/process_atmos() + if(on && !soundloop.loop_started) + soundloop.start() + else if(soundloop.loop_started) + soundloop.stop() + return ..() + +/obj/machinery/electrolyzer/co2_cracker/call_reactions(datum/gas_mixture/env) + for(var/reaction in GLOB.cracker_reactions) + var/datum/cracker_reaction/current_reaction = GLOB.cracker_reactions[reaction] + + if(!current_reaction.reaction_check(env)) + continue + + current_reaction.react(loc, env, working_power) + + env.garbage_collect() + +/obj/machinery/electrolyzer/co2_cracker/RefreshParts() + . = ..() + working_power = 2 + efficiency = 1 + +/obj/machinery/electrolyzer/co2_cracker/crowbar_act(mob/living/user, obj/item/tool) + return + +// "parts kit" for buying these from cargo + +/obj/item/flatpacked_machine/co2_cracker + name = "CO2 cracker parts kit" + icon = 'monkestation/code/modules/blueshift/icons/parts_kits.dmi' + icon_state = "co2_cracker" + type_to_deploy = /obj/machinery/electrolyzer/co2_cracker + deploy_time = 2 SECONDS + custom_materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 7.5, + /datum/material/glass = SHEET_MATERIAL_AMOUNT * 3, + /datum/material/plasma = HALF_SHEET_MATERIAL_AMOUNT, // We're gonna pretend plasma is the catalyst for co2 cracking + ) + +/obj/machinery/biogenerator/foodricator + name = "organic rations printer" + desc = "An advanced machine seen in frontier outposts and colonies capable of turning organic plant matter into \ + various foods or ingredients. The best friend of a chef where deliveries are inconsistent or simply don't exist. \ + Some of those that consume the food from this complain that the foods it makes have poor taste, though they must \ + not appreciate being able to eat steak and eggs for breakfast with a lack of any livestock at all in the colony." + icon = 'monkestation/code/modules/blueshift/icons/foodricator.dmi' + circuit = null + anchored = FALSE + pass_flags = PASSTABLE + efficiency = 1 + productivity = 2.5 + anchored_tabletop_offset = 6 + show_categories = list( + RND_CATEGORY_AKHTER_FOODRICATOR_INGREDIENTS, + RND_CATEGORY_AKHTER_FOODRICATOR_BAGS, + RND_CATEGORY_AKHTER_FOODRICATOR_SNACKS, + RND_CATEGORY_AKHTER_FOODRICATOR_UTENSILS, + RND_CATEGORY_AKHTER_SEEDS, + ) + /// What this repacks into + var/repacked_type = /obj/item/flatpacked_machine/organics_ration_printer + +/obj/machinery/biogenerator/foodricator/Initialize(mapload) + . = ..() + AddElement(/datum/element/manufacturer_examine, COMPANY_FRONTIER) + AddElement(/datum/element/repackable, repacked_type, 5 SECONDS) + +/obj/machinery/biogenerator/foodricator/RefreshParts() + . = ..() + efficiency = 1 + productivity = 3 + +/obj/machinery/biogenerator/foodricator/default_deconstruction_crowbar() + return + +// Deployable item for cargo for the rations printer + +/obj/item/flatpacked_machine/organics_ration_printer + name = "organic rations printer parts kit" + icon = 'monkestation/code/modules/blueshift/icons/foodricator.dmi' + icon_state = "biogenerator_parts" + type_to_deploy = /obj/machinery/biogenerator/foodricator + w_class = WEIGHT_CLASS_NORMAL + custom_materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 5, + /datum/material/glass = SHEET_MATERIAL_AMOUNT * 2, + /datum/material/silver = SHEET_MATERIAL_AMOUNT, + /datum/material/gold = HALF_SHEET_MATERIAL_AMOUNT, + ) + +/obj/machinery/colony_recycler + name = "materials recycler" + desc = "A large crushing machine used to recycle small items inefficiently. Items are inserted by hand, rather than by belt. \ + Mind your fingers." + icon = 'monkestation/code/modules/blueshift/icons/portable_machines.dmi' + icon_state = "recycler" + anchored = FALSE + density = TRUE + circuit = null + /// The percentage of materials returned + var/amount_produced = 80 + /// The sound made when an item is eaten + var/item_recycle_sound = 'monkestation/code/modules/blueshift/sounds/forge.ogg' + /// The recycler's internal materials storage, for when items recycled don't produce enough to make a full sheet of that material + var/datum/component/material_container/materials + /// The list of all the materials we can recycle + var/static/list/allowed_materials = list( + /datum/material/iron, + /datum/material/glass, + /datum/material/silver, + /datum/material/plasma, + /datum/material/gold, + /datum/material/diamond, + /datum/material/plastic, + /datum/material/uranium, + /datum/material/bananium, + /datum/material/titanium, + /datum/material/bluespace, + ) + /// The item we turn into when repacked + var/repacked_type = /obj/item/flatpacked_machine/recycler + +/obj/machinery/colony_recycler/Initialize(mapload) + . = ..() + AddElement(/datum/element/repackable, repacked_type, 5 SECONDS) + AddElement(/datum/element/manufacturer_examine, COMPANY_FRONTIER) + materials = AddComponent( \ + /datum/component/material_container, \ + allowed_materials, \ + INFINITY, \ + MATCONTAINER_EXAMINE, \ + _after_insert = TYPE_PROC_REF(/obj/machinery/colony_recycler, has_eaten_materials), \ + ) + +/obj/machinery/colony_recycler/Destroy() + materials = null + return ..() + +/obj/machinery/colony_recycler/examine(mob/user) + . = ..() + . += span_notice("Reclaiming [amount_produced]% of materials salvaged.") + . += span_notice("Can be secured with a wrench using Right-Click.") + +/obj/machinery/colony_recycler/wrench_act_secondary(mob/living/user, obj/item/tool) + default_unfasten_wrench(user, tool) + return + +/// Proc called when the recycler eats new materials, checks if we should spit out new material sheets +/obj/machinery/colony_recycler/proc/has_eaten_materials(container, obj/item/item_inserted, last_inserted_id, mats_consumed, amount_inserted, atom/context) + SIGNAL_HANDLER + + flick("recycler_grind", src) + playsound(src, item_recycle_sound, 50, TRUE) + use_power(min(active_power_usage * 0.25, amount_inserted / 100)) + + if(amount_inserted) + materials.retrieve_all(drop_location()) + +// "parts kit" for buying these from cargo + +/obj/item/flatpacked_machine/recycler + name = "recycler parts kit" + icon = 'monkestation/code/modules/blueshift/icons/parts_kits.dmi' + icon_state = "recycler" + type_to_deploy = /obj/machinery/colony_recycler + deploy_time = 2 SECONDS + custom_materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 7.5, + /datum/material/glass = SHEET_MATERIAL_AMOUNT * 3, + /datum/material/titanium = HALF_SHEET_MATERIAL_AMOUNT, // Titan for the crushing element + ) + +/obj/machinery/space_heater/wall_mounted + name = "mounted heater" + desc = "A compact heating and cooling device for small scale applications, made to mount onto walls up and out of the way. \ + Like other, more free-standing space heaters however, these still require cell power to function." + icon = 'monkestation/code/modules/blueshift/icons/space_heater.dmi' + anchored = TRUE + density = FALSE + circuit = null + heating_power = 20 KW + efficiency = 10000 + display_panel = TRUE + /// What this repacks into when its wrenched off a wall + var/repacked_type = /obj/item/wallframe/wall_heater + +MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/space_heater/wall_mounted, 29) + +/obj/machinery/space_heater/wall_mounted/Initialize(mapload) + . = ..() + find_and_hang_on_wall() + AddElement(/datum/element/manufacturer_examine, COMPANY_FRONTIER) + +/obj/machinery/space_heater/wall_mounted/RefreshParts() + . = ..() + heating_power = 20 KW + efficiency = 10000 + +/obj/machinery/space_heater/wall_mounted/default_deconstruction_crowbar() + return + +/obj/machinery/space_heater/wall_mounted/default_unfasten_wrench(mob/living/user, obj/item/wrench, time) + user.balloon_alert(user, "deconstructing...") + wrench.play_tool_sound(src) + if(wrench.use_tool(src, user, 1 SECONDS)) + playsound(loc, 'sound/items/deconstruct.ogg', 50, TRUE) + deconstruct(TRUE) + return + +/obj/machinery/space_heater/wall_mounted/on_deconstruction(disassembled) + if(disassembled) + new repacked_type(drop_location()) + return ..() + +// Wallmount for creating the heaters + +/obj/item/wallframe/wall_heater + name = "unmounted wall heater" + desc = "A compact heating and cooling device for small scale applications, made to mount onto walls up and out of the way. \ + Like other, more free-standing space heaters however, these still require cell power to function." + icon = 'monkestation/code/modules/blueshift/icons/space_heater.dmi' + icon_state = "sheater-off" + w_class = WEIGHT_CLASS_NORMAL + result_path = /obj/machinery/space_heater/wall_mounted + pixel_shift = 29 + custom_materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 4, + /datum/material/silver = SHEET_MATERIAL_AMOUNT * 1, + /datum/material/gold = SMALL_MATERIAL_AMOUNT, + ) + +/obj/machinery/cell_charger_multi/wall_mounted + name = "mounted multi-cell charging rack" + desc = "The innovative technology of a cell charging rack, but mounted neatly on a wall out of the way!" + icon = 'monkestation/code/modules/blueshift/icons/cell_charger.dmi' + icon_state = "wall_charger" + base_icon_state = "wall_charger" + circuit = null + max_batteries = 3 + charge_rate = 900 KW + /// The item we turn into when repacked + var/repacked_type = /obj/item/wallframe/cell_charger_multi + +MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/cell_charger_multi/wall_mounted, 29) + +/obj/machinery/cell_charger_multi/wall_mounted/Initialize(mapload) + . = ..() + find_and_hang_on_wall() + AddElement(/datum/element/manufacturer_examine, COMPANY_FRONTIER) + +/obj/machinery/cell_charger_multi/wall_mounted/wrench_act(mob/living/user, obj/item/tool) + . = ..() + user.balloon_alert(user, "deconstructing...") + tool.play_tool_sound(src) + if(tool.use_tool(src, user, 1 SECONDS)) + playsound(loc, 'sound/items/deconstruct.ogg', 50, TRUE) + deconstruct(TRUE) + return + +// previously NO_DECONSTRUCTION +/obj/machinery/cell_charger_multi/wall_mounted/default_deconstruction_screwdriver(mob/user, icon_state_open, icon_state_closed, obj/item/screwdriver) + return NONE + +/obj/machinery/cell_charger_multi/wall_mounted/default_deconstruction_crowbar(obj/item/crowbar, ignore_panel, custom_deconstruct) + return NONE + +/obj/machinery/cell_charger_multi/wall_mounted/default_pry_open(obj/item/crowbar, close_after_pry, open_density, closed_density) + return NONE + +/obj/machinery/cell_charger_multi/wall_mounted/on_deconstruction(disassembled) + if(disassembled) + new repacked_type(drop_location()) + +/obj/machinery/cell_charger_multi/wall_mounted/RefreshParts() + . = ..() + charge_rate = 900 KW // Nuh uh! + +// Item for creating the arc furnace or carrying it around + +/obj/item/wallframe/cell_charger_multi + name = "unmounted wall multi-cell charging rack" + desc = "The innovative technology of a cell charging rack, but able to be mounted neatly on a wall out of the way!" + icon = 'monkestation/code/modules/blueshift/icons/packed_machines.dmi' + icon_state = "cell_charger_packed" + w_class = WEIGHT_CLASS_NORMAL + result_path = /obj/machinery/cell_charger_multi/wall_mounted + pixel_shift = 29 + custom_materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 2, + /datum/material/silver = SHEET_MATERIAL_AMOUNT * 1, + ) + +/obj/machinery/power/colony_wind_turbine + name = "miniature wind turbine" + desc = "A post with two special-designed vertical turbine blades attached to its sides. \ + When placed outdoors in a planet with an atmosphere, will produce a small trickle of power \ + for free. If there is a storm in the area the turbine is placed, the power production will \ + multiply significantly." + icon = 'monkestation/code/modules/blueshift/icons/wind_turbine.dmi' + icon_state = "turbine" + density = TRUE + max_integrity = 100 + idle_power_usage = 0 + anchored = TRUE + can_change_cable_layer = FALSE + circuit = null + layer = ABOVE_MOB_LAYER + can_change_cable_layer = TRUE + /// How much power the turbine makes without a storm + var/regular_power_production = 2500 + /// How much power the turbine makes during a storm + var/storm_power_production = 10000 + /// Is our pressure too low to function? + var/pressure_too_low = FALSE + /// Minimum external pressure needed to work + var/minimum_pressure = 5 + /// What we undeploy into + var/undeploy_type = /obj/item/flatpacked_machine/wind_turbine + +/obj/machinery/power/colony_wind_turbine/Initialize(mapload) + . = ..() + AddElement(/datum/element/repackable, undeploy_type, 2 SECONDS) + AddElement(/datum/element/manufacturer_examine, COMPANY_FRONTIER) + connect_to_network() + +/obj/machinery/power/colony_wind_turbine/examine(mob/user) + . = ..() + var/area/turbine_area = get_area(src) + if(!turbine_area.outdoors) + . += span_notice("Its must be constructed outdoors to function.") + if(pressure_too_low) + . += span_notice("There must be enough atmospheric pressure for the turbine to spin.") + + +/obj/machinery/power/colony_wind_turbine/process() + var/area/our_current_area = get_area(src) + if(!our_current_area.outdoors) + icon_state = "turbine" + add_avail(0) + return + + var/turf/our_turf = get_turf(src) + var/datum/gas_mixture/environment = our_turf.return_air() + + if(environment.return_pressure() < minimum_pressure) + pressure_too_low = TRUE + icon_state = "turbine" + add_avail(0) + return + + pressure_too_low = FALSE + var/storming_out = FALSE + + var/datum/weather/weather_we_track + for(var/datum/weather/possible_weather in SSweather.processing) + if((our_turf.z in possible_weather.impacted_z_levels) || (our_current_area in possible_weather.impacted_areas)) + weather_we_track = possible_weather + break + if(weather_we_track) + if(!(weather_we_track.stage == END_STAGE)) + storming_out = TRUE + + add_avail((storming_out ? storm_power_production : regular_power_production)) + + var/new_icon_state = (storming_out ? "turbine_storm" : "turbine_normal") + icon_state = new_icon_state + + +// Item for deploying wind turbines +/obj/item/flatpacked_machine/wind_turbine + name = "flat-packed miniature wind turbine" + icon = 'monkestation/code/modules/blueshift/icons/wind_turbine.dmi' + icon_state = "turbine_packed" + type_to_deploy = /obj/machinery/power/colony_wind_turbine + w_class = WEIGHT_CLASS_NORMAL + custom_materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 5, + /datum/material/glass = SHEET_MATERIAL_AMOUNT * 2, + /datum/material/gold = HALF_SHEET_MATERIAL_AMOUNT, + ) + +/obj/machinery/griddle/frontier_tabletop + name = "tabletop griddle" + desc = "A griddle type slim enough to fit atop a table without much fuss. This type in particular \ + was made to be broken down into many parts and shipped across the glaxy. This makes it a favourite in \ + pop-up food stalls and colony kitchens all around." + icon = 'monkestation/code/modules/blueshift/icons/kitchen_stuff/griddle.dmi' + icon_state = "griddletable_off" + variant = "table" + pass_flags_self = LETPASSTHROW + pass_flags = PASSTABLE + circuit = null + // Lines up perfectly with tables when anchored on them + anchored_tabletop_offset = 3 + /// What type this repacks into + var/repacked_type = /obj/item/flatpacked_machine/frontier_griddle + +/obj/machinery/griddle/frontier_tabletop/Initialize(mapload) + . = ..() + AddElement(/datum/element/repackable, repacked_type, 2 SECONDS) + AddElement(/datum/element/manufacturer_examine, COMPANY_FRONTIER) + +/obj/machinery/griddle/frontier_tabletop/unanchored + anchored = FALSE + +// Deployable item for cargo + +/obj/item/flatpacked_machine/frontier_griddle + name = "flat-packed tabletop griddle" + icon = 'monkestation/code/modules/blueshift/icons/kitchen_stuff/griddle.dmi' + icon_state = "griddle_parts" + w_class = WEIGHT_CLASS_NORMAL + type_to_deploy = /obj/machinery/griddle/frontier_tabletop + deploy_time = 2 SECONDS + custom_materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 7, + /datum/material/glass = SHEET_MATERIAL_AMOUNT * 3, + /datum/material/silver = HALF_SHEET_MATERIAL_AMOUNT, + ) + +/obj/machinery/microwave/frontier_printed + desc = "A plastic-paneled microwave oven, capable of doing anything a standard microwave could do. \ + This one is special designed to be tightly packed into a shape that can be easily re-assembled \ + later from the factory. There don't seem to be included instructions on getting it folded back \ + together, though..." + icon = 'monkestation/code/modules/blueshift/icons/kitchen_stuff/microwave.dmi' + circuit = null + max_n_of_items = 5 + efficiency = 2 +/obj/machinery/microwave/frontier_printed/Initialize(mapload) + . = ..() + AddElement(/datum/element/manufacturer_examine, COMPANY_FRONTIER) + +/obj/machinery/microwave/frontier_printed/RefreshParts() + . = ..() + max_n_of_items = 5 + +/obj/machinery/microwave/frontier_printed/examine(mob/user) + . = ..() + . += span_notice("It cannot be repacked, but can be deconstructed normally.") + +/obj/machinery/microwave/frontier_printed/unanchored + anchored = FALSE + +// Deployable item for cargo + +/obj/item/flatpacked_machine/macrowave + name = "microwave oven parts kit" + icon = 'monkestation/code/modules/blueshift/icons/kitchen_stuff/microwave.dmi' + icon_state = "packed_microwave" + w_class = WEIGHT_CLASS_NORMAL + type_to_deploy = /obj/machinery/microwave/frontier_printed + deploy_time = 2 SECONDS + custom_materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 5, + /datum/material/glass = SHEET_MATERIAL_AMOUNT * 2, + /datum/material/silver = HALF_SHEET_MATERIAL_AMOUNT, + ) + +/obj/machinery/oven/range_frontier + name = "frontier range" + desc = "A combined oven and stove commonly seen on the frontier. Comes from the factory packed up \ + in a neatly compact format that can then be deployed into a nearly full size appliance. \ + It seems, however, that the designer forgot to include instructions on packing these things back up." + icon = 'monkestation/code/modules/blueshift/icons/kitchen_stuff/range.dmi' + icon_state = "range_off" + base_icon_state = "range" + pass_flags_self = PASSMACHINE|PASSTABLE|LETPASSTHROW + active_power_usage = BASE_MACHINE_ACTIVE_CONSUMPTION * 1.2 + circuit = null + +/obj/machinery/oven/range_frontier/Initialize(mapload) + . = ..() + AddElement(/datum/element/manufacturer_examine, COMPANY_FRONTIER) + AddComponent(/datum/component/stove, container_x = -3, container_y = 14) + +/obj/machinery/oven/range_frontier/examine(mob/user) + . = ..() + . += span_notice("It cannot be repacked, but can be deconstructed normally.") + +/obj/machinery/oven/range_frontier/unanchored + anchored = FALSE + +// Deployable item for cargo + +/obj/item/flatpacked_machine/frontier_range + name = "frontier range parts kit" + icon = 'monkestation/code/modules/blueshift/icons/kitchen_stuff/range.dmi' + icon_state = "range_packed" + w_class = WEIGHT_CLASS_NORMAL + type_to_deploy = /obj/machinery/oven/range_frontier + deploy_time = 2 SECONDS + custom_materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 7, + /datum/material/glass = SHEET_MATERIAL_AMOUNT * 3, + /datum/material/silver = HALF_SHEET_MATERIAL_AMOUNT, + ) + +/obj/item/gps/computer/beacon + name = "\improper GPS beacon" + desc = "A GPS beacon, anchored to the ground to prevent loss or accidental movement." + icon = 'monkestation/code/modules/blueshift/icons/gps_beacon.dmi' + icon_state = "gps_beacon" + pixel_y = 0 + /// What this is undeployed back into + var/undeploy_type = /obj/item/flatpacked_machine/gps_beacon + +/obj/item/gps/computer/beacon/Initialize(mapload) + . = ..() + AddElement(/datum/element/repackable, undeploy_type, 2 SECONDS) + AddElement(/datum/element/manufacturer_examine, COMPANY_KAHRAMAN) + +/obj/item/flatpacked_machine/gps_beacon + name = "packed GPS beacon" + icon = 'monkestation/code/modules/blueshift/icons/gps_beacon.dmi' + icon_state = "beacon_folded" + w_class = WEIGHT_CLASS_SMALL + type_to_deploy = /obj/item/gps/computer/beacon + +/obj/item/flatpacked_machine/gps_beacon/give_manufacturer_examine() + AddElement(/datum/element/manufacturer_examine, COMPANY_KAHRAMAN) diff --git a/monkestation/code/modules/blueshift/appliances/multi_charger.dm b/monkestation/code/modules/blueshift/appliances/multi_charger.dm new file mode 100644 index 000000000000..d184a185752c --- /dev/null +++ b/monkestation/code/modules/blueshift/appliances/multi_charger.dm @@ -0,0 +1,226 @@ +/obj/machinery/cell_charger_multi + name = "multi-cell charging rack" + desc = "A cell charging rack for multiple batteries." + icon = 'monkestation/code/modules/blueshift/icons/cell.dmi' + icon_state = "cchargermulti" + base_icon_state = "cchargermulti" + use_power = IDLE_POWER_USE + idle_power_usage = 5 + active_power_usage = 60 + power_channel = AREA_USAGE_EQUIP + circuit = /obj/item/circuitboard/machine/cell_charger_multi + pass_flags = PASSTABLE + /// The list of batteries we are gonna charge! + var/list/charging_batteries = list() + /// Number of concurrent batteries that can be charged + var/max_batteries = 4 + /// The base charge rate when spawned + var/charge_rate = 375 + +/obj/machinery/cell_charger_multi/update_overlays() + . = ..() + + if(!charging_batteries.len) + return + + for(var/i = charging_batteries.len, i >= 1, i--) + var/obj/item/stock_parts/cell/charging = charging_batteries[i] + var/newlevel = round(charging.percent() * 4 / 100) + var/mutable_appearance/charge_overlay = mutable_appearance(icon, "[base_icon_state]-o[newlevel]") + var/mutable_appearance/cell_overlay = mutable_appearance(icon, "[base_icon_state]-cell") + charge_overlay.pixel_x = 5 * (i - 1) + cell_overlay.pixel_x = 5 * (i - 1) + . += new /mutable_appearance(charge_overlay) + . += new /mutable_appearance(cell_overlay) + +/obj/machinery/cell_charger_multi/attack_hand_secondary(mob/user, list/modifiers) + if(!can_interact(user) || !charging_batteries.len) + return + to_chat(user, span_notice("You press the quick release as all the cells pop out!")) + for(var/i in charging_batteries) + removecell() + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + +/obj/machinery/cell_charger_multi/examine(mob/user) + . = ..() + if(!charging_batteries.len) + . += "There are no cells in [src]." + else + . += "There are [charging_batteries.len] cells in [src]." + for(var/obj/item/stock_parts/cell/charging in charging_batteries) + . += "There's [charging] cell in the charger, current charge: [round(charging.percent(), 1)]%." + if(in_range(user, src) || isobserver(user)) + . += span_notice("The status display reads: Charging power: [display_power(charge_rate)].") + . += span_notice("Right click it to remove all the cells at once!") + +/obj/machinery/cell_charger_multi/attackby(obj/item/tool, mob/user, params) + if(istype(tool, /obj/item/stock_parts/cell) && !panel_open) + if(machine_stat & BROKEN) + to_chat(user, span_warning("[src] is broken!")) + return + if(!anchored) + to_chat(user, span_warning("[src] isn't attached to the ground!")) + return + var/obj/item/stock_parts/cell/inserting_cell = tool + if(inserting_cell.chargerate <= 0) + to_chat(user, span_warning("[inserting_cell] cannot be recharged!")) + return + if(length(charging_batteries) >= max_batteries) + to_chat(user, span_warning("[src] is full, and cannot hold anymore cells!")) + return + else + var/area/current_area = loc.loc // Gets our locations location, like a dream within a dream + if(!isarea(current_area)) + return + if(current_area.power_equip == 0) // There's no APC in this area, don't try to cheat power! + to_chat(user, span_warning("[src] blinks red as you try to insert the cell!")) + return + if(!user.transferItemToLoc(tool,src)) + return + + charging_batteries += tool + user.visible_message(span_notice("[user] inserts a cell into [src]."), span_notice("You insert a cell into [src].")) + update_appearance() + else + if(!charging_batteries.len && default_deconstruction_screwdriver(user, icon_state, icon_state, tool)) + return + if(default_deconstruction_crowbar(tool)) + return + if(!charging_batteries.len && default_unfasten_wrench(user, tool)) + return + return ..() + +/obj/machinery/cell_charger_multi/process(seconds_per_tick) + if(!charging_batteries.len || !anchored || (machine_stat & (BROKEN|NOPOWER))) + return + + // create a charging queue, we only want cells that require charging to use the power budget + var/list/charging_queue = list() + for(var/obj/item/stock_parts/cell/battery_slot in charging_batteries) + if(battery_slot.percent() >= 100) + continue + LAZYADD(charging_queue, battery_slot) + + if(!length(charging_queue)) + return + + // since this loop is running multiple times per tick, we divide so that the total usage in the tick is the expected charge rate + // 4 batteries can no longer magically each pull 4MW per tick (16MW total per tick) out of thin air like in the old system + var/charge_current = (charge_rate / length(charging_queue)) * seconds_per_tick + if(!charge_current) + return + + for(var/obj/item/stock_parts/cell/charging_cell in charging_queue) + use_power(charge_current * 0.01) //use a small bit for the charger itself, but power usage scales up with the part tier + charge_cell(charge_current, charging_cell, grid_only = TRUE) + + LAZYNULL(charging_queue) + update_appearance() + +/obj/machinery/cell_charger_multi/attack_tk(mob/user) + if(!charging_batteries.len) + return + + to_chat(user, span_notice("You telekinetically remove [removecell(user)] from [src].")) + + return COMPONENT_CANCEL_ATTACK_CHAIN + +/obj/machinery/cell_charger_multi/RefreshParts() + . = ..() + charge_rate = 0 // No, you cant get free charging speed! + var/charge_rate_base = 250 + for(var/datum/stock_part/capacitor/capacitor in component_parts) + charge_rate += (charge_rate_base * capacitor.tier) / 4 + +/obj/machinery/cell_charger_multi/emp_act(severity) + . = ..() + + if(machine_stat & (BROKEN|NOPOWER) || . & EMP_PROTECT_CONTENTS) + return + + for(var/obj/item/stock_parts/cell/charging in charging_batteries) + charging.emp_act(severity) + +/obj/machinery/cell_charger_multi/on_deconstruction(disassembled) + for(var/obj/item/stock_parts/cell/charging in charging_batteries) + charging.forceMove(drop_location()) + charging_batteries = null + return ..() + + +/obj/machinery/cell_charger_multi/attack_ai(mob/user) + return + +/obj/machinery/cell_charger_multi/attack_hand(mob/user, list/modifiers) + . = ..() + if(.) + return + + var/obj/item/stock_parts/cell/charging = removecell(user) + + if(!charging) + return + + user.put_in_hands(charging) + charging.add_fingerprint(user) + + user.visible_message(span_notice("[user] removes [charging] from [src]."), span_notice("You remove [charging] from [src].")) + +/obj/machinery/cell_charger_multi/proc/removecell(mob/user) + if(!charging_batteries.len) + return FALSE + var/obj/item/stock_parts/cell/charging + if(charging_batteries.len > 1 && user) + var/list/buttons = list() + for(var/obj/item/stock_parts/cell/battery in charging_batteries) + buttons["[battery.name] ([round(battery.percent(), 1)]%)"] = battery + var/cell_name = tgui_input_list(user, "Please choose what cell you'd like to remove.", "Remove a cell", buttons) + charging = buttons[cell_name] + else + charging = charging_batteries[1] + if(!charging) + return FALSE + charging.forceMove(drop_location()) + charging.update_appearance() + charging_batteries -= charging + update_appearance() + return charging + +/obj/machinery/cell_charger_multi/Destroy() + for(var/obj/item/stock_parts/cell/charging in charging_batteries) + QDEL_NULL(charging) + charging_batteries = null + return ..() + +/obj/item/circuitboard/machine/cell_charger_multi + name = "Multi-Cell Charger (Machine Board)" + greyscale_colors = CIRCUIT_COLOR_ENGINEERING + build_path = /obj/machinery/cell_charger_multi + req_components = list(/datum/stock_part/capacitor = 6) + needs_anchored = FALSE + + +/datum/design/board/cell_charger_multi + name = "Machine Design (Multi-Cell Charger Board)" + desc = "The circuit board for a multi-cell charger." + id = "multi_cell_charger" + build_path = /obj/item/circuitboard/machine/cell_charger_multi + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_ENGINEERING + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING + + +/** + * Draws power from the apc's powernet and cell to charge a power cell. + * Args: + * - amount: The amount of energy given to the cell. + * - cell: The cell to charge. + * - grid_only: If true, only draw from the grid and ignore the APC's cell. + * - channel: The power channel to use. + * Returns: The amount of energy the cell received. + */ +/obj/machinery/proc/charge_cell(amount, obj/item/stock_parts/cell/cell, grid_only = FALSE, channel = AREA_USAGE_EQUIP) + var/demand = use_power_from_net(min(amount, cell.used_charge())) + var/power_given = cell.give(demand) + return power_given diff --git a/monkestation/code/modules/blueshift/areas/centcom.dm b/monkestation/code/modules/blueshift/areas/centcom.dm new file mode 100644 index 000000000000..47b7d6686d0d --- /dev/null +++ b/monkestation/code/modules/blueshift/areas/centcom.dm @@ -0,0 +1,26 @@ +// Skyrat CC area defines + +/* +* Ghost Cafe +*/ + +/area/centcom/holding + name = "Holding Facility" + +/area/centcom/holding/cafe + name = "Ghost Cafe" + +/area/centcom/holding/cafe/vox + name = "Cafe Vox Box" + +/area/centcom/holding/cafe/dorms + name = "Ghost Cafe Dorms" + +/area/centcom/holding/cafe/park + name = "Ghost Cafe Outdoors" + +/area/centcom/interlink + name = "The Interlink" + +/area/centcom/interlink/dorm_rooms + name = "Interlink Dorm Rooms" diff --git a/monkestation/code/modules/blueshift/areas/station.dm b/monkestation/code/modules/blueshift/areas/station.dm new file mode 100644 index 000000000000..9e1cff801601 --- /dev/null +++ b/monkestation/code/modules/blueshift/areas/station.dm @@ -0,0 +1,585 @@ +// Skyrat specific station areas + +/* +* Station bound areas +*/ + +// Command areas +/area/station/command/captain_kitchen + name = "Captain's Kitchen" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "capt_kitchen" + +/area/station/command/captain_dining + name = "Captain's Dining Room" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "capt_dining" + +/area/station/command/cc_dock + name = "Central Command Ferry Dock" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "cc_dock" + +/area/station/command/secure_bunker + name = "Secure Bunker" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "secure_bunker" + +// NT Consultant area +/area/station/command/heads_quarters/nt_rep + name = "Nanotrasen Consultant's Office" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "nt_rep" + +// Blueshield area +/area/station/command/heads_quarters/blueshield + name = "Blueshield's Office" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "blueshield" + +/* +* Department areas +*/ + +// Engineering Areas +/area/station/engineering/power_room + name = "Ship Power Storage Room" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "power_room" + +// Atmos Areas +/area/station/engineering/atmos/hallway + name = "Atmos Hall" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "atmos_hall" + +/area/station/engineering/atmos/test_chambers + name = "Atmospherics Testing Chambers" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "atmos_test" + +// Medical Areas +/area/station/medical/aslyum + name = "Aslyum" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "aslyum" + +// Science Areas +/area/station/science/tele_sci + name = "Tele Sci Room" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "tele_sci" + +// Security areas +// CO Office +/area/station/security/corrections_officer + name = "Corrections Officer Lounge" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "corrections_officer" + +// Department power stations +/area/station/cargo/power_station + name = "Cargo Power Station" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "cargo_power" + +/area/station/cargo/power_station/lower + name = "Lower Cargo Power Station" + +/area/station/cargo/power_station/upper + name = "Upper Cargo Power Station" + +/area/station/engineering/power_station + name = "Engineering Power Station" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "engie_power" + +/area/station/engineering/power_station/lower + name = "Lower Engineering Power Station" + +/area/station/engineering/power_station/upper + name = "Upper Engineering Power Station" + +/area/station/medical/power_station + name = "Medical Power Station" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "med_power" + +/area/station/science/power_station + name = "Science Power Station" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "sci_power" + +/area/station/security/power_station + name = "Security Power Station" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "sec_power" + +/area/station/service/power_station + name = "Service Power Station" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "serv_power" + +/* +* General areas +*/ + +// Generic/Civ areas, typical a non-restricted room +/area/station/common/pool + name = "Pool" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "pool" + +/area/station/common/cryopods + name = "Cryopods Room" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "cryopods" + +/area/station/service/salon + name = "\improper Salon" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "salon" + +// Wrestling areas for BlueShift +/area/station/common/wrestling + name = "Wrestling" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "wrestle" + +/area/station/common/wrestling/arena + name = "Wrestling Arena" + icon_state = "wrestle_arena" + +/area/station/common/wrestling/lobby + name = "Wrestling Arena Lobby" + icon_state = "wrestle_lobby" + +/area/station/common/wrestling/locker + name = "Wrestling Arena Locker Room" + icon_state = "wrestle_locker" + +/area/station/common/tailoring + name = "Tailoring Shop" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "tailoring" + +// BlueShift Night Club +/area/station/common/night_club + name = "Dive Bar" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "nightclub" + +/area/station/common/night_club/back_stage + name = "Dive Bar Backstage" + icon_state = "nightclub_backstage" + +/area/station/common/night_club/changing_room + name = "Dive Bar Changing Room" + icon_state = "nightclub_changing_room" + +// Rec related areas +/area/station/common/laser_tag + name = "Laser Tag" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "laser_tag" + +/area/station/common/arcade + name = "Arcade" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "arcade" + +/area/station/common/locker_room_shower + name = "Locker Room Shower" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "locker_room_shower" + +/area/station/common/cafeteria + name = "Cafeteria" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "cafeteria" + +/area/station/common/gaskiosk + name = "\improper Internals Kiosk" + icon_state = "vacant_commissary" + +/area/station/commons/dorms/room5 + name = "\improper Dorms Room 5" + icon_state = "room1" + +/area/station/commons/dorms/room6 + name = "\improper Dorms Room 6" + icon_state = "room2" + +/area/station/commons/dorms/room7 + name = "\improper Dorms Room 7" + icon_state = "room3" + +/area/station/commons/dorms/room8 + name = "\improper Dorms Room 8" + icon_state = "room4" + +/area/station/commons/dorms/vacantroom + name = "\improper Vacant Dorms Room" + icon_state = "vacant_room" + +/area/station/common/wrestling/beverage + name = "\improper Arena Beverage Stand" + icon_state = "wrestle_maint" + +/area/station/common/wrestling/concessions + name = "\improper Arena Concessions Stand" + icon_state = "wrestle_maint" + +/area/station/common/pool/sauna + name = "\improper Pool Sauna" + icon_state = "pool" + +/area/station/service/barber/spa + name = "\improper Spa" + icon_state = "barber" + +/* +* Department/Generic maintenance areas +*/ + +// Generic +/area/station/maintenance/evac_maintenance + name = "Departures Maintenance" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "evac_maint" + +/area/station/maintenance/evac_maintenance/upper + name = "Upper Departures Maintenance" + icon_state = "evac_maint_upper" + +/area/station/maintenance/pool_maintenance + name = "Pool Maintenance" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "pool_maint" + +/area/station/maintenance/port/upper + name = "Upper Port Maintenance" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "port_maint_upper" + +// Science +/area/station/maintenance/department/science/lower + name = "Lower Science Maintenance" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "lower_sci_maint" + +/area/station/maintenance/department/science/upper + name = "Upper Science Maintenance" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "upper_sci_maint" + +/area/station/maintenance/department/science/ordnance_maint + name = "Ordnance Maintenance" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "ord_maint" + +/area/station/maintenance/department/science/ordnance_maint_lesser + name = "Lesser Ordnance Maintenace" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "lesser_ord_maint" + +// Engineering +/area/station/maintenance/department/engineering/atmos/aft_maint + name = "Aft Atmospherics Maintenance" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "atmos_maint_aft" + +/area/station/maintenance/department/engineering/atmos/port_maint + name = "Port Atmospherics Maintenance" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "atmos_maint_port" + +/area/station/maintenance/department/engineering/atmos_aux_port + name = "Port Atmospherics Auxiliary" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "atmos_aux_port" + +/area/station/maintenance/department/engineering/atmos/hfr_maint + name = "HFR Maintenance" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "hfr_maint" + +/area/station/maintenance/department/engineering/central + name = "Central Engineering Maintenance" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "engie_maint_cent" + +/area/station/maintenance/department/engineering/engie_aft_starboard + name = "Aft Starboard Engineering Maintenance" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "engie_maint_as" + +/area/station/maintenance/department/engineering/engine_aft_port + name = "Aft Port Engine Maintenance" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "engine_maint_ap" + +/area/station/maintenance/department/engineering/engine_aft_starboard + name = "Aft Starboard Engine Maintenance" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "engine_maint_as" + +/area/station/maintenance/department/engineering/lesser + name = "Lesser Engineering Maintenance" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "engie_maint_lesser" + +/area/station/maintenance/department/engine/atmos/lesser + name = "Lesser Atmospherics Maintenance" + +// Security +/area/station/maintenance/law + name = "Law Office Maintenance" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "law_maint" + +/area/station/maintenance/department/security/lesser + name = "Lesser Security Maintenance" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "sec_maint_lesser" + +/area/station/maintenance/department/security/lower + name = "Lower Security Maintenance" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "sec_maint_lower" + +/area/station/maintenance/department/security/greater + name = "Greater Security Maintenance" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "sec_maint_greater" + +/area/station/maintenance/department/security/prison_lower + name = "Lower Prison Maintenance" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "prison_maint_lower" + +/area/station/maintenance/department/security/prison_upper + name = "Upper Prison Maintenance" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "prison_maint_upper" + +/area/station/maintenance/department/security/upper + name = "Upper Security Maintenance" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "sec_maint_upper" + +// Service +/area/station/maintenance/library + name = "Library Maintenance" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "library_maint" + +/area/station/maintenance/library/lower + name = "Lower Library Maintenance" + icon_state = "library_maint_lower" + +/area/station/maintenance/library/upper + name = "Upper Library Maintenance" + icon_state = "library_maint_upper" + +/area/station/maintenance/night_club + name = "Night Club Maintenance" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "nightclub_maint" + +/area/station/maintenance/salon + name = "Salon Maintenance" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "salon_maint" + +/area/station/maintenance/salon/lower + name = "Lower Salon Maintenance" + icon_state = "salon_maint_lower" + +/area/station/maintenance/salon/upper + name = "Upper Salon Maintenance" + icon_state = "salon_maint_upper" + +/area/station/maintenance/wrestle + name = "Wrestling Arena Lobby Maintenance" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "wrestle_maint" + +// Abandon rooms +/area/station/maintenance/abandon_arcade + name = "Abandoned Arcade" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "abadn_arcade" + +/area/station/maintenance/abandon_art_studio + name = "Abandoned Art Studio" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "abadn_art_studio" + +/area/station/maintenance/abandon_cafeteria + name = "Abandoned Cafeteria" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "abandon_cafe" + +/area/station/maintenance/abandon_diner + name = "Abandoned Diner" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "abadn_diner" + +/area/station/maintenance/abandon_exam + name = "Abandoned Exam" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "abadn_exam" + +// Subtype used for Blueshift +/area/station/maintenance/abandon_exam/cat + name = "Abandoned Cat Exam" + +/area/station/maintenance/abandon_holding_cell + name = "Abandoned Holding Cell" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "abadn_hold_cell" + +/area/station/maintenance/abandon_cafeteria/hydro + name = "Abandoned Cafeteria Hydroponics" + icon_state = "abandon_cafe_hydro" + +/area/station/maintenance/abandon_cafeteria/hydro_walk + name = "Abandoned Cafeteria Hydroponics Walkway" + icon_state = "abandon_cafe_hydro_walk" + +/area/station/maintenance/abandon_kitchen_upper + name = "Abandoned Secondary Kitchen" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "abadn_kitchen_up" + +/area/station/maintenance/abandon_office + name = "Abandoned Office" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "abadn_office" + +/area/station/maintenance/abandon_psych + name = "Abandoned Psychologist Office" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "abadn_psych" + +/area/station/maintenance/abandon_wrestle + name = "Abandoned Wrestle Arena" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "abandon_wrestle" + +/area/station/maintenance/abandon_surgery + name = "Abandoned Surgery" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "abandon_surgery" + +// Regular maint rooms +/area/station/maintenance/aux_eva + name = "Auxiliary EVA Room" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "aux_eva" + +/area/station/maintenance/coffin_supply + name = "Coffin Supplies Room" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "coffin_supply" + +/area/station/maintenance/clown_chamber + name = "Clown Chamber" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "clown_chamber" + +/area/station/maintenance/console_room + name = "Console Room" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "console_room" + +/area/station/maintenance/cult_chapel + name = "Forbidden Chapel" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "cult_chapel" + +/area/station/maintenance/cult_chapel_maint + name = "Forbidden Chapel's Maintenance" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "cult_chapel_maint" + +/area/station/maintenance/dorm_room + name = "Maintenance Dorm Room" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "dorm_room_maint" + +/area/station/maintenance/gag_room + name = "Gag Room" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "gag_room" + +/area/station/maintenance/gamer_lair + name = "Gamer Lair" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "gamer_lair" + +/area/station/maintenance/rus_gambling + name = "Russian Gambling Den" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "russ_gambling" + +/area/station/maintenance/rus_surgery + name = "Russian Organ Extraction Room" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "russ_surgery" + +/area/station/maintenance/xenobio_disposals + name = "Xenobiology Disposals" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "xenobio_dispose" + +/area/station/service/forge + name = "Forge" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "forge" + +/area/station/security/mechbay + name = "Security Mechbay" + +// BlueShift unique rooms, or rooms for ship-class "stations" +// Thruster rooms +/area/station/maintenance/thruster_room + name = "Thruster Room" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "thrust_room" + +/area/station/maintenance/thruster_room/aft + name = "Aft Thruster Room" + icon_state = "aft_thrust_room" + +/area/station/maintenance/thruster_room/central + name = "Central Thruster Room" + icon_state = "cent_thrust_room" + +/area/station/maintenance/thruster_room/port + name = "Port Thruster Room" + icon_state = "port_thrust_room" + +/area/station/maintenance/thruster_room/starboard + name = "Starboard Thruster Room" + icon_state = "sb_thrust_room" + +// EVA Sheds used on BlueShift +/area/station/maintenance/eva_shed + name = "EVA Shed" + icon = 'monkestation/code/modules/blueshift/icons/areas/areas_station.dmi' + icon_state = "eva_shed" + +/area/station/maintenance/eva_shed/port + name = "Port EVA Shed" + icon_state = "eva_shed_port" + +/area/station/maintenance/eva_shed/starboard + name = "Starboard EVA Shed" + icon_state = "eva_shed_sb" + +// Department Rooms +/area/station/science/xenobiology/control + name = "\improper Xenobiology Control Room" + icon_state = "xenobio" diff --git a/monkestation/code/modules/blueshift/armaments/akh_frontier.dm b/monkestation/code/modules/blueshift/armaments/akh_frontier.dm new file mode 100644 index 000000000000..d775fc4e456a --- /dev/null +++ b/monkestation/code/modules/blueshift/armaments/akh_frontier.dm @@ -0,0 +1,97 @@ +/datum/armament_entry/company_import/akh_frontier + category = FRONTIER_EQUIPMENT_NAME + company_bitflag = CARGO_COMPANY_FRONTIER_EQUIPMENT + +// Tools that you could use the rapid fabricator for, but you're too lazy to actually do that + +/datum/armament_entry/company_import/akh_frontier/basic + subcategory = "Hand-Held Equipment" + cost = PAYCHECK_COMMAND + +/datum/armament_entry/company_import/akh_frontier/basic/omni_drill + item_type = /obj/item/screwdriver/omni_drill + +/datum/armament_entry/company_import/akh_frontier/basic/prybar + item_type = /obj/item/crowbar/large/doorforcer + restricted = TRUE + +/datum/armament_entry/company_import/akh_frontier/basic/arc_welder + item_type = /obj/item/weldingtool/electric/arc_welder + +/datum/armament_entry/company_import/akh_frontier/basic/compact_drill + item_type = /obj/item/pickaxe/drill/compact + +// Flatpacked fabricator and related upgrades + +/datum/armament_entry/company_import/akh_frontier/deployables_fab + subcategory = "Deployable Fabrication Equipment" + +/datum/armament_entry/company_import/akh_frontier/deployables_fab/rapid_construction_fabricator + item_type = /obj/item/flatpacked_machine + cost = CARGO_CRATE_VALUE * 6 + restricted = TRUE + +/datum/armament_entry/company_import/akh_frontier/deployables_fab/foodricator + item_type = /obj/item/flatpacked_machine/organics_ration_printer + cost = CARGO_CRATE_VALUE * 2 + +// Various smaller appliances than the deployable machines below + +/datum/armament_entry/company_import/akh_frontier/appliances + subcategory = "Appliances" + cost = PAYCHECK_COMMAND + +/datum/armament_entry/company_import/akh_frontier/appliances/charger + item_type = /obj/item/wallframe/cell_charger_multi + cost = PAYCHECK_CREW + +/datum/armament_entry/company_import/akh_frontier/appliances/wall_heater + item_type = /obj/item/wallframe/wall_heater + cost = PAYCHECK_CREW + +/datum/armament_entry/company_import/akh_frontier/appliances/water_synth + item_type = /obj/item/flatpacked_machine/water_synth + +/datum/armament_entry/company_import/akh_frontier/appliances/hydro_synth + item_type = /obj/item/flatpacked_machine/hydro_synth + +/datum/armament_entry/company_import/akh_frontier/appliances/sustenance_dispenser + item_type = /obj/item/flatpacked_machine/sustenance_machine + cost = PAYCHECK_COMMAND * 2 + +// Flatpacked, ready to deploy machines + +/datum/armament_entry/company_import/akh_frontier/deployables_misc + subcategory = "Deployable General Equipment" + cost = PAYCHECK_COMMAND + +/datum/armament_entry/company_import/akh_frontier/deployables_misc/arc_furnace + item_type = /obj/item/flatpacked_machine/arc_furnace + +/datum/armament_entry/company_import/akh_frontier/deployables_misc/co2_cracker + item_type = /obj/item/flatpacked_machine/co2_cracker + +/datum/armament_entry/company_import/akh_frontier/deployables_misc/recycler + item_type = /obj/item/flatpacked_machine/recycler + +// Flatpacked, ready to deploy machines for power related activities + +/datum/armament_entry/company_import/akh_frontier/deployables + subcategory = "Deployable Power Equipment" + cost = PAYCHECK_COMMAND + +/datum/armament_entry/company_import/akh_frontier/deployables/turbine + item_type = /obj/item/flatpacked_machine/wind_turbine + cost = PAYCHECK_CREW + +/datum/armament_entry/company_import/akh_frontier/deployables/solids_generator + item_type = /obj/item/flatpacked_machine/fuel_generator + +/datum/armament_entry/company_import/akh_frontier/deployables/stirling_generator + item_type = /obj/item/flatpacked_machine/stirling_generator + cost = PAYCHECK_COMMAND * 3 + +/datum/armament_entry/company_import/akh_frontier/deployables/rtg + item_type = /obj/item/flatpacked_machine/rtg + cost = PAYCHECK_COMMAND * 2 + restricted = TRUE diff --git a/monkestation/code/modules/blueshift/armaments/deforest_medical.dm b/monkestation/code/modules/blueshift/armaments/deforest_medical.dm new file mode 100644 index 000000000000..72061dc6b3a4 --- /dev/null +++ b/monkestation/code/modules/blueshift/armaments/deforest_medical.dm @@ -0,0 +1,242 @@ +/datum/armament_entry/company_import/deforest + category = DEFOREST_MEDICAL_NAME + company_bitflag = CARGO_COMPANY_DEFOREST + +// Precompiled first aid kits, ready to go if you don't want to bother getting individual items + +/datum/armament_entry/company_import/deforest/first_aid_kit + subcategory = "First-Aid Kits" + +/datum/armament_entry/deforest/first_aid_kit/civil_defense/comfort + item_type = /obj/item/storage/medkit/civil_defense/comfort/stocked + cost = PAYCHECK_COMMAND * 2 + +/datum/armament_entry/company_import/deforest/first_aid_kit/civil_defense + item_type = /obj/item/storage/medkit/civil_defense/stocked + cost = PAYCHECK_COMMAND * 2.5 + +/datum/armament_entry/company_import/deforest/first_aid_kit/frontier + item_type = /obj/item/storage/medkit/frontier/stocked + cost = PAYCHECK_COMMAND * 3.5 + +/datum/armament_entry/company_import/deforest/first_aid_kit/combat_surgeon + item_type = /obj/item/storage/medkit/combat_surgeon/stocked + cost = PAYCHECK_COMMAND * 3.5 + +/datum/armament_entry/company_import/deforest/first_aid_kit/robo_repair + item_type = /obj/item/storage/medkit/robotic_repair/stocked + cost = PAYCHECK_COMMAND * 3.5 + +/datum/armament_entry/company_import/deforest/first_aid_kit/robo_repair_super + item_type = /obj/item/storage/medkit/robotic_repair/preemo/stocked + cost = PAYCHECK_COMMAND * 8 + +/datum/armament_entry/company_import/deforest/first_aid_kit/first_responder + item_type = /obj/item/storage/backpack/duffelbag/deforest_surgical/stocked + cost = PAYCHECK_COMMAND * 10 + +/datum/armament_entry/company_import/deforest/first_aid_kit/orange_satchel + item_type = /obj/item/storage/backpack/duffelbag/deforest_medkit/stocked + cost = PAYCHECK_COMMAND * 10 + +// Basic first aid supplies like gauze, sutures, mesh, so on + +/datum/armament_entry/company_import/deforest/first_aid + subcategory = "First-Aid Consumables" + +/datum/armament_entry/company_import/deforest/first_aid/coagulant + item_type = /obj/item/stack/medical/suture/coagulant + cost = PAYCHECK_LOWER + +/datum/armament_entry/company_import/deforest/first_aid/suture + item_type = /obj/item/stack/medical/suture + cost = PAYCHECK_LOWER + +/datum/armament_entry/company_import/deforest/first_aid/red_sun + item_type = /obj/item/stack/medical/ointment/red_sun + cost = PAYCHECK_LOWER + +/datum/armament_entry/company_import/deforest/first_aid/ointment + item_type = /obj/item/stack/medical/ointment + cost = PAYCHECK_LOWER + +/datum/armament_entry/company_import/deforest/first_aid/mesh + item_type = /obj/item/stack/medical/mesh + cost = PAYCHECK_LOWER + +/datum/armament_entry/company_import/deforest/first_aid/sterile_gauze + item_type = /obj/item/stack/medical/gauze/sterilized + cost = PAYCHECK_LOWER + +/datum/armament_entry/company_import/deforest/first_aid/amollin + item_type = /obj/item/storage/pill_bottle/painkiller + cost = PAYCHECK_CREW + +/datum/armament_entry/company_import/deforest/first_aid/robo_patch + item_type = /obj/item/reagent_containers/pill/robotic_patch/synth_repair + cost = PAYCHECK_CREW + +/datum/armament_entry/company_import/deforest/first_aid/subdermal_splint + item_type = /obj/item/stack/medical/wound_recovery + cost = PAYCHECK_COMMAND * 2 + +/datum/armament_entry/company_import/deforest/first_aid/rapid_coagulant + item_type = /obj/item/stack/medical/wound_recovery/rapid_coagulant + cost = PAYCHECK_COMMAND * 2 + +// Autoinjectors for healing + +/datum/armament_entry/company_import/deforest/medpens + subcategory = "Medical Autoinjectors" + cost = PAYCHECK_LOWER * 3 + +/datum/armament_entry/company_import/deforest/medpens/occuisate + item_type = /obj/item/reagent_containers/hypospray/medipen/deforest/occuisate + +/datum/armament_entry/company_import/deforest/medpens/morpital + item_type = /obj/item/reagent_containers/hypospray/medipen/deforest/morpital + +/datum/armament_entry/company_import/deforest/medpens/lipital + item_type = /obj/item/reagent_containers/hypospray/medipen/deforest/lipital + +/datum/armament_entry/company_import/deforest/medpens/meridine + item_type = /obj/item/reagent_containers/hypospray/medipen/deforest/meridine + +/datum/armament_entry/company_import/deforest/medpens/calopine + item_type = /obj/item/reagent_containers/hypospray/medipen/deforest/calopine + +/datum/armament_entry/company_import/deforest/medpens/coagulants + item_type = /obj/item/reagent_containers/hypospray/medipen/deforest/coagulants + +/datum/armament_entry/company_import/deforest/medpens/lepoturi + item_type = /obj/item/reagent_containers/hypospray/medipen/deforest/lepoturi + +/datum/armament_entry/company_import/deforest/medpens/psifinil + item_type = /obj/item/reagent_containers/hypospray/medipen/deforest/psifinil + +/datum/armament_entry/company_import/deforest/medpens/halobinin + item_type = /obj/item/reagent_containers/hypospray/medipen/deforest/halobinin + +/datum/armament_entry/company_import/deforest/medpens/robo_solder + item_type = /obj/item/reagent_containers/hypospray/medipen/deforest/robot_liquid_solder + +/datum/armament_entry/company_import/deforest/medpens/robo_cleaner + item_type = /obj/item/reagent_containers/hypospray/medipen/deforest/robot_system_cleaner + +/datum/armament_entry/company_import/deforest/medpens/pentibinin + item_type = /obj/item/reagent_containers/hypospray/medipen/deforest/pentibinin + contraband = TRUE + +// Autoinjectors for fighting + +/datum/armament_entry/company_import/deforest/medpens_stim + subcategory = "Stimulant Autoinjectors" + cost = PAYCHECK_COMMAND * 2 + +/datum/armament_entry/company_import/deforest/medpens_stim/adrenaline + item_type = /obj/item/reagent_containers/hypospray/medipen/deforest/adrenaline + +/datum/armament_entry/company_import/deforest/medpens_stim/synephrine + item_type = /obj/item/reagent_containers/hypospray/medipen/deforest/synephrine + +/datum/armament_entry/company_import/deforest/medpens_stim/krotozine + item_type = /obj/item/reagent_containers/hypospray/medipen/deforest/krotozine + +/datum/armament_entry/company_import/deforest/medpens_stim/aranepaine + item_type = /obj/item/reagent_containers/hypospray/medipen/deforest/aranepaine + contraband = TRUE + +/datum/armament_entry/company_import/deforest/medpens_stim/synalvipitol + item_type = /obj/item/reagent_containers/hypospray/medipen/deforest/synalvipitol + contraband = TRUE + +/datum/armament_entry/company_import/deforest/medpens_stim/twitch + item_type = /obj/item/reagent_containers/hypospray/medipen/deforest/twitch + cost = PAYCHECK_COMMAND * 3 + contraband = TRUE + +/datum/armament_entry/company_import/deforest/medpens_stim/demoneye + item_type = /obj/item/reagent_containers/hypospray/medipen/deforest/demoneye + cost = PAYCHECK_COMMAND * 3 + contraband = TRUE + +// Equipment, from defibs to scanners to surgical tools + +/datum/armament_entry/company_import/deforest/equipment + subcategory = "Medical Equipment" + +/datum/armament_entry/company_import/deforest/equipment/treatment_zone_projector + item_type = /obj/item/holosign_creator/medical/treatment_zone + cost = PAYCHECK_LOWER + +/datum/armament_entry/company_import/deforest/equipment/health_analyzer + item_type = /obj/item/healthanalyzer + cost = PAYCHECK_LOWER + +/datum/armament_entry/company_import/deforest/equipment/loaded_defib + item_type = /obj/item/defibrillator/loaded + cost = PAYCHECK_COMMAND + +/datum/armament_entry/company_import/deforest/equipment/surgical_tools + item_type = /obj/item/surgery_tray + cost = PAYCHECK_COMMAND + +/datum/armament_entry/company_import/deforest/equipment/advanced_health_analyer + item_type = /obj/item/healthanalyzer/advanced + cost = PAYCHECK_COMMAND * 3 + +/datum/armament_entry/company_import/deforest/equipment/penlite_defib_mount + item_type = /obj/item/wallframe/defib_mount/charging + cost = PAYCHECK_CREW * 3 + +/datum/armament_entry/company_import/deforest/equipment/advanced_scalpel + item_type = /obj/item/scalpel/advanced + cost = PAYCHECK_COMMAND * 3 + +/datum/armament_entry/company_import/deforest/equipment/advanced_retractor + item_type = /obj/item/retractor/advanced + cost = PAYCHECK_COMMAND * 3 + +/datum/armament_entry/company_import/deforest/equipment/advanced_cautery + item_type = /obj/item/cautery/advanced + cost = PAYCHECK_COMMAND * 3 + + +/datum/armament_entry/company_import/deforest/equipment/medstation + item_type = /obj/item/wallframe/frontier_medstation + cost = PAYCHECK_COMMAND * 5 + +// Advanced implants, some of these can be printed but this is a way to get them before tech if you REALLY wanted + +/datum/armament_entry/company_import/deforest/cyber_implants + subcategory = "Cybernetic Implants" + cost = PAYCHECK_COMMAND * 3 + +/datum/armament_entry/company_import/deforest/cyber_implants/razorwire + name = "Razorwire Spool Implant" + item_type = /obj/item/organ/internal/cyberimp/arm/item_set/razorwire +// Modsuit Modules from the medical category, here instead of in Nakamura because nobody buys from this company + +/datum/armament_entry/company_import/deforest/medical_modules + subcategory = "MOD Medical Modules" + cost = PAYCHECK_COMMAND * 2 + +/datum/armament_entry/company_import/deforest/medical_modules/injector + name = "MOD injector module" + item_type = /obj/item/mod/module/injector + +/datum/armament_entry/company_import/deforest/medical_modules/organ_thrower + name = "MOD organ thrower module" + item_type = /obj/item/mod/module/organ_thrower + +/datum/armament_entry/company_import/deforest/medical_modules/patient_transport + name = "MOD patient transport module" + item_type = /obj/item/mod/module/criminalcapture/patienttransport + +/datum/armament_entry/company_import/deforest/medical_modules/thread_ripper + name = "MOD thread ripper module" + item_type = /obj/item/mod/module/thread_ripper + +/datum/armament_entry/company_import/deforest/medical_modules/surgical_processor + name = "MOD surgical processor module" + item_type = /obj/item/mod/module/surgical_processor diff --git a/monkestation/code/modules/blueshift/armaments/donkco.dm b/monkestation/code/modules/blueshift/armaments/donkco.dm new file mode 100644 index 000000000000..10f49d03de5e --- /dev/null +++ b/monkestation/code/modules/blueshift/armaments/donkco.dm @@ -0,0 +1,138 @@ +/datum/armament_entry/company_import/donk + category = DONK_CO_NAME + company_bitflag = CARGO_COMPANY_DONK + +// Donk Co foods, like donk pockets and ready donk + +/datum/armament_entry/company_import/donk/food + subcategory = "Microwave Foods" + cost = PAYCHECK_CREW + +/datum/armament_entry/company_import/donk/food/ready_donk + item_type = /obj/item/food/ready_donk + +/datum/armament_entry/company_import/donk/food/ready_donkhiladas + item_type = /obj/item/food/ready_donk/donkhiladas + +/datum/armament_entry/company_import/donk/food/ready_donk_n_cheese + item_type = /obj/item/food/ready_donk/mac_n_cheese + +/datum/armament_entry/company_import/donk/food/pockets + item_type = /obj/item/storage/box/donkpockets + +/datum/armament_entry/company_import/donk/food/berry_pockets + item_type = /obj/item/storage/box/donkpockets/donkpocketberry + +/datum/armament_entry/company_import/donk/food/honk_pockets + item_type = /obj/item/storage/box/donkpockets/donkpockethonk + +/datum/armament_entry/company_import/donk/food/pizza_pockets + item_type = /obj/item/storage/box/donkpockets/donkpocketpizza + +/datum/armament_entry/company_import/donk/food/spicy_pockets + item_type = /obj/item/storage/box/donkpockets/donkpocketspicy + +/datum/armament_entry/company_import/donk/food/teriyaki_pockets + item_type = /obj/item/storage/box/donkpockets/donkpocketteriyaki + +// Random donk toy items, fake jumpsuits, balloons, so on + +// Donk merch gives you more interest than other items, buy donk bling and get company interest faster! + +/datum/armament_entry/company_import/donk/merch + subcategory = "Donk Co. Merchandise" + +/datum/armament_entry/company_import/donk/merch/donk_carpet + item_type = /obj/item/stack/tile/carpet/donk/thirty + cost = PAYCHECK_CREW + +/datum/armament_entry/company_import/donk/merch/tacticool_turtleneck + item_type = /obj/item/clothing/under/syndicate/tacticool + cost = PAYCHECK_CREW + +/datum/armament_entry/company_import/donk/merch/tacticool_turtleneck_skirt + item_type = /obj/item/clothing/under/syndicate/tacticool/skirt + cost = PAYCHECK_CREW + +/datum/armament_entry/company_import/donk/merch/fake_centcom_turtleneck + item_type = /obj/item/clothing/under/rank/centcom/officer/replica + cost = PAYCHECK_CREW + +/datum/armament_entry/company_import/donk/merch/fake_centcom_turtleneck_skirt + item_type = /obj/item/clothing/under/rank/centcom/officer_skirt/replica + cost = PAYCHECK_CREW + +/datum/armament_entry/company_import/donk/merch/snack_rig + item_type = /obj/item/storage/belt/military/snack + cost = PAYCHECK_COMMAND + +/datum/armament_entry/company_import/donk/merch/fake_syndie_suit + item_type = /obj/item/storage/box/fakesyndiesuit + cost = PAYCHECK_CREW + +/datum/armament_entry/company_import/donk/merch/valid_bloon + item_type = /obj/item/toy/balloon/arrest + cost = PAYCHECK_CREW + +// Donksoft weapons + +/datum/armament_entry/company_import/donk/foamforce + subcategory = "Foam Force (TM) Blasters" + +/datum/armament_entry/company_import/donk/foamforce/foam_pistol + item_type = /obj/item/gun/ballistic/automatic/pistol/toy + cost = PAYCHECK_COMMAND + +/datum/armament_entry/company_import/donk/foamforce/foam_shotgun + item_type = /obj/item/gun/ballistic/shotgun/toy/unrestricted + cost = PAYCHECK_COMMAND + +/datum/armament_entry/company_import/donk/foamforce/foam_smg + item_type = /obj/item/gun/ballistic/automatic/toy/unrestricted + cost = PAYCHECK_COMMAND * 3 + +/datum/armament_entry/company_import/donk/foamforce/foam_c20 + item_type = /obj/item/gun/ballistic/automatic/c20r/toy/unrestricted + cost = PAYCHECK_COMMAND * 3 + +/datum/armament_entry/company_import/donk/foamforce/foam_lmg + item_type = /obj/item/gun/ballistic/automatic/l6_saw/toy/unrestricted + cost = PAYCHECK_COMMAND * 5 + +/datum/armament_entry/company_import/donk/mod_modules + subcategory = "Donk Co. MOD modules" + cost = PAYCHECK_COMMAND + +/* +/datum/armament_entry/company_import/donk/mod_modules/dart_collector_safe + item_type = /obj/item/mod/module/recycler/donk/safe + cost = PAYCHECK_COMMAND + +/datum/armament_entry/company_import/donk/mod_modules/dart_collector + item_type = /obj/item/mod/module/recycler/donk + cost = PAYCHECK_COMMAND * 4 +*/ + +/datum/armament_entry/company_import/donk/foamforce_ammo + subcategory = "Foam Force (TM) Dart Accessories" + cost = PAYCHECK_CREW + +/datum/armament_entry/company_import/donk/foamforce_ammo/darts + item_type = /obj/item/ammo_box/foambox + cost = PAYCHECK_LOWER + +/datum/armament_entry/company_import/donk/foamforce_ammo/riot_darts + item_type = /obj/item/ammo_box/foambox/riot + cost = PAYCHECK_COMMAND * 1.5 + +/datum/armament_entry/company_import/donk/foamforce_ammo/pistol_mag + item_type = /obj/item/ammo_box/magazine/toy/pistol + +/datum/armament_entry/company_import/donk/foamforce_ammo/smg_mag + item_type = /obj/item/ammo_box/magazine/toy/smg + +/datum/armament_entry/company_import/donk/foamforce_ammo/smgm45_mag + item_type = /obj/item/ammo_box/magazine/toy/smgm45 + +/datum/armament_entry/company_import/donk/foamforce_ammo/m762_mag + item_type = /obj/item/ammo_box/magazine/toy/m762 diff --git a/monkestation/code/modules/blueshift/armaments/jarnsimiour.dm b/monkestation/code/modules/blueshift/armaments/jarnsimiour.dm new file mode 100644 index 000000000000..ea17be907421 --- /dev/null +++ b/monkestation/code/modules/blueshift/armaments/jarnsimiour.dm @@ -0,0 +1,24 @@ +/datum/armament_entry/company_import/blacksteel + category = BLACKSTEEL_FOUNDATION_NAME + company_bitflag = CARGO_COMPANY_BLACKSTEEL + +// A collection of melee weapons fitting the company's more exotic feeling weapon selection + +/datum/armament_entry/company_import/blacksteel/blade + subcategory = "Bladed Weapons" + +/datum/armament_entry/company_import/blacksteel/blade/hunting_knife + item_type = /obj/item/knife/hunting + cost = PAYCHECK_CREW * 2 + +/datum/armament_entry/company_import/blacksteel/blade/survival_knife + item_type = /obj/item/knife/combat/survival + cost = PAYCHECK_CREW * 2 + +/datum/armament_entry/company_import/blacksteel/blade/bowie_knife + item_type = /obj/item/storage/belt/bowie_sheath + cost = PAYCHECK_COMMAND * 3 + +/datum/armament_entry/company_import/blacksteel/blade/shamshir_sabre + item_type = /obj/item/storage/belt/sabre/cargo + cost = PAYCHECK_COMMAND * 3 diff --git a/monkestation/code/modules/blueshift/armaments/kaharaman.dm b/monkestation/code/modules/blueshift/armaments/kaharaman.dm new file mode 100644 index 000000000000..b392ab14c2c4 --- /dev/null +++ b/monkestation/code/modules/blueshift/armaments/kaharaman.dm @@ -0,0 +1,109 @@ +/datum/armament_entry/company_import/kahraman + category = KAHRAMAN_INDUSTRIES_NAME + company_bitflag = CARGO_COMPANY_KAHRAMAN + +/// Kahraman-made machines +/datum/armament_entry/company_import/kahraman/machinery + subcategory = "Machinery" + +/datum/armament_entry/company_import/kahraman/machinery/biogenerator + item_type = /obj/item/flatpacked_machine/organics_printer + description = "An advanced machine seen in frontier outposts and colonies capable of turning organic plant matter into \ + reagents and items of use that a fabricator can't typically make." + cost = CARGO_CRATE_VALUE * 3 + +/datum/armament_entry/company_import/kahraman/machinery/ore_thumper + item_type = /obj/item/flatpacked_machine/ore_thumper + description = "A frame with a heavy block of metal suspended atop a pipe. \ + Must be deployed outdoors and given a wired power connection. \ + Forces pressurized gas into the ground which brings up buried resources." + cost = CARGO_CRATE_VALUE * 5 + +/datum/armament_entry/company_import/kahraman/machinery/gps_beacon + item_type = /obj/item/flatpacked_machine/gps_beacon + description = "A packed GPS beacon, can be deployed and anchored into the ground to \ + provide and unobstructed homing beacon for wayward travelers across the galaxy." + cost = PAYCHECK_LOWER + +// Occupational health and safety? Never heard of her. + +/datum/armament_entry/company_import/kahraman/ppe + subcategory = "Protective Equipment" + +/datum/armament_entry/company_import/kahraman/ppe/hazard_mod + item_type = /obj/item/mod/control/pre_equipped/frontier_colonist + cost = PAYCHECK_COMMAND * 6.5 + +/datum/armament_entry/company_import/kahraman/ppe/gas_mask + item_type = /obj/item/clothing/mask/gas/atmos/frontier_colonist + cost = PAYCHECK_COMMAND + +/datum/armament_entry/company_import/kahraman/ppe/headset + item_type = /obj/item/radio/headset/headset_frontier_colonist + cost = PAYCHECK_COMMAND * 1.5 + +/datum/armament_entry/company_import/kahraman/ppe/flak_vest + item_type = /obj/item/clothing/suit/frontier_colonist_flak + cost = PAYCHECK_COMMAND + +/datum/armament_entry/company_import/kahraman/ppe/tanker_helmet + item_type = /obj/item/clothing/head/frontier_colonist_helmet + cost = PAYCHECK_COMMAND + +// Work clothing + +/datum/armament_entry/company_import/kahraman/work_clothing + subcategory = "Clothing" + +/datum/armament_entry/company_import/kahraman/work_clothing/jumpsuit + item_type = /obj/item/clothing/under/frontier_colonist + cost = PAYCHECK_CREW + +/datum/armament_entry/company_import/kahraman/work_clothing/jacket + item_type = /obj/item/clothing/suit/jacket/frontier_colonist + cost = PAYCHECK_CREW + +/datum/armament_entry/company_import/kahraman/work_clothing/jacket_short + item_type = /obj/item/clothing/suit/jacket/frontier_colonist/short + cost = PAYCHECK_CREW + +/datum/armament_entry/company_import/kahraman/work_clothing/med_jacket + item_type = /obj/item/clothing/suit/jacket/frontier_colonist/medical + cost = PAYCHECK_CREW + +/datum/armament_entry/company_import/kahraman/work_clothing/ballcap + item_type = /obj/item/clothing/head/soft/frontier_colonist + cost = PAYCHECK_CREW + +/datum/armament_entry/company_import/kahraman/work_clothing/med_ballcap + item_type = /obj/item/clothing/head/soft/frontier_colonist/medic + cost = PAYCHECK_CREW + +/datum/armament_entry/company_import/kahraman/work_clothing/booties + item_type = /obj/item/clothing/shoes/jackboots/frontier_colonist + cost = PAYCHECK_CREW + +/datum/armament_entry/company_import/kahraman/work_clothing/gloves + item_type = /obj/item/clothing/gloves/frontier_colonist + cost = PAYCHECK_CREW + +// "Equipment", so storage items and whatnot + +/datum/armament_entry/company_import/kahraman/storage_equipment + subcategory = "Personal Equipment" + +/datum/armament_entry/company_import/kahraman/storage_equipment/backpack + item_type = /obj/item/storage/backpack/industrial/frontier_colonist + cost = PAYCHECK_CREW + +/datum/armament_entry/company_import/kahraman/storage_equipment/satchel + item_type = /obj/item/storage/backpack/industrial/frontier_colonist/satchel + cost = PAYCHECK_CREW + +/datum/armament_entry/company_import/kahraman/storage_equipment/messenger + item_type = /obj/item/storage/backpack/industrial/frontier_colonist/messenger + cost = PAYCHECK_CREW + +/datum/armament_entry/company_import/kahraman/storage_equipment/belt + item_type = /obj/item/storage/belt/utility/frontier_colonist + cost = PAYCHECK_CREW diff --git a/monkestation/code/modules/blueshift/armaments/microstar.dm b/monkestation/code/modules/blueshift/armaments/microstar.dm new file mode 100644 index 000000000000..47421531276f --- /dev/null +++ b/monkestation/code/modules/blueshift/armaments/microstar.dm @@ -0,0 +1,61 @@ +/datum/armament_entry/company_import/microstar + category = MICROSTAR_ENERGY_NAME + company_bitflag = CARGO_COMPANY_MICROSTAR + +// Basic lethal/disabler beam weapons, includes the base mcr + +/datum/armament_entry/company_import/microstar/basic_energy_weapons + subcategory = "Basic Energy Smallarms" + +/datum/armament_entry/company_import/microstar/basic_energy_weapons/disabler + item_type = /obj/item/gun/energy/disabler + cost = PAYCHECK_CREW * 5 + +/datum/armament_entry/company_import/microstar/basic_energy_weapons/mini_egun + item_type = /obj/item/gun/energy/e_gun/mini + cost = PAYCHECK_CREW * 5 + +/datum/armament_entry/company_import/microstar/lethal_sidearm/energy_holster + item_type = /obj/item/storage/belt/holster/energy/thermal + cost = PAYCHECK_COMMAND * 6 + +/datum/armament_entry/company_import/microstar/basic_energy_long_weapons + subcategory = "Basic Energy Longarms" + +/datum/armament_entry/company_import/microstar/basic_energy_long_weapons/laser + item_type = /obj/item/gun/energy/laser + cost = PAYCHECK_CREW * 5 + +/datum/armament_entry/company_import/microstar/basic_energy_long_weapons/laser_carbine + item_type = /obj/item/gun/energy/laser/carbine + cost = PAYCHECK_CREW * 7 // slightly more expensive due to ease of use/full auto + +/datum/armament_entry/company_import/microstar/basic_energy_long_weapons/egun + item_type = /obj/item/gun/energy/e_gun + cost = PAYCHECK_COMMAND * 4 + +/datum/armament_entry/company_import/microstar/basic_energy_long_weapons/mod_laser_small + item_type = /obj/item/gun/energy/modular_laser_rifle/carbine + cost = PAYCHECK_COMMAND * 5 + +/datum/armament_entry/company_import/microstar/basic_energy_long_weapons/mod_laser_large + item_type = /obj/item/gun/energy/modular_laser_rifle + cost = PAYCHECK_COMMAND * 8 + +// More expensive, unique energy weapons +/datum/armament_entry/company_import/microstar/experimental_energy + subcategory = "Experimental Energy Weapons" + cost = PAYCHECK_COMMAND * 6 + restricted = TRUE + +/datum/armament_entry/company_import/microstar/experimental_energy/hellfire + item_type = /obj/item/gun/energy/laser/hellgun + +/datum/armament_entry/company_import/microstar/experimental_energy/ion_carbine + item_type = /obj/item/gun/energy/ionrifle/carbine + +/datum/armament_entry/company_import/microstar/experimental_energy/xray_gun + item_type = /obj/item/gun/energy/xray + +/datum/armament_entry/company_import/microstar/experimental_energy/tesla_cannon + item_type = /obj/item/gun/energy/tesla_cannon diff --git a/monkestation/code/modules/blueshift/armaments/nakamura.dm b/monkestation/code/modules/blueshift/armaments/nakamura.dm new file mode 100644 index 000000000000..d73bff7e4d7e --- /dev/null +++ b/monkestation/code/modules/blueshift/armaments/nakamura.dm @@ -0,0 +1,204 @@ +/datum/armament_entry/company_import/nakamura_modsuits + category = NAKAMURA_ENGINEERING_MODSUITS_NAME + company_bitflag = CARGO_COMPANY_NAKAMURA_MODSUITS + +// MOD cores + +/datum/armament_entry/company_import/nakamura_modsuits/core + subcategory = "MOD Core Modules" + +/datum/armament_entry/company_import/nakamura_modsuits/core/standard + item_type = /obj/item/mod/core/standard + cost = PAYCHECK_CREW * 2 + +/datum/armament_entry/company_import/nakamura_modsuits/core/plasma + item_type = /obj/item/mod/core/plasma + cost = PAYCHECK_CREW + +/datum/armament_entry/company_import/nakamura_modsuits/core/ethereal + item_type = /obj/item/mod/core/ethereal + cost = PAYCHECK_CREW + +// MOD plating + +/datum/armament_entry/company_import/nakamura_modsuits/plating + subcategory = "MOD External Plating" + +/datum/armament_entry/company_import/nakamura_modsuits/plating/standard + name = "MOD Standard Plating" + item_type = /obj/item/mod/construction/plating + cost = PAYCHECK_CREW + +/datum/armament_entry/company_import/nakamura_modsuits/plating/medical + name = "MOD Medical Plating" + item_type = /obj/item/mod/construction/plating/medical + cost = PAYCHECK_COMMAND + +/datum/armament_entry/company_import/nakamura_modsuits/plating/engineering + name = "MOD Engineering Plating" + item_type = /obj/item/mod/construction/plating/engineering + cost = PAYCHECK_COMMAND + +/datum/armament_entry/company_import/nakamura_modsuits/plating/atmospherics + name = "MOD Atmospherics Plating" + item_type = /obj/item/mod/construction/plating/atmospheric + cost = PAYCHECK_COMMAND + +/datum/armament_entry/company_import/nakamura_modsuits/plating/security + name = "MOD Security Plating" + item_type = /obj/item/mod/construction/plating/security + cost = PAYCHECK_COMMAND * 2 + restricted = TRUE + +/datum/armament_entry/company_import/nakamura_modsuits/plating/clown + name = "MOD CosmoHonk (TM) Plating" + item_type = /obj/item/mod/construction/plating/cosmohonk + cost = PAYCHECK_COMMAND * 2 + contraband = TRUE + +// MOD modules + +// Protection, so shielding and whatnot + +/datum/armament_entry/company_import/nakamura_modsuits/protection_modules + subcategory = "MOD Protection Modules" + +/datum/armament_entry/company_import/nakamura_modsuits/protection_modules/welding + item_type = /obj/item/mod/module/welding + cost = PAYCHECK_CREW + +/datum/armament_entry/company_import/nakamura_modsuits/protection_modules/longfall + item_type = /obj/item/mod/module/longfall + cost = PAYCHECK_CREW + +/datum/armament_entry/company_import/nakamura_modsuits/protection_modules/rad_protection + item_type = /obj/item/mod/module/rad_protection + cost = PAYCHECK_CREW + +/datum/armament_entry/company_import/nakamura_modsuits/protection_modules/emp_shield + item_type = /obj/item/mod/module/emp_shield + cost = PAYCHECK_CREW + +/datum/armament_entry/company_import/nakamura_modsuits/protection_modules/armor_plates + item_type = /obj/item/mod/module/armor_booster/retractplates + cost = PAYCHECK_COMMAND * 3 + restricted = TRUE + contraband = TRUE + +// Utility modules, general purpose stuff that really anyone might want + +/datum/armament_entry/company_import/nakamura_modsuits/utility_modules + subcategory = "MOD Utility Modules" + +/datum/armament_entry/company_import/nakamura_modsuits/utility_modules/flashlight + item_type = /obj/item/mod/module/flashlight + cost = PAYCHECK_LOWER + +/datum/armament_entry/company_import/nakamura_modsuits/utility_modules/regulator + item_type = /obj/item/mod/module/thermal_regulator + cost = PAYCHECK_LOWER + +/datum/armament_entry/company_import/nakamura_modsuits/utility_modules/mouthhole + item_type = /obj/item/mod/module/mouthhole + cost = PAYCHECK_LOWER + +/datum/armament_entry/company_import/nakamura_modsuits/utility_modules/signlang + item_type = /obj/item/mod/module/signlang_radio + cost = PAYCHECK_LOWER + +/datum/armament_entry/company_import/nakamura_modsuits/utility_modules/plasma_stabilizer + item_type = /obj/item/mod/module/plasma_stabilizer + cost = PAYCHECK_LOWER + +/datum/armament_entry/company_import/nakamura_modsuits/utility_modules/basic_storage + item_type = /obj/item/mod/module/storage + cost = PAYCHECK_LOWER + +/datum/armament_entry/company_import/nakamura_modsuits/utility_modules/expanded_storage + item_type = /obj/item/mod/module/storage/large_capacity + cost = PAYCHECK_COMMAND + +/datum/armament_entry/company_import/nakamura_modsuits/utility_modules/retract_plates + item_type = /obj/item/mod/module/plate_compression + cost = PAYCHECK_COMMAND + +/datum/armament_entry/company_import/nakamura_modsuits/utility_modules/magnetic_deploy + item_type = /obj/item/mod/module/springlock/contractor + cost = PAYCHECK_COMMAND * 2 + +// Mobility modules, jetpacks and stuff + +/datum/armament_entry/company_import/nakamura_modsuits/mobility_modules + subcategory = "MOD Mobility Modules" + +/datum/armament_entry/company_import/nakamura_modsuits/mobility_modules/tether + item_type = /obj/item/mod/module/tether + cost = PAYCHECK_LOWER + +/datum/armament_entry/company_import/nakamura_modsuits/mobility_modules/magboot + item_type = /obj/item/mod/module/magboot + cost = PAYCHECK_CREW + +/datum/armament_entry/company_import/nakamura_modsuits/mobility_modules/jetpack + item_type = /obj/item/mod/module/jetpack + cost = PAYCHECK_COMMAND + +/datum/armament_entry/company_import/nakamura_modsuits/mobility_modules/pathfinder + item_type = /obj/item/mod/module/pathfinder + cost = PAYCHECK_CREW + +/datum/armament_entry/company_import/nakamura_modsuits/mobility_modules/disposals + item_type = /obj/item/mod/module/disposal_connector + cost = PAYCHECK_CREW + +/datum/armament_entry/company_import/nakamura_modsuits/mobility_modules/sphere + item_type = /obj/item/mod/module/sphere_transform + cost = PAYCHECK_COMMAND * 2 + +/datum/armament_entry/company_import/nakamura_modsuits/mobility_modules/atrocinator + item_type = /obj/item/mod/module/atrocinator + cost = PAYCHECK_COMMAND * 2 + contraband = TRUE + +// Novelty modules, goofy stuff that's rare/unprintable, but doesn't fit in any of the above categories + +/datum/armament_entry/company_import/nakamura_modsuits/novelty_modules + subcategory = "MOD Novelty Modules" + +/datum/armament_entry/company_import/nakamura_modsuits/novelty_modules/waddle + item_type = /obj/item/mod/module/waddle + cost = PAYCHECK_LOWER + +/datum/armament_entry/company_import/nakamura_modsuits/novelty_modules/bike_horn + item_type = /obj/item/mod/module/bikehorn + cost = PAYCHECK_LOWER + +/datum/armament_entry/company_import/nakamura_modsuits/novelty_modules/microwave_beam + item_type = /obj/item/mod/module/microwave_beam + cost = PAYCHECK_CREW + +/datum/armament_entry/company_import/nakamura_modsuits/novelty_modules/tanner + item_type = /obj/item/mod/module/tanner + cost = PAYCHECK_CREW + contraband = TRUE + +/datum/armament_entry/company_import/nakamura_modsuits/novelty_modules/rave + item_type = /obj/item/mod/module/visor/rave + cost = PAYCHECK_CREW + contraband = TRUE + +/datum/armament_entry/company_import/nakamura_modsuits/novelty_modules/hat_stabilizer + item_type = /obj/item/mod/module/hat_stabilizer + cost = PAYCHECK_CREW + +/datum/armament_entry/company_import/nakamura_modsuits/novelty_modules/kinesis + item_type = /obj/item/mod/module/anomaly_locked/kinesis/prebuilt/locked + cost = PAYCHECK_COMMAND * 15 + +/datum/armament_entry/company_import/nakamura_modsuits/novelty_modules/antigrav + item_type = /obj/item/mod/module/anomaly_locked/antigrav/prebuilt/locked + cost = PAYCHECK_COMMAND * 15 + +/datum/armament_entry/company_import/nakamura_modsuits/novelty_modules/teleporter + item_type = /obj/item/mod/module/anomaly_locked/teleporter/prebuilt/locked + cost = PAYCHECK_COMMAND * 20 diff --git a/monkestation/code/modules/blueshift/armaments/nri.dm b/monkestation/code/modules/blueshift/armaments/nri.dm new file mode 100644 index 000000000000..f1cf4903ce19 --- /dev/null +++ b/monkestation/code/modules/blueshift/armaments/nri.dm @@ -0,0 +1,136 @@ +/datum/armament_entry/company_import/nri_surplus + category = NRI_SURPLUS_COMPANY_NAME + company_bitflag = CARGO_COMPANY_NRI_SURPLUS + +// Various NRI clothing items + +/datum/armament_entry/company_import/nri_surplus/clothing + subcategory = "Clothing Supplies" + +/datum/armament_entry/company_import/nri_surplus/clothing/uniform + item_type = /obj/item/clothing/under/syndicate/rus_army/cin_surplus/random_color + cost = PAYCHECK_CREW + +/datum/armament_entry/company_import/nri_surplus/clothing/belt + item_type = /obj/item/storage/belt/military/cin_surplus/random_color + cost = PAYCHECK_CREW + +/datum/armament_entry/company_import/nri_surplus/clothing/backpack + item_type = /obj/item/storage/backpack/industrial/cin_surplus/random_color + cost = PAYCHECK_CREW + +/datum/armament_entry/company_import/nri_surplus/clothing/helmet + item_type = /obj/item/clothing/head/helmet/cin_surplus_helmet/random_color + cost = PAYCHECK_COMMAND + +/datum/armament_entry/company_import/nri_surplus/clothing/vest + item_type = /obj/item/clothing/suit/armor/vest/cin_surplus_vest + cost = PAYCHECK_COMMAND + +/datum/armament_entry/company_import/nri_surplus/clothing/police_uniform + item_type = /obj/item/clothing/under/colonial/nri_police + cost = PAYCHECK_CREW + restricted = TRUE + +/datum/armament_entry/company_import/nri_surplus/clothing/police_cloak + item_type = /obj/item/clothing/neck/cloak/colonial/nri_police + cost = PAYCHECK_CREW + restricted = TRUE + +/datum/armament_entry/company_import/nri_surplus/clothing/police_cap + item_type = /obj/item/clothing/head/hats/colonial/nri_police + cost = PAYCHECK_CREW + restricted = TRUE + +/datum/armament_entry/company_import/nri_surplus/clothing/police_mask + item_type = /obj/item/clothing/mask/gas/nri_police + cost = PAYCHECK_CREW*2 + restricted = TRUE + +/datum/armament_entry/company_import/nri_surplus/clothing/police_vest + item_type = /obj/item/clothing/head/helmet/nri_police + cost = PAYCHECK_COMMAND + restricted = TRUE + +/datum/armament_entry/company_import/nri_surplus/clothing/police_helmet + item_type = /obj/item/clothing/suit/armor/vest/nri_police + cost = PAYCHECK_COMMAND + restricted = TRUE + +// Random surplus store tier stuff, flags, old rations, multitools you'll never use, so on + +/datum/armament_entry/company_import/nri_surplus/misc + subcategory = "Miscellaneous Supplies" + +/datum/armament_entry/company_import/nri_surplus/misc/flares + item_type = /obj/item/storage/box/nri_flares + cost = PAYCHECK_LOWER + +/datum/armament_entry/company_import/nri_surplus/misc/binoculars + item_type = /obj/item/binoculars + cost = PAYCHECK_CREW + +/datum/armament_entry/company_import/nri_surplus/misc/screwdriver_pen + item_type = /obj/item/pen/screwdriver + cost = PAYCHECK_CREW + +/datum/armament_entry/company_import/nri_surplus/misc/trench_tool + item_type = /obj/item/trench_tool + cost = PAYCHECK_CREW + +/datum/armament_entry/company_import/nri_surplus/firearm + subcategory = "Firearms" + +/datum/armament_entry/company_import/nri_surplus/firearm/shotgun_revolver + item_type = /obj/item/gun/ballistic/revolver/shotgun_revolver + cost = PAYCHECK_COMMAND * 6 + +/datum/armament_entry/company_import/nri_surplus/firearm/plasma_thrower + item_type = /obj/item/gun/ballistic/automatic/pistol/plasma_thrower + cost = PAYCHECK_COMMAND * 6 + +/datum/armament_entry/company_import/nri_surplus/firearm/plasma_marksman + item_type = /obj/item/gun/ballistic/automatic/pistol/plasma_marksman + cost = PAYCHECK_COMMAND * 6 + +/datum/armament_entry/company_import/nri_surplus/firearm/miecz + item_type = /obj/item/gun/ballistic/automatic/miecz + cost = PAYCHECK_COMMAND * 10 + +/datum/armament_entry/company_import/nri_surplus/firearm/sakhno_rifle + item_type = /obj/item/gun/ballistic/rifle/boltaction + cost = PAYCHECK_COMMAND * 12 + +/datum/armament_entry/company_import/nri_surplus/firearm/lanca + item_type = /obj/item/gun/ballistic/automatic/lanca + contraband = TRUE + cost = PAYCHECK_COMMAND * 14 + restricted = TRUE + +/datum/armament_entry/company_import/nri_surplus/firearm/anti_materiel_rifle + item_type = /obj/item/gun/ballistic/automatic/wylom + contraband = TRUE + cost = PAYCHECK_COMMAND * 16 + restricted = TRUE + +/datum/armament_entry/company_import/nri_surplus/firearm_ammo + subcategory = "Firearm Magazines" + cost = PAYCHECK_CREW + +/datum/armament_entry/company_import/nri_surplus/firearm_ammo/plasma_battery + item_type = /obj/item/ammo_box/magazine/recharge/plasma_battery + +/datum/armament_entry/company_import/nri_surplus/firearm_ammo/miecz + item_type = /obj/item/ammo_box/magazine/miecz/spawns_empty + +/datum/armament_entry/company_import/nri_surplus/firearm_ammo/sakhno + item_type = /obj/item/ammo_box/strilka310 + +/datum/armament_entry/company_import/nri_surplus/firearm_ammo/lanca + item_type = /obj/item/ammo_box/magazine/lanca/spawns_empty + contraband = TRUE + +/datum/armament_entry/company_import/nri_surplus/firearm_ammo/amr_magazine + item_type = /obj/item/ammo_box/magazine/wylom + contraband = TRUE + cost = PAYCHECK_CREW * 3 diff --git a/monkestation/code/modules/blueshift/armaments/sol.dm b/monkestation/code/modules/blueshift/armaments/sol.dm new file mode 100644 index 000000000000..aa5363cb3014 --- /dev/null +++ b/monkestation/code/modules/blueshift/armaments/sol.dm @@ -0,0 +1,167 @@ +/datum/armament_entry/company_import/sol_defense + category = SOL_DEFENSE_DEFENSE_NAME + company_bitflag = CARGO_COMPANY_SOL_DEFENSE + +// Beautiful SolFed clothing + +/datum/armament_entry/company_import/sol_defense/clothing + subcategory = "Surplus Clothing" + cost = PAYCHECK_CREW + +/datum/armament_entry/company_import/sol_defense/clothing/peacekeeper + item_type = /obj/item/clothing/under/sol_peacekeeper + +/datum/armament_entry/company_import/sol_defense/clothing/emt + item_type = /obj/item/clothing/under/sol_emt + +// Armor vests for protecting against bullets + +/datum/armament_entry/company_import/sol_defense/armor + subcategory = "Ballistic Armor" + cost = PAYCHECK_CREW * 3 + +/datum/armament_entry/company_import/sol_defense/armor/ballistic_helmet + item_type = /obj/item/clothing/head/helmet/sf_peacekeeper/debranded + +/datum/armament_entry/company_import/sol_defense/armor/sf_ballistic_helmet + item_type = /obj/item/clothing/head/helmet/sf_peacekeeper + +/datum/armament_entry/company_import/sol_defense/armor/soft_vest + item_type = /obj/item/clothing/suit/armor/sf_peacekeeper/debranded + +/datum/armament_entry/company_import/sol_defense/armor/sf_soft_vest + item_type = /obj/item/clothing/suit/armor/sf_peacekeeper + +/datum/armament_entry/company_import/sol_defense/armor/flak_jacket + item_type = /obj/item/clothing/suit/armor/vest/det_suit/sol + +/datum/armament_entry/company_import/sol_defense/armor/slim_vest + name = "type I vest" + item_type = /obj/item/clothing/suit/armor/vest + +/datum/armament_entry/company_import/sol_defense/armor_hardened + subcategory = "Hardened Armor" + cost = PAYCHECK_CREW * 3 + +/datum/armament_entry/company_import/sol_defense/armor_hardened/enclosed_helmet + item_type = /obj/item/clothing/head/helmet/toggleable/sf_hardened + +/datum/armament_entry/company_import/sol_defense/armor_hardened/emt_enclosed_helmet + item_type = /obj/item/clothing/head/helmet/toggleable/sf_hardened/emt + +/datum/armament_entry/company_import/sol_defense/armor_hardened/hardened_vest + item_type = /obj/item/clothing/suit/armor/sf_hardened + +/datum/armament_entry/company_import/sol_defense/armor_hardened/emt_hardened_vest + item_type = /obj/item/clothing/suit/armor/sf_hardened/emt + +/datum/armament_entry/company_import/sol_defense/armor_sacrifice + subcategory = "Sacrifical Armor" + cost = PAYCHECK_CREW * 3 + +/datum/armament_entry/company_import/sol_defense/armor_sacrifice/sacrificial_helmet + item_type = /obj/item/clothing/head/helmet/sf_sacrificial + +/datum/armament_entry/company_import/sol_defense/armor_sacrifice/face_shield + item_type = /obj/item/sacrificial_face_shield + cost = PAYCHECK_LOWER + +/datum/armament_entry/company_import/sol_defense/armor_sacrifice/sacrificial_vest + item_type = /obj/item/clothing/suit/armor/sf_sacrificial + +/datum/armament_entry/company_import/sol_defense/case + subcategory = "Weapon Cases" + +/datum/armament_entry/company_import/sol_defense/case/trappiste + item_type = /obj/item/storage/toolbox/guncase/skyrat/pistol/trappiste_small_case/empty + cost = PAYCHECK_COMMAND + +/datum/armament_entry/company_import/sol_defense/case/carwo + item_type = /obj/item/storage/toolbox/guncase/skyrat/carwo_large_case/empty + cost = PAYCHECK_COMMAND * 2 + +/datum/armament_entry/company_import/sol_defense/sidearm + subcategory = "Sidearms" + +/datum/armament_entry/company_import/sol_defense/sidearm/eland + item_type = /obj/item/gun/ballistic/revolver/sol + cost = PAYCHECK_COMMAND * 4 + +/datum/armament_entry/company_import/sol_defense/sidearm/wespe + item_type = /obj/item/gun/ballistic/automatic/pistol/sol + cost = PAYCHECK_COMMAND * 4 + +/datum/armament_entry/company_import/sol_defense/sidearm/skild + item_type = /obj/item/gun/ballistic/automatic/pistol/trappiste + cost = PAYCHECK_COMMAND * 6 + +/datum/armament_entry/company_import/sol_defense/sidearm/takbok + item_type = /obj/item/gun/ballistic/revolver/takbok + cost = PAYCHECK_COMMAND * 6 + +// Lethal anything that's not a pistol, requires high company interest + +/datum/armament_entry/company_import/sol_defense/longarm + subcategory = "Longarms" + restricted = TRUE + +/datum/armament_entry/company_import/sol_defense/longarm/renoster + item_type = /obj/item/gun/ballistic/shotgun/riot/sol + cost = PAYCHECK_COMMAND * 6 + +/datum/armament_entry/company_import/sol_defense/longarm/sindano + item_type = /obj/item/gun/ballistic/automatic/sol_smg + cost = PAYCHECK_COMMAND * 6 + +/datum/armament_entry/company_import/sol_defense/longarm/elite + item_type = /obj/item/gun/ballistic/automatic/sol_rifle/marksman + cost = PAYCHECK_COMMAND * 12 + +/datum/armament_entry/company_import/sol_defense/longarm/bogseo + item_type = /obj/item/gun/ballistic/automatic/xhihao_smg + cost = PAYCHECK_COMMAND * 10 + contraband = TRUE + +/datum/armament_entry/company_import/sol_defense/longarm/infanterie + item_type = /obj/item/gun/ballistic/automatic/sol_rifle + cost = PAYCHECK_COMMAND * 14 + contraband = TRUE + +/datum/armament_entry/company_import/sol_defense/longarm/outomaties + item_type = /obj/item/gun/ballistic/automatic/sol_rifle/machinegun + cost = PAYCHECK_COMMAND * 23 + contraband = TRUE + +/datum/armament_entry/company_import/sol_defense/longarm/kiboko + item_type = /obj/item/gun/ballistic/automatic/sol_grenade_launcher + cost = PAYCHECK_COMMAND * 46 + contraband = TRUE + +/datum/armament_entry/company_import/sol_defense/magazines + subcategory = "Magazines" + cost = PAYCHECK_CREW + +/datum/armament_entry/company_import/sol_defense/magazines/c35_mag + item_type = /obj/item/ammo_box/magazine/c35sol_pistol/starts_empty + +/datum/armament_entry/company_import/sol_defense/magazines/c35_extended + item_type = /obj/item/ammo_box/magazine/c35sol_pistol/stendo/starts_empty + +/datum/armament_entry/company_import/sol_defense/magazines/c585_mag + item_type = /obj/item/ammo_box/magazine/c585trappiste_pistol/spawns_empty + +/datum/armament_entry/company_import/sol_defense/magazines/sol_rifle_short + item_type = /obj/item/ammo_box/magazine/c40sol_rifle/starts_empty + +/datum/armament_entry/company_import/sol_defense/magazines/sol_rifle_standard + item_type = /obj/item/ammo_box/magazine/c40sol_rifle/standard/starts_empty + cost = PAYCHECK_COMMAND + +/datum/armament_entry/company_import/sol_defense/magazines/sol_grenade_standard + item_type = /obj/item/ammo_box/magazine/c980_grenade/starts_empty + cost = PAYCHECK_COMMAND * 2 + +/datum/armament_entry/company_import/sol_defense/magazines/sol_grenade_drum + item_type = /obj/item/ammo_box/magazine/c980_grenade/drum/starts_empty + cost = PAYCHECK_CREW * 3 + contraband = TRUE diff --git a/monkestation/code/modules/blueshift/armaments/vitezstvi.dm b/monkestation/code/modules/blueshift/armaments/vitezstvi.dm new file mode 100644 index 000000000000..6626cd5c281a --- /dev/null +++ b/monkestation/code/modules/blueshift/armaments/vitezstvi.dm @@ -0,0 +1,183 @@ +/datum/armament_entry/company_import/vitezstvi + category = VITEZSTVI_AMMO_NAME + company_bitflag = CARGO_COMPANY_VITEZSTVI_AMMO + +// Ammo bench and the lethals disk + +/datum/armament_entry/company_import/vitezstvi/ammo_bench + subcategory = "Ammunition Manufacturing Equipment" + +/datum/armament_entry/company_import/vitezstvi/ammo_bench/bench_itself + item_type = /obj/item/circuitboard/machine/ammo_workbench + cost = PAYCHECK_COMMAND * 5 + +/datum/armament_entry/company_import/vitezstvi/ammo_bench/ammo_disk + item_type = /obj/item/disk/ammo_workbench/advanced + cost = PAYCHECK_COMMAND * 5 + +/datum/armament_entry/company_import/vitezstvi/ammo_bench/bullet_drive + item_type = /obj/item/circuitboard/machine/dish_drive/bullet + cost = PAYCHECK_COMMAND * 2 + +// Weapon accessories + +/datum/armament_entry/company_import/vitezstvi/accessory + subcategory = "Weapon Accessories" + +/datum/armament_entry/company_import/vitezstvi/accessory/suppressor + item_type = /obj/item/suppressor/standard + cost = PAYCHECK_COMMAND + +/datum/armament_entry/company_import/vitezstvi/accessory/small_case + item_type = /obj/item/storage/toolbox/guncase/skyrat/pistol/empty + cost = PAYCHECK_COMMAND + +/datum/armament_entry/company_import/vitezstvi/accessory/large_case + item_type = /obj/item/storage/toolbox/guncase/skyrat/empty + cost = PAYCHECK_COMMAND * 2 + +// Boxes of non-shotgun ammo + +/datum/armament_entry/company_import/vitezstvi/ammo_boxes + subcategory = "Ammunition Boxes" + cost = PAYCHECK_CREW + +/datum/armament_entry/company_import/vitezstvi/ammo_boxes/peacekeeper_lethal + item_type = /obj/item/ammo_box/c9mm + +/datum/armament_entry/company_import/vitezstvi/ammo_boxes/peacekeeper_hp + item_type = /obj/item/ammo_box/c9mm/hp + +/datum/armament_entry/company_import/vitezstvi/ammo_boxes/peacekeeper_rubber + item_type = /obj/item/ammo_box/c9mm/rubber + +/datum/armament_entry/company_import/vitezstvi/ammo_boxes/auto10mm_lethal + item_type = /obj/item/ammo_box/c10mm + +/datum/armament_entry/company_import/vitezstvi/ammo_boxes/auto10mm_hp + item_type = /obj/item/ammo_box/c10mm/hp + +/datum/armament_entry/company_import/vitezstvi/ammo_boxes/auto10mm_rubber + item_type = /obj/item/ammo_box/c10mm/rubber + +/datum/armament_entry/company_import/vitezstvi/ammo_boxes/strilka_lethal + item_type = /obj/item/ammo_box/c310_cargo_box + +/datum/armament_entry/company_import/vitezstvi/ammo_boxes/strilka_rubber + item_type = /obj/item/ammo_box/c310_cargo_box/rubber + +/datum/armament_entry/company_import/vitezstvi/ammo_boxes/strilka_ap + item_type = /obj/item/ammo_box/c310_cargo_box/piercing + +/datum/armament_entry/company_import/vitezstvi/ammo_boxes/cesarzowa_lethal + item_type = /obj/item/ammo_box/c27_54cesarzowa + +/datum/armament_entry/company_import/vitezstvi/ammo_boxes/cesarzowa_rubber + item_type = /obj/item/ammo_box/c27_54cesarzowa/rubber + +/datum/armament_entry/company_import/vitezstvi/ammo_boxes/sol35 + item_type = /obj/item/ammo_box/c35sol + +/datum/armament_entry/company_import/vitezstvi/ammo_boxes/sol35_disabler + item_type = /obj/item/ammo_box/c35sol/incapacitator + +/datum/armament_entry/company_import/vitezstvi/ammo_boxes/sol35_ripper + item_type = /obj/item/ammo_box/c35sol/ripper + +/datum/armament_entry/company_import/vitezstvi/ammo_boxes/sol40 + item_type = /obj/item/ammo_box/c40sol + +/datum/armament_entry/company_import/vitezstvi/ammo_boxes/sol40_disabler + item_type = /obj/item/ammo_box/c40sol/fragmentation + +/datum/armament_entry/company_import/vitezstvi/ammo_boxes/sol40_flame + item_type = /obj/item/ammo_box/c40sol/incendiary + +/datum/armament_entry/company_import/vitezstvi/ammo_boxes/sol40_pierce + item_type = /obj/item/ammo_box/c40sol/pierce + +/datum/armament_entry/company_import/vitezstvi/ammo_boxes/trappiste585 + item_type = /obj/item/ammo_box/c585trappiste + +/datum/armament_entry/company_import/vitezstvi/ammo_boxes/trappiste585_disabler + item_type = /obj/item/ammo_box/c585trappiste/incapacitator + +/datum/armament_entry/company_import/vitezstvi/ammo_boxes/trappiste585_hollowpoint + item_type = /obj/item/ammo_box/c585trappiste/hollowpoint + +// Revolver speedloaders + +/datum/armament_entry/company_import/vitezstvi/speedloader + subcategory = "Speedloaders" + cost = PAYCHECK_CREW + +/datum/armament_entry/company_import/vitezstvi/speedloader/detective_lethal + item_type = /obj/item/ammo_box/c38 + +/datum/armament_entry/company_import/vitezstvi/speedloader/detective_dumdum + item_type = /obj/item/ammo_box/c38/dumdum + +/datum/armament_entry/company_import/vitezstvi/speedloader/detective_bouncy + item_type = /obj/item/ammo_box/c38/match + +// Shotgun boxes + +/datum/armament_entry/company_import/vitezstvi/shot_shells + subcategory = "Shotgun Shells" + cost = PAYCHECK_COMMAND + +/datum/armament_entry/company_import/vitezstvi/shot_shells/slugs + item_type = /obj/item/ammo_box/advanced/s12gauge + +/datum/armament_entry/company_import/vitezstvi/shot_shells/buckshot + item_type = /obj/item/ammo_box/advanced/s12gauge/buckshot + +/datum/armament_entry/company_import/vitezstvi/shot_shells/beanbag_slugs + item_type = /obj/item/ammo_box/advanced/s12gauge/bean + +/datum/armament_entry/company_import/vitezstvi/shot_shells/rubbershot + item_type = /obj/item/ammo_box/advanced/s12gauge/rubber + +/datum/armament_entry/company_import/vitezstvi/shot_shells/magnum_buckshot + item_type = /obj/item/ammo_box/advanced/s12gauge/magnum + +/datum/armament_entry/company_import/vitezstvi/shot_shells/express_buckshot + item_type = /obj/item/ammo_box/advanced/s12gauge/express + +/datum/armament_entry/company_import/vitezstvi/shot_shells/hunter_slug + item_type = /obj/item/ammo_box/advanced/s12gauge/hunter + +/datum/armament_entry/company_import/vitezstvi/shot_shells/flechettes + item_type = /obj/item/ammo_box/advanced/s12gauge/flechette + +/datum/armament_entry/company_import/vitezstvi/shot_shells/hornet_nest + item_type = /obj/item/ammo_box/advanced/s12gauge/beehive + +/datum/armament_entry/company_import/vitezstvi/shot_shells/stardust + item_type = /obj/item/ammo_box/advanced/s12gauge/antitide + +/datum/armament_entry/company_import/vitezstvi/shot_shells/confetti + item_type = /obj/item/ammo_box/advanced/s12gauge/honkshot + +// Boxes of kiboko launcher ammo + +/datum/armament_entry/company_import/vitezstvi/grenade_shells + subcategory = "Grenade Shells" + cost = PAYCHECK_COMMAND + +/datum/armament_entry/company_import/vitezstvi/grenade_shells/practice + item_type = /obj/item/ammo_box/c980grenade + +/datum/armament_entry/company_import/vitezstvi/grenade_shells/smoke + item_type = /obj/item/ammo_box/c980grenade/smoke + +/datum/armament_entry/company_import/vitezstvi/grenade_shells/riot + item_type = /obj/item/ammo_box/c980grenade/riot + +/datum/armament_entry/company_import/vitezstvi/grenade_shells/shrapnel + item_type = /obj/item/ammo_box/c980grenade/shrapnel + contraband = TRUE + +/datum/armament_entry/company_import/vitezstvi/grenade_shells/phosphor + item_type = /obj/item/ammo_box/c980grenade/shrapnel/phosphor + contraband = TRUE diff --git a/monkestation/code/modules/blueshift/benos/beno_types/defender.dm b/monkestation/code/modules/blueshift/benos/beno_types/defender.dm new file mode 100644 index 000000000000..0ac51c329cc8 --- /dev/null +++ b/monkestation/code/modules/blueshift/benos/beno_types/defender.dm @@ -0,0 +1,113 @@ + + +/mob/living/carbon/alien/adult/nova/defender + name = "alien defender" + desc = "A heavy looking alien with a wrecking ball-like tail that'd probably hurt to get hit by." + caste = "defender" + maxHealth = 300 + health = 300 + icon_state = "aliendefender" + melee_damage_lower = 25 + melee_damage_upper = 30 + next_evolution = /mob/living/carbon/alien/adult/nova/warrior + +/mob/living/carbon/alien/adult/nova/defender/Initialize(mapload) + . = ..() + var/static/list/innate_actions = list( + /datum/action/cooldown/spell/aoe/repulse/xeno/nova_tailsweep, + /datum/action/cooldown/mob_cooldown/charge/basic_charge/defender, + ) + grant_actions_by_list(innate_actions) + + REMOVE_TRAIT(src, TRAIT_VENTCRAWLER_ALWAYS, INNATE_TRAIT) + + add_movespeed_modifier(/datum/movespeed_modifier/alien_heavy) + +/mob/living/carbon/alien/adult/nova/defender/create_internal_organs() + organs += new /obj/item/organ/internal/alien/plasmavessel/small + ..() + +/datum/action/cooldown/spell/aoe/repulse/xeno/nova_tailsweep + name = "Crushing Tail Sweep" + desc = "Throw back attackers with a sweep of your tail, likely breaking some bones in the process." + + cooldown_time = 60 SECONDS + + aoe_radius = 1 + + button_icon = 'monkestation/code/modules/blueshift/icons/xeno_actions.dmi' + button_icon_state = "crush_tail" + + sparkle_path = /obj/effect/temp_visual/dir_setting/tailsweep/defender + + /// The sound that the tail sweep will make upon hitting something + var/impact_sound = 'sound/effects/clang.ogg' + /// How long mobs hit by the tailsweep should be knocked down for + var/knockdown_time = 4 SECONDS + /// How much damage tail sweep impacts should do to a mob + var/impact_damage = 30 + /// What wound bonus should the tai sweep impact have + var/impact_wound_bonus = 20 + /// What type of sharpness should this tail sweep have + var/impact_sharpness = FALSE + /// What type of damage should the tail sweep do + var/impact_damage_type = BRUTE + +/datum/action/cooldown/spell/aoe/repulse/xeno/nova_tailsweep/IsAvailable(feedback = FALSE) + . = ..() + if(!.) + return FALSE + + var/mob/living/carbon/alien/adult/nova/owner_alien = owner + if(!istype(owner_alien) || owner_alien.unable_to_use_abilities) + return FALSE + +/datum/action/cooldown/spell/aoe/repulse/xeno/nova_tailsweep/cast_on_thing_in_aoe(atom/movable/victim, atom/caster) + if(!isliving(victim)) + return + + if(isalien(victim)) + return + + var/turf/throwtarget = get_edge_target_turf(caster, get_dir(caster, get_step_away(victim, caster))) + var/dist_from_caster = get_dist(victim, caster) + var/mob/living/victim_living = victim + + if(dist_from_caster <= 0) + victim_living.Knockdown(knockdown_time) + if(sparkle_path) + new sparkle_path(get_turf(victim_living), get_dir(caster, victim_living)) + + else + victim_living.Knockdown(knockdown_time * 2) //They are on the same turf as us, or... somewhere else, I'm not sure how but they are getting smacked down + + victim_living.apply_damage(impact_damage, impact_damage_type, BODY_ZONE_CHEST, wound_bonus = impact_wound_bonus, sharpness = impact_sharpness) + shake_camera(victim_living, 4, 3) + playsound(victim_living, impact_sound, 100, TRUE, 8, 0.9) + to_chat(victim_living, span_userdanger("[caster]'s tail slams into you, throwing you back!")) + + victim_living.safe_throw_at(throwtarget, ((clamp((max_throw - (clamp(dist_from_caster - 2, 0, dist_from_caster))), 3, max_throw))), 1, caster, force = repulse_force) + +/obj/effect/temp_visual/dir_setting/tailsweep/defender + icon = 'monkestation/code/modules/blueshift/icons/xeno_actions.dmi' + icon_state = "crush_tail_anim" + +/datum/action/cooldown/mob_cooldown/charge/basic_charge/defender + name = "Charge Attack" + desc = "Allows you to charge at a position, trampling anything in your path." + cooldown_time = 15 SECONDS + charge_delay = 0.3 SECONDS + charge_distance = 5 + destroy_objects = FALSE + charge_damage = 50 + button_icon = 'monkestation/code/modules/blueshift/icons/xeno_actions.dmi' + button_icon_state = "defender_charge" + unset_after_click = TRUE + +/datum/action/cooldown/mob_cooldown/charge/basic_charge/defender/do_charge_indicator(atom/charger, atom/charge_target) + . = ..() + playsound(charger, 'monkestation/code/modules/blueshift/sounds/alien_roar1.ogg', 100, TRUE, 8, 0.9) + +/datum/action/cooldown/mob_cooldown/charge/basic_charge/defender/Activate(atom/target_atom) + . = ..() + return TRUE diff --git a/monkestation/code/modules/blueshift/benos/beno_types/drone.dm b/monkestation/code/modules/blueshift/benos/beno_types/drone.dm new file mode 100644 index 000000000000..f342cf811882 --- /dev/null +++ b/monkestation/code/modules/blueshift/benos/beno_types/drone.dm @@ -0,0 +1,61 @@ + + +/mob/living/carbon/alien/adult/nova/drone + name = "alien drone" + desc = "As plain looking as you could call an alien with armored black chitin and large claws." + caste = "drone" + maxHealth = 200 + health = 200 + icon_state = "aliendrone" + melee_damage_lower = 15 + melee_damage_upper = 20 + next_evolution = /mob/living/carbon/alien/adult/nova/praetorian + +/mob/living/carbon/alien/adult/nova/drone/Initialize(mapload) + . = ..() + GRANT_ACTION(/datum/action/cooldown/alien/nova/heal_aura) + +/mob/living/carbon/alien/adult/nova/drone/create_internal_organs() + organs += new /obj/item/organ/internal/alien/plasmavessel + organs += new /obj/item/organ/internal/alien/resinspinner + ..() + +/datum/action/cooldown/alien/nova/heal_aura + name = "Healing Aura" + desc = "Friendly xenomorphs in a short range around yourself will receive passive healing." + button_icon_state = "healaura" + plasma_cost = 100 + cooldown_time = 90 SECONDS + /// Is the healing aura currently active or not + var/aura_active = FALSE + /// How long the healing aura should last + var/aura_duration = 30 SECONDS + /// How far away the healing aura should reach + var/aura_range = 5 + /// How much brute/burn individually the healing aura should heal each time it fires + var/aura_healing_amount = 5 + /// What color should the + particles caused by the healing aura be + var/aura_healing_color = COLOR_BLUE_LIGHT + /// The healing aura component itself that the ability uses + var/datum/component/aura_healing/aura_healing_component + +/datum/action/cooldown/alien/nova/heal_aura/Activate() + . = ..() + if(aura_active) + owner.balloon_alert(owner, "already healing") + return FALSE + owner.balloon_alert(owner, "healing aura started") + to_chat(owner, span_danger("We emit pheromones that encourage sisters near us to heal themselves for the next [aura_duration / 10] seconds.")) + addtimer(CALLBACK(src, PROC_REF(aura_deactivate)), aura_duration) + aura_active = TRUE + aura_healing_component = owner.AddComponent(/datum/component/aura_healing, range = aura_range, requires_visibility = TRUE, brute_heal = aura_healing_amount, burn_heal = aura_healing_amount, limit_to_trait = TRAIT_XENO_HEAL_AURA, healing_color = aura_healing_color) + return TRUE + +/datum/action/cooldown/alien/nova/heal_aura/proc/aura_deactivate() + if(!aura_active) + return + aura_active = FALSE + QDEL_NULL(aura_healing_component) + owner.balloon_alert(owner, "healing aura ended") + + diff --git a/monkestation/code/modules/blueshift/benos/beno_types/praetorian.dm b/monkestation/code/modules/blueshift/benos/beno_types/praetorian.dm new file mode 100644 index 000000000000..a57591f7ba3d --- /dev/null +++ b/monkestation/code/modules/blueshift/benos/beno_types/praetorian.dm @@ -0,0 +1,118 @@ + + +/mob/living/carbon/alien/adult/nova/praetorian + name = "alien praetorian" + desc = "An alien that looks like the awkward half-way point between a queen and a drone, in fact that's likely what it is." + caste = "praetorian" + maxHealth = 400 + health = 400 + icon_state = "alienpraetorian" + melee_damage_lower = 25 + melee_damage_upper = 30 + next_evolution = /mob/living/carbon/alien/adult/nova/queen + +/mob/living/carbon/alien/adult/nova/praetorian/Initialize(mapload) + . = ..() + var/static/list/innate_actions = list( + /datum/action/cooldown/alien/nova/heal_aura/juiced, + /datum/action/cooldown/spell/aoe/repulse/xeno/nova_tailsweep/hard_throwing, + ) + grant_actions_by_list(innate_actions) + + REMOVE_TRAIT(src, TRAIT_VENTCRAWLER_ALWAYS, INNATE_TRAIT) + + add_movespeed_modifier(/datum/movespeed_modifier/alien_big) + +/mob/living/carbon/alien/adult/nova/praetorian/create_internal_organs() + organs += new /obj/item/organ/internal/alien/plasmavessel/large + organs += new /obj/item/organ/internal/alien/neurotoxin/spitter + organs += new /obj/item/organ/internal/alien/resinspinner + ..() + +/datum/action/cooldown/alien/nova/heal_aura/juiced + name = "Strong Healing Aura" + desc = "Friendly xenomorphs in a longer range around yourself will receive passive healing." + button_icon_state = "healaura_juiced" + plasma_cost = 100 + cooldown_time = 90 SECONDS + aura_range = 7 + aura_healing_amount = 10 + aura_healing_color = COLOR_RED_LIGHT + +/datum/action/cooldown/spell/aoe/repulse/xeno/nova_tailsweep/hard_throwing + name = "Flinging Tail Sweep" + desc = "Throw back attackers with a sweep of your tail that is much stronger than other aliens." + + aoe_radius = 2 + repulse_force = MOVE_FORCE_OVERPOWERING //Fuck everyone who gets hit by this tail in particular + + button_icon_state = "throw_tail" + + sparkle_path = /obj/effect/temp_visual/dir_setting/tailsweep/praetorian + + impact_sound = 'sound/weapons/slap.ogg' + impact_damage = 20 + impact_wound_bonus = 10 + +/obj/effect/temp_visual/dir_setting/tailsweep/praetorian + icon = 'monkestation/code/modules/blueshift/icons/xeno_actions.dmi' + icon_state = "throw_tail_anim" + +/datum/action/cooldown/alien/acid/nova/spread + name = "Spit Neurotoxin Spread" + desc = "Spits a spread neurotoxin at someone, exhausting them." + plasma_cost = 50 + acid_projectile = null + acid_casing = /obj/item/ammo_casing/xenospit + spit_sound = 'monkestation/code/modules/blueshift/sounds/alien_spitacid2.ogg' + cooldown_time = 10 SECONDS + +/obj/item/ammo_casing/xenospit //This is probably really bad, however I couldn't find any other nice way to do this + name = "big glob of neurotoxin" + projectile_type = /obj/projectile/neurotoxin/nova/spitter_spread + pellets = 3 + variance = 20 + +/obj/item/ammo_casing/xenospit/Initialize(mapload) + . = ..() + AddElement(/datum/element/caseless) + +/obj/item/ammo_casing/xenospit/tk_firing(mob/living/user, atom/fired_from) + return FALSE + +/obj/projectile/neurotoxin/nova/spitter_spread //Slightly nerfed because its a shotgun spread of these + name = "neurotoxin spit" + icon_state = "neurotoxin" + damage = 25 + +/datum/action/cooldown/alien/acid/nova/spread/lethal + name = "Spit Acid Spread" + desc = "Spits a spread of acid at someone, burning them." + acid_projectile = null + acid_casing = /obj/item/ammo_casing/xenospit/spread/lethal + button_icon_state = "acidspit_0" + projectile_name = "acid" + button_base_icon = "acidspit" + +/obj/item/ammo_casing/xenospit/spread/lethal + name = "big glob of acid" + projectile_type = /obj/projectile/neurotoxin/nova/acid/spitter_spread + pellets = 4 + variance = 30 + +/obj/projectile/neurotoxin/nova/acid/spitter_spread + name = "acid spit" + icon_state = "toxin" + damage = 15 + damage_type = BURN + +/obj/item/organ/internal/alien/neurotoxin/spitter + name = "large neurotoxin gland" + icon_state = "neurotox" + zone = BODY_ZONE_PRECISE_MOUTH + slot = ORGAN_SLOT_XENO_NEUROTOXINGLAND + actions_types = list( + /datum/action/cooldown/alien/acid/nova/spread, + /datum/action/cooldown/alien/acid/nova/spread/lethal, + /datum/action/cooldown/alien/acid/corrosion, + ) diff --git a/monkestation/code/modules/blueshift/benos/beno_types/queen.dm b/monkestation/code/modules/blueshift/benos/beno_types/queen.dm new file mode 100644 index 000000000000..3de9e7bcf109 --- /dev/null +++ b/monkestation/code/modules/blueshift/benos/beno_types/queen.dm @@ -0,0 +1,88 @@ + + +/mob/living/carbon/alien/adult/nova/queen + name = "alien queen" + desc = "A hulking beast of an alien, for some reason this one seems more important than the others, you should probably quit staring at it and do something." + caste = "queen" + maxHealth = 500 + health = 500 + icon_state = "alienqueen" + melee_damage_lower = 30 + melee_damage_upper = 35 + +/mob/living/carbon/alien/adult/nova/queen/Initialize(mapload) + . = ..() + var/static/list/innate_actions = list( + /datum/action/cooldown/spell/aoe/repulse/xeno/nova_tailsweep/hard_throwing, + /datum/action/cooldown/alien/nova/queen_screech, + ) + grant_actions_by_list(innate_actions) + + REMOVE_TRAIT(src, TRAIT_VENTCRAWLER_ALWAYS, INNATE_TRAIT) + + add_movespeed_modifier(/datum/movespeed_modifier/alien_big) + +/mob/living/carbon/alien/adult/nova/queen/create_internal_organs() + organs += new /obj/item/organ/internal/alien/plasmavessel/large/queen + organs += new /obj/item/organ/internal/alien/resinspinner + organs += new /obj/item/organ/internal/alien/neurotoxin/queen + organs += new /obj/item/organ/internal/alien/eggsac + ..() + +/mob/living/carbon/alien/adult/nova/queen/alien_talk(message, shown_name = name) + ..(message, shown_name, TRUE) + +/obj/item/organ/internal/alien/neurotoxin/queen + name = "neurotoxin gland" + icon_state = "neurotox" + zone = BODY_ZONE_PRECISE_MOUTH + slot = ORGAN_SLOT_XENO_NEUROTOXINGLAND + actions_types = list( + /datum/action/cooldown/alien/acid/nova, + /datum/action/cooldown/alien/acid/nova/lethal, + /datum/action/cooldown/alien/acid/corrosion, + ) + +/mob/living/carbon/alien/adult/nova/queen/death(gibbed) + if(stat == DEAD) + return + + for(var/mob/living/carbon/carbon_mob in GLOB.alive_mob_list) + if(carbon_mob == src) + continue + + var/obj/item/organ/internal/alien/hivenode/node = carbon_mob.get_organ_by_type(/obj/item/organ/internal/alien/hivenode) + + if(istype(node)) + node.queen_death() + + return ..() + +/datum/action/cooldown/alien/nova/queen_screech + name = "Deafening Screech" + desc = "Let out a screech so deafeningly loud that anything with the ability to hear around you will likely be incapacitated for a short time." + button_icon_state = "screech" + cooldown_time = 5 MINUTES + +/datum/action/cooldown/alien/nova/queen_screech/Activate() + . = ..() + var/mob/living/carbon/alien/adult/nova/queenie = owner + playsound(queenie, 'monkestation/code/modules/blueshift/sounds/alien_queen_screech.ogg', 100, FALSE, 8, 0.9) + queenie.create_shriekwave() + shake_camera(owner, 2, 2) + + for(var/mob/living/carbon/human/screech_target in get_hearers_in_view(7, get_turf(queenie))) + screech_target.soundbang_act(intensity = 5, stun_pwr = 50, damage_pwr = 10, deafen_pwr = 30) //Only being deaf will save you from the screech + shake_camera(screech_target, 4, 3) + to_chat(screech_target, span_doyourjobidiot("[queenie] lets out a deafening screech!")) + + return TRUE + +/mob/living/carbon/alien/adult/nova/proc/create_shriekwave() + remove_overlay(HALO_LAYER) + overlays_standing[HALO_LAYER] = image("icon" = 'monkestation/code/modules/blueshift/icons/big_xenos.dmi', "icon_state" = "shriek_waves") //Ehh, suit layer's not being used. + apply_overlay(HALO_LAYER) + addtimer(CALLBACK(src, PROC_REF(remove_shriekwave)), 3 SECONDS) + +/mob/living/carbon/alien/adult/nova/proc/remove_shriekwave() + remove_overlay(HALO_LAYER) diff --git a/monkestation/code/modules/blueshift/benos/beno_types/ravager.dm b/monkestation/code/modules/blueshift/benos/beno_types/ravager.dm new file mode 100644 index 000000000000..41f4a0a7d3e9 --- /dev/null +++ b/monkestation/code/modules/blueshift/benos/beno_types/ravager.dm @@ -0,0 +1,104 @@ + + +#define RAVAGER_OUTLINE_EFFECT "ravager_endure_outline" + +/mob/living/carbon/alien/adult/nova/ravager + name = "alien ravager" + desc = "An alien with angry red chitin, with equally intimidating looking blade-like claws in place of normal hands. That sharp tail looks like it'd probably hurt." + caste = "ravager" + maxHealth = 350 + health = 350 + icon_state = "alienravager" + melee_damage_lower = 30 + melee_damage_upper = 35 + +/mob/living/carbon/alien/adult/nova/ravager/Initialize(mapload) + . = ..() + var/static/list/innate_actions = list( + /datum/action/cooldown/spell/aoe/repulse/xeno/nova_tailsweep/slicing, + /datum/action/cooldown/alien/nova/literally_too_angry_to_die, + /datum/action/cooldown/mob_cooldown/charge/triple_charge/ravager, + ) + grant_actions_by_list(innate_actions) + + REMOVE_TRAIT(src, TRAIT_VENTCRAWLER_ALWAYS, INNATE_TRAIT) + +/mob/living/carbon/alien/adult/nova/ravager/create_internal_organs() + organs += new /obj/item/organ/internal/alien/plasmavessel + ..() + +/datum/action/cooldown/mob_cooldown/charge/triple_charge/ravager + name = "Triple Charge Attack" + desc = "Allows you to charge thrice at a location, trampling any in your path." + cooldown_time = 30 SECONDS + charge_delay = 0.3 SECONDS + charge_distance = 7 + charge_past = 3 + destroy_objects = FALSE + charge_damage = 25 + button_icon = 'monkestation/code/modules/blueshift/icons/xeno_actions.dmi' + button_icon_state = "ravager_charge" + unset_after_click = TRUE + +/datum/action/cooldown/mob_cooldown/charge/triple_charge/ravager/do_charge_indicator(atom/charger, atom/charge_target) + playsound(charger, 'monkestation/code/modules/blueshift/sounds/alien_roar2.ogg', 100, TRUE, 8, 0.9) + +/datum/action/cooldown/mob_cooldown/charge/triple_charge/ravager/Activate(atom/target_atom) + . = ..() + return TRUE + +/datum/action/cooldown/spell/aoe/repulse/xeno/nova_tailsweep/slicing + name = "Slicing Tail Sweep" + desc = "Throw back attackers with a swipe of your tail, slicing them with its sharpened tip." + + aoe_radius = 2 + + button_icon_state = "slice_tail" + + sparkle_path = /obj/effect/temp_visual/dir_setting/tailsweep/ravager + + sound = 'monkestation/code/modules/blueshift/sounds/alien_tail_swipe.ogg' //The defender's tail sound isn't changed because its big and heavy, this isn't + + impact_sound = 'monkestation/code/modules/blueshift/sounds/weapons/bloodyslice.ogg' + impact_damage = 40 + impact_sharpness = SHARP_EDGED + +/obj/effect/temp_visual/dir_setting/tailsweep/ravager + icon = 'monkestation/code/modules/blueshift/icons/xeno_actions.dmi' + icon_state = "slice_tail_anim" + +/datum/action/cooldown/alien/nova/literally_too_angry_to_die + name = "Endure" + desc = "Imbue your body with unimaginable amounts of rage (and plasma) to allow yourself to ignore all pain for a short time." + button_icon_state = "literally_too_angry" + plasma_cost = 250 //This requires full plasma to do, so there can be some time between armstrong moments + /// If the endure ability is currently active or not + var/endure_active = FALSE + /// How long the endure ability should last when activated + var/endure_duration = 20 SECONDS + +/datum/action/cooldown/alien/nova/literally_too_angry_to_die/Activate() + . = ..() + if(endure_active) + owner.balloon_alert(owner, "already enduring") + return FALSE + owner.balloon_alert(owner, "endure began") + playsound(owner, 'monkestation/code/modules/blueshift/sounds/alien_roar1.ogg', 100, TRUE, 8, 0.9) + to_chat(owner, span_danger("We numb our ability to feel pain, allowing us to fight until the very last for the next [endure_duration/10] seconds.")) + addtimer(CALLBACK(src, PROC_REF(endure_deactivate)), endure_duration) + owner.add_filter(RAVAGER_OUTLINE_EFFECT, 4, outline_filter(1, COLOR_RED_LIGHT)) + ADD_TRAIT(owner, TRAIT_STUNIMMUNE, TRAIT_XENO_ABILITY_GIVEN) + ADD_TRAIT(owner, TRAIT_NOSOFTCRIT, TRAIT_XENO_ABILITY_GIVEN) + ADD_TRAIT(owner, TRAIT_NOHARDCRIT, TRAIT_XENO_ABILITY_GIVEN) + endure_active = TRUE + return TRUE + +/datum/action/cooldown/alien/nova/literally_too_angry_to_die/proc/endure_deactivate() + endure_active = FALSE + owner.balloon_alert(owner, "endure ended") + owner.remove_filter(RAVAGER_OUTLINE_EFFECT) + REMOVE_TRAIT(owner, TRAIT_STUNIMMUNE, TRAIT_XENO_ABILITY_GIVEN) + REMOVE_TRAIT(owner, TRAIT_NOSOFTCRIT, TRAIT_XENO_ABILITY_GIVEN) + REMOVE_TRAIT(owner, TRAIT_NOHARDCRIT, TRAIT_XENO_ABILITY_GIVEN) + +#undef RAVAGER_OUTLINE_EFFECT diff --git a/monkestation/code/modules/blueshift/benos/beno_types/rouny.dm b/monkestation/code/modules/blueshift/benos/beno_types/rouny.dm new file mode 100644 index 000000000000..0d1e4af8ec5e --- /dev/null +++ b/monkestation/code/modules/blueshift/benos/beno_types/rouny.dm @@ -0,0 +1,89 @@ + + +#define EVASION_VENTCRAWL_INABILTY_CD_PERCENTAGE 0.8 +#define RUNNER_BLUR_EFFECT "runner_evasion" + +/mob/living/carbon/alien/adult/nova/runner + name = "alien runner" + desc = "A short alien with sleek red chitin, clearly abiding by the 'red ones go faster' theorem and almost always running on all fours." + caste = "runner" + maxHealth = 150 + health = 150 + icon_state = "alienrunner" + /// Holds the evade ability to be granted to the runner later + var/datum/action/cooldown/alien/nova/evade/evade_ability + melee_damage_lower = 15 + melee_damage_upper = 20 + next_evolution = /mob/living/carbon/alien/adult/nova/ravager + on_fire_pixel_y = 0 + +/mob/living/carbon/alien/adult/nova/runner/Initialize(mapload) + . = ..() + AddComponent(/datum/component/tackler, stamina_cost = 0, base_knockdown = 2, range = 10, speed = 2, skill_mod = 7, min_distance = 0) + evade_ability = new(src) + evade_ability.Grant(src) + + add_movespeed_modifier(/datum/movespeed_modifier/alien_quick) + +/mob/living/carbon/alien/adult/nova/runner/create_internal_organs() + organs += new /obj/item/organ/internal/alien/plasmavessel/small/tiny + ..() + +/datum/action/cooldown/alien/nova/evade + name = "Evade" + desc = "Allows you to evade any projectile that would hit you for a few seconds." + button_icon_state = "evade" + plasma_cost = 50 + cooldown_time = 60 SECONDS + /// If the evade ability is currently active or not + var/evade_active = FALSE + /// How long evasion should last + var/evasion_duration = 10 SECONDS + +/datum/action/cooldown/alien/nova/evade/Activate() + . = ..() + if(evade_active) //Can't evade while we're already evading. + owner.balloon_alert(owner, "already evading") + return FALSE + + owner.balloon_alert(owner, "evasive movements began") + playsound(owner, 'monkestation/code/modules/blueshift/sounds/alien_hiss.ogg', 100, TRUE, 8, 0.9) + to_chat(owner, span_danger("We take evasive action, making us impossible to hit with projectiles for the next [evasion_duration / 10] seconds.")) + addtimer(CALLBACK(src, PROC_REF(evasion_deactivate)), evasion_duration) + evade_active = TRUE + RegisterSignal(owner, COMSIG_PROJECTILE_ON_HIT, PROC_REF(on_projectile_hit)) + REMOVE_TRAIT(owner, TRAIT_VENTCRAWLER_ALWAYS, INNATE_TRAIT) + addtimer(CALLBACK(src, PROC_REF(give_back_ventcrawl)), (cooldown_time * EVASION_VENTCRAWL_INABILTY_CD_PERCENTAGE)) //They cannot ventcrawl until the defined percent of the cooldown has passed + to_chat(owner, span_warning("We will be unable to crawl through vents for the next [(cooldown_time * EVASION_VENTCRAWL_INABILTY_CD_PERCENTAGE) / 10] seconds.")) + return TRUE + +/// Handles deactivation of the xeno evasion ability, mainly unregistering the signal and giving a balloon alert +/datum/action/cooldown/alien/nova/evade/proc/evasion_deactivate() + evade_active = FALSE + owner.balloon_alert(owner, "evasion ended") + UnregisterSignal(owner, COMSIG_PROJECTILE_ON_HIT) + +/datum/action/cooldown/alien/nova/evade/proc/give_back_ventcrawl() + ADD_TRAIT(owner, TRAIT_VENTCRAWLER_ALWAYS, INNATE_TRAIT) + to_chat(owner, span_notice("We are rested enough to crawl through vents again.")) + +/// Handles if either BULLET_ACT_HIT or BULLET_ACT_FORCE_PIERCE happens to something using the xeno evade ability +/datum/action/cooldown/alien/nova/evade/proc/on_projectile_hit() + if(owner.incapacitated(IGNORE_GRAB) || !isturf(owner.loc) || !evade_active) + return BULLET_ACT_HIT + + owner.visible_message(span_danger("[owner] effortlessly dodges the projectile!"), span_userdanger("You dodge the projectile!")) + playsound(get_turf(owner), pick('sound/weapons/bulletflyby.ogg', 'sound/weapons/bulletflyby2.ogg', 'sound/weapons/bulletflyby3.ogg'), 75, TRUE) + owner.add_filter(RUNNER_BLUR_EFFECT, 2, gauss_blur_filter(5)) + addtimer(CALLBACK(owner, TYPE_PROC_REF(/datum, remove_filter), RUNNER_BLUR_EFFECT), 0.5 SECONDS) + return BULLET_ACT_FORCE_PIERCE + +/mob/living/carbon/alien/adult/nova/runner/bullet_act(obj/projectile/hitting_projectile, def_zone, piercing_hit = FALSE) + if(evade_ability) + var/evade_result = evade_ability.on_projectile_hit() + if(!(evade_result == BULLET_ACT_HIT)) + return evade_result + return ..() + +#undef EVASION_VENTCRAWL_INABILTY_CD_PERCENTAGE +#undef RUNNER_BLUR_EFFECT diff --git a/monkestation/code/modules/blueshift/benos/beno_types/sentinel.dm b/monkestation/code/modules/blueshift/benos/beno_types/sentinel.dm new file mode 100644 index 000000000000..905fa917d72f --- /dev/null +++ b/monkestation/code/modules/blueshift/benos/beno_types/sentinel.dm @@ -0,0 +1,143 @@ + + +/mob/living/carbon/alien/adult/nova/sentinel + name = "alien sentinel" + desc = "An alien that'd be unremarkable if not for the bright coloring and visible acid glands that cover it." + caste = "sentinel" + maxHealth = 200 + health = 200 + icon_state = "aliensentinel" + melee_damage_lower = 10 + melee_damage_upper = 15 + next_evolution = /mob/living/carbon/alien/adult/nova/spitter + +/mob/living/carbon/alien/adult/nova/sentinel/Initialize(mapload) + . = ..() + + add_movespeed_modifier(/datum/movespeed_modifier/alien_slow) + +/mob/living/carbon/alien/adult/nova/sentinel/create_internal_organs() + organs += new /obj/item/organ/internal/alien/plasmavessel/small + organs += new /obj/item/organ/internal/alien/neurotoxin/sentinel + ..() + +/datum/action/cooldown/alien/acid/nova + name = "Spit Neurotoxin" + desc = "Spits neurotoxin at someone, exhausting them." + button_icon = 'monkestation/code/modules/blueshift/icons/xeno_actions.dmi' + button_icon_state = "neurospit_0" + plasma_cost = 40 + /// A singular projectile? Use this one and leave acid_casing null + var/acid_projectile = /obj/projectile/neurotoxin/nova + /// You want it to be more like a shotgun style attack? Use this one and make acid_projectile null + var/acid_casing + /// Used in to_chat messages to the owner + var/projectile_name = "neurotoxin" + /// The base icon for the ability, so a red box can be put on it using _0 or _1 + var/button_base_icon = "neurospit" + /// The sound that should be played when the xeno actually spits + var/spit_sound = 'monkestation/code/modules/blueshift/sounds/alien_spitacid.ogg' + shared_cooldown = MOB_SHARED_COOLDOWN_3 + cooldown_time = 5 SECONDS + +/datum/action/cooldown/alien/acid/nova/IsAvailable(feedback = FALSE) + return ..() && isturf(owner.loc) + +/datum/action/cooldown/alien/acid/nova/set_click_ability(mob/on_who) + . = ..() + if(!.) + return + + to_chat(on_who, span_notice("You prepare your [projectile_name] gland. Left-click to fire at a target!")) + + button_icon_state = "[button_base_icon]_1" + build_all_button_icons() + on_who.update_icons() + +/datum/action/cooldown/alien/acid/nova/unset_click_ability(mob/on_who, refund_cooldown = TRUE) + . = ..() + if(!.) + return + + if(refund_cooldown) + to_chat(on_who, span_notice("You empty your [projectile_name] gland.")) + + button_icon_state = "[button_base_icon]_0" + build_all_button_icons() + on_who.update_icons() + +/datum/action/cooldown/alien/acid/nova/InterceptClickOn(mob/living/caller, params, atom/target) + . = ..() + if(!.) + unset_click_ability(caller, refund_cooldown = FALSE) + return FALSE + + var/turf/user_turf = caller.loc + var/turf/target_turf = get_step(caller, target.dir) + if(!isturf(target_turf)) + return FALSE + + var/modifiers = params2list(params) + caller.visible_message( + span_danger("[caller] spits [projectile_name]!"), + span_alertalien("You spit [projectile_name]."), + ) + + if(acid_projectile) + var/obj/projectile/spit_projectile = new acid_projectile(caller.loc) + spit_projectile.preparePixelProjectile(target, caller, modifiers) + spit_projectile.firer = caller + spit_projectile.fire() + playsound(caller, spit_sound, 100, TRUE, 5, 0.9) + caller.newtonian_move(get_dir(target_turf, user_turf)) + return TRUE + + if(acid_casing) + var/obj/item/ammo_casing/casing = new acid_casing(caller.loc) + playsound(caller, spit_sound, 100, TRUE, 5, 0.9) + casing.fire_casing(target, caller, null, null, null, ran_zone(), 0, caller) + caller.newtonian_move(get_dir(target_turf, user_turf)) + return TRUE + + CRASH("Neither acid_projectile or acid_casing are set on [caller]'s spit attack!") + +/datum/action/cooldown/alien/acid/nova/Activate(atom/target) + return TRUE + +/obj/projectile/neurotoxin/nova + name = "neurotoxin spit" + icon_state = "neurotoxin" + damage = 30 + paralyze = 0 + damage_type = STAMINA + armor_flag = BIO + +/obj/projectile/neurotoxin/on_hit(atom/target, blocked = 0, pierce_hit) + if(isalien(target)) + damage = 0 + return ..() + +/datum/action/cooldown/alien/acid/nova/lethal + name = "Spit Acid" + desc = "Spits neurotoxin at someone, burning them." + acid_projectile = /obj/projectile/neurotoxin/nova/acid + button_icon_state = "acidspit_0" + projectile_name = "acid" + button_base_icon = "acidspit" + +/obj/projectile/neurotoxin/nova/acid + name = "acid spit" + icon_state = "toxin" + damage = 20 + paralyze = 0 + damage_type = BURN + +/obj/item/organ/internal/alien/neurotoxin/sentinel + name = "neurotoxin gland" + icon_state = "neurotox" + zone = BODY_ZONE_PRECISE_MOUTH + slot = ORGAN_SLOT_XENO_NEUROTOXINGLAND + actions_types = list( + /datum/action/cooldown/alien/acid/nova, + /datum/action/cooldown/alien/acid/nova/lethal, + ) diff --git a/monkestation/code/modules/blueshift/benos/beno_types/spitter.dm b/monkestation/code/modules/blueshift/benos/beno_types/spitter.dm new file mode 100644 index 000000000000..a8fed40154a5 --- /dev/null +++ b/monkestation/code/modules/blueshift/benos/beno_types/spitter.dm @@ -0,0 +1,23 @@ + + +/mob/living/carbon/alien/adult/nova/spitter + name = "alien spitter" + desc = "A fairly heavy looking alien with prominent acid glands, it's mouth dripping with... some kind of toxin or acid." + caste = "spitter" + maxHealth = 300 + health = 300 + icon_state = "alienspitter" + melee_damage_lower = 15 + melee_damage_upper = 20 + +/mob/living/carbon/alien/adult/nova/spitter/Initialize(mapload) + . = ..() + + add_movespeed_modifier(/datum/movespeed_modifier/alien_heavy) + + REMOVE_TRAIT(src, TRAIT_VENTCRAWLER_ALWAYS, INNATE_TRAIT) + +/mob/living/carbon/alien/adult/nova/spitter/create_internal_organs() + organs += new /obj/item/organ/internal/alien/plasmavessel + organs += new /obj/item/organ/internal/alien/neurotoxin/spitter + ..() diff --git a/monkestation/code/modules/blueshift/benos/beno_types/warrior.dm b/monkestation/code/modules/blueshift/benos/beno_types/warrior.dm new file mode 100644 index 000000000000..26121ffd8fda --- /dev/null +++ b/monkestation/code/modules/blueshift/benos/beno_types/warrior.dm @@ -0,0 +1,78 @@ + + +/mob/living/carbon/alien/adult/nova/warrior + name = "alien warrior" + desc = "If there are aliens to call walking tanks, this would be one of them, with both the heavy armor and strong arms to back that claim up." + caste = "warrior" + maxHealth = 400 + health = 400 + icon_state = "alienwarrior" + melee_damage_lower = 30 + melee_damage_upper = 35 + +/mob/living/carbon/alien/adult/nova/warrior/Initialize(mapload) + . = ..() + var/static/list/innate_actions = list( + /datum/action/cooldown/spell/aoe/repulse/xeno/nova_tailsweep, + /datum/action/cooldown/mob_cooldown/charge/basic_charge/defender, + /datum/action/cooldown/alien/nova/warrior_agility, + ) + grant_actions_by_list(innate_actions) + + REMOVE_TRAIT(src, TRAIT_VENTCRAWLER_ALWAYS, INNATE_TRAIT) + + add_movespeed_modifier(/datum/movespeed_modifier/alien_big) + +/mob/living/carbon/alien/adult/nova/warrior/create_internal_organs() + organs += new /obj/item/organ/internal/alien/plasmavessel + ..() + +/datum/action/cooldown/alien/nova/warrior_agility + name = "Agility Mode" + desc = "Drop onto all fours, increasing your speed at the cost of damage and being unable to use most abilities." + button_icon_state = "the_speed_is_alot" + cooldown_time = 1 SECONDS + can_be_used_always = TRUE + /// Is the warrior currently running around on all fours? + var/being_agile = FALSE + +/datum/action/cooldown/alien/nova/warrior_agility/Activate() + . = ..() + if(!being_agile) + begin_agility() + return TRUE + if(being_agile) + end_agility() + return TRUE + +/// Handles the visual indication and code activation of the warrior agility ability (say that five times fast) +/datum/action/cooldown/alien/nova/warrior_agility/proc/begin_agility() + var/mob/living/carbon/alien/adult/nova/agility_target = owner + agility_target.balloon_alert(agility_target, "agility active") + to_chat(agility_target, span_danger("We drop onto all fours, allowing us to move at much greater speed at expense of being able to use most abilities.")) + playsound(agility_target, 'monkestation/code/modules/blueshift/sounds/alien_hiss.ogg', 100, TRUE, 8, 0.9) + agility_target.icon_state = "alien[agility_target.caste]_mobility" + + being_agile = TRUE + agility_target.add_movespeed_modifier(/datum/movespeed_modifier/warrior_agility) + agility_target.unable_to_use_abilities = TRUE + + agility_target.melee_damage_lower = 15 + agility_target.melee_damage_upper = 20 + +/// Handles the visual indicators and code side of deactivating the agility ability +/datum/action/cooldown/alien/nova/warrior_agility/proc/end_agility() + var/mob/living/carbon/alien/adult/nova/agility_target = owner + agility_target.balloon_alert(agility_target, "agility ended") + playsound(agility_target, 'monkestation/code/modules/blueshift/sounds/alien_roar2.ogg', 100, TRUE, 8, 0.9) //Warrior runs up on all fours, stands upright, screams at you + agility_target.icon_state = "alien[agility_target.caste]" + + being_agile = FALSE + agility_target.remove_movespeed_modifier(/datum/movespeed_modifier/warrior_agility) + agility_target.unable_to_use_abilities = FALSE + + agility_target.melee_damage_lower = initial(agility_target.melee_damage_lower) + agility_target.melee_damage_upper = initial(agility_target.melee_damage_upper) + +/datum/movespeed_modifier/warrior_agility + multiplicative_slowdown = -2 diff --git a/monkestation/code/modules/blueshift/benos/human_changes.dm b/monkestation/code/modules/blueshift/benos/human_changes.dm new file mode 100644 index 000000000000..f7beb903e2cc --- /dev/null +++ b/monkestation/code/modules/blueshift/benos/human_changes.dm @@ -0,0 +1,227 @@ +/mob/living/carbon/alien/adult/nova + name = "rare bugged alien" + icon = 'monkestation/code/modules/blueshift/icons/big_xenos.dmi' + rotate_on_lying = FALSE + base_pixel_x = -16 //All of the xeno sprites are 64x64, and we want them to be level with the tile they are on, much like oversized quirk users + mob_size = MOB_SIZE_LARGE + layer = LARGE_MOB_LAYER //above most mobs, but below speechbubbles + maptext_height = 64 + maptext_width = 64 + pressure_resistance = 200 + /// What icon file update_held_items will look for when making inhands for xenos + var/alt_inhands_file = 'monkestation/code/modules/blueshift/icons/big_xenos.dmi' + /// Setting this will give a xeno generic_evolve set to evolve them into this type + var/next_evolution + /// Keeps track of if a xeno has evolved recently, if so then we prevent them from evolving until that time is up + var/has_evolved_recently = FALSE + /// How long xenos should be unable to evolve after recently evolving + var/evolution_cooldown_time = 90 SECONDS + /// Determines if a xeno is unable to use abilities + var/unable_to_use_abilities = FALSE + /// Pixel X shifting of the on fire overlay + var/on_fire_pixel_x = 16 + /// Pixel Y shifting of the on fire overlay + var/on_fire_pixel_y = 16 + + +/mob/living/carbon/alien/adult/nova/Initialize(mapload) + . = ..() + AddComponent(/datum/component/seethrough_mob) + + GRANT_ACTION(/datum/action/cooldown/alien/nova/sleepytime) + if(next_evolution) + GRANT_ACTION(/datum/action/cooldown/alien/nova/generic_evolve) + + pixel_x = -16 + + ADD_TRAIT(src, TRAIT_XENO_HEAL_AURA, TRAIT_XENO_INNATE) + real_name = "alien [caste]" + +/// Called when a larva or xeno evolves, adds a configurable timer on evolving again to the xeno +/mob/living/carbon/alien/adult/nova/proc/has_just_evolved() + if(has_evolved_recently) + return + has_evolved_recently = TRUE + addtimer(CALLBACK(src, PROC_REF(can_evolve_once_again)), evolution_cooldown_time) + +/// Allows xenos to evolve again if they are currently unable to +/mob/living/carbon/alien/adult/nova/proc/can_evolve_once_again() + if(!has_evolved_recently) + return + has_evolved_recently = FALSE + +/datum/action/cooldown/alien/nova + button_icon = 'monkestation/code/modules/blueshift/icons/xeno_actions.dmi' + /// Some xeno abilities block other abilities from being used, this allows them to get around that in cases where it is needed + var/can_be_used_always = FALSE + +/datum/action/cooldown/alien/nova/IsAvailable(feedback = FALSE) + . = ..() + if(!.) + return FALSE + + if(can_be_used_always) + return TRUE + + var/mob/living/carbon/alien/adult/nova/owner_alien = owner + if(!istype(owner_alien) || owner_alien.unable_to_use_abilities) + return FALSE + +/datum/action/cooldown/alien/nova/sleepytime //I don't think this has a mechanical advantage but they have cool resting sprites so... + name = "Rest" + desc = "Sometimes even murder aliens need to have a little lie down." + button_icon_state = "sleepytime" + +/datum/action/cooldown/alien/nova/sleepytime/Activate() + var/mob/living/carbon/sleepytime_mob = owner + if(!isalien(owner)) + return FALSE + if(!sleepytime_mob.resting) + sleepytime_mob.set_resting(new_resting = TRUE, silent = FALSE, instant = TRUE) + return TRUE + sleepytime_mob.set_resting(new_resting = FALSE, silent = FALSE, instant = FALSE) + return TRUE + +/datum/action/cooldown/alien/nova/generic_evolve + name = "Evolve" + desc = "Allows us to evolve to a higher caste of our type, if there is not one already." + button_icon_state = "evolution" + /// What type this ability will turn the owner into upon completion + var/type_to_evolve_into + +/datum/action/cooldown/alien/nova/generic_evolve/Grant(mob/grant_to) + . = ..() + if(!isalien(owner)) + return + var/mob/living/carbon/alien/target_alien = owner + plasma_cost = target_alien.get_max_plasma() //This ability should always require that a xeno be at their max plasma capacity to use + +/datum/action/cooldown/alien/nova/generic_evolve/Activate() + var/mob/living/carbon/alien/adult/nova/evolver = owner + + if(!istype(evolver)) + to_chat(owner, span_warning("You aren't an alien, you can't evolve!")) + return FALSE + + type_to_evolve_into = evolver.next_evolution + if(!type_to_evolve_into) + to_chat(evolver, span_bolddanger("Something is wrong... We can't evolve into anything? (This is broken report it on GitHub)")) + CRASH("Couldn't find an evolution for [owner] ([owner.type]).") + + if(!isturf(evolver.loc)) + return FALSE + + if(get_alien_type(type_to_evolve_into)) + evolver.balloon_alert(evolver, "too many of our evolution already") + return FALSE + + var/obj/item/organ/internal/alien/hivenode/node = evolver.get_organ_by_type(/obj/item/organ/internal/alien/hivenode) + if(!node) + to_chat(evolver, span_bolddanger("We can't sense our node's connection to the hive... We can't evolve!")) + return FALSE + + if(node.recent_queen_death) + to_chat(evolver, span_bolddanger("The death of our queen... We can't seem to gather the mental energy required to evolve...")) + return FALSE + + if(evolver.has_evolved_recently) + evolver.balloon_alert(evolver, "can evolve in 1.5 minutes") //Make that 1.5 variable later, but it keeps fucking up for me :( + return FALSE + + var/new_beno = new type_to_evolve_into(evolver.loc) + evolver.alien_evolve(new_beno) + return TRUE + +/datum/movespeed_modifier/alien_quick + multiplicative_slowdown = -0.5 + +/datum/movespeed_modifier/alien_slow + multiplicative_slowdown = 0.5 + +/datum/movespeed_modifier/alien_heavy + multiplicative_slowdown = 1 + +/datum/movespeed_modifier/alien_big + multiplicative_slowdown = 2 + +/mob/living/carbon/alien/adult/nova/update_held_items() + ..() + remove_overlay(HANDS_LAYER) + var/list/hands = list() + + var/obj/item/l_hand = get_item_for_held_index(1) + if(l_hand) + var/itm_state = l_hand.inhand_icon_state + if(!itm_state) + itm_state = l_hand.icon_state + var/mutable_appearance/l_hand_item = mutable_appearance(alt_inhands_file, "[itm_state][caste]_l", -HANDS_LAYER) + if(l_hand.blocks_emissive) + l_hand_item.overlays += emissive_blocker(l_hand_item.icon, l_hand_item.icon_state, alpha = l_hand_item.alpha) + hands += l_hand_item + + var/obj/item/r_hand = get_item_for_held_index(2) + if(r_hand) + var/itm_state = r_hand.inhand_icon_state + if(!itm_state) + itm_state = r_hand.icon_state + var/mutable_appearance/r_hand_item = mutable_appearance(alt_inhands_file, "[itm_state][caste]_r", -HANDS_LAYER) + if(r_hand.blocks_emissive) + r_hand_item.overlays += emissive_blocker(r_hand_item.icon, r_hand_item.icon_state, alpha = r_hand_item.alpha) + hands += r_hand_item + + overlays_standing[HANDS_LAYER] = hands + apply_overlay(HANDS_LAYER) + +/mob/living/carbon/proc/get_max_plasma() + var/obj/item/organ/internal/alien/plasmavessel/vessel = get_organ_by_type(/obj/item/organ/internal/alien/plasmavessel) + if(!vessel) + return -1 + return vessel.max_plasma + +/mob/living/carbon/alien/adult/nova/alien_evolve(mob/living/carbon/alien/new_xeno, is_it_a_larva) + var/mob/living/carbon/alien/adult/nova/xeno_to_transfer_to = new_xeno + + xeno_to_transfer_to.setDir(dir) + if(!islarva(xeno_to_transfer_to)) + xeno_to_transfer_to.has_just_evolved() + if(mind) + mind.name = xeno_to_transfer_to.real_name + mind.transfer_to(xeno_to_transfer_to) + qdel(src) + +/mob/living/carbon/alien/adult/nova/get_fire_overlay(stacks, on_fire) + var/fire_icon = "generic_fire" + + if(!GLOB.fire_appearances[fire_icon]) + var/mutable_appearance/new_fire_overlay = mutable_appearance( + 'icons/mob/effects/onfire.dmi', + fire_icon, + -HIGHEST_LAYER, + appearance_flags = RESET_COLOR, + ) + GLOB.fire_appearances[fire_icon] = new_fire_overlay + + return GLOB.fire_appearances[fire_icon] + +/mob/living/carbon/alien/adult/nova/findQueen() //Yes we really do need to do this whole thing to let the queen finder work + if(hud_used) + hud_used.alien_queen_finder.cut_overlays() + var/mob/queen = get_alien_type(/mob/living/carbon/alien/adult/nova/queen) + if(!queen) + return + var/turf/Q = get_turf(queen) + var/turf/A = get_turf(src) + if(Q.z != A.z) //The queen is on a different Z level, we cannot sense that far. + return + var/Qdir = get_dir(src, Q) + var/Qdist = get_dist(src, Q) + var/finder_icon = "finder_center" //Overlay showed when adjacent to or on top of the queen! + switch(Qdist) + if(2 to 7) + finder_icon = "finder_near" + if(8 to 20) + finder_icon = "finder_med" + if(21 to INFINITY) + finder_icon = "finder_far" + var/image/finder_eye = image('icons/hud/screen_alien.dmi', finder_icon, dir = Qdir) + hud_used.alien_queen_finder.add_overlay(finder_eye) diff --git a/monkestation/code/modules/blueshift/benos/human_defence.dm b/monkestation/code/modules/blueshift/benos/human_defence.dm new file mode 100644 index 000000000000..301e44a4c0cf --- /dev/null +++ b/monkestation/code/modules/blueshift/benos/human_defence.dm @@ -0,0 +1,61 @@ +/mob/living/carbon/human/attack_alien(mob/living/carbon/alien/adult/user, list/modifiers) + . = ..() + if(!.) + return + + if(LAZYACCESS(modifiers, RIGHT_CLICK)) //Always drop item in hand, if no item, get stun instead. + var/obj/item/mob_held_item = get_active_held_item() + var/disarm_damage = rand(user.melee_damage_lower * 1.5, user.melee_damage_upper * 1.5) + + if(mob_held_item) + + /* + if(check_block(user, damage = 0, attack_text = "[user.name]")) + playsound(loc, 'sound/weapons/parry.ogg', 25, TRUE, -1) //Audio feedback to the fact you just got blocked + apply_damage(disarm_damage / 2, STAMINA) + visible_message(span_danger("[user] attempts to touch [src]!"), \ + span_danger("[user] attempts to touch you!"), span_hear("You hear a swoosh!"), null, user) + to_chat(user, span_warning("You attempt to touch [src]!")) + return FALSE + */ + + playsound(loc, 'sound/weapons/thudswoosh.ogg', 25, TRUE, -1) //The sounds of these are changed so the xenos can actually hear they are being non-lethal + Knockdown(3 SECONDS) + apply_damage(disarm_damage, STAMINA) + visible_message(span_danger("[user] knocks [src] down!"), \ + span_userdanger("[user] knocks you down!"), span_hear("You hear aggressive shuffling follow by a loud thud!"), null, user) + to_chat(user, span_danger("You knock [src] down!")) + return TRUE + + else + playsound(loc, 'sound/effects/hit_kick.ogg', 25, TRUE, -1) + apply_damage(disarm_damage, STAMINA) + log_combat(user, src, "tackled") + visible_message(span_danger("[user] tackles [src] down!"), \ + span_userdanger("[user] tackles you down!"), span_hear("You hear aggressive shuffling!"), null, user) + to_chat(user, span_danger("You tackle [src] down!")) + + return TRUE + + if(user.istate & ISTATE_HARM) + if(w_uniform) + w_uniform.add_fingerprint(user) + + var/damage = rand(user.melee_damage_lower, user.melee_damage_upper) + var/obj/item/bodypart/affecting = get_bodypart(ran_zone(user.zone_selected)) + + if(!affecting) + affecting = get_bodypart(BODY_ZONE_CHEST) + + var/armor_block = run_armor_check(affecting, MELEE,"","",10) + + playsound(loc, 'sound/weapons/slice.ogg', 25, TRUE, -1) + visible_message(span_danger("[user] slashes at [src]!"), \ + span_userdanger("[user] slashes at you!"), span_hear("You hear a sickening sound of a slice!"), null, user) + to_chat(user, span_danger("You slash at [src]!")) + log_combat(user, src, "attacked") + + if(!dismembering_strike(user, user.zone_selected)) //Dismemberment successful + return TRUE + + apply_damage(damage, BRUTE, affecting, armor_block) diff --git a/monkestation/code/modules/blueshift/benos/larva.dm b/monkestation/code/modules/blueshift/benos/larva.dm new file mode 100644 index 000000000000..cbd4fc010b67 --- /dev/null +++ b/monkestation/code/modules/blueshift/benos/larva.dm @@ -0,0 +1,82 @@ + + +/datum/action/cooldown/alien/larva_evolve/Activate(atom/target) + var/static/list/caste_options + if(!caste_options) + caste_options = list() + + // This --can probably-- (will not) be genericized in the future. + make_xeno_caste_entry( + caste_name = "Runner", + caste_image = image(icon = 'monkestation/code/modules/blueshift/icons/xeno_actions.dmi', icon_state = "preview_runner"), + caste_info = span_info("Runners are the most agile caste, the short stature of running on all fours \ + gives them great speed, the ability to dodge projectiles, and allows them to tackle while holding throw and clicking. \ + Eventually, runners can evolve onwards into the fearsome ravager, should the hive permit it."), + caste_options = caste_options, + ) + + make_xeno_caste_entry( + caste_name = "Sentinel", + caste_image = image(icon = 'monkestation/code/modules/blueshift/icons/xeno_actions.dmi', icon_state = "preview_sentinel"), + caste_info = span_info("Sentinels are a caste similar in shape to a drone, forfeiting the ability to \ + become royalty in exchange for spitting either acid, or a potent neurotoxin. They aren't as strong in close combat \ + as the other options, but can eventually evolve into a more dangerous form of acid spitter, should the hive have capacity."), + caste_options = caste_options, + ) + + make_xeno_caste_entry( + caste_name = "Defender", + caste_image = image(icon = 'monkestation/code/modules/blueshift/icons/xeno_actions.dmi', icon_state = "preview_defender"), + caste_info = span_info("Slow, tough, hard hitting, the defender is well and capable of what the name implies, \ + the defender's thick armor allows it to take a few more hits than other castes, which can be paired with a deadly tail club \ + and ability to make short charges to cause some real damage. Eventually, it will be able to evolve into the feared crusher, \ + destroyer of stationary objects should the hive have the capacity."), + caste_options = caste_options, + ) + + make_xeno_caste_entry( + caste_name = "Drone", + caste_image = image(icon = 'monkestation/code/modules/blueshift/icons/xeno_actions.dmi', icon_state = "preview_drone"), + caste_info = span_info("Drones are a somewhat weak, although fairly quick caste that fills a mainly \ + support role in a hive, having a higher plasma capacity than most first evolutions, and the ability to \ + make a healing aura for nearby xenos. Drones are the only caste that can evolve into both praetorians and \ + queens, though only one queen and one praetorian may exist at any time."), + caste_options = caste_options, + ) + + var/alien_caste = show_radial_menu(owner, owner, caste_options, radius = 38, require_near = TRUE, tooltips = TRUE) + if(QDELETED(src) || QDELETED(owner) || !IsAvailable(feedback = TRUE) || isnull(alien_caste)) + return + + spawn_new_xeno(alien_caste) + + return TRUE + +/// Generates a new entry to the +/datum/action/cooldown/alien/larva_evolve/proc/make_xeno_caste_entry(caste_name, caste_image, caste_info, list/caste_options) + var/datum/radial_menu_choice/caste_option = new() + + caste_option.name = caste_name + caste_option.image = caste_image + caste_option.info = caste_info + + caste_options[caste_name] = caste_option + +/datum/action/cooldown/alien/larva_evolve/proc/spawn_new_xeno(alien_caste) + var/mob/living/carbon/alien/adult/nova/new_xeno + var/mob/living/carbon/alien/larva/larva = owner + + switch(alien_caste) + if("Runner") + new_xeno = new /mob/living/carbon/alien/adult/nova/runner(larva.loc) + if("Sentinel") + new_xeno = new /mob/living/carbon/alien/adult/nova/sentinel(larva.loc) + if("Defender") + new_xeno = new /mob/living/carbon/alien/adult/nova/defender(larva.loc) + if("Drone") + new_xeno = new /mob/living/carbon/alien/adult/nova/drone(larva.loc) + else + CRASH("Alien evolve was given an invalid / incorrect alien cast type. Got: [alien_caste]") + + new_xeno.has_just_evolved() + larva.alien_evolve(new_xeno) diff --git a/monkestation/code/modules/blueshift/cargo/armory.dm b/monkestation/code/modules/blueshift/cargo/armory.dm new file mode 100644 index 000000000000..0e2247461a08 --- /dev/null +++ b/monkestation/code/modules/blueshift/cargo/armory.dm @@ -0,0 +1,54 @@ +/datum/supply_pack/security/armory/sindano + name = "Sindano Submachinegun Crate" + desc = "Three entirely proprietary Sindano kits, chambered in .35 Sol Short. Each kit contains three empty magazines and a box each of incapacitator and lethal rounds." + cost = CARGO_CRATE_VALUE * 10 + contains = list( + /obj/item/storage/toolbox/guncase/skyrat/carwo_large_case/sindano = 3, + ) + crate_name = "Sindano Submachinegun Crate" + +/datum/supply_pack/security/armory/renoster + name = "Renoster Riot Shotgun Crate" + desc = "Three Renoster 12ga riot shotguns, with matching bandoliers for each." + cost = CARGO_CRATE_VALUE * 10 + contains = list( + /obj/item/gun/ballistic/shotgun/riot/sol = 3, + /obj/item/storage/belt/bandolier = 3, + ) + crate_name = "Renoster Riot Shotgun Crate" + +/datum/supply_pack/security/armory/kiboko + name = "Kiboko Grenade Launcher Crate" + desc = "Contains a single Kiboko grenade launcher for replacing the one found in the armory, alongside the equipment that comes with it." + cost = CARGO_CRATE_VALUE * 30 + contains = list( + /obj/item/storage/toolbox/guncase/skyrat/carwo_large_case/kiboko_magless = 1, + /obj/item/ammo_box/c980grenade = 2, + /obj/item/ammo_box/c980grenade/smoke = 1, + /obj/item/ammo_box/c980grenade/riot = 1, + ) + crate_name = "Kiboko Grenade Launcher Crate" + +/datum/supply_pack/security/armory/short_mod_laser + name = "Modular Laser Carbine Crate" + desc = "Five 'Hoshi' modular laser carbines, compact energy weapons that can be rapidly reconfigured into different firing modes." + cost = CARGO_CRATE_VALUE * 12 + contains = list( + /obj/item/gun/energy/modular_laser_rifle/carbine, + /obj/item/gun/energy/modular_laser_rifle/carbine, + /obj/item/gun/energy/modular_laser_rifle/carbine, + /obj/item/gun/energy/modular_laser_rifle/carbine, + /obj/item/gun/energy/modular_laser_rifle/carbine, + ) + crate_name = "\improper Modular Laser Carbine Crate" + +/datum/supply_pack/security/armory/big_mod_laser + name = "Modular Laser Rifle Crate" + desc = "Three 'Hyeseong' modular laser rifles, bulky energy weapons that can be rapidly reconfigured into different firing modes." + cost = CARGO_CRATE_VALUE * 12 + contains = list( + /obj/item/gun/energy/modular_laser_rifle, + /obj/item/gun/energy/modular_laser_rifle, + /obj/item/gun/energy/modular_laser_rifle, + ) + crate_name = "\improper Modular Laser Rifle Crate" diff --git a/monkestation/code/modules/blueshift/cargo/company_import.dm b/monkestation/code/modules/blueshift/cargo/company_import.dm new file mode 100644 index 000000000000..15aeb4efa48e --- /dev/null +++ b/monkestation/code/modules/blueshift/cargo/company_import.dm @@ -0,0 +1,150 @@ +/datum/supply_order/company_import + /// The armament entry used to fill the supply order + var/datum/armament_entry/company_import/selected_entry + /// The component used to create the order + var/datum/component/armament/company_imports/used_component + +/datum/supply_order/company_import/Destroy(force) + selected_entry = null + used_component = null + . = ..() + +/datum/supply_order/company_import/proc/reimburse_armament() + if(!selected_entry || !used_component) + return + used_component.purchased_items[selected_entry]-- + +/// A proc to be overriden if you want custom code to happen when SSshuttle spawns the order +/datum/supply_order/proc/on_spawn() + return + +/datum/supply_order/generate(atom/A) + . = ..() + + if(!.) + return + + on_spawn() + +#define CARGO_CUT 0.05 + +/datum/supply_pack/armament + goody = TRUE + crate_type = /obj/structure/closet/crate/large/import + +/datum/supply_pack/armament/generate(atom/A, datum/bank_account/paying_account) + . = ..() + var/datum/bank_account/cargo_dep = SSeconomy.get_dep_account(ACCOUNT_CAR) + cargo_dep.account_balance += round(cost * CARGO_CUT) + var/obj/structure/container = . + for(var/obj/item/gun/gun_actually in container.contents) + QDEL_NULL(gun_actually.pin) + var/obj/item/firing_pin/permit_pin/new_pin = new(gun_actually) + gun_actually.pin = new_pin + +#undef CARGO_CUT + + +/obj/machinery/computer/cargo/Initialize(mapload) + . = ..() + AddComponent(/datum/component/armament/company_imports, subtypesof(/datum/armament_entry/company_import), 0) + +/// Proc for speaking over radio without needing to reuse a bunch of code +/obj/machinery/computer/cargo/proc/radio_wrapper(atom/movable/speaker, message, channel) + radio.talk_into(speaker, message, channel) + +/obj/item/storage/lockbox/order + /// Bool if this was departmentally ordered or not + var/department_purchase + /// Department of the person buying the crate if buying via the NIRN app. + var/datum/bank_account/department/department_account + +/obj/structure/closet/crate/large/import + name = "heavy-duty wooden crate" + icon = 'monkestation/code/modules/blueshift/icons/import_crate.dmi' + +GLOBAL_VAR_INIT(permit_pin_unrestricted, FALSE) +// Firing pin that can be used off station freely, and requires a permit to use on-station +/obj/item/firing_pin/permit_pin + name = "permit-locked firing pin" + desc = "A firing pin for a station who can't trust their crew. Only allows you to fire the weapon off-station or with a firearms permit.." + icon_state = "firing_pin_explorer" + fail_message = "firearms permit check failed!" + +// This checks that the user isn't on the station Z-level. +/obj/item/firing_pin/permit_pin/pin_auth(mob/living/user) + var/turf/station_check = get_turf(user) + + if(obj_flags & EMAGGED) + return TRUE + + if(GLOB.permit_pin_unrestricted) + return TRUE + + var/obj/item/card/id/the_id = user.get_idcard() + + if(!the_id && is_station_level(station_check.z)) + return FALSE + + if(!is_station_level(station_check.z) || (ACCESS_WEAPONS in the_id.GetAccess())) + return TRUE + + +/obj/item/firing_pin + var/can_remove = TRUE + +/obj/item/firing_pin/emag_act(mob/user) + . = ..() + if(obj_flags & EMAGGED) + return FALSE + balloon_alert(user, "firing pin unlocked!") + obj_flags |= EMAGGED + can_remove = TRUE + return TRUE + +/obj/item/clothing/glasses/hud/gun_permit + name = "permit HUD" + desc = "A heads-up display that scans humanoids in view, and displays if their current ID possesses a firearms permit or not." + icon = 'monkestation/code/modules/blueshift/icons/hud_goggles.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/hud_goggles_worn.dmi' + icon_state = "permithud" + hud_type = DATA_HUD_PERMIT + +/obj/item/clothing/glasses/hud/gun_permit/sunglasses + name = "permit HUD sunglasses" + desc = "A pair of sunglasses with a heads-up display that scans humanoids in view, and displays if their current ID possesses a firearms permit or not." + flash_protect = FLASH_PROTECTION_FLASH + tint = 1 + +/datum/design/permit_hud + name = "Gun Permit HUD glasses" + desc = "A heads-up display that scans humanoids in view, and displays if their current ID possesses a firearms permit or not." + id = "permit_glasses" + build_type = PROTOLATHE | AWAY_LATHE + materials = list( + /datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT, + /datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, + ) + build_path = /obj/item/clothing/glasses/hud/gun_permit + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_MISC, + ) + departmental_flags = DEPARTMENT_BITFLAG_CARGO + +/proc/toggle_permit_pins() + GLOB.permit_pin_unrestricted = !GLOB.permit_pin_unrestricted + minor_announce("Permit-locked firing pins have now had their locks [GLOB.permit_pin_unrestricted ? "removed" : "reinstated"].", "Weapons Systems Update:") + SSblackbox.record_feedback("nested tally", "keycard_auths", 1, list("permit-locked pins", GLOB.permit_pin_unrestricted ? "unlocked" : "locked")) + +/obj/machinery/computer/cargo/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) + . = ..() + if(.) + return + + switch(action) + if("company_import_window") + var/datum/component/armament/company_imports/company_import_component = GetComponent(/datum/component/armament/company_imports) + company_import_component.ui_interact(usr) + . = TRUE + if(.) + post_signal(cargo_shuttle) diff --git a/monkestation/code/modules/blueshift/cargo/deforest.dm b/monkestation/code/modules/blueshift/cargo/deforest.dm new file mode 100644 index 000000000000..ddd950158e13 --- /dev/null +++ b/monkestation/code/modules/blueshift/cargo/deforest.dm @@ -0,0 +1,41 @@ +/datum/supply_pack/medical/civil_defense + name = "Civil Defense Medical Kit Crate" + crate_name = "civil defense medical kit crate" + desc = "Contains ten civil defense medical kits, small packs of injectors meant to be passed out to the public in case of emergency." + access = ACCESS_MEDICAL + cost = CARGO_CRATE_VALUE * 10 // 2000 + contains = list( + /obj/item/storage/medkit/civil_defense/stocked = 10, + ) + +/datum/supply_pack/medical/civil_defense/comfort + name = "\improper Civil Defense Symptom Support Kit Crate" + crate_name = "civil defense symptom support kit crate" + desc = "Contains five civil defense symptom support kits stocked with three pens of psifinil and a tube containing 5 pills of alifil, two proprietary DeForest mixes designed to provide long-lasting relief from chronic disease and syndromes like gravity sickness." + access = ACCESS_MEDICAL + cost = CARGO_CRATE_VALUE * 5 // 2000 + contains = list( + /obj/item/storage/medkit/civil_defense/comfort/stocked = 10, + ) + +/datum/supply_pack/medical/frontier_first_aid + name = "Frontier First Aid Crate" + crate_name = "frontier first aid crate" + desc = "Contains two of each of frontier medical kits, and combat surgeon medical kits." + access = ACCESS_MEDICAL + cost = CARGO_CRATE_VALUE * 10 + contains = list( + /obj/item/storage/medkit/frontier/stocked = 3, + /obj/item/storage/medkit/combat_surgeon/stocked = 3, + ) + +/datum/supply_pack/medical/heavy_duty_medical + name = "Heavy Duty Medical Kit Crate" + crate_name = "heavy duty medical kit crate" + desc = "Contains a large satchel medical kit, and a first responder surgical kit." + access = ACCESS_MEDICAL + cost = CARGO_CRATE_VALUE * 10 + contains = list( + /obj/item/storage/backpack/duffelbag/deforest_medkit/stocked, + /obj/item/storage/backpack/duffelbag/deforest_surgical/stocked, + ) diff --git a/monkestation/code/modules/blueshift/cargo/flatpacks.dm b/monkestation/code/modules/blueshift/cargo/flatpacks.dm new file mode 100644 index 000000000000..94e2cc160b75 --- /dev/null +++ b/monkestation/code/modules/blueshift/cargo/flatpacks.dm @@ -0,0 +1,90 @@ +// Service + +/datum/supply_pack/service/hydro_synthesizers + name = "Hydroponics Plumbing Synthesizer Pack" + desc = "Watering and feeding your plants got you down? Worry no further as this kit contains two each of water and hydroponics fertilizer synthesizers." + cost = CARGO_CRATE_VALUE * 2 + contains = list( + /obj/machinery/plumbing/synthesizer/water_synth, + /obj/machinery/plumbing/synthesizer/water_synth, + /obj/machinery/plumbing/synthesizer/colony_hydroponics, + /obj/machinery/plumbing/synthesizer/colony_hydroponics, + ) + crate_name = "hydroponics synthesizers crate" + crate_type = /obj/structure/closet/crate/hydroponics + +/datum/supply_pack/service/frontier_kitchen + name = "Frontier Kitchen Equipment" + desc = "A range of frontier appliance classics, enough to set up a functioning kitchen no matter where you are in the galaxy." + cost = CARGO_CRATE_VALUE * 5 + contains = list( + /obj/machinery/plumbing/synthesizer/water_synth, + /obj/machinery/chem_dispenser/frontier_appliance, + /obj/machinery/griddle/frontier_tabletop/unanchored, + /obj/machinery/microwave/frontier_printed/unanchored, + /obj/machinery/oven/range_frontier/unanchored, + /obj/machinery/biogenerator/foodricator, + ) + crate_name = "frontier kitchen crate" + +// Engineering + +/datum/supply_pack/engineering/colony_starter + name = "Colonization Starter Kit" + desc = "The Sol standard minimum kit for frontier colonization, contains everything you need to construct a mostly functioning colony in most places across the galaxy." + cost = CARGO_CRATE_VALUE * 11 // 6 for the lathe, 3 for the organics printer, 2 for the rest of the stuff + contains = list( + /obj/item/flatpacked_machine, + /obj/item/flatpacked_machine/organics_printer, + /obj/item/flatpacked_machine/gps_beacon, + /obj/item/stack/sheet/plastic_wall_panel/fifty, + /obj/item/stack/rods/twentyfive, + /obj/item/stack/sheet/iron/twenty, + /obj/item/flatpacked_machine/airlock_kit_manual, + /obj/item/flatpacked_machine/airlock_kit_manual, + /obj/item/wallframe/apc, + /obj/item/electronics/apc, + /obj/item/stock_parts/cell/high, + ) + crate_name = "colonization kit crate" + +/obj/machinery/biogenerator/organic_printer + name = "organic materials printer" + desc = "An advanced machine seen in frontier outposts and colonies capable of turning organic plant matter into \ + reagents and items of use that a fabricator can't typically make. While the exact designs these machines have differs from \ + location to location, and upon who designed them, this one should be able to at the very least provide you with \ + some clothing, basic food supplies, and whatever else you may require." + icon = 'monkestation/code/modules/blueshift/icons/biogenerator.dmi' + circuit = null + anchored = FALSE + efficiency = 1 + productivity = 2 + max_items = 35 + show_categories = list( + RND_CATEGORY_AKHTER_CLOTHING, + RND_CATEGORY_AKHTER_EQUIPMENT, + RND_CATEGORY_AKHTER_RESOURCES, + ) + +/obj/machinery/biogenerator/organic_printer/Initialize(mapload) + . = ..() + AddElement(/datum/element/manufacturer_examine, COMPANY_KAHRAMAN) + +/obj/machinery/biogenerator/organic_printer/RefreshParts() + . = ..() + efficiency = 1 + productivity = 2 + max_items = 35 + +/obj/machinery/biogenerator/organic_printer/default_deconstruction_crowbar() + return + +// Deployable item for cargo for the organics printer +/obj/item/flatpacked_machine/organics_printer + name = "organic materials printer parts kit" + icon = 'monkestation/code/modules/blueshift/icons/biogenerator.dmi' + icon_state = "biogenerator_parts" + type_to_deploy = /obj/machinery/biogenerator/organic_printer + +/obj/item/flatpacked_machine/organics_printer/give_manufacturer_examine() + AddElement(/datum/element/manufacturer_examine, COMPANY_KAHRAMAN) diff --git a/monkestation/code/modules/blueshift/cargo/specialist_armor.dm b/monkestation/code/modules/blueshift/cargo/specialist_armor.dm new file mode 100644 index 000000000000..8dbe34ebc3c8 --- /dev/null +++ b/monkestation/code/modules/blueshift/cargo/specialist_armor.dm @@ -0,0 +1,30 @@ +/datum/supply_pack/security/armory/soft_armor + name = "Soft Armor Kit Crate" + crate_name = "soft armor kit crate" + desc = "Contains three sets of SolFed-made soft body armor and matching helmets." + cost = CARGO_CRATE_VALUE * 5 + contains = list( + /obj/item/clothing/head/helmet/sf_peacekeeper/debranded = 3, + /obj/item/clothing/suit/armor/sf_peacekeeper/debranded = 3, + ) + +/datum/supply_pack/security/armory/hardened_armor + name = "Hardened Armor Kit Crate" + crate_name = "hardened armor kit crate" + desc = "Contains three sets of SolFed-made hardened body armor and matching helmets." + cost = CARGO_CRATE_VALUE * 5 + contains = list( + /obj/item/clothing/head/helmet/toggleable/sf_hardened = 3, + /obj/item/clothing/suit/armor/sf_hardened = 3, + ) + +/datum/supply_pack/security/armory/sacrificial_armor + name = "Sacrificial Armor Kit Crate" + crate_name = "sacrificial armor kit crate" + desc = "Contains three sets of SolFed-made sacrificial body armor and matching helmets." + cost = CARGO_CRATE_VALUE * 5 + contains = list( + /obj/item/clothing/head/helmet/sf_sacrificial = 3, + /obj/item/sacrificial_face_shield = 3, + /obj/item/clothing/suit/armor/sf_sacrificial = 3, + ) diff --git a/monkestation/code/modules/blueshift/clothing/blueshield.dm b/monkestation/code/modules/blueshift/clothing/blueshield.dm new file mode 100644 index 000000000000..3c44a9c7c8e0 --- /dev/null +++ b/monkestation/code/modules/blueshift/clothing/blueshield.dm @@ -0,0 +1,141 @@ +//Blueshield + +//Uniform items are in command.dm + +/obj/item/clothing/head/helmet/space/plasmaman/blueshield + name = "blueshield envirosuit helmet" + desc = "A plasmaman containment helmet designed for certified blueshields, who's job guarding heads should not include self-combustion... most of the time." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/head/plasmaman_hats.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/head/plasmaman_head.dmi' + icon_state = "bs_envirohelm" + +/obj/item/clothing/under/plasmaman/blueshield + name = "blueshield envirosuit" + desc = "A plasmaman containment suit designed for certified blueshields, offering a limited amount of extra protection." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/plasmaman.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/plasmaman.dmi' + icon_state = "bs_envirosuit" + armor_type = /datum/armor/clothing_under/under_plasmaman_blueshield + sensor_mode = SENSOR_COORDS + random_sensor = FALSE + +/datum/armor/clothing_under/under_plasmaman_blueshield + melee = 10 + bio = 100 + fire = 95 + acid = 95 + +/obj/item/clothing/head/beret/blueshield + name = "blueshield's beret" + desc = "A blue beret made of durathread with a genuine golden badge, denoting its owner as a Blueshield Lieuteneant. It seems to be padded with nano-kevlar, making it tougher than standard reinforced berets." + greyscale_config = /datum/greyscale_config/beret_badge + greyscale_config_worn = /datum/greyscale_config/beret_badge/worn + greyscale_colors = "#3A4E7D#DEB63D" + icon_state = "beret_badge_police" + +/obj/item/clothing/head/beret/blueshield/navy + name = "navy blueshield's beret" + desc = "A navy-blue beret made of durathread with a silver badge, denoting its owner as a Blueshield Lieuteneant. It seems to be padded with nano-kevlar, making it tougher than standard reinforced berets." + greyscale_colors = "#3C485A#BBBBBB" + +/obj/item/storage/backpack/blueshield + name = "blueshield backpack" + desc = "A robust backpack issued to Nanotrasen's finest." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/backpacks.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/back.dmi' + lefthand_file = 'monkestation/code/modules/blueshift/icons/mob/inhands/clothing/backpack_lefthand.dmi' + righthand_file = 'monkestation/code/modules/blueshift/icons/mob/inhands/clothing/backpack_righthand.dmi' + icon_state = "backpack_blueshield" + inhand_icon_state = "backpack_blueshield" + +/obj/item/storage/backpack/satchel/blueshield + name = "blueshield satchel" + desc = "A robust satchel issued to Nanotrasen's finest." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/backpacks.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/back.dmi' + lefthand_file = 'monkestation/code/modules/blueshift/icons/mob/inhands/clothing/backpack_lefthand.dmi' + righthand_file = 'monkestation/code/modules/blueshift/icons/mob/inhands/clothing/backpack_righthand.dmi' + icon_state = "satchel_blueshield" + inhand_icon_state = "satchel_blueshield" + +/obj/item/storage/backpack/duffelbag/blueshield + name = "blueshield duffelbag" + desc = "A robust duffelbag issued to Nanotrasen's finest." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/backpacks.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/back.dmi' + lefthand_file = 'monkestation/code/modules/blueshift/icons/mob/inhands/clothing/backpack_lefthand.dmi' + righthand_file = 'monkestation/code/modules/blueshift/icons/mob/inhands/clothing/backpack_righthand.dmi' + icon_state = "duffel_blueshield" + inhand_icon_state = "duffel_blueshield" + +//blueshield armor +/obj/item/clothing/suit/armor/vest/blueshield + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/suits/armor.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/suits/armor.dmi' + name = "blueshield's armor" + desc = "A tight-fitting kevlar-lined vest with a blue badge on the chest of it." + icon_state = "blueshieldarmor" + body_parts_covered = CHEST + uses_advanced_reskins = TRUE + unique_reskin = list( + "Slim" = list( + RESKIN_ICON = 'monkestation/code/modules/blueshift/icons/obj/clothing/suits/armor.dmi', + RESKIN_ICON_STATE = "blueshieldarmor", + RESKIN_WORN_ICON = 'monkestation/code/modules/blueshift/icons/mob/clothing/suits/armor.dmi', + RESKIN_WORN_ICON_STATE = "blueshieldarmor", + ), + "Marine" = list( + RESKIN_ICON = 'monkestation/code/modules/blueshift/icons/obj/clothing/suits/armor.dmi', + RESKIN_ICON_STATE = "bs_marine", + RESKIN_WORN_ICON = 'monkestation/code/modules/blueshift/icons/mob/clothing/suits/armor.dmi', + RESKIN_WORN_ICON_STATE = "bs_marine", + ), + "Bulky" = list( + RESKIN_ICON = 'monkestation/code/modules/blueshift/icons/obj/clothing/suits/armor.dmi', + RESKIN_ICON_STATE = "vest_black", + RESKIN_WORN_ICON = 'monkestation/code/modules/blueshift/icons/mob/clothing/suits/armor.dmi', + RESKIN_WORN_ICON_STATE = "vest_black", + ), + ) + +/obj/item/clothing/suit/armor/vest/blueshield/jacket + name = "blueshield's jacket" + desc = "An expensive kevlar-lined jacket with a golden badge on the chest and \"NT\" emblazoned on the back. It weighs surprisingly little, despite how heavy it looks." + icon_state = "blueshield" + body_parts_covered = CHEST|ARMS + unique_reskin = null + +/obj/item/clothing/suit/armor/vest/blueshield/jacket/Initialize(mapload) + . = ..() + AddComponent(/datum/component/toggle_icon) + +/obj/item/clothing/suit/hooded/wintercoat/nova/blueshield + name = "blueshield's winter coat" + icon_state = "coatblueshield" + desc = "A comfy kevlar-lined coat with blue highlights, fit to keep the blueshield armored and warm." + hoodtype = /obj/item/clothing/head/hooded/winterhood/nova/blueshield + allowed = list(/obj/item/melee/baton/security/loaded) + armor_type = /datum/armor/suit_armor + +/obj/item/clothing/suit/hooded/wintercoat/nova/blueshield/Initialize(mapload) + . = ..() + allowed += GLOB.security_vest_allowed + +/obj/item/clothing/head/hooded/winterhood/nova/blueshield + icon_state = "hood_blueshield" + desc = "A comfy kevlar-lined hood to go with the comfy kevlar-lined coat." + armor_type = /datum/armor/suit_armor + +/obj/item/clothing/head/hooded/winterhood/nova + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/head/winterhood.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/head/winterhood.dmi' + icon_state = "hood_aformal" + +//Coat Basetype (The Assistant's Formal Coat) +/obj/item/clothing/suit/hooded/wintercoat/nova + name = "assistant's formal winter coat" + desc = "A dark gray winter coat with bronze-gold detailing, and a zipper in the shape of a toolbox." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/suits/wintercoat.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/suits/wintercoat.dmi' + icon_state = "coataformal" + hoodtype = /obj/item/clothing/head/hooded/winterhood/nova diff --git a/monkestation/code/modules/blueshift/clothing/dogginos.dm b/monkestation/code/modules/blueshift/clothing/dogginos.dm new file mode 100644 index 000000000000..69b09895e66e --- /dev/null +++ b/monkestation/code/modules/blueshift/clothing/dogginos.dm @@ -0,0 +1,38 @@ +/obj/item/clothing/suit/toggle/jacket/hoodie/pizza + name = "dogginos hoodie" + desc = "A hoodie often worn by the delivery boys of this intergalactically known brand of pizza." + greyscale_colors = "#c40000" + +/obj/item/clothing/suit/pizzaleader + name = "dogginos manager coat" + desc = "A long, cool, flowing coat in a tasteless red colour." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/suits.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/suit.dmi' + icon_state = "forensics_red_long" + +/obj/item/clothing/under/pizza + name = "dogginos employee uniform" + desc = "The standard issue for the famous dog-founded pizza brand, Dogginos." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/centcom.dmi' //Dogginos is not technically affiliated with CC, but it's not OPPOSING it, and its an "ERT"... + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/centcom.dmi' + icon_state = "dominos" + +/obj/item/radio/headset/headset_cent/impostorsr + keyslot2 = null + +/obj/item/radio/headset/chameleon/advanced + special_desc = "A chameleon headset employed by the Syndicate in infiltration operations. \ + This particular model features flashbang protection, and the ability to amplify your volume." + command = TRUE + freerange = TRUE + +/obj/item/radio/headset/chameleon/advanced/Initialize(mapload) + . = ..() + AddComponent(/datum/component/wearertargeting/earprotection, list(ITEM_SLOT_EARS)) + +/obj/item/clothing/head/pizza + name = "dogginos manager hat" + desc = "Looks like something a Sol general would wear." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/hats.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/head.dmi' + icon_state = "dominosleader" diff --git a/monkestation/code/modules/blueshift/clothing/kahraman.dm b/monkestation/code/modules/blueshift/clothing/kahraman.dm new file mode 100644 index 000000000000..b99237b4bb11 --- /dev/null +++ b/monkestation/code/modules/blueshift/clothing/kahraman.dm @@ -0,0 +1,422 @@ +// Backpacks + +/obj/item/storage/backpack/industrial/frontier_colonist + name = "frontier backpack" + desc = "A rugged backpack often used by settlers and explorers. Holds all of your equipment and then some." + icon = 'monkestation/code/modules/blueshift/icons/clothes/clothing.dmi' + icon_state = "backpack" + worn_icon = 'monkestation/code/modules/blueshift/icons/clothes/clothing_worn.dmi' + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + worn_icon_state = "backpack" + inhand_icon_state = "backpack" + +/obj/item/storage/backpack/industrial/frontier_colonist/Initialize(mapload) + . = ..() + AddElement(/datum/element/manufacturer_examine, COMPANY_KAHRAMAN) + +/obj/item/storage/backpack/industrial/frontier_colonist/satchel + name = "frontier satchel" + desc = "A rugged satchel often used by settlers and explorers. Holds less of your equipment than a backpack will." + icon_state = "satchel" + worn_icon_state = "satchel" + +/obj/item/storage/backpack/industrial/frontier_colonist/messenger + name = "frontier messenger bag" + desc = "A rugged messenger bag often used by settlers and explorers. Holds less of your equipment than a backpack will." + icon_state = "messenger" + worn_icon_state = "messenger" + +// Belts + +/obj/item/storage/belt/utility/frontier_colonist + name = "frontier chest rig" + desc = "A versatile chest rig with pockets to store really whatever you could think of within. \ + That is, if whatever you could think of is within the realms of a utility belt. Fashion like this \ + comes at a price you know!" + icon = 'monkestation/code/modules/blueshift/icons/clothes/clothing.dmi' + icon_state = "harness" + worn_icon = 'monkestation/code/modules/blueshift/icons/clothes/clothing_worn.dmi' + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + worn_icon_state = "harness" + inhand_icon_state = null + +/obj/item/storage/belt/utility/frontier_colonist/Initialize(mapload) + . = ..() + AddElement(/datum/element/manufacturer_examine, COMPANY_KAHRAMAN) + atom_storage.max_slots = 6 + atom_storage.max_specific_storage = WEIGHT_CLASS_NORMAL + // Can hold whatever a toolbelt can + some mining equipment for convenience + atom_storage.set_holdable(list( + /obj/item/airlock_painter, + /obj/item/analyzer, + /obj/item/assembly/signaler, + /obj/item/clothing/gloves, + /obj/item/construction, + /obj/item/crowbar, + /obj/item/extinguisher/mini, + /obj/item/flashlight, + /obj/item/forcefield_projector, + /obj/item/geiger_counter, + /obj/item/holosign_creator, + /obj/item/inducer, + /obj/item/lightreplacer, + /obj/item/multitool, + /obj/item/pipe_dispenser, + /obj/item/pipe_painter, + /obj/item/plunger, + /obj/item/radio, + /obj/item/screwdriver, + /obj/item/stack/cable_coil, + /obj/item/t_scanner, + /obj/item/weldingtool, + /obj/item/wirecutters, + /obj/item/wrench, + /obj/item/gps, + /obj/item/knife, + /obj/item/mining_scanner, + /obj/item/pickaxe, + /obj/item/reagent_containers/hypospray, + /obj/item/shovel, + /obj/item/survivalcapsule, + /obj/item/storage/bag/ore, + /obj/item/storage/fancy/cigarettes, + /obj/item/wormhole_jaunter, + /obj/item/resonator, + )) + +// Its modsuiting time + +/datum/mod_theme/frontier_colonist + name = "frontier hazard protective" + desc = "An unusual design of suit, in reality being no more than a slim underlayer with a built in coat and sealed helmet." + extended_desc = "The pinnacle of frontier cheap technology. Suits like this are usually not unified in design \ + though are common in frontier settlements with less than optimal infrastructure. As with most unofficial \ + designs, there are flaws and no single one is perfect, but they achieve a singular goal and that is the \ + important part. Suits such as these are made specifically for the rare emergency that creates a hazard \ + environment that other equipment just can't quite handle. Often, these suits are able to protect their users \ + from not only electricity, but also radiation, biological hazards, other people, so on. This suit will not, \ + however, protect you from yourself." + + default_skin = "colonist" + armor_type = /datum/armor/colonist_hazard + resistance_flags = FIRE_PROOF + max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT + siemens_coefficient = 0 + complexity_max = DEFAULT_MAX_COMPLEXITY - 5 + charge_drain = DEFAULT_CHARGE_DRAIN * 2 + slowdown_inactive = 1.5 + slowdown_active = 1 + inbuilt_modules = list( + /obj/item/mod/module/plate_compression/permanent, + /obj/item/mod/module/joint_torsion/permanent + ) + allowed_suit_storage = list( + /obj/item/ammo_box, + /obj/item/ammo_casing, + /obj/item/flashlight, + /obj/item/gun, + /obj/item/melee, + /obj/item/tank/internals, + /obj/item/storage/belt/holster, + /obj/item/construction, + /obj/item/fireaxe, + /obj/item/pipe_dispenser, + /obj/item/storage/bag, + /obj/item/pickaxe, + /obj/item/resonator, + /obj/item/t_scanner, + /obj/item/analyzer, + /obj/item/storage/medkit, + ) + skins = list( + "colonist" = list( + MOD_ICON_OVERRIDE = 'monkestation/code/modules/blueshift/icons/modsuits/mod.dmi', + MOD_WORN_ICON_OVERRIDE = 'monkestation/code/modules/blueshift/icons/modsuits/mod_worn.dmi', + HELMET_FLAGS= list( + UNSEALED_LAYER = null, + UNSEALED_CLOTHING = SNUG_FIT|THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + UNSEALED_INVISIBILITY = HIDEFACIALHAIR|HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT, + UNSEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES|PEPPERPROOF, + ), + CHESTPLATE_FLAGS= list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + SEALED_INVISIBILITY = HIDEJUMPSUIT, + ), + GAUNTLETS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + BOOTS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + ), + ) + +/obj/item/mod/control/pre_equipped/frontier_colonist + theme = /datum/mod_theme/frontier_colonist + applied_cell = /obj/item/stock_parts/cell/high + applied_modules = list( + /obj/item/mod/module/welding, + /obj/item/mod/module/magboot, + /obj/item/mod/module/flashlight, + /obj/item/mod/module/status_readout, + /obj/item/mod/module/thermal_regulator, + /obj/item/mod/module/rad_protection, + ) + default_pins = list( + /obj/item/mod/module/magboot, + /obj/item/mod/module/flashlight, + /obj/item/mod/module/thermal_regulator, + ) + +/obj/item/mod/control/pre_equipped/frontier_colonist/Initialize(mapload) + . = ..() + AddElement(/datum/element/manufacturer_examine, COMPANY_KAHRAMAN) + +// Plate compression module that cannot be removed + +/obj/item/mod/module/plate_compression/permanent + removable = FALSE + complexity = 0 + +// Joint torsion module that can't be removed and has no complexity + +/obj/item/mod/module/joint_torsion/permanent + removable = FALSE + complexity = 0 + +// Jumpsuit + +/obj/item/clothing/under/frontier_colonist + name = "frontier jumpsuit" + desc = "A heavy grey jumpsuit with extra padding around the joints. Two massive pockets included. \ + No matter what you do to adjust it, its always just slightly too large." + icon = 'monkestation/code/modules/blueshift/icons/clothes/clothing.dmi' + icon_state = "jumpsuit" + worn_icon = 'monkestation/code/modules/blueshift/icons/clothes/clothing_worn.dmi' + worn_icon_digitigrade = 'monkestation/code/modules/blueshift/icons/clothes/clothing_worn_digi.dmi' + worn_icon_state = "jumpsuit" + has_sensor = SENSOR_COORDS + random_sensor = FALSE + +/obj/item/clothing/under/frontier_colonist/Initialize(mapload) + . = ..() + AddElement(/datum/element/manufacturer_examine, COMPANY_KAHRAMAN) + +// Boots + +/obj/item/clothing/shoes/jackboots/frontier_colonist + name = "heavy frontier boots" + desc = "A well built pair of tall boots usually seen on the feet of explorers, first wave colonists, \ + and LARPers across the galaxy." + icon = 'monkestation/code/modules/blueshift/icons/clothes/clothing.dmi' + icon_state = "boots" + worn_icon = 'monkestation/code/modules/blueshift/icons/clothes/clothing_worn.dmi' + worn_icon_digitigrade = 'monkestation/code/modules/blueshift/icons/clothes/clothing_worn_digi.dmi' + armor_type = /datum/armor/colonist_clothing + resistance_flags = NONE + +/obj/item/clothing/shoes/jackboots/frontier_colonist/Initialize(mapload) + . = ..() + AddElement(/datum/element/manufacturer_examine, COMPANY_KAHRAMAN) + +// Jackets + +/obj/item/clothing/suit/jacket/frontier_colonist + name = "frontier trenchcoat" + desc = "A knee length coat with a water-resistant exterior and relatively comfortable interior. \ + In between? Just enough protective material to stop the odd sharp thing getting through, \ + though don't expect miracles." + icon = 'monkestation/code/modules/blueshift/icons/clothes/clothing.dmi' + icon_state = "jacket" + worn_icon = 'monkestation/code/modules/blueshift/icons/clothes/clothing_worn.dmi' + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + worn_icon_state = "jacket" + slot_flags = ITEM_SLOT_OCLOTHING|ITEM_SLOT_NECK + armor_type = /datum/armor/colonist_clothing + resistance_flags = NONE + allowed = null + +/obj/item/clothing/suit/jacket/frontier_colonist/Initialize(mapload) + . = ..() + allowed += GLOB.colonist_suit_allowed + AddElement(/datum/element/manufacturer_examine, COMPANY_KAHRAMAN) + +/obj/item/clothing/suit/jacket/frontier_colonist/short + name = "frontier jacket" + desc = "A short coat with a water-resistant exterior and relatively comfortable interior. \ + In between? Just enough protective material to stop the odd sharp thing getting through, \ + though don't expect miracles." + icon_state = "jacket_short" + worn_icon_state = "jacket_short" + +/obj/item/clothing/suit/jacket/frontier_colonist/medical + name = "frontier medical jacket" + desc = "A short coat with a water-resistant exterior and relatively comfortable interior. \ + In between? Just enough protective material to stop the odd sharp thing getting through, \ + though don't expect miracles. This one is colored a bright red and covered in white \ + stripes to denote that someone wearing it might be able to provide medical assistance." + icon_state = "jacket_med" + worn_icon_state = "jacket_med" + +// Flak Jacket + +/obj/item/clothing/suit/frontier_colonist_flak + name = "frontier flak jacket" + desc = "A simple flak jacket with an exterior of water-resistant material. \ + Jackets like these are often found on first wave colonists that want some armor \ + due to the fact they can be made easily within a colony core type machine." + icon = 'monkestation/code/modules/blueshift/icons/clothes/clothing.dmi' + icon_state = "flak" + worn_icon = 'monkestation/code/modules/blueshift/icons/clothes/clothing_worn.dmi' + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + worn_icon_state = "flak" + body_parts_covered = CHEST + cold_protection = CHEST|GROIN + min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT + heat_protection = CHEST|GROIN + max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT + armor_type = /datum/armor/colonist_armor + resistance_flags = NONE + allowed = null + +/obj/item/clothing/suit/frontier_colonist_flak/Initialize(mapload) + . = ..() + allowed += GLOB.colonist_suit_allowed + AddElement(/datum/element/manufacturer_examine, COMPANY_KAHRAMAN) + +// Various softcaps + +/obj/item/clothing/head/soft/frontier_colonist + name = "frontier cap" + desc = "It's a robust baseball hat in a rugged green color." + icon = 'monkestation/code/modules/blueshift/icons/clothes/clothing.dmi' + icon_state = "cap" + soft_type = "cap" + soft_suffix = null + worn_icon = 'monkestation/code/modules/blueshift/icons/clothes/clothing_worn.dmi' + worn_icon_state = "cap" + +/obj/item/clothing/head/soft/frontier_colonist/Initialize(mapload) + . = ..() + AddElement(/datum/element/manufacturer_examine, COMPANY_KAHRAMAN) + +/obj/item/clothing/head/soft/frontier_colonist/medic + name = "frontier medical cap" + desc = "It's a robust baseball hat in a stylish red color. Has a white diamond to denote that its wearer might be able to provide medical assistance." + icon_state = "cap_medical" + soft_type = "cap_medical" + worn_icon_state = "cap_medical" + +// Helmet (Is it a helmet? Questionable? I'm not sure what to call this thing) + +/obj/item/clothing/head/frontier_colonist_helmet + name = "frontier soft helmet" + desc = "A unusual piece of headwear somewhere between a proper helmet and a normal cap." + icon = 'monkestation/code/modules/blueshift/icons/clothes/clothing.dmi' + icon_state = "tanker" + worn_icon = 'monkestation/code/modules/blueshift/icons/clothes/clothing_worn.dmi' + worn_icon_state = "tanker" + armor_type = /datum/armor/colonist_armor + resistance_flags = NONE + flags_inv = 0 + clothing_flags = SNUG_FIT + +/obj/item/clothing/head/frontier_colonist_helmet/Initialize(mapload) + . = ..() + AddElement(/datum/element/manufacturer_examine, COMPANY_KAHRAMAN) + +// Headset + +/obj/item/radio/headset/headset_frontier_colonist + name = "frontier radio headset" + desc = "A bulky headset that should hopefully survive exposure to the elements better than station headsets might. \ + Has a built-in antenna allowing the headset to work independently of a communications network." + icon = 'monkestation/code/modules/blueshift/icons/clothes/clothing.dmi' + icon_state = "radio" + worn_icon = 'monkestation/code/modules/blueshift/icons/clothes/clothing_worn.dmi' + worn_icon_state = "radio" + alternate_worn_layer = FACEMASK_LAYER + 0.5 + subspace_transmission = FALSE + +/obj/item/radio/headset/headset_frontier_colonist/Initialize(mapload) + . = ..() + AddElement(/datum/element/manufacturer_examine, COMPANY_KAHRAMAN) + +// Gloves + +/obj/item/clothing/gloves/frontier_colonist + name = "frontier gloves" + desc = "A sturdy pair of black gloves that'll keep your precious fingers protected from the outside world. \ + They go a bit higher up the arm than most gloves should, and you aren't quite sure why." + icon = 'monkestation/code/modules/blueshift/icons/clothes/clothing.dmi' + icon_state = "gloves" + worn_icon = 'monkestation/code/modules/blueshift/icons/clothes/clothing_worn.dmi' + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + worn_icon_state = "gloves" + greyscale_colors = "#3a373e" + siemens_coefficient = 0.25 // Doesn't insulate you entirely, but makes you a little more resistant + cold_protection = HANDS + min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT + heat_protection = HANDS + max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT + resistance_flags = NONE + clothing_traits = list(TRAIT_QUICK_CARRY) + +/obj/item/clothing/gloves/frontier_colonist/Initialize(mapload) + . = ..() + AddElement(/datum/element/manufacturer_examine, COMPANY_KAHRAMAN) + +// Special mask + +/obj/item/clothing/mask/gas/atmos/frontier_colonist + name = "frontier gas mask" + desc = "An improved gas mask commonly seen in places where the atmosphere is less than breathable, \ + but otherwise more or less habitable. Its certified to protect against most biological hazards \ + to boot." + icon = 'monkestation/code/modules/blueshift/icons/clothes/clothing.dmi' + icon_state = "mask" + worn_icon = 'monkestation/code/modules/blueshift/icons/clothes/clothing_worn.dmi' + worn_icon_state = "mask" + flags_inv = HIDEEYES|HIDEFACE|HIDEFACIALHAIR|HIDESNOUT + armor_type = /datum/armor/colonist_hazard + +/obj/item/clothing/mask/gas/atmos/frontier_colonist/Initialize(mapload) + . = ..() + AddElement(/datum/element/manufacturer_examine, COMPANY_KAHRAMAN) + +/datum/armor/colonist_clothing + laser = ARMOR_LEVEL_TINY + energy = ARMOR_LEVEL_TINY + bomb = ARMOR_LEVEL_TINY + bio = ARMOR_LEVEL_TINY + fire = ARMOR_LEVEL_WEAK + acid = ARMOR_LEVEL_TINY + wound = WOUND_ARMOR_WEAK + +/datum/armor/colonist_armor + melee = ARMOR_LEVEL_WEAK + bullet = ARMOR_LEVEL_WEAK + laser = ARMOR_LEVEL_TINY + energy = ARMOR_LEVEL_TINY + bomb = ARMOR_LEVEL_TINY + bio = ARMOR_LEVEL_TINY + fire = ARMOR_LEVEL_WEAK + acid = ARMOR_LEVEL_TINY + wound = WOUND_ARMOR_STANDARD + +/datum/armor/colonist_hazard + melee = ARMOR_LEVEL_TINY + bullet = ARMOR_LEVEL_TINY + laser = ARMOR_LEVEL_WEAK + energy = ARMOR_LEVEL_WEAK + bomb = ARMOR_LEVEL_MID + bio = 100 + fire = 100 + acid = ARMOR_LEVEL_MID + wound = WOUND_ARMOR_WEAK diff --git a/monkestation/code/modules/blueshift/clothing/nova_armorsuit.dm b/monkestation/code/modules/blueshift/clothing/nova_armorsuit.dm new file mode 100644 index 000000000000..3fad9b7ae72b --- /dev/null +++ b/monkestation/code/modules/blueshift/clothing/nova_armorsuit.dm @@ -0,0 +1,32 @@ +// MODULAR ARMOUR + +// WARDEN +/obj/item/clothing/suit/armor/vest/warden/syndicate + name = "master at arms' vest" + desc = "Stunning. Menacing. Perfect for the man who gets bullied for leaving the brig." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/suits/armor.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/suits/armor.dmi' + icon_state = "warden_syndie" + current_skin = "warden_syndie" //prevents reskinning + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION + +// HEAD OF PERSONNEL +/obj/item/clothing/suit/armor/vest/hop/hop_formal + name = "head of personnel's parade jacket" + desc = "A luxurious deep blue jacket for the Head of Personnel, woven with a red trim. It smells of bureaucracy." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/suits/armor.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/suits/armor.dmi' + icon_state = "hopformal" + +/obj/item/clothing/suit/armor/vest/hop/hop_formal/Initialize(mapload) + . = ..() + AddComponent(/datum/component/toggle_icon) + +// CAPTAIN +/obj/item/clothing/suit/armor/vest/capcarapace/jacket + name = "captain's jacket" + desc = "A lightweight armored jacket in the Captain's colors. For when you want something sleeker." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/suits/armor.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/suits/armor.dmi' + icon_state = "capjacket_casual" + body_parts_covered = CHEST|ARMS diff --git a/monkestation/code/modules/blueshift/clothing/nova_belt.dm b/monkestation/code/modules/blueshift/clothing/nova_belt.dm new file mode 100644 index 000000000000..fc28f4d0a6db --- /dev/null +++ b/monkestation/code/modules/blueshift/clothing/nova_belt.dm @@ -0,0 +1,106 @@ +/obj/item/storage/belt/medbandolier + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/belts.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/belt.dmi' + name = "medical bandolier" + desc = "A pocketed, pine green belt slung like a sash over the shoulder. Features numerous pockets for medicines and poisons alike. Now is coward healing time." + icon_state = "med_bandolier" + worn_icon_state = "med_bandolier" + +/obj/item/storage/belt/medbandolier/Initialize(mapload) + . = ..() + atom_storage.max_specific_storage = WEIGHT_CLASS_NORMAL + atom_storage.max_slots = 14 + atom_storage.max_total_storage = 35 + atom_storage.set_holdable(list( + /obj/item/dnainjector, + /obj/item/reagent_containers/dropper, + /obj/item/reagent_containers/cup/bottle, + /obj/item/reagent_containers/pill, + /obj/item/reagent_containers/syringe, + /obj/item/reagent_containers/medigel, + /obj/item/storage/pill_bottle, + /obj/item/implanter + )) + +/obj/item/storage/belt/military/nri + name = "green tactical belt" + desc = "A green tactical belt made for storing military grade hardware." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/belts.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/belt.dmi' + icon_state = "russian_green_belt" + inhand_icon_state = "security" + worn_icon_state = "russian_green_belt" + +/obj/item/storage/belt/military/nri/captain + name = "black tactical belt" + desc = "A black tactical belt made for storing military grade hardware." + icon_state = "russian_black_belt" + worn_icon_state = "russian_black_belt" + +/obj/item/storage/belt/military/nri/medic + name = "blue tactical belt" + desc = "A blue tactical belt made for storing military grade hardware." + icon_state = "russian_white_belt" + worn_icon_state = "russian_white_belt" + +/obj/item/storage/belt/military/nri/engineer + name = "brown tactical belt" + desc = "A brown tactical belt made for storing military grade hardware." + icon_state = "russian_brown_belt" + worn_icon_state = "russian_brown_belt" + +/obj/item/storage/belt/military/nri/plus_mre/PopulateContents() + new /obj/item/storage/box/nri_survival_pack/raider(src) + +/obj/item/storage/belt/military/nri/soldier/PopulateContents() + generate_items_inside(list( + /obj/item/ammo_box/magazine/lanca = 4, + /obj/item/knife/combat = 1, + /obj/item/grenade/smokebomb = 1, + /obj/item/grenade/frag = 1, + ),src) + +/obj/item/storage/belt/military/nri/heavy/PopulateContents() + generate_items_inside(list( + /obj/item/ammo_box/magazine/m9mm_aps = 4, + /obj/item/knife/combat = 1, + /obj/item/grenade/smokebomb = 1, + /obj/item/grenade/frag = 1, + ),src) + +/obj/item/storage/belt/military/nri/captain/full/PopulateContents() + generate_items_inside(list( + /obj/item/ammo_box/magazine/lanca = 4, + /obj/item/knife/combat = 1, + /obj/item/grenade/smokebomb = 1, + /obj/item/grenade/frag = 1, + ),src) + +/obj/item/storage/belt/military/nri/medic/full/PopulateContents() + generate_items_inside(list( + /obj/item/ammo_box/magazine/miecz = 4, + /obj/item/knife/combat = 1, + /obj/item/grenade/smokebomb = 1, + /obj/item/grenade/frag = 1, + ),src) + +/obj/item/storage/belt/military/nri/engineer/full/PopulateContents() + generate_items_inside(list( + /obj/item/ammo_box/magazine/miecz = 4, + /obj/item/knife/combat = 1, + /obj/item/grenade/smokebomb = 1, + /obj/item/grenade/frag = 1, + ),src) + +/obj/item/storage/box/nri_survival_pack/raider + w_class = WEIGHT_CLASS_SMALL + desc = "A box filled with useful emergency items, supplied by the NRI. It feels particularily light." + +/obj/item/storage/box/nri_survival_pack/raider/PopulateContents() + new /obj/item/oxygen_candle(src) + new /obj/item/tank/internals/emergency_oxygen(src) + new /obj/item/stack/spacecash/c1000(src) + new /obj/item/storage/pill_bottle/iron(src) + new /obj/item/reagent_containers/hypospray/medipen(src) + new /obj/item/flashlight/flare(src) + new /obj/item/crowbar/red(src) diff --git a/monkestation/code/modules/blueshift/clothing/nova_cargo.dm b/monkestation/code/modules/blueshift/clothing/nova_cargo.dm new file mode 100644 index 000000000000..65b1972f33ad --- /dev/null +++ b/monkestation/code/modules/blueshift/clothing/nova_cargo.dm @@ -0,0 +1,116 @@ +/obj/item/clothing/under/rank/cargo + worn_icon_digitigrade = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/cargo_digi.dmi' + +/obj/item/clothing/under/rank/cargo/tech/nova + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/cargo.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/cargo.dmi' + +/obj/item/clothing/under/rank/cargo/qm/nova + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/cargo.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/cargo.dmi' + +// Add a /obj/item/clothing/under/rank/cargo/miner/nova if you add miner uniforms + +/* +* CARGO TECH +*/ + +/obj/item/clothing/under/rank/cargo/tech/nova/utility + name = "supply utility uniform" + desc = "A utility uniform worn by employees of the Supply department." + icon_state = "util_cargo" + can_adjust = FALSE + +/obj/item/clothing/under/rank/cargo/tech/nova/utility/syndicate + armor_type = /datum/armor/clothing_under/utility_syndicate + has_sensor = NO_SENSORS + +/obj/item/clothing/under/rank/cargo/tech/nova/long + name = "cargo technician's long jumpsuit" + desc = "For crate-pushers who'd rather protect their legs than show them off." + icon_state = "cargo_long" + alt_covers_chest = FALSE + +/obj/item/clothing/under/rank/cargo/tech/nova/gorka + name = "supply gorka" + desc = "A rugged, utilitarian gorka worn by the Supply department." + icon_state = "gorka_cargo" + can_adjust = FALSE + +/obj/item/clothing/under/rank/cargo/tech/nova/turtleneck + name = "supply turtleneck" + desc = "A snug turtleneck sweater worn by the Supply department.." + icon_state = "turtleneck_cargo" + +/obj/item/clothing/under/rank/cargo/tech/nova/turtleneck/skirt + name = "supply skirtleneck" + desc = "A snug turtleneck sweater worn by Supply, this time with a skirt attached!" + icon_state = "skirtleneck" + female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY + +/obj/item/clothing/under/rank/cargo/tech/nova/evil + name = "black cargo uniform" + desc = "A standard cargo uniform with a more... Venerable touch to it." + icon_state = "qmsynd" + can_adjust = FALSE + +/obj/item/clothing/under/rank/cargo/tech/nova/casualman + name = "cargo technician casualwear" + desc = "A pair of stylish black jeans and a regular sweater for the relaxed technician." + icon_state = "cargotechjean" + can_adjust = FALSE + +/* +* QUARTERMASTER +*/ + +/obj/item/clothing/under/rank/cargo/qm/nova/gorka + name = "quartermaster's gorka" + desc = "A rugged, utilitarian gorka with silver markings. Unlike the regular employees', this one is lined with silk on the inside." + icon_state = "gorka_qm" + can_adjust = FALSE + +/obj/item/clothing/under/rank/cargo/qm/nova/turtleneck + name = "quartermaster's turtleneck" + desc = "A snug turtleneck sweater worn by the Quartermaster, characterized by the expensive-looking pair of suit pants." + icon_state = "turtleneck_qm" + +/obj/item/clothing/under/rank/cargo/qm/nova/turtleneck/skirt + name = "quartermaster's skirtleneck" + desc = "A snug turtleneck sweater worn by the Quartermaster, as shown by the elegant double-lining of its silk skirt." + icon_state = "skirtleneckQM" + female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY + +/obj/item/clothing/under/rank/cargo/qm/nova/interdyne + name = "deck officer's jumpsuit" + desc = "A dark suit with a classic cargo vest. For the ultimate master of all things paper." + icon_state = "qmsynd" + has_sensor = NO_SENSORS + armor_type = /datum/armor/clothing_under/nova_interdyne + can_adjust = FALSE + +/datum/armor/clothing_under/nova_interdyne + melee = 10 + fire = 50 + acid = 40 + +/obj/item/clothing/under/rank/cargo/qm/nova/formal + name = "quartermaster's formal jumpsuit" + desc = "A western-like alternate uniform for the old fashioned QM." + icon_state = "supply_chief" + can_adjust = FALSE + +/obj/item/clothing/under/rank/cargo/qm/nova/formal/skirt + name = "quartermaster's formal jumpskirt" + desc = "A western-like alternate uniform for the old fashioned QM. Skirt included!" + icon_state = "supply_chief_skirt" + can_adjust = FALSE + body_parts_covered = CHEST|GROIN|ARMS + dying_key = DYE_REGISTRY_JUMPSKIRT + female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + +/obj/item/clothing/under/rank/cargo/qm/nova/casual + name = "quartermaster's casualwear" + desc = "A brown jacket with matching trousers for the relaxed Quartermaster." + icon_state = "qmc" diff --git a/monkestation/code/modules/blueshift/clothing/nova_centcom.dm b/monkestation/code/modules/blueshift/clothing/nova_centcom.dm new file mode 100644 index 000000000000..1c8f4104b889 --- /dev/null +++ b/monkestation/code/modules/blueshift/clothing/nova_centcom.dm @@ -0,0 +1,35 @@ +//This file is for any station-aligned or neutral factions, not JUST Nanotrasen. +//Try to keep them all a subtype of centcom/nova, for file sorting and balance - all faction representatives should have the same/similarly armored uniforms + +/obj/item/clothing/under/rank/centcom + worn_icon_digitigrade = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/centcom_digi.dmi' + +/obj/item/clothing/under/rank/centcom/nova + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/centcom.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/centcom.dmi' + +/* +* NANOTRASEN +*/ +//Check modular_nova\modules\nanotrasen_naval_command\code\clothing.dm for more of these! (Or, currently, ALL of these.) + +/* +* LOPLAND +*/ +/obj/item/clothing/under/rank/centcom/nova/lopland + name = "\improper Lopland corporate uniform" + desc = "A sleek jumpsuit worn by Lopland corporate. Its surprisingly well padded." + icon_state = "lopland_shirt" + worn_icon_state = "lopland_shirt" + +/obj/item/clothing/under/rank/centcom/nova/lopland/instructor + name = "\improper Lopland instructor's uniform" + desc = "A over-the-top, militaristic jumpsuit worn by Lopland-certified instructors, with a big Lopland logo slapped on the back. The amount of pockets could make a space marine cry." + icon_state = "lopland_tac" + worn_icon_state = "lopland_tac" + + +/* +* MISC +*/ +// pizza and other misc ERTs in this file too? diff --git a/monkestation/code/modules/blueshift/clothing/nova_civilian.dm b/monkestation/code/modules/blueshift/clothing/nova_civilian.dm new file mode 100644 index 000000000000..377fe7c8b73a --- /dev/null +++ b/monkestation/code/modules/blueshift/clothing/nova_civilian.dm @@ -0,0 +1,241 @@ +/obj/item/clothing/under/rank/civilian + worn_icon_digitigrade = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/civilian_digi.dmi' + +/obj/item/clothing/under/rank/civilian/lawyer // Lawyers' suits are in TG's suits.dmi + worn_icon_digitigrade = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/suits_digi.dmi' + +/obj/item/clothing/under/rank/civilian/lawyer/bluesuit // EXCEPT THIS ONE. + greyscale_config_worn_digitigrade = /datum/greyscale_config/buttondown_slacks/worn/digi + +/obj/item/clothing/under/rank/civilian/head_of_personnel/nova + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/civilian.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/civilian.dmi' + can_adjust = FALSE //Just gonna set it to default for ease + +//TG's files separate this into Civilian, Clown/Mime, and Curator. We wont have as many, so all Service goes into this file. +//DO NOT ADD A /obj/item/clothing/under/rank/civilian/lawyer/nova. USE /obj/item/clothing/under/suit/nova FOR MODULAR SUITS (civilian/suits.dm). + +/* +* HEAD OF PERSONNEL +*/ + +/obj/item/clothing/under/rank/civilian/head_of_personnel/nova/imperial //Rank pins of the Grand Moff + name = "head of personnel's naval jumpsuit" + desc = "A pale green naval suit and a rank badge denoting the Personnel Officer. Target, maximum firepower." + icon_state = "imphop" + supports_variations_flags = NONE + +/obj/item/clothing/under/rank/civilian/head_of_personnel/nova/parade + name = "head of personnel's male formal uniform" + desc = "A luxurious uniform for the head of personnel, woven in a deep blue. On the lapel is a small pin in the shape of a corgi's head." + icon_state = "hop_parade_male" + +/obj/item/clothing/under/rank/civilian/head_of_personnel/nova/parade/female + name = "head of personnel's female formal uniform" + icon_state = "hop_parade_female" + +/obj/item/clothing/under/rank/civilian/head_of_personnel/nova/turtleneck + name = "head of personnel's turtleneck" + desc = "A soft blue turtleneck and black khakis worn by Executives who prefer a bit more comfort over style." + icon_state = "hopturtle" + can_adjust = TRUE + alt_covers_chest = TRUE + +/obj/item/clothing/under/rank/civilian/head_of_personnel/nova/turtleneck/skirt + name = "head of personnel's turtleneck skirt" + desc = "A soft blue turtleneck and black skirt worn by Executives who prefer a bit more comfort over style." + icon_state = "hopturtle_skirt" + body_parts_covered = CHEST|GROIN|ARMS + dying_key = DYE_REGISTRY_JUMPSKIRT + female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY + + +/obj/item/clothing/under/suit + worn_icon_digitigrade = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/suits_digi.dmi' + +/obj/item/clothing/under/suit/nova + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/suits.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/suits.dmi' + +//DO NOT ADD A /obj/item/clothing/under/rank/civilian/lawyer/nova. USE /obj/item/clothing/under/suit/nova FOR MODULAR SUITS + +/* +* RECOLORABLE +*/ +/obj/item/clothing/under/suit/nova/recolorable + name = "recolorable suit" + desc = "A semi-formal suit, clean-cut with a matching vest and slacks." + icon_state = "recolorable_suit" + can_adjust = FALSE + greyscale_config = /datum/greyscale_config/recolorable_suit + greyscale_config_worn = /datum/greyscale_config/recolorable_suit/worn + greyscale_config_worn_digitigrade = /datum/greyscale_config/recolorable_suit/worn/digi + greyscale_colors = "#a99780#ffffff#6e2727#ffc500" + flags_1 = IS_PLAYER_COLORABLE_1 + +/obj/item/clothing/under/suit/nova/recolorable/skirt + name = "recolorable suitskirt" + desc = "A semi-formal suitskirt, clean-cut with a matching vest and skirt." + icon_state = "recolorable_suitskirt" + female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + + body_parts_covered = CHEST|GROIN|LEGS + greyscale_config = /datum/greyscale_config/recolorable_suitskirt + greyscale_config_worn = /datum/greyscale_config/recolorable_suitskirt/worn + greyscale_config_worn_digitigrade = /datum/greyscale_config/recolorable_suitskirt/worn/digi + +/obj/item/clothing/under/suit/nova/recolorable/casual + name = "office casual suit" + desc = "A semi-formal suit, clean-cut with a matching vest and slacks." + icon_state = "fancysuit_casual" + greyscale_config = /datum/greyscale_config/fancysuit_casual + greyscale_config_worn = /datum/greyscale_config/fancysuit_casual/worn + greyscale_config_worn_digitigrade = /datum/greyscale_config/fancysuit_casual/worn/digi + greyscale_colors = "#37373e#ffffff" + +/obj/item/clothing/under/suit/nova/recolorable/executive + name = "executive casual suit" + desc = "A formal suit, clean-cut with a matching vest, undershirt, tie and slacks." + icon_state = "fancysuit_executive" + greyscale_config = /datum/greyscale_config/fancysuit_executive + greyscale_config_worn = /datum/greyscale_config/fancysuit_executive/worn + greyscale_config_worn_digitigrade = /datum/greyscale_config/fancysuit_executive/worn/digi + greyscale_colors = "#37373e#37373e#ffffff#ac3232" + +/obj/item/clothing/under/suit/nova/pencil + name = "pencilskirt and shirt" + desc = "A clean shirt with a tight-fitting pencilskirt." + icon_state = "pencilskirt_shirt" + female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY + + greyscale_colors = "#37373e#ffffff" + greyscale_config = /datum/greyscale_config/pencilskirt_withshirt + greyscale_config_worn = /datum/greyscale_config/pencilskirt_withshirt/worn + greyscale_config_worn_digitigrade = /datum/greyscale_config/pencilskirt_withshirt/worn/digi + flags_1 = IS_PLAYER_COLORABLE_1 + +/obj/item/clothing/under/suit/nova/pencil/noshirt + name = "pencilskirt" + desc = "A tight-fitting pencilskirt, perfect to augment an undershirt." + icon_state = "pencilskirt" + greyscale_colors = "#37373e" + greyscale_config = /datum/greyscale_config/pencilskirt + greyscale_config_worn = /datum/greyscale_config/pencilskirt/worn + greyscale_config_worn_digitigrade = /datum/greyscale_config/pencilskirt/worn/digi + body_parts_covered = GROIN|LEGS + +/obj/item/clothing/under/suit/nova/pencil/charcoal + name = "charcoal pencilskirt" + desc = "A clean white shirt with a tight-fitting charcoal pencilskirt." + greyscale_colors = "#303030#ffffff" + +/obj/item/clothing/under/suit/nova/pencil/navy + name = "navy pencilskirt" + desc = "A clean white shirt with a tight-fitting navy-blue pencilskirt." + greyscale_colors = "#112334#ffffff" + +/obj/item/clothing/under/suit/nova/pencil/burgandy + name = "burgandy pencilskirt" + desc = "A clean white shirt with a tight-fitting burgandy-red pencilskirt." + greyscale_colors = "#3e1111#ffffff" + +/obj/item/clothing/under/suit/nova/pencil/tan + name = "tan pencilskirt" + desc = "A clean white shirt with a tight-fitting tan pencilskirt." + greyscale_colors = "#8b7458#ffffff" + +/obj/item/clothing/under/suit/nova/pencil/green + name = "green pencilskirt" + desc = "A clean white shirt with a tight-fitting green pencilskirt." + greyscale_colors = "#113e20#ffffff" + +/obj/item/clothing/under/suit/nova/pencil/black_really + name = "executive pencilskirt" + desc = "A sleek suit with a tight-fitting pencilskirt." + icon_state = "pencilskirt_suit" + greyscale_colors = "#37373e#37373e#ffffff#ac3232" + greyscale_config = /datum/greyscale_config/pencilskirt_withsuit + greyscale_config_worn = /datum/greyscale_config/pencilskirt_withsuit/worn + greyscale_config_worn_digitigrade = /datum/greyscale_config/pencilskirt_withsuit/worn/digi + +/obj/item/clothing/under/suit/nova/pencil/checkered + name = "checkered pencilskirt and shirt" + desc = "A clean shirt with a tight-fitting checkered pencilskirt." + icon_state = "pencilskirt_checkers_shirt" + greyscale_colors = "#37373e#232323#ffffff" + greyscale_config = /datum/greyscale_config/pencilskirt_checkers_withshirt + greyscale_config_worn = /datum/greyscale_config/pencilskirt_checkers_withshirt/worn + greyscale_config_worn_digitigrade = /datum/greyscale_config/pencilskirt_checkers_withshirt/worn/digi + +/obj/item/clothing/under/suit/nova/pencil/checkered/noshirt + name = "checkered pencilskirt" + desc = "A tight-fitting checkered pencilskirt." + icon_state = "pencilskirt_checkers" + greyscale_colors = "#37373e#232323" + greyscale_config = /datum/greyscale_config/pencilskirt_checkers + greyscale_config_worn = /datum/greyscale_config/pencilskirt_checkers/worn + greyscale_config_worn_digitigrade = /datum/greyscale_config/pencilskirt_checkers/worn/digi + body_parts_covered = GROIN|LEGS + +/* +* STATIC SUITS (NO GAGS) +*/ +/obj/item/clothing/under/suit/nova/scarface + name = "cuban suit" + desc = "A yayo coloured silk suit with a crimson shirt. You just know how to hide, how to lie. Me, I don't have that problem. Me, I always tell the truth. Even when I lie." + icon_state = "scarface" + +/obj/item/clothing/under/suit/nova/black_really_collared + name = "wide-collared executive suit" + desc = "A formal black suit with the collar worn wide, intended for the station's finest." + icon_state = "really_black_suit_collar" + +/obj/item/clothing/under/suit/nova/black_really_collared/skirt + name = "wide-collared executive suitskirt" + desc = "A formal black suit with the collar worn wide, intended for the station's finest." + icon_state = "really_black_suit_skirt_collar" + body_parts_covered = CHEST|GROIN|ARMS + female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY|FEMALE_UNIFORM_NO_BREASTS + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + + +/obj/item/clothing/under/suit/nova/inferno + name = "inferno suit" + desc = "Stylish enough to impress the devil." + icon_state = "lucifer" + female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY + obj_flags = UNIQUE_RENAME + unique_reskin = list( + "Pride" = "lucifer", + "Wrath" = "justice", + "Gluttony" = "malina", + "Envy" = "zdara", + "Vanity" = "cereberus", + ) + +/obj/item/clothing/under/suit/nova/inferno/skirt + name = "inferno suitskirt" + icon_state = "modeus" + obj_flags = UNIQUE_RENAME + unique_reskin = list( + "Lust" = "modeus", + "Sloth" = "pande", + ) + +/obj/item/clothing/under/suit/nova/inferno/beeze + name = "designer inferno suit" + desc = "A fancy tail-coated suit with a fluffy bow emblazoned on the chest, complete with an NT pin." + icon_state = "beeze" + obj_flags = null + unique_reskin = null + +/obj/item/clothing/under/suit/nova/helltaker + name = "red shirt with white pants" + desc = "No time. Busy gathering girls." + icon_state = "helltaker" + +/obj/item/clothing/under/suit/nova/helltaker/skirt + name = "red shirt with white skirt" + desc = "No time. Busy gathering boys." + icon_state = "helltakerskirt" diff --git a/monkestation/code/modules/blueshift/clothing/nova_coats.dm b/monkestation/code/modules/blueshift/clothing/nova_coats.dm new file mode 100644 index 000000000000..04e73300acd3 --- /dev/null +++ b/monkestation/code/modules/blueshift/clothing/nova_coats.dm @@ -0,0 +1,271 @@ +#define STUFF_WINTER_COATS_HOLD list( \ + /obj/item/flashlight, \ + /obj/item/lighter, \ + /obj/item/modular_computer/pda, \ + /obj/item/radio, \ + /obj/item/storage/bag/books, \ + /obj/item/storage/fancy/cigarettes, \ + /obj/item/tank/internals/emergency_oxygen, \ + /obj/item/tank/internals/plasmaman, \ + /obj/item/toy, \ +) + +/obj/item/clothing/suit/hooded/wintercoat/medical/paramedic + allowed = list( + /obj/item/analyzer, + /obj/item/stack/medical, + /obj/item/dnainjector, + /obj/item/reagent_containers/dropper, + /obj/item/reagent_containers/syringe, + /obj/item/reagent_containers/hypospray, + /obj/item/healthanalyzer, + /obj/item/reagent_containers/cup/bottle, + /obj/item/reagent_containers/cup/beaker, + /obj/item/reagent_containers/pill, + /obj/item/storage/pill_bottle, + /obj/item/paper, + /obj/item/melee/baton/telescopic, + ) + armor_type = /datum/armor/wintercoat_paramedic + +/datum/armor/wintercoat_paramedic + bio = 50 + acid = 45 + wound = 3 + +/obj/item/clothing/suit/flakjack + name = "flak jacket" + desc = "A dilapidated jacket made of a supposedly bullet-proof material (Hint: It isn't.). Smells faintly of napalm." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/suits/armor.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/suits/armor.dmi' + icon_state = "flakjack" + inhand_icon_state = "armor" + blood_overlay_type = "armor" + body_parts_covered = CHEST + resistance_flags = NONE + armor_type = /datum/armor/suit_flakjack + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + +/datum/armor/suit_flakjack + bomb = 5 + fire = -5 + acid = -15 + +/obj/item/clothing/suit/hooded/cloak/david + name = "red cloak" + icon_state = "goliath_cloak" + desc = "Ever wanted to look like a badass without ANY effort? Try this nanotrasen brand red cloak, made of entirely synthetic material." + hoodtype = /obj/item/clothing/head/hooded/cloakhood/david + body_parts_covered = CHEST|GROIN|ARMS + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + +/obj/item/clothing/head/hooded/cloakhood/david + icon = 'icons/obj/clothing/head/helmet.dmi' + worn_icon = 'icons/mob/clothing/head/helmet.dmi' + name = "red cloak hood" + icon_state = "golhood" + desc = "Conceal your face in shame with this nanotrasen brand mock-goliath hood." + flags_inv = HIDEEARS|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR + +/obj/item/clothing/suit/urban + name = "urban coat" + desc = "A coat built for urban life." + icon_state = "urban_coat" + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + greyscale_config = /datum/greyscale_config/urban_coat + greyscale_config_worn = /datum/greyscale_config/urban_coat/worn + greyscale_colors = "#252e5a#938060#66562b" + flags_1 = IS_PLAYER_COLORABLE_1 + +/obj/item/clothing/suit/toggle/deckard + name = "runner coat" + desc = "They say you overused reference. Tell them you're eating in this lovely coat, a long flowing brown one." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/suits.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/suit.dmi' + icon_state = "deckard" + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + inhand_icon_state = "det_suit" + blood_overlay_type = "coat" + body_parts_covered = CHEST|GROIN|LEGS|ARMS + armor_type = /datum/armor/toggle_deckard + cold_protection = CHEST|GROIN|LEGS|ARMS + heat_protection = CHEST|GROIN|LEGS|ARMS + +/datum/armor/toggle_deckard + melee = 25 + bullet = 10 + laser = 25 + energy = 35 + acid = 45 + +/obj/item/clothing/suit/jacket/leather/colourable + desc = "Now with more color!" + icon_state = "leather_jacket" + greyscale_config = /datum/greyscale_config/leather_jacket + greyscale_config_worn = /datum/greyscale_config/leather_jacket/worn + greyscale_colors = "#FFFFFF" + flags_1 = IS_PLAYER_COLORABLE_1 + +/obj/item/clothing/suit/duster + name = "duster" + desc = "This station ain't big enough for the both of us." + icon_state = "duster" + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + greyscale_config = /datum/greyscale_config/duster + greyscale_config_worn = /datum/greyscale_config/duster/worn + greyscale_colors = "#954b21" + flags_1 = IS_PLAYER_COLORABLE_1 + +/obj/item/clothing/suit/toggle/peacoat + name = "peacoat" + desc = "The way you guys are blending in with the local colour. I mean, Flag Girl was bad enough, but U-Boat Captain?" + icon_state = "peacoat" + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + greyscale_config = /datum/greyscale_config/peacoat + greyscale_config_worn = /datum/greyscale_config/peacoat/worn + greyscale_colors = "#61618a" + flags_1 = IS_PLAYER_COLORABLE_1 + +/obj/item/clothing/suit/toggle/lawyer/black/better + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/suits.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/suit.dmi' + icon_state = "suitjacket_black" + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + +/obj/item/clothing/suit/toggle/lawyer/white + name = "white suit jacket" + desc = "A very versatile part of a suit ensable. Oddly in fashion with mobsters." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/suits.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/suit.dmi' + icon_state = "suitjacket_white" + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + +/obj/item/clothing/suit/armor/vest/det_suit/runner + name = "joyful coat" + desc = "\"You look like a good Joe.\"" + icon_state = "bladerunner_neue" + body_parts_covered = CHEST|GROIN|ARMS|LEGS + cold_protection = CHEST|GROIN|ARMS|LEGS + heat_protection = CHEST|ARMS|GROIN|LEGS + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/suits.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/suit.dmi' + blood_overlay_type = "coat" + +/obj/item/clothing/suit/jacket/croptop + name = "crop top turtleneck" + desc = "A comfy looking turtleneck that exposes your midriff, fashionable but makes the point of a sweater moot." + icon_state = "croptop" + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/suits/jacket.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/suits/jacket.dmi' + body_parts_covered = CHEST|ARMS + cold_protection = CHEST|ARMS + greyscale_config = /datum/greyscale_config/croptop + greyscale_config_worn = /datum/greyscale_config/croptop/worn + greyscale_colors = "#1d1b1b" + flags_1 = IS_PLAYER_COLORABLE_1 + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + +/obj/item/clothing/suit/varsity + name = "varsity jacket" + desc = "A simple varsity jacket with no obvious sources." + icon_state = "varsity_jacket" + greyscale_config = /datum/greyscale_config/varsity + greyscale_config_worn = /datum/greyscale_config/varsity/worn + greyscale_colors = "#553022#a67a5b#2d2d33" + body_parts_covered = CHEST|GROIN|ARMS + flags_1 = IS_PLAYER_COLORABLE_1 + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + +/obj/item/clothing/suit/varsity/Initialize(mapload) + . = ..() + allowed += STUFF_WINTER_COATS_HOLD + +/obj/item/clothing/suit/hooded/leather + name = "hooded leather coat" + desc = "A simple leather coat with a hoodie underneath it, not really hooded is it?" + icon_state = "leatherhoodie" + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/suits.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/suit.dmi' + body_parts_covered = CHEST|GROIN|ARMS + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + hoodtype = /obj/item/clothing/head/hooded/leather + +/obj/item/clothing/head/hooded/leather + name = "jacket hood" + desc = "A hood attached to a hoodie, nothing special." + icon_state = "leatherhood" + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/hats.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/head.dmi' + flags_inv = HIDEHAIR + +/obj/item/clothing/suit/tailored_jacket + name = "tailored jacket" + desc = "A somewhat long jacket tailor made for... however it looks right now!" + icon_state = "tailored_jacket" + greyscale_config = /datum/greyscale_config/tailored_jacket + greyscale_config_worn = /datum/greyscale_config/tailored_jacket/worn + greyscale_colors = "#8c8c8c#8c8c8c#8c8c8c#bf9f78#8c8c8c#8c8c8c#8c8c8c#bf9f78#8c8c8c" // Look this has a lot of colorable sections + body_parts_covered = CHEST|ARMS + flags_1 = IS_PLAYER_COLORABLE_1 + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + +/obj/item/clothing/suit/tailored_jacket/Initialize(mapload) + . = ..() + allowed += STUFF_WINTER_COATS_HOLD + AddComponent(/datum/component/toggle_icon, "sleeves") + +/obj/item/clothing/suit/tailored_jacket/short + name = "tailored short jacket" + desc = "A jacket tailor made for... however it looks right now!" + greyscale_config = /datum/greyscale_config/tailored_short_jacket + greyscale_config_worn = /datum/greyscale_config/tailored_short_jacket/worn + greyscale_colors = "#8c8c8c#8c8c8c#8c8c8c#bf9f78#8c8c8c#8c8c8c#bf9f78#8c8c8c" + +/obj/item/clothing/suit/warm_coat + name = "warm coat" + desc = "A long insulated coat with fur, it looks quite comfortable." + icon_state = "warm_coat" + greyscale_config = /datum/greyscale_config/warm_coat + greyscale_config_worn = /datum/greyscale_config/warm_coat/worn + greyscale_colors = "#7a5f4f#d9cec7" + flags_1 = IS_PLAYER_COLORABLE_1 + cold_protection = CHEST|GROIN|ARMS + body_parts_covered = CHEST|GROIN|ARMS + min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + +/obj/item/clothing/suit/warm_coat/Initialize(mapload) + . = ..() + allowed += STUFF_WINTER_COATS_HOLD + +/obj/item/clothing/suit/crop_jacket + name = "crop-top jacket" + desc = "A jacket that, some time long past, probably made quite the effective outdoors wear. Now, \ + some barbarian has cut the entire bottom half out." + icon_state = "crop_jacket" + greyscale_config = /datum/greyscale_config/crop_jacket + greyscale_config_worn = /datum/greyscale_config/crop_jacket/worn + greyscale_colors = "#ebebeb#a52f29#292929" + body_parts_covered = CHEST|ARMS + flags_1 = IS_PLAYER_COLORABLE_1 + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + /// Whether or not this gets the /datum/component/toggle_icon component added (for rolling up sleeves) + var/has_sleeves = TRUE + +/obj/item/clothing/suit/crop_jacket/Initialize(mapload) + . = ..() + allowed += STUFF_WINTER_COATS_HOLD + if(has_sleeves) + AddComponent(/datum/component/toggle_icon, "sleeves") + +/obj/item/clothing/suit/crop_jacket/sleeveless + name = "sleeveless crop-top jacket" + desc = "A jacket that, some time long past, probably made quite the effective outdoors wear. Now, \ + some barbarian has cut the entire bottom half out, as well as the sleeves." + greyscale_config = /datum/greyscale_config/sleeveless_crop_jacket + greyscale_config_worn = /datum/greyscale_config/sleeveless_crop_jacket/worn + greyscale_colors = "#ebebeb#a52f29" + body_parts_covered = CHEST + has_sleeves = FALSE + +#undef STUFF_WINTER_COATS_HOLD diff --git a/monkestation/code/modules/blueshift/clothing/nova_command.dm b/monkestation/code/modules/blueshift/clothing/nova_command.dm new file mode 100644 index 000000000000..cb8451f56e86 --- /dev/null +++ b/monkestation/code/modules/blueshift/clothing/nova_command.dm @@ -0,0 +1,161 @@ +/obj/item/clothing/under/rank/captain + worn_icon_digitigrade = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/command_digi.dmi' + //NOTE - TG uses "captain.dmi"; because we have a few non-captain items going in here for ease of access, this will just be "command.dmi" + +/obj/item/clothing/under/rank/captain/nova + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/command.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/command.dmi' + +/* +* CAPTAIN +*/ + +/obj/item/clothing/under/rank/captain/nova/kilt + name = "captain's kilt" + desc = "A midnight blue kilt, padded with nano-kevlar and adorned with gold and a tartan sash." + icon_state = "capkilt" + +/obj/item/clothing/under/rank/captain/nova/imperial + name = "captain's naval jumpsuit" + desc = "A white naval suit adorned with golden epaulets and a rank badge denoting a Captain. There are two ways to destroy a person, kill him, or ruin his reputation." + //Rank pins of the Grand Admiral, not a Captain. + icon_state = "impcap" + can_adjust = FALSE + +//Donor item for Gandalf - all donors have access +/obj/item/clothing/under/rank/captain/nova/black + name = "captain's black suit" + desc = "A very sleek, albeit outdated, naval captain's uniform for those who think they're commanding a battleship." + icon_state = "captainblacksuit" + can_adjust = FALSE + +/* +* BLUESHIELD +*/ +//Why is this in command.dm? Simple: Centcom.dmi will already be packed with CC/NTNavy/AD/LL/SOL/FTU - all of them more event-based clothes, while this will appear +//on-station often. + +/obj/item/clothing/under/rank/blueshield + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/command.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/command.dmi' + worn_icon_digitigrade = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/command_digi.dmi' + name = "blueshield's suit" + desc = "A classic bodyguard's suit, with custom-fitted Blueshield-Blue cuffs and a Nanotrasen insignia over one of the pockets." + icon_state = "blueshield" + strip_delay = 50 + armor_type = /datum/armor/clothing_under/rank_blueshield + sensor_mode = SENSOR_COORDS + random_sensor = FALSE + alt_covers_chest = TRUE + +/datum/armor/clothing_under/rank_blueshield + melee = 10 + bullet = 5 + laser = 5 + energy = 10 + bomb = 10 + fire = 50 + acid = 50 + +/obj/item/clothing/under/rank/blueshield/skirt + name = "blueshield's suitskirt" + desc = "A classic bodyguard's suitskirt, with custom-fitted Blueshield-Blue cuffs and a Nanotrasen insignia over one of the pockets." + icon_state = "blueshieldskirt" + body_parts_covered = CHEST|GROIN|ARMS + dying_key = DYE_REGISTRY_JUMPSKIRT + female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + + +/obj/item/clothing/under/rank/blueshield/turtleneck + name = "blueshield's turtleneck" + desc = "A tactical jumper fit for only the best of bodyguards, with plenty of tactical pockets for your tactical needs." + icon_state = "bs_turtleneck" + +/obj/item/clothing/under/rank/blueshield/turtleneck/skirt + name = "blueshield's skirtleneck" + desc = "A tactical jumper fit for only the best of bodyguards - instead of tactical pockets, this one has a tactical lack of leg protection." + icon_state = "bs_skirtleneck" + body_parts_covered = CHEST|GROIN|ARMS + dying_key = DYE_REGISTRY_JUMPSKIRT + female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + + +/* +* NT CONSULTANT +*/ +//See Blueshield note - tl;dr, this role is a station role, while Centcom.dmi is more event roles + +/obj/item/clothing/under/rank/nanotrasen_consultant + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/command.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/command.dmi' + worn_icon_digitigrade = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/command_digi.dmi' + desc = "It's a green jumpsuit with some gold markings denoting the rank of \"Nanotrasen Consultant\"." + name = "nanotrasen consultant's jumpsuit" + icon_state = "nt_consultant" + sensor_mode = SENSOR_COORDS + random_sensor = FALSE + +/obj/item/clothing/under/rank/nanotrasen_consultant/skirt + name = "nanotrasen consultant's jumpskirt" + desc = "It's a green jumpskirt with some gold markings denoting the rank of \"Nanotrasen Consultant\"." + icon_state = "nt_consultant_skirt" + body_parts_covered = CHEST|GROIN|ARMS + dying_key = DYE_REGISTRY_JUMPSKIRT + female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + + +/* +* UNASSIGNED (Any head of staff) +*/ + +/obj/item/clothing/under/rank/captain/nova/utility + name = "command utility uniform" + desc = "A utility uniform worn by Station Command." + icon_state = "util_com" + can_adjust = FALSE + +/obj/item/clothing/under/rank/captain/nova/utility/syndicate + armor_type = /datum/armor/clothing_under/utility_syndicate + has_sensor = NO_SENSORS + +/obj/item/clothing/under/rank/captain/nova/imperial/generic + desc = "A grey naval suit with a rank badge denoting an Officer. Doesn't protect against blaster fire." + name = "grey officer's naval jumpsuit" + icon_state = "impcom" + +/obj/item/clothing/under/rank/captain/nova/imperial/generic/pants + desc = "A grey naval suit over black pants, with a rank badge denoting an Officer. Doesn't protect against blaster fire." + name = "officer's naval jumpsuit" + icon_state = "impcom_pants" + +/obj/item/clothing/under/rank/captain/nova/imperial/generic/grey + desc = "A dark grey naval suit with a rank badge denoting an Officer. Doesn't protect against blaster fire." + name = "dark grey officer's naval jumpsuit" + icon_state = "impcom_dark" + +/obj/item/clothing/under/rank/captain/nova/imperial/generic/red + desc = "A red naval suit with a rank badge denoting an Officer. Doesn't protect against blaster fire." + name = "red officer's naval jumpsuit" + icon_state = "impcom_red" + +/* +* MISC +*/ + +/obj/item/clothing/under/rank/captain/nova/pilot + name = "shuttle pilot's jumpsuit" + desc = "It's a blue jumpsuit with some silver markings denoting the wearer as a certified pilot." + icon_state = "pilot" + can_adjust = FALSE + +/obj/item/clothing/under/rank/captain/nova/pilot/skirt + name = "shuttle pilot's jumpskirt" + desc = "It's a blue jumpskirt with some silver markings denoting the wearer as a certified pilot." + icon_state = "pilot_skirt" + body_parts_covered = CHEST|GROIN|ARMS + dying_key = DYE_REGISTRY_JUMPSKIRT + female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON diff --git a/monkestation/code/modules/blueshift/clothing/nova_costume.dm b/monkestation/code/modules/blueshift/clothing/nova_costume.dm new file mode 100644 index 000000000000..f97e5f5b7cee --- /dev/null +++ b/monkestation/code/modules/blueshift/clothing/nova_costume.dm @@ -0,0 +1,160 @@ +/obj/item/clothing/under/costume + worn_icon_digitigrade = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/costume_digi.dmi' + +/obj/item/clothing/under/costume/russian_officer + worn_icon_digitigrade = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/security_digi.dmi' + +/obj/item/clothing/under/costume/nova + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/costume.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/costume.dmi' + can_adjust = FALSE + +//My least favorite file. Just... try to keep it sorted. And nothing over the top + +/* +* UNSORTED +*/ +/obj/item/clothing/under/costume/nova/cavalry + name = "cavalry uniform" + desc = "Dedicate yourself to something better. To loyalty, honour, for it only dies when everyone abandons it." + icon_state = "cavalry" //specifically an 1890s US Army Cavalry Uniform + +/obj/item/clothing/under/costume/deckers/alt //not even going to bother re-pathing this one because its such a unique case of 'TGs item has something but this alt doesnt' + name = "deckers maskless outfit" + desc = "A decker jumpsuit with neon blue coloring." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/costume.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/costume.dmi' + worn_icon_digitigrade = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/costume_digi.dmi' + icon_state = "decking_jumpsuit" + can_adjust = FALSE + +/obj/item/clothing/under/costume/nova/bathrobe + name = "bathrobe" + desc = "A warm fluffy bathrobe, perfect for relaxing after finally getting clean." + icon = 'monkestation/code/modules/blueshift/gags/icons/suit/suit.dmi' + worn_icon = 'monkestation/code/modules/blueshift/gags/icons/suit/suit.dmi' + icon_state = "robes" + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + greyscale_colors = "#ffffff" + greyscale_config = /datum/greyscale_config/bathrobe + greyscale_config_worn = /datum/greyscale_config/bathrobe/worn + female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY + greyscale_colors = "#434d7a" //THATS RIGHT, FUCK YOU! THE BATHROBE CAN BE RECOLORED! + flags_1 = IS_PLAYER_COLORABLE_1 + +/* +* LUNAR AND JAPANESE CLOTHES +*/ + +/obj/item/clothing/under/costume/nova/qipao + name = "qipao" + desc = "A qipao, traditionally worn in ancient Earth China by women during social events and lunar new years." + icon_state = "qipao" + body_parts_covered = CHEST|GROIN|LEGS + female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY + greyscale_colors = "#2b2b2b" + greyscale_config = /datum/greyscale_config/qipao + greyscale_config_worn = /datum/greyscale_config/qipao/worn + greyscale_config_worn_digitigrade = /datum/greyscale_config/qipao/worn/digi + flags_1 = IS_PLAYER_COLORABLE_1 + + +/obj/item/clothing/under/costume/nova/qipao/customtrim + greyscale_colors = "#2b2b2b#ffce5b" + greyscale_config = /datum/greyscale_config/qipao_customtrim + greyscale_config_worn = /datum/greyscale_config/qipao_customtrim/worn + greyscale_config_worn_digitigrade = /datum/greyscale_config/qipao_customtrim/worn/digi + +/obj/item/clothing/under/costume/nova/cheongsam + name = "cheongsam" + desc = "A cheongsam, traditionally worn in ancient Earth China by men during social events and lunar new years." + icon_state = "cheongsam" + body_parts_covered = CHEST|GROIN|LEGS + female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY + greyscale_colors = "#2b2b2b#353535" + greyscale_config = /datum/greyscale_config/cheongsam + greyscale_config_worn = /datum/greyscale_config/cheongsam/worn + greyscale_config_worn_digitigrade = /datum/greyscale_config/cheongsam/worn/digi + flags_1 = IS_PLAYER_COLORABLE_1 + + +/obj/item/clothing/under/costume/nova/cheongsam/customtrim + greyscale_colors = "#2b2b2b#ffce5b#353535" + greyscale_config = /datum/greyscale_config/cheongsam_customtrim + greyscale_config_worn = /datum/greyscale_config/cheongsam_customtrim/worn + greyscale_config_worn_digitigrade = /datum/greyscale_config/cheongsam_customtrim/worn/digi + +/obj/item/clothing/under/costume/nova/yukata + name = "yukata" + desc = "A traditional ancient Earth Japanese yukata, typically worn in casual settings." + icon_state = "yukata" + female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY + greyscale_colors = "#2b2b2b#666666" + greyscale_config = /datum/greyscale_config/yukata + greyscale_config_worn = /datum/greyscale_config/yukata/worn + greyscale_config_worn_digitigrade = /datum/greyscale_config/yukata/worn/digi + flags_1 = IS_PLAYER_COLORABLE_1 + + +/obj/item/clothing/under/costume/nova/kamishimo + name = "kamishimo" + desc = "A traditional ancient Earth Japanese Kamishimo." + icon_state = "kamishimo" + +/obj/item/clothing/under/costume/nova/kimono + name = "fancy kimono" + desc = "A traditional ancient Earth Japanese Kimono. Longer and fancier than a yukata." + icon_state = "kimono" + body_parts_covered = CHEST|GROIN|ARMS + female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY + +/* +* CHRISTMAS CLOTHES +*/ + +/obj/item/clothing/under/costume/nova/christmas + name = "christmas costume" + desc = "Can you believe it guys? Christmas. Just a lightyear away!" //Lightyear is a measure of distance I hate it being used for this joke :( + icon_state = "christmas_male" + greyscale_colors = "#cc0f0f#c4c2c2" + greyscale_config = /datum/greyscale_config/chrimbo + greyscale_config_worn = /datum/greyscale_config/chrimbo/worn + greyscale_config_worn_digitigrade = /datum/greyscale_config/chrimbo/worn/digi + body_parts_covered = CHEST|GROIN|ARMS + flags_1 = IS_PLAYER_COLORABLE_1 + +/obj/item/clothing/under/costume/nova/christmas/green + name = "green christmas costume" + desc = "4:00, wallow in self-pity. 4:30, stare into the abyss. 5:00, solve world hunger, tell no one. 5:30, jazzercize; 6:30, dinner with me. I can't cancel that again. 7:00, wrestle with my self-loathing. I'm booked. Of course, if I bump the loathing to 9, I could still be done in time to lay in bed, stare at the ceiling and slip slowly into madness." + greyscale_colors = "#1a991a#c4c2c2" +/* +* TREK CLOTHES +*/ +/obj/item/clothing/under/trek/command + greyscale_config_worn_digitigrade = /datum/greyscale_config/trek/worn/digi + flags_1 = IS_PLAYER_COLORABLE_1 + +/obj/item/clothing/under/trek/engsec + greyscale_config_worn_digitigrade = /datum/greyscale_config/trek/worn/digi + flags_1 = IS_PLAYER_COLORABLE_1 + +/obj/item/clothing/under/trek/medsci + greyscale_config_worn_digitigrade = /datum/greyscale_config/trek/worn/digi + flags_1 = IS_PLAYER_COLORABLE_1 + +//Cyberpunk PI Costume - Sprites from Eris, slightly modified +/obj/item/clothing/under/costume/cybersleek + name = "sleek modern coat" + desc = "A modern-styled coat typically worn on more urban planets, made with a neo-laminated fiber lining." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/uniforms.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/uniform.dmi' + icon_state = "cyberpunksleek" + body_parts_covered = CHEST|ARMS|GROIN|LEGS + supports_variations_flags = NONE + can_adjust = FALSE + +/obj/item/clothing/under/costume/cybersleek/long + name = "long modern coat" + female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY + icon_state = "cyberpunksleek_long" + diff --git a/monkestation/code/modules/blueshift/clothing/nova_cowboy.dm b/monkestation/code/modules/blueshift/clothing/nova_cowboy.dm new file mode 100644 index 000000000000..2f11d9d774ce --- /dev/null +++ b/monkestation/code/modules/blueshift/clothing/nova_cowboy.dm @@ -0,0 +1,98 @@ + +/obj/item/clothing/head/cowboy/nova + name = "SR COWBOY HAT DEBUG" + desc = "REPORT THIS IF FOUND" + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/head/cowboy.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/head/cowboy.dmi' + icon_state = null //Keeps this from showing up under the chameleon hat + worn_icon_state = null //TG defaults this to "hunter" and breaks our items + armor_type = /datum/armor/none + resistance_flags = NONE //TG defaults cowboy hats to fireproof/acidproof + +/obj/item/clothing/head/cowboy/nova/wide + name = "wide brimmed hat" + desc = "A wide-brimmed hat, to keep the sun out of your eyes in style." + icon_state = "widebrim" + greyscale_colors = "#4D4D4D#DE9754" + greyscale_config = /datum/greyscale_config/cowboy_wide + greyscale_config_worn = /datum/greyscale_config/cowboy_wide/worn + flags_1 = IS_PLAYER_COLORABLE_1 + +/obj/item/clothing/head/cowboy/nova/wide/feathered + name = "wide brimmed feathered hat" + desc = "A wide-brimmed hat adorned with a feather, the perfect flourish to a rugged outfit." + icon_state = "widebrim_feathered" + greyscale_colors = "#4D4D4D#DE9754#D5D5B9" + greyscale_config = /datum/greyscale_config/cowboy_wide_feathered + greyscale_config_worn = /datum/greyscale_config/cowboy_wide_feathered/worn + +/obj/item/clothing/head/cowboy/nova/flat + name = "flat brimmed hat" + desc = "A finely made hat with a short flat brim, perfect for an old fashioned shootout." + icon_state = "flatbrim" + greyscale_colors = "#BE925B#914C2F" + greyscale_config = /datum/greyscale_config/cowboy_flat + greyscale_config_worn = /datum/greyscale_config/cowboy_flat/worn + flags_1 = IS_PLAYER_COLORABLE_1 + +/obj/item/clothing/head/cowboy/nova/flat/cowl + name = "flat brimmed hat with cowl" + desc = "A finely made hat with a short flat brim, paired with a snug and warm cowl. Today's a cold day to die..." + icon_state = "flatbrim_cowl" + greyscale_colors = "#c26934#8f89ae#774B2D" + greyscale_config = /datum/greyscale_config/cowboy_flat_cowl + greyscale_config_worn = /datum/greyscale_config/cowboy_flat_cowl/worn + cold_protection = HEAD + min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT + flags_inv = HIDEHAIR + +/obj/item/clothing/head/cowboy/nova/cattleman + name = "cattleman hat" + desc = "A hat with a creased brim and a tall crown, intended to be pushed down further on the head to stay on in harsh weather. Not as relevant in space but still comes in handy." + icon_state = "cattleman" + greyscale_colors = "#725443#B2977C" + greyscale_config = /datum/greyscale_config/cowboy_cattleman + greyscale_config_worn = /datum/greyscale_config/cowboy_cattleman/worn + flags_1 = IS_PLAYER_COLORABLE_1 + +/obj/item/clothing/head/cowboy/nova/cattleman/wide + name = "wide brimmed cattleman hat" + desc = "A hat with a wide, slightly creased brim. Good for working in the sun, not so much for fitting through tight gaps." + icon_state = "cattleman_wide" + greyscale_colors = "#4D4D4D#5F666E" + greyscale_config = /datum/greyscale_config/cowboy_cattleman_wide + greyscale_config_worn = /datum/greyscale_config/cowboy_cattleman_wide/worn + flags_1 = IS_PLAYER_COLORABLE_1 + +//Presets +/obj/item/clothing/head/cowboy/nova/flat/sheriff + name = "sheriff hat" + desc = "A dark brown hat with a smell of whiskey. There's a small set of antlers embroidered on the inside." + greyscale_colors = "#704640#8f89ae" + flags_1 = NONE //No recoloring presets + +/obj/item/clothing/head/cowboy/nova/flat/deputy + name = "deputy hat" + desc = "A light brown hat with a smell of iron. There's a small set of antlers embroidered on the inside." + greyscale_colors = "#c26934#8f89ae" + flags_1 = NONE //No recoloring presets + +/obj/item/clothing/head/cowboy/nova/flat/cowl/sheriff + name = "winter sheriff hat" + desc = "A dark hat with a matching dark cowl, warm yet breathable. There's a small set of antlers embroidered on the inside." + greyscale_colors = "#3F3F3F#716349#3F3F3F" + flags_1 = NONE //No recoloring presets + +/obj/item/clothing/head/cowboy/nova/cattleman/sec + name = "security cattleman hat" + desc = "A security cattleman hat, perfect for any true lawman." + greyscale_colors = "#39393F#3F6E9E" + armor_type = /datum/armor/head_helmet + flags_1 = NONE //No recoloring presets + +/obj/item/clothing/head/cowboy/nova/cattleman/wide/sec + name = "wide brimmed security cattleman hat" + desc = "A bandit turned sheriff, his enforcement is brutal but effective - whether out of fear or respect is unclear, though not many bodies hang high. A peaceful land, a quiet people." + greyscale_colors = "#39393F#3F6E9E" + armor_type = /datum/armor/head_helmet + flags_1 = NONE //No recoloring presets diff --git a/monkestation/code/modules/blueshift/clothing/nova_engineering.dm b/monkestation/code/modules/blueshift/clothing/nova_engineering.dm new file mode 100644 index 000000000000..7f8a86a5af26 --- /dev/null +++ b/monkestation/code/modules/blueshift/clothing/nova_engineering.dm @@ -0,0 +1,83 @@ +/obj/item/clothing/under/rank/engineering + worn_icon_digitigrade = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/engineering_digi.dmi' + +/obj/item/clothing/under/rank/engineering/engineer/nova + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/engineering.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/engineering.dmi' + +/obj/item/clothing/under/rank/engineering/chief_engineer/nova + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/engineering.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/engineering.dmi' + +/obj/item/clothing/under/rank/engineering/atmospheric_technician/nova + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/engineering.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/engineering.dmi' + +/* +* ENGINEER +*/ + +/obj/item/clothing/under/rank/engineering/engineer/nova/utility + name = "engineering utility uniform" + desc = "A utility uniform worn by Engineering personnel." + icon_state = "util_eng" + can_adjust = FALSE + +/obj/item/clothing/under/rank/engineering/engineer/nova/utility/syndicate + armor_type = /datum/armor/clothing_under/utility_syndicate + has_sensor = NO_SENSORS + +/obj/item/clothing/under/rank/engineering/engineer/nova/trouser + name = "engineering trousers" + desc = "An engineering-orange set of trousers. Their waistband proudly displays an 'anti-radiation' symbol, though the effectiveness of radiation-proof-pants-only is still up for debate." + icon_state = "workpants_orange" + body_parts_covered = GROIN|LEGS + can_adjust = FALSE + female_sprite_flags = FEMALE_UNIFORM_NO_BREASTS + +/obj/item/clothing/under/rank/engineering/engineer/nova/hazard_chem + name = "chemical hazard jumpsuit" + desc = "A high visibility jumpsuit with additional protection from gas and chemical hazards, at the cost of less fire-proofing." + icon_state = "hazard_green" + armor_type = /datum/armor/clothing_under/nova_hazard_chem + resistance_flags = ACID_PROOF + alt_covers_chest = TRUE + +/datum/armor/clothing_under/nova_hazard_chem + fire = 20 + acid = 60 + +/obj/item/clothing/under/rank/engineering/engineer/nova/hazard_chem/emt + name = "chemical hazard EMT jumpsuit" + desc = "An EMT jumpsuit used for first responders in situations involving gas and/or chemical hazards. The label reads, \"Not designed for prolonged exposure\"." + icon_state = "hazard_white" + armor_type = /datum/armor/clothing_under/hazard_chem_emt + +/* +* CHIEF ENGINEER +*/ + +/datum/armor/clothing_under/hazard_chem_emt + fire = 10 + acid = 50 + +/obj/item/clothing/under/rank/engineering/chief_engineer/nova/imperial + desc = "A gray naval suit with a lead-lined vest and a rank badge denoting the Officer of the Internal Engineering Division. Doesn't come with a death machine building guide." + name = "chief engineer's naval jumpsuit" + icon_state = "impce" + +/* +* ATMOS TECH +*/ +/datum/armor/clothing_under/atmos_adv + bio = 40 + fire = 70 + acid = 70 + +/obj/item/clothing/under/rank/engineering/atmospheric_technician/nova/utility/advanced + name = "advanced atmospherics uniform" + desc = "A jumpsuit worn by advanced atmospherics crews." + icon_state = "util_atmos" + armor_type = /datum/armor/clothing_under/atmos_adv + icon_state = "util_eng" + can_adjust = FALSE diff --git a/monkestation/code/modules/blueshift/clothing/nova_field.dm b/monkestation/code/modules/blueshift/clothing/nova_field.dm new file mode 100644 index 000000000000..92b22b3c07f6 --- /dev/null +++ b/monkestation/code/modules/blueshift/clothing/nova_field.dm @@ -0,0 +1,270 @@ +/obj/item/clothing/under/rank/expeditionary_corps + name = "expeditionary corps uniform" + desc = "A rugged uniform for those who see the worst at the edges of the galaxy." + icon_state = "exp_corps" + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/uniforms.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/uniform.dmi' + armor_type = /datum/armor/clothing_under/rank_expeditionary_corps + strip_delay = 7 SECONDS + alt_covers_chest = TRUE + sensor_mode = SENSOR_COORDS + random_sensor = FALSE + +/datum/armor/clothing_under/rank_expeditionary_corps + fire = 15 + acid = 15 + +/obj/item/storage/belt/military/expeditionary_corps + name = "expeditionary corps chest rig" + desc = "A set of tactical webbing worn by the now-defunct Vanguard Expeditionary Corps." + icon_state = "webbing_exp_corps" + worn_icon_state = "webbing_exp_corps" + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/belts.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/belt.dmi' + uses_advanced_reskins = TRUE + unique_reskin = list( + "Webbing" = list( + RESKIN_ICON_STATE = "webbing_exp_corps", + RESKIN_WORN_ICON_STATE = "webbing_exp_corps" + ), + "Belt" = list( + RESKIN_ICON_STATE = "belt_exp_corps", + RESKIN_WORN_ICON_STATE = "belt_exp_corps" + ), + ) + +/obj/item/storage/belt/military/expeditionary_corps/combat_tech + name = "combat tech's chest rig" + +/obj/item/storage/belt/military/expeditionary_corps/combat_tech/PopulateContents() + new /obj/item/screwdriver(src) + new /obj/item/wrench(src) + new /obj/item/weldingtool(src) + new /obj/item/crowbar(src) + new /obj/item/wirecutters(src) + new /obj/item/multitool(src) + new /obj/item/stack/cable_coil(src) + +/obj/item/storage/belt/military/expeditionary_corps/field_medic + name = "field medic's chest rig" + +/obj/item/storage/belt/military/expeditionary_corps/field_medic/PopulateContents() + new /obj/item/scalpel(src) + new /obj/item/circular_saw/field_medic(src) + new /obj/item/hemostat(src) + new /obj/item/retractor(src) + new /obj/item/cautery(src) + new /obj/item/surgical_drapes(src) + new /obj/item/bonesetter(src) + +/obj/item/storage/belt/military/expeditionary_corps/pointman + name = "pointman's chest rig" + +/obj/item/storage/belt/military/expeditionary_corps/pointman/PopulateContents() + new /obj/item/reagent_containers/cup/glass/bottle/whiskey(src) + new /obj/item/stack/sheet/plasteel(src,5) + new /obj/item/reagent_containers/cup/bottle/morphine(src) + +/obj/item/storage/belt/military/expeditionary_corps/marksman + name = "marksman's chest rig" + +/obj/item/storage/belt/military/expeditionary_corps/marksman/PopulateContents() + new /obj/item/binoculars(src) + new /obj/item/storage/fancy/cigarettes/cigpack_robust(src) + new /obj/item/lighter(src) + new /obj/item/clothing/mask/bandana/skull(src) + +/obj/item/clothing/shoes/combat/expeditionary_corps + name = "expeditionary corps boots" + desc = "High speed, low drag combat boots." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/shoes.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/feet.dmi' + icon_state = "exp_corps" + inhand_icon_state = "jackboots" + +/obj/item/clothing/gloves/color/black/expeditionary_corps + name = "expeditionary corps gloves" + icon_state = "exp_corps" + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/gloves.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/hands.dmi' + cold_protection = HANDS + min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT + heat_protection = HANDS + max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT + resistance_flags = FIRE_PROOF + uses_advanced_reskins = FALSE + unique_reskin = NONE + +/obj/item/clothing/gloves/chief_engineer/expeditionary_corps + name = "expeditionary corps insulated gloves" + icon_state = "exp_corps_eng" + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/gloves.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/hands.dmi' + worn_icon_state = "exp_corps" + resistance_flags = FIRE_PROOF + armor_type = /datum/armor/chief_engineer_expeditionary_corps + +/datum/armor/chief_engineer_expeditionary_corps + fire = 80 + acid = 50 + +/obj/item/clothing/gloves/latex/nitrile/expeditionary_corps + name = "expeditionary corps medic gloves" + icon_state = "exp_corps_med" + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/gloves.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/hands.dmi' + worn_icon_state = "exp_corps" + cold_protection = HANDS + min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT + heat_protection = HANDS + max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT + resistance_flags = FIRE_PROOF + armor_type = /datum/armor/nitrile_expeditionary_corps + +/datum/armor/nitrile_expeditionary_corps + fire = 80 + acid = 50 + +/obj/item/storage/backpack/duffelbag/expeditionary_corps + name = "expeditionary corps bag" + desc = "A large bag for holding extra tactical supplies." + icon_state = "exp_corps" + inhand_icon_state = "backpack" + icon = 'monkestation/code/modules/blueshift/icons/backpack.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob_backpack.dmi' + uses_advanced_reskins = TRUE + unique_reskin = list( + "Backpack" = list( + RESKIN_ICON_STATE = "exp_corps", + RESKIN_WORN_ICON_STATE = "exp_corps" + ), + "Belt" = list( + RESKIN_ICON_STATE = "exp_corps_satchel", + RESKIN_WORN_ICON_STATE = "exp_corps_satchel" + ), + ) + +/obj/item/clothing/suit/armor/vest/expeditionary_corps + name = "expeditionary corps armor vest" + desc = "An armored vest that provides okay protection against most types of damage. Includes concealable sleeves for your arms." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/suits/armor.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/suits/armor.dmi' + icon_state = "exp_corps" + body_parts_covered = CHEST|GROIN|ARMS + armor_type = /datum/armor/vest_expeditionary_corps + cold_protection = CHEST|GROIN|ARMS + heat_protection = CHEST|GROIN|ARMS + dog_fashion = null + allowed = list( + /obj/item/melee, + /obj/item/ammo_box, + /obj/item/ammo_casing, + /obj/item/flashlight, + /obj/item/gun, + /obj/item/knife, + /obj/item/reagent_containers, + /obj/item/restraints/handcuffs, + /obj/item/tank/internals/emergency_oxygen, + /obj/item/tank/internals/plasmaman, + /obj/item/storage/belt/holster, + ) + + +/datum/armor/vest_expeditionary_corps + melee = 30 + bullet = 30 + laser = 30 + energy = 30 + bomb = 40 + fire = 80 + acid = 100 + wound = 10 + +/obj/item/clothing/head/helmet/expeditionary_corps + name = "expeditionary corps helmet" + desc = "A robust helmet worn by Expeditionary Corps troopers. Alt+click it to toggle the NV system." + icon_state = "exp_corps" + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/head/helmet.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/head/helmet.dmi' + armor_type = /datum/armor/helmet_expeditionary_corps + var/nightvision = FALSE + var/mob/living/carbon/current_user + actions_types = list(/datum/action/item_action/toggle_nv) + +/datum/armor/helmet_expeditionary_corps + melee = 20 + bullet = 20 + laser = 20 + energy = 20 + bomb = 30 + fire = 80 + acid = 100 + wound = 10 + +/datum/action/item_action/toggle_nv + name = "Toggle Nightvision" + +/datum/action/item_action/toggle_nv/Trigger(trigger_flags) + var/obj/item/clothing/head/helmet/expeditionary_corps/my_helmet = target + if(!my_helmet.current_user) + return + my_helmet.nightvision = !my_helmet.nightvision + if(my_helmet.nightvision) + to_chat(owner, span_notice("You flip the NV goggles down.")) + my_helmet.enable_nv() + else + to_chat(owner, span_notice("You flip the NV goggles up.")) + my_helmet.disable_nv() + my_helmet.update_appearance() + +/obj/item/clothing/head/helmet/expeditionary_corps/equipped(mob/user, slot) + . = ..() + current_user = user + +/obj/item/clothing/head/helmet/expeditionary_corps/proc/enable_nv(mob/user) + if(current_user) + var/obj/item/organ/internal/eyes/my_eyes = current_user.get_organ_by_type(/obj/item/organ/internal/eyes) + if(my_eyes) + my_eyes.color_cutoffs = list(10, 30, 10) + my_eyes.flash_protect = FLASH_PROTECTION_SENSITIVE + current_user.add_client_colour(/datum/client_colour/glass_colour/lightgreen) + +/obj/item/clothing/head/helmet/expeditionary_corps/proc/disable_nv() + if(current_user) + var/obj/item/organ/internal/eyes/my_eyes = current_user.get_organ_by_type(/obj/item/organ/internal/eyes) + if(my_eyes) + my_eyes.color_cutoffs = initial(my_eyes.color_cutoffs) + my_eyes.flash_protect = initial(my_eyes.flash_protect) + current_user.remove_client_colour(/datum/client_colour/glass_colour/lightgreen) + current_user.update_sight() + +/obj/item/clothing/head/helmet/expeditionary_corps/AltClick(mob/user) + if(!current_user) + return + + nightvision = !nightvision + if(nightvision) + to_chat(user, span_notice("You flip the NV goggles down.")) + enable_nv() + else + to_chat(user, span_notice("You flip the NV goggles up.")) + disable_nv() + update_appearance() + return + +/obj/item/clothing/head/helmet/expeditionary_corps/dropped(mob/user) + . = ..() + disable_nv() + current_user = null + +/obj/item/clothing/head/helmet/expeditionary_corps/Destroy() + disable_nv() + current_user = null + return ..() + +/obj/item/clothing/head/helmet/expeditionary_corps/update_icon_state() + . = ..() + if(nightvision) + icon_state = "exp_corps_on" + else + icon_state = "exp_corps" diff --git a/monkestation/code/modules/blueshift/clothing/nova_glasses.dm b/monkestation/code/modules/blueshift/clothing/nova_glasses.dm new file mode 100644 index 000000000000..3cc23393ad16 --- /dev/null +++ b/monkestation/code/modules/blueshift/clothing/nova_glasses.dm @@ -0,0 +1,76 @@ +/* ---------- Items Below ----------*/ + +/obj/item/clothing/glasses/eyepatch //Re-defined here for ease with the left/right switch + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/glasses.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/eyes.dmi' + icon_state = "eyepatch" + base_icon_state = "eyepatch" + can_switch_eye = TRUE + +/obj/item/clothing/glasses/eyepatch/wrap + name = "eye wrap" + desc = "A glorified bandage. At least this one's actually made for your head..." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/glasses.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/eyes.dmi' + icon_state = "eyewrap" + base_icon_state = "eyewrap" + +/obj/item/clothing/glasses/eyepatch/white + name = "white eyepatch" + desc = "This is what happens when a pirate gets a PhD." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/glasses.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/eyes.dmi' + icon_state = "eyepatch_white" + base_icon_state = "eyepatch_white" + +///GLASSSES +/obj/item/clothing/glasses/thin + name = "thin glasses" + desc = "Often seen staring down at someone taking a book." + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/eyes.dmi' + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/glasses.dmi' + icon_state = "glasses_thin" + inhand_icon_state = "glasses" + clothing_traits = list(TRAIT_NEARSIGHTED_CORRECTED) + +/obj/item/clothing/glasses/regular/betterunshit + name = "modern glasses" + desc = "After Nerd. Co went bankrupt for tax evasion and invasion, they were bought out by Dork.Co, who revamped their classic design." + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/eyes.dmi' + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/glasses.dmi' + icon_state = "glasses_alt" + inhand_icon_state = "glasses" + clothing_traits = list(TRAIT_NEARSIGHTED_CORRECTED) + +/obj/item/clothing/glasses/kim + name = "binoclard lenses" + desc = "Stylish round lenses subtly shaded for your protection and criminal discomfort." + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/eyes.dmi' + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/glasses.dmi' + icon_state = "binoclard_lenses" + inhand_icon_state = "glasses" + clothing_traits = list(TRAIT_NEARSIGHTED_CORRECTED) + +/obj/item/clothing/glasses/trickblindfold/hamburg + name = "thief visor" + desc = "Perfect for stealing hamburgers from innocent multinational capitalist monopolies." + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/eyes.dmi' + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/glasses.dmi' + icon_state = "thiefmask" + +///GOGGLES +/obj/item/clothing/glasses/biker + name = "biker goggles" + desc = "Brown leather riding gear, You can leave, just give us the gas." + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/eyes.dmi' + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/glasses.dmi' + icon_state = "biker" + inhand_icon_state = "welding-g" + clothing_traits = list(TRAIT_NEARSIGHTED_CORRECTED) + +// Like sunglasses, but without any protection +/obj/item/clothing/glasses/fake_sunglasses + name = "low-UV sunglasses" + desc = "A cheaper brand of sunglasses rated for much lower UV levels. Offers the user no protection against bright lights." + icon_state = "sun" + inhand_icon_state = "sunglasses" diff --git a/monkestation/code/modules/blueshift/clothing/nova_heads.dm b/monkestation/code/modules/blueshift/clothing/nova_heads.dm new file mode 100644 index 000000000000..d0d49655c12e --- /dev/null +++ b/monkestation/code/modules/blueshift/clothing/nova_heads.dm @@ -0,0 +1,257 @@ +/obj/item/clothing/head/hats/flakhelm //Actually the M1 Helmet + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/hats.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/head.dmi' + name = "flak helmet" + icon_state = "m1helm" + inhand_icon_state = "helmet" + armor_type = /datum/armor/hats_flakhelm + desc = "A dilapidated helmet used in ancient wars. This one is brittle and essentially useless. An ace of spades is tucked into the band around the outer shell." + +/datum/armor/hats_flakhelm + bomb = 0.1 + fire = -10 + acid = -15 + wound = 1 + +/obj/item/clothing/head/hats/flakhelm/Initialize(mapload) + . = ..() + + create_storage(storage_type = /datum/storage/pockets/tiny/spacenam) + +/datum/storage/pockets/tiny/spacenam + attack_hand_interact = TRUE //So you can actually see what you stuff in there + +//Cyberpunk PI Costume - Sprites from Eris +/obj/item/clothing/head/fedora/det_hat/cybergoggles //Subset of detective fedora so that detectives dont have to sacrifice candycorns for style + name = "type-34P semi-enclosed headwear" + desc = "A popular helmet used by certain law enforcement agencies. It has minor armor plating and a neo-laminated fiber lining." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/hats.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/head.dmi' + icon_state = "cyberpunkgoggle" + +/obj/item/clothing/head/fedora/det_hat/cybergoggles/civilian //Actually civilian with no armor for drip purposes only + name = "type-34C semi-enclosed headwear" + desc = "The civilian model of a popular helmet used by certain law enforcement agencies. It has no armor plating." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/hats.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/head.dmi' + icon_state = "cyberpunkgoggle" + armor_type = /datum/armor/none + +/obj/item/clothing/head/hats/intern/developer + name = "intern beancap" + +/obj/item/clothing/head/beret/sec/navywarden/syndicate + name = "master at arms' beret" + desc = "Surprisingly stylish, if you lived in a silent impressionist film." + greyscale_config = /datum/greyscale_config/beret_badge + greyscale_config_worn = /datum/greyscale_config/beret_badge/worn + greyscale_colors = "#353535#AAAAAA" + icon_state = "beret_badge" + armor_type = /datum/armor/navywarden_syndicate + strip_delay = 60 + +/datum/armor/navywarden_syndicate + melee = 40 + bullet = 30 + laser = 30 + energy = 40 + bomb = 25 + fire = 30 + acid = 50 + wound = 6 + +/obj/item/clothing/head/colourable_flatcap + name = "colourable flat cap" + desc = "You in the computers son? You work the computers?" + icon_state = "flatcap" + greyscale_config = /datum/greyscale_config/flatcap + greyscale_config_worn = /datum/greyscale_config/flatcap/worn + greyscale_colors = "#79684c" + flags_1 = IS_PLAYER_COLORABLE_1 + +/obj/item/clothing/head/hats/imperial + name = "grey naval officer cap" + desc = "A grey naval cap with a silver disk in the center." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/hats.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/head.dmi' + icon_state = "impcom" + +/obj/item/clothing/head/hats/imperial/grey + name = "dark grey naval officer cap" + desc = "A dark grey naval cap with a silver disk in the center." + icon_state = "impcommand" + +/obj/item/clothing/head/hats/imperial/red + name = "red naval officer cap" + desc = "A red naval cap with a silver disk in the center." + icon_state = "impcap_red" + +/obj/item/clothing/head/hats/imperial/white + name = "white naval officer cap" + desc = "A white naval cap with a silver disk in the center." + icon_state = "impcap" + +/obj/item/clothing/head/hats/imperial/cap + name = "captain's naval officer cap" + desc = "A white naval cap with a silver disk in the center." + icon_state = "impcap" + +/obj/item/clothing/head/hats/imperial/hop + name = "head of personnel's naval officer cap" + desc = "An olive naval cap with a silver disk in the center." + icon_state = "imphop" + +/obj/item/clothing/head/hats/imperial/hos + name = "head of security's naval officer cap" + desc = "A tar black naval cap with a silver disk in the center." + icon_state = "imphos" + armor_type = /datum/armor/hats_hos + +/obj/item/clothing/head/hats/imperial/cmo + name = "chief medical officer's naval cap" + desc = "A teal naval cap with a silver disk in the center." + icon_state = "impcmo" + +/obj/item/clothing/head/hats/imperial/ce + name = "chief engineer's blast helmet" + desc = "Despite seeming like it's made of metal, it's actually a very cheap plastic.." + armor_type = /datum/armor/imperial_ce + clothing_flags = STOPSPRESSUREDAMAGE + heat_protection = HEAD + max_heat_protection_temperature = FIRE_HELM_MAX_TEMP_PROTECT + cold_protection = HEAD + min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT + icon_state = "impce" + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT + + +/datum/armor/imperial_ce + melee = 15 + bullet = 5 + laser = 20 + energy = 10 + bomb = 20 + bio = 10 + fire = 100 + acid = 50 + wound = 10 + +/obj/item/clothing/head/hats/imperial/helmet + name = "blast helmet" + desc = "A sharp helmet with some goggles on the top. Unfortunately, both those and the helmet itself are made of flimsy plastic." //No armor moment + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/hats.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/head.dmi' + icon_state = "blast_helmet" + +/obj/item/clothing/head/hats/imperial/helmet/Initialize(mapload) + . = ..() + AddComponent(/datum/component/toggle_icon, "goggles") + +/obj/item/clothing/head/soft/yankee + name = "fashionable baseball cap" + desc = "Rimmed and brimmed." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/hats.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/head.dmi' + icon_state = "yankeesoft" + soft_type = "yankee" + +/obj/item/clothing/head/soft/yankee/rimless + name = "rimless fashionable baseball cap" + desc = "Rimless for her pleasure." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/hats.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/head.dmi' + icon_state = "yankeenobrimsoft" + soft_type = "yankeenobrim" + +/obj/item/clothing/head/fedora/brown //Fedora without detective's candy corn gimmick + name = "brown fedora" + icon_state = "detective" + inhand_icon_state = "det_hat" + +/obj/item/clothing/head/standalone_hood + name = "hood" + desc = "A hood with a bit of support around the neck so it actually stays in place, for all those times you want a hood without the coat." + icon = 'monkestation/code/modules/blueshift/gags/icons/head/head.dmi' + worn_icon = 'monkestation/code/modules/blueshift/gags/icons/head/head.dmi' + icon_state = "hood" + body_parts_covered = HEAD + cold_protection = HEAD + min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT + flags_inv = HIDEEARS|HIDEHAIR + flags_1 = IS_PLAYER_COLORABLE_1 + greyscale_colors = "#4e4a43#F1F1F1" + greyscale_config = /datum/greyscale_config/standalone_hood + greyscale_config_worn = /datum/greyscale_config/standalone_hood/worn + +/obj/item/clothing/head/beret/badge + name = "badged beret" + desc = "A beret. With a badge. What do you want, a dissertation? It's a hat." + icon_state = "beret_badge" + greyscale_config = /datum/greyscale_config/beret_badge + greyscale_config_worn = /datum/greyscale_config/beret_badge/worn + greyscale_colors = "#972A2A#EFEFEF" + flags_1 = IS_PLAYER_COLORABLE_1 + +/obj/item/clothing/head/costume/cowboyhat_old + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/hats.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/head.dmi' + name = "old cowboy hat" + desc = "An older cowboy hat, perfect for any outlaw, though lacking fancy colour magic." + icon_state = "cowboyhat_black" + inhand_icon_state = "cowboy_hat_black" + +//BOWS +/obj/item/clothing/head/small_bow + name = "small bow" + desc = "A small compact bow that you can place on the side of your hair." + icon_state = "small_bow" + greyscale_config = /datum/greyscale_config/small_bow + greyscale_config_worn = /datum/greyscale_config/small_bow/worn + greyscale_colors = "#7b9ab5" + flags_1 = IS_PLAYER_COLORABLE_1 + +/obj/item/clothing/head/small_bow/Initialize(mapload) + . = ..() + AddComponent(/datum/component/toggle_clothes, "small_bow_t") + +/obj/item/clothing/head/large_bow + name = "large bow" + desc = "A large bow that you can place on top of your head." + icon_state = "large_bow" + greyscale_config = /datum/greyscale_config/large_bow + greyscale_config_worn = /datum/greyscale_config/large_bow/worn + greyscale_colors = "#7b9ab5" + flags_1 = IS_PLAYER_COLORABLE_1 + +/obj/item/clothing/head/back_bow + name = "back bow" + desc = "A large bow that you can place on the back of your head." + icon_state = "back_bow" + greyscale_config = /datum/greyscale_config/back_bow + greyscale_config_worn = /datum/greyscale_config/back_bow/worn + greyscale_colors = "#7b9ab5" + flags_1 = IS_PLAYER_COLORABLE_1 + +/obj/item/clothing/head/sweet_bow + name = "sweet bow" + desc = "A sweet bow that you can place on the back of your head." + icon_state = "sweet_bow" + greyscale_config = /datum/greyscale_config/sweet_bow + greyscale_config_worn = /datum/greyscale_config/sweet_bow/worn + greyscale_colors = "#7b9ab5" + flags_1 = IS_PLAYER_COLORABLE_1 + +/obj/item/clothing/head/beret/sec/nri + name = "commander's beret" + desc = "Za rodinu!!" + armor_type = /datum/armor/sec_nri + +/datum/armor/sec_nri + melee = 40 + bullet = 35 + laser = 30 + energy = 40 + bomb = 25 + fire = 20 + acid = 50 + wound = 20 diff --git a/monkestation/code/modules/blueshift/clothing/nova_hop.dm b/monkestation/code/modules/blueshift/clothing/nova_hop.dm new file mode 100644 index 000000000000..fdb1299fed21 --- /dev/null +++ b/monkestation/code/modules/blueshift/clothing/nova_hop.dm @@ -0,0 +1,38 @@ +/obj/item/storage/backpack/head_of_personnel + name = "head of personnel backpack" + desc = "A exclusive backpack issued to Nanotrasen's finest second." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/backpacks.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/back.dmi' + lefthand_file = 'monkestation/code/modules/blueshift/icons/mob/inhands/clothing/backpack_lefthand.dmi' + righthand_file = 'monkestation/code/modules/blueshift/icons/mob/inhands/clothing/backpack_righthand.dmi' + icon_state = "backpack_hop" + inhand_icon_state = "backpack_hop" + +/obj/item/storage/backpack/satchel/head_of_personnel + name = "head of personnel satchel" + desc = "A exclusive satchel issued to Nanotrasen's finest second." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/backpacks.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/back.dmi' + lefthand_file = 'monkestation/code/modules/blueshift/icons/mob/inhands/clothing/backpack_lefthand.dmi' + righthand_file = 'monkestation/code/modules/blueshift/icons/mob/inhands/clothing/backpack_righthand.dmi' + icon_state = "satchel_hop" + inhand_icon_state = "satchel_hop" + +/obj/item/storage/backpack/duffelbag/head_of_personnel + name = "head of personnel duffelbag" + desc = "A robust duffelbag issued to Nanotrasen's finest second." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/backpacks.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/back.dmi' + lefthand_file = 'monkestation/code/modules/blueshift/icons/mob/inhands/clothing/backpack_lefthand.dmi' + righthand_file = 'monkestation/code/modules/blueshift/icons/mob/inhands/clothing/backpack_righthand.dmi' + icon_state = "duffel_hop" + inhand_icon_state = "duffel_hop" + +/obj/item/radio/headset/heads/hop/alt + name = "\proper the head of personnel's bowman headset" + desc = "The headset of the second. Protects ears from flashbangs." + icon_state = "com_headset_alt" + +/obj/item/radio/headset/heads/hop/alt/Initialize(mapload) + . = ..() + AddComponent(/datum/component/wearertargeting/earprotection, list(ITEM_SLOT_EARS)) diff --git a/monkestation/code/modules/blueshift/clothing/nova_jackets.dm b/monkestation/code/modules/blueshift/clothing/nova_jackets.dm new file mode 100644 index 000000000000..ab550ed6c8ee --- /dev/null +++ b/monkestation/code/modules/blueshift/clothing/nova_jackets.dm @@ -0,0 +1,112 @@ +//Base Jacket - same stats as /obj/item/clothing/suit/jacket, just toggleable and serving as the base for all the departmental jackets and flannels +/obj/item/clothing/suit/toggle/jacket + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/suits.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/suit.dmi' + name = "bomber jacket" + desc = "A warm bomber jacket, with synthetic-wool lining to keep you nice and warm in the depths of space. Aviators not included." + icon_state = "bomberalt" + allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/radio) + body_parts_covered = CHEST|ARMS|GROIN + cold_protection = CHEST|ARMS|GROIN + min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + toggle_noun = "zipper" + +//Job Jackets +/obj/item/clothing/suit/toggle/jacket/engi + name = "engineering jacket" + desc = "A comfortable jacket in engineering yellow." + icon_state = "engi_dep_jacket" + armor_type = /datum/armor/jacket_engi + allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/t_scanner, /obj/item/construction/rcd, /obj/item/pipe_dispenser, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter) + +/datum/armor/jacket_engi + fire = 30 + acid = 45 + +/obj/item/clothing/suit/toggle/jacket/sci + name = "science jacket" + desc = "A comfortable jacket in science purple." + icon_state = "sci_dep_jacket" + armor_type = /datum/armor/jacket_sci + +/datum/armor/jacket_sci + bomb = 10 + +/obj/item/clothing/suit/toggle/jacket/med + name = "medbay jacket" + desc = "A comfortable jacket in medical blue." + icon_state = "med_dep_jacket" + armor_type = /datum/armor/jacket_med + +/datum/armor/jacket_med + bio = 50 + acid = 45 + +/obj/item/clothing/suit/toggle/jacket/supply + name = "cargo jacket" + desc = "A comfortable jacket in supply brown." + icon_state = "supply_dep_jacket" + +/obj/item/clothing/suit/toggle/jacket/assistant + name = "non-departmental jacket" + desc = "A comfortable jacket in a neutral black" + icon_state = "off_dep_jacket" + +/obj/item/clothing/suit/toggle/jacket/supply/head + name = "quartermaster's jacket" + desc = "Even if people refuse to recognize you as a head, they can recognize you as a badass." + icon_state = "qmjacket" + +/obj/item/clothing/suit/toggle/jacket/sec + name = "security jacket" + desc = "A comfortable jacket in security blue. Probably against uniform regulations." + icon_state = "sec_dep_jacket" + armor_type = /datum/armor/sec_dep_jacket + +/obj/item/clothing/suit/toggle/jacket/sec/Initialize(mapload) + . = ..() + allowed = GLOB.security_vest_allowed + +/datum/armor/sec_dep_jacket + melee = 30 + bullet = 20 + laser = 30 + energy = 40 + bomb = 25 + fire = 30 + acid = 45 + +/obj/item/clothing/suit/toggle/jacket/sec/old //Oldsec (Red) + icon_state = "sec_dep_jacket_old" + +//Flannels +/obj/item/clothing/suit/toggle/jacket/flannel + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/suits.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/suit.dmi' + name = "flannel jacket" + desc = "A cozy and warm plaid flannel jacket. Praised by Lumberjacks and Truckers alike." + icon_state = "flannel" + body_parts_covered = CHEST|ARMS //Being a bit shorter, flannels dont cover quite as much as the rest of the woolen jackets (- GROIN) + cold_protection = CHEST|ARMS + heat_protection = CHEST|ARMS //As a plus side, they're more insulating, protecting a bit from the heat as well + +/obj/item/clothing/suit/toggle/jacket/flannel/red + name = "red flannel jacket" + icon_state = "flannel_red" + +/obj/item/clothing/suit/toggle/jacket/flannel/aqua + name = "aqua flannel jacket" + icon_state = "flannel_aqua" + +/obj/item/clothing/suit/toggle/jacket/flannel/brown + name = "brown flannel jacket" + icon_state = "flannel_brown" + +/obj/item/clothing/suit/toggle/jacket/flannel/gags + name = "flannel shirt" + icon_state = "flannelgags" + greyscale_config = /datum/greyscale_config/flannelgags + greyscale_config_worn = /datum/greyscale_config/flannelgags/worn + greyscale_colors = "#a61e1f" + flags_1 = IS_PLAYER_COLORABLE_1 diff --git a/monkestation/code/modules/blueshift/clothing/nova_job_heads.dm b/monkestation/code/modules/blueshift/clothing/nova_job_heads.dm new file mode 100644 index 000000000000..e04822fad52c --- /dev/null +++ b/monkestation/code/modules/blueshift/clothing/nova_job_heads.dm @@ -0,0 +1,152 @@ +// This is for all the berets that /tg/ didn't want. You're welcome, they should look better. + +/obj/item/clothing/head/hats/hos/beret + name = "head of security beret" + desc = "A robust beret for the Head of Security, for looking stylish while not sacrificing protection." + icon_state = "beret_badge" + greyscale_config = /datum/greyscale_config/beret_badge + greyscale_config_worn = /datum/greyscale_config/beret_badge/worn + greyscale_colors = "#3F3C40#FFCE5B" + +/obj/item/clothing/head/hats/hos/beret/syndicate + name = "syndicate beret" + desc = "A black beret with thick armor padding inside. Stylish and robust." + greyscale_colors = "#3F3C40#DB2929" + +/obj/item/clothing/head/beret/sec/navywarden + name = "warden's beret" + desc = "A special beret with the Warden's insignia emblazoned on it. For wardens with class." + icon_state = "beret_badge_fancy_twist" + greyscale_config = /datum/greyscale_config/beret_badge_fancy + greyscale_config_worn = /datum/greyscale_config/beret_badge_fancy/worn + greyscale_colors = "#3C485A#FF0000#00AEEF" + armor_type = /datum/armor/sec_navywarden + strip_delay = 60 + +/datum/armor/sec_navywarden + melee = 40 + bullet = 30 + laser = 30 + energy = 40 + bomb = 25 + fire = 30 + acid = 50 + wound = 6 + +/obj/item/clothing/head/beret/sec/navyofficer + desc = "A special beret with the security insignia emblazoned on it. For officers with class." + icon_state = "beret_badge_bolt" + greyscale_colors = "#3C485A#FF0000" + + +//Medical + +/obj/item/clothing/head/beret/medical + name = "medical beret" + desc = "A medical-flavored beret for the doctor in you!" + icon_state = "beret_badge_med" + greyscale_config = /datum/greyscale_config/beret_badge + greyscale_config_worn = /datum/greyscale_config/beret_badge/worn + greyscale_colors = "#FFFFFF#5FA4CC" + flags_1 = NONE + +/obj/item/clothing/head/beret/medical/paramedic + name = "paramedic beret" + desc = "For finding corpses in style!" + greyscale_colors = "#364660#5FA4CC" + +/obj/item/clothing/head/beret/medical/chemist + name = "chemist beret" + desc = "Not acid-proof!" + greyscale_colors = "#FFFFFF#D15B1B" + +/obj/item/clothing/head/beret/medical/virologist + name = "virologist beret" + desc = "Sneezing in this expensive beret would be a waste of a good beret." + greyscale_colors = "#FFFFFF#198019" + + +//Engineering + +/obj/item/clothing/head/beret/engi + name = "engineering beret" + desc = "Might not protect you from radiation, but definitely will protect you from looking unfashionable!" + icon_state = "beret_badge_engi" + greyscale_config = /datum/greyscale_config/beret_badge + greyscale_config_worn = /datum/greyscale_config/beret_badge/worn + greyscale_colors = "#ff8200#ffe12f" + flags_1 = NONE + +/obj/item/clothing/head/beret/atmos + name = "atmospheric beret" + desc = "While \"pipes\" and \"style\" might not rhyme, this beret sure makes you feel like they should!" + icon_state = "beret_badge" + greyscale_config = /datum/greyscale_config/beret_badge + greyscale_config_worn = /datum/greyscale_config/beret_badge/worn + greyscale_colors = "#59D7FF#ffe12f" + flags_1 = NONE + +// From this point forth will be berets that are made especially for Nova Sector. Those are loosely based off of the ones that were ported initially, but they might not be 1:1 + +/obj/item/clothing/head/beret/engi/ce + name = "chief engineer's beret" + desc = "A fancy beret designed exactly to the Chief Engineer's tastes, minus the LEDs." + greyscale_colors = "#FFFFFF#2E992E" + +/obj/item/clothing/head/beret/medical/cmo + name = "chief medical officer's beret" + desc = "A beret custom-fit to the Chief Medical Officer, repaired once or twice after Runtime got a hold of it." + greyscale_colors = "#5EB8B8#5FA4CC" + +/obj/item/clothing/head/beret/medical/cmo/alt + name = "chief medical officer's beret" + desc = "A beret custom-fit to the Chief Medical Officer, repaired once or twice after Runtime got a hold of it. This one is made out of white fabric. Fancy." + greyscale_colors = "#FFFFFF#199393" + +/obj/item/clothing/head/beret/science/fancy + desc = "A science-themed beret for our hardworking scientists. This one comes with a fancy badge!" + icon_state = "beret_badge" + greyscale_config = /datum/greyscale_config/beret_badge + greyscale_config_worn = /datum/greyscale_config/beret_badge/worn + greyscale_colors = "#7E1980#FFFFFF" + +/obj/item/clothing/head/beret/science/fancy/robo + name = "robotics beret" + desc = "A sleek black beret designed with high-durability nano-mesh fiber - or so the roboticists claim." + greyscale_colors = "#3E3E48#88242D" + +/obj/item/clothing/head/beret/science/rd/alt + name = "research director's beret" + desc = "A custom-tailored beret for the Research Director. Lamarr thinks it looks great. This one is made out of white fabric. Fancy." + greyscale_colors = "#FFFFFF#7E1980" + +/obj/item/clothing/head/beret/cargo/qm + name = "quartermaster's beret" + desc = "A beret that helps the QM keep telling themselves that they're an official head of staff." + greyscale_config = /datum/greyscale_config/beret_badge + greyscale_config_worn = /datum/greyscale_config/beret_badge/worn + icon_state = "beret_badge" + greyscale_colors = "#cf932f#FFCE5B" + +/obj/item/clothing/head/beret/cargo/qm/alt + name = "quartermaster's beret" + desc = "A beret that helps the QM keep telling themselves that they're an official head of staff. This one is made out of white fabric. Fancy" + greyscale_colors = "#FFFFFF#FFCE5B" + +/obj/item/clothing/head/caphat/beret/alt + name = "captain's beret" + desc = "For the Captains known for their sense of fashion. This one is made out of white fabric. Fancy" + greyscale_colors = "#FFFFFF#FFCE5B" + +/obj/item/clothing/head/hopcap/beret + name = "head of personnel's beret" + desc = "A fancy beret designed by NT's Personnel division for their favorite head's head." + greyscale_config = /datum/greyscale_config/beret_badge + greyscale_config_worn = /datum/greyscale_config/beret_badge/worn + icon_state = "beret_badge" + greyscale_colors = "#3e5c88#88242D" + +/obj/item/clothing/head/hopcap/beret/alt + name = "head of personnel's beret" + desc = "A fancy beret designed by NT's Personnel division for their favorite head's head. This one is made out of white fabric. Fancy" + greyscale_colors = "#FFFFFF#88242D" diff --git a/monkestation/code/modules/blueshift/clothing/nova_medical.dm b/monkestation/code/modules/blueshift/clothing/nova_medical.dm new file mode 100644 index 000000000000..c8a286a072ef --- /dev/null +++ b/monkestation/code/modules/blueshift/clothing/nova_medical.dm @@ -0,0 +1,102 @@ +/obj/item/clothing/under/rank/medical + worn_icon_digitigrade = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/medical_digi.dmi' + +/obj/item/clothing/under/rank/medical/doctor/nova + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/medical.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/medical.dmi' + + +/obj/item/clothing/under/rank/medical/scrubs/nova + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/medical.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/medical.dmi' + icon_state = "scrubswhite" // Because for some reason TG's scrubs dont have an icon on their basetype + desc = "It's made of a special fiber that provides minor protection against biohazards. This one seems to be the original Scrub." + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION + +/obj/item/clothing/under/rank/medical/chemist/nova + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/medical.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/medical.dmi' + +// Add a 'medical/virologist/nova' here if you make Virologist uniforms + +/obj/item/clothing/under/rank/medical/paramedic/nova + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/medical.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/medical.dmi' + +/obj/item/clothing/under/rank/medical/chief_medical_officer/nova + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/medical.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/medical.dmi' + +/* +* DOCTOR +*/ + +/obj/item/clothing/under/rank/medical/doctor/nova/utility + name = "medical utility uniform" + desc = "A utility uniform worn by Medical doctors." + icon_state = "util_med" + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION + +/obj/item/clothing/under/rank/medical/doctor/nova/utility/syndicate + armor_type = /datum/armor/clothing_under/utility_syndicate + has_sensor = NO_SENSORS + +/* +* SCRUBS +*/ + +/obj/item/clothing/under/rank/medical/scrubs/nova/red + desc = "It's made of a special fiber that provides minor protection against biohazards. This one is in a deep red." + icon_state = "scrubsred" + +/obj/item/clothing/under/rank/medical/scrubs/nova/white + desc = "It's made of a special fiber that provides minor protection against biohazards. This one is in a cream white colour." + icon_state = "scrubswhite" + +/* +* CHEMIST +*/ + +/obj/item/clothing/under/rank/medical/chemist/nova/formal + name = "chemist's formal jumpsuit" + desc = "A white shirt with left-aligned buttons and an orange stripe, lined with protection against chemical spills." + icon_state = "pharmacologist" + +/obj/item/clothing/under/rank/medical/chemist/nova/formal/skirt + name = "chemist's formal jumpskirt" + icon_state = "pharmacologist_skirt" + body_parts_covered = CHEST|GROIN|ARMS + dying_key = DYE_REGISTRY_JUMPSKIRT + female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + + +/obj/item/clothing/under/rank/medical/chemist/skirt + + +/* +* PARAMEDIC +*/ + +/obj/item/clothing/under/rank/medical/paramedic/nova/light + name = "light paramedic uniform" + desc = "A brighter variant of the typical Paramedic uniform made with special fibers that provide minor protection against biohazards, this one has the reflective strips removed." + icon_state = "paramedic_light" + +/obj/item/clothing/under/rank/medical/paramedic/nova/light/skirt + name = "light paramedic skirt" + desc = "A brighter variant of the typical Paramedic uniform made with special fibers that provide minor protection against biohazards, this one has had it's legs replaced with a skirt." + icon_state = "paramedic_light_skirt" + body_parts_covered = CHEST|GROIN|ARMS + dying_key = DYE_REGISTRY_JUMPSKIRT + female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + +/* +* CHIEF MEDICAL OFFICER +*/ + +/obj/item/clothing/under/rank/medical/chief_medical_officer/nova/imperial //Rank pins of the Brigadier General + desc = "A teal, sterile naval suit with a rank badge denoting the Officer of the Medical Corps. Doesn't protect against blaster fire." + name = "chief medical officer's naval jumpsuit" + icon_state = "impcmo" diff --git a/monkestation/code/modules/blueshift/clothing/nova_misc.dm b/monkestation/code/modules/blueshift/clothing/nova_misc.dm new file mode 100644 index 000000000000..cca47c8f9fb6 --- /dev/null +++ b/monkestation/code/modules/blueshift/clothing/nova_misc.dm @@ -0,0 +1,363 @@ +//DO NOT ADD TO THIS FILE UNLESS THE SITUATION IS DIRE +//MISC FILES = UNSORTED FILES. EVEN TG HATES THIS ONE. + +/obj/item/clothing/under/misc + worn_icon_digitigrade = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/misc_digi.dmi' + +/obj/item/clothing/under/misc/nova + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/misc.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/misc.dmi' + can_adjust = FALSE + +/* + Do we even bother sorting these? We don't want to use the file, it's for emergencies and in-betweens. + Just... don't lose your stuff. +*/ + +/obj/item/clothing/under/misc/nova/taccas + name = "tacticasual uniform" + desc = "A white wifebeater on top of some cargo pants. For when you need to carry various beers." + icon_state = "tac_s" + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION + +/obj/item/clothing/under/misc/nova/mechanic + name = "mechanic's overalls" + desc = "An old-fashioned pair of brown overalls, along with assorted pockets and belt-loops." + icon_state = "mechanic" + +/obj/item/clothing/under/misc/nova/utility + name = "general utility uniform" + desc = "A utility uniform worn by civilian-ranked crew." + icon_state = "utility" + body_parts_covered = CHEST|ARMS|GROIN|LEGS + can_adjust = FALSE + +/obj/item/clothing/under/misc/nova/utility/syndicate + armor_type = /datum/armor/clothing_under/utility_syndicate + has_sensor = NO_SENSORS + +/datum/armor/clothing_under/utility_syndicate + melee = 10 + fire = 50 + acid = 40 + +/obj/item/clothing/suit/wornshirt + name = "worn shirt" + desc = "A worn out (or perhaps just baggy), curiously comfortable t-shirt." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/suits.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/suit.dmi' + icon_state = "wornshirt" + inhand_icon_state = "labcoat" + body_parts_covered = CHEST|GROIN + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + +/obj/item/clothing/suit/dutchjacketsr + name = "western jacket" + desc = "Botanists screaming of mangos have been rumored to wear this." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/suits.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/suit.dmi' + icon_state = "dutchjacket" + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + + +/obj/item/clothing/suit/toggle/trackjacket + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/suits.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/suit.dmi' + worn_icon_digitigrade = 'monkestation/code/modules/blueshift/icons/mob/clothing/suit.dmi' + name = "track jacket" + desc = "A black jacket with blue stripes for the athletic. It is also popular among russian delinquents." + icon_state = "trackjacket" + toggle_noun = "zipper" + +/obj/item/clothing/suit/frenchtrench + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/suits.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/suit.dmi' + name = "blue trenchcoat" + icon_state = "frenchtrench" + desc = "There's a certain timeless feeling to this coat, like it was once worn by a romantic, broken through his travels, from a schemer who hunted injustice to a traveller, however it arrived in your hands? Who knows?" + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + +/obj/item/clothing/suit/victoriantailcoatbutler + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/suits.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/suit.dmi' + name = "caretaker tailcoat" + desc = "You've ALWAYS been the Caretaker. I ought to know, I've ALWAYS been here." + icon_state = "victorian_tailcoat" + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + +/obj/item/clothing/suit/koreacoat + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/suits.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/suit.dmi' + name = "eastern winter coat" + desc = "War makes people cold, not just on the inside, but on the outside as well... luckily this coat's not seen any hardships like that, and is actually quite warm!" + icon_state = "chi_korea_coat" + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + body_parts_covered = CHEST|GROIN|ARMS + cold_protection = CHEST|GROIN|ARMS + min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT + +/obj/item/clothing/suit/modernwintercoatthing + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/suits.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/suit.dmi' + name = "modern winter coat" + desc = "Warm and comfy, the inner fur seems to be removable, not this one though, someone's sewn it in and left the buttons!" + icon_state = "modern_winter" + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + body_parts_covered = CHEST|GROIN|ARMS + cold_protection = CHEST|GROIN|ARMS + min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT + +/obj/item/clothing/suit/toggle/jacket/cardigan + name = "cardigan" + desc = "It's like, half a jacket." + icon_state = "cardigan" + greyscale_config = /datum/greyscale_config/cardigan + greyscale_config_worn = /datum/greyscale_config/cardigan/worn + greyscale_colors = "#FFFFFF" + flags_1 = IS_PLAYER_COLORABLE_1 + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + +/obj/item/clothing/suit/toggle/jacket/cardigan/Initialize(mapload) + . = ..() + AddComponent(/datum/component/toggle_clothes, "cardigan_t") + +/obj/item/clothing/suit/discoblazer + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/suits.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/suit.dmi' + name = "disco ass blazer" + desc = "Looks like someone skinned this blazer off some long extinct disco-animal. It has an enigmatic white rectangle on the back and the right sleeve." + icon_state = "jamrock_blazer" + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + +/obj/item/clothing/suit/kimjacket + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/suits.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/suit.dmi' + name = "aerostatic bomber jacket" + desc = "A jacket once worn by the Air Force during the Antecentennial Revolution, there are quite a few pockets on the inside, mostly for storing notebooks and compasses." + icon_state = "aerostatic_bomber_jacket" + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + +/obj/item/clothing/suit/blackfurrich + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/suits.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/suit.dmi' + name = "expensive black fur coat" + desc = "Ever thought to yourself 'I'm a rich bitch, but I haven't GOT the Mafia Princess look?' Well thanks to the tireless work of underpaid slave labour in Space China, your dreams of looking like a bitch have been fulfilled, like a Genie with a sweatshop." + icon_state = "expensivecoat" + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + body_parts_covered = CHEST|GROIN|ARMS + cold_protection = CHEST|GROIN|ARMS + min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT + +/obj/item/clothing/suit/brownbattlecoat + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/suits.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/suit.dmi' + name = "expensive brown fur coat" + desc = "There is nothing more valuable, nothing more sacred, look at the fur lining, it's beautiful, when you cruse through Necropolis in this thing, you're gonna be balls deep in Ash Walker snatch." + icon_state = "battlecoat" + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + body_parts_covered = CHEST|GROIN|ARMS + cold_protection = CHEST|GROIN|ARMS + min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT + +/obj/item/clothing/suit/brownfurrich + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/suits.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/suit.dmi' + name = "quartermaster fur coat" + desc = "Cargonia, or if you're a dork, Cargoslavia has shipped out a coat for loyal quartermasters, despite accusations it's just a dyed black fur coat, it's...not, promise!" + icon_state = "winter_coat" + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + body_parts_covered = CHEST|GROIN|ARMS + cold_protection = CHEST|GROIN|ARMS + min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT + armor_type = /datum/armor/suit_brownfurrich + +/datum/armor/suit_brownfurrich + melee = 10 + bullet = 10 + +/obj/item/clothing/suit/brownfurrich/public + name = "fur coat" + desc = "A lavishly cosy furr coat, made with 100% recycled carbon!" + +/obj/item/clothing/suit/brownfurrich/white + name = "white fur coat" + desc = "A lavishly cosy furr coat, made with 100% recycled carbon!" + icon_state = "winter_coat_white" + +/obj/item/clothing/suit/brownfurrich/cream + name = "cream fur coat" + desc = "A lavishly cosy furr coat, made with 100% recycled carbon!" + icon_state = "winter_coat_cream" + +/obj/item/clothing/suit/fallsparka + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/suits.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/suit.dmi' + name = "falls parka" + desc = "A light brown coat with light fur lighting around the collar." + icon_state = "fallsparka" + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + body_parts_covered = CHEST|GROIN|ARMS + cold_protection = CHEST|GROIN|ARMS + min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT + +/obj/item/clothing/suit/british_officer + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/suits.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/suit.dmi' + name = "british officers coat" + desc = "Whether you're commanding a colonial crusade or commanding a battalion for the British Empire, this coat will suit you." + icon_state = "british_officer" + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + body_parts_covered = CHEST|GROIN|ARMS + cold_protection = CHEST|GROIN|ARMS + min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT + armor_type = /datum/armor/suit_british_officer + +/datum/armor/suit_british_officer + melee = 10 + bullet = 10 + +/obj/item/clothing/suit/modern_winter + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/suits.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/suit.dmi' + name = "modern winter coat" + desc = "A comfy modern winter coat." + icon_state = "modern_winter" + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + body_parts_covered = CHEST|GROIN|ARMS + cold_protection = CHEST|GROIN|ARMS + min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT + +/obj/item/clothing/suit/woolcoat + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/suits.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/suit.dmi' + name = "wool coat" + desc = "A fine coat made from the richest of wool." + icon_state = "woolcoat" + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + body_parts_covered = CHEST|GROIN|ARMS + + +/obj/item/clothing/suit/gautumn + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/suits.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/suit.dmi' + name = "neo american general's coat" + desc = "In stark contrast to the undersuit, this large and armored coat is as white as snow, perfect for the bloodstains." + icon_state = "soldier" + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + body_parts_covered = CHEST|GROIN|ARMS + cold_protection = CHEST|GROIN|ARMS + min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT + armor_type = /datum/armor/suit_gautumn + +/datum/armor/suit_gautumn + melee = 10 + bullet = 10 + laser = 20 + energy = 20 + +/obj/item/clothing/suit/autumn + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/suits.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/suit.dmi' + name = "neo american officer's coat" + desc = "In stark contrast to the undersuit, this coat is a greeny white colour, layered with slight protection against bullets and melee weapons." + icon_state = "autumn" + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + body_parts_covered = CHEST|GROIN|ARMS + cold_protection = CHEST|GROIN|ARMS + min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT + armor_type = /datum/armor/suit_autumn + +/datum/armor/suit_autumn + melee = 10 + bullet = 10 + +/obj/item/clothing/suit/texas + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/suits.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/suit.dmi' + name = "white suit coat" + desc = "A white suit coat, perfect for fat oil barons." + icon_state = "texas" + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + body_parts_covered = CHEST|ARMS + +/obj/item/clothing/suit/cossack + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/suits.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/suit.dmi' + name = "ukrainian coat" + desc = "Hop on your horse, dawn your really fluffy hat, and strap this coat to your back." + icon_state = "kuban_cossak" + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + +/obj/item/clothing/suit/corgisuit/en + name = "\improper super-hero E-N suit" + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/suits.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/suit.dmi' + icon_state = "ensuit" + supports_variations_flags = NONE + +/obj/item/clothing/suit/trenchbrown + name = "brown trenchcoat" + desc = "A brown noir-inspired coat. Looks best if you're not wearing it over a baggy t-shirt." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/suits.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/suit.dmi' + icon_state = "brtrenchcoat" + body_parts_covered = CHEST|ARMS + +/obj/item/clothing/suit/trenchblack + name = "black trenchcoat" + desc = "A matte-black coat. Best suited for space-italians, or maybe a monochrome-cop." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/suits.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/suit.dmi' + icon_state = "bltrenchcoat" + body_parts_covered = CHEST|ARMS + +/obj/item/clothing/suit/apron/chef/colorable_apron + name = "apron" + desc = "A basic apron." + icon = 'monkestation/code/modules/blueshift/gags/icons/suit/suit.dmi' + worn_icon = 'monkestation/code/modules/blueshift/gags/icons/suit/suit.dmi' + icon_state = "apron" + greyscale_colors = "#ffffff" + greyscale_config = /datum/greyscale_config/apron + greyscale_config_worn = /datum/greyscale_config/apron/worn + flags_1 = IS_PLAYER_COLORABLE_1 + +/obj/item/clothing/suit/apron/overalls/Initialize(mapload) + . = ..() + allowed += list( + /obj/item/flashlight, + /obj/item/lighter, + /obj/item/modular_computer/pda, + /obj/item/radio, + /obj/item/storage/bag/books, + /obj/item/storage/fancy/cigarettes, + /obj/item/tank/internals/emergency_oxygen, + /obj/item/tank/internals/plasmaman, + /obj/item/toy, + /obj/item/analyzer, + /obj/item/construction/rcd, + /obj/item/fireaxe/metal_h2_axe, + /obj/item/pipe_dispenser, + /obj/item/storage/bag/construction, + /obj/item/t_scanner, + ) + +/obj/item/clothing/suit/warm_sweater + name = "warm sweater" + desc = "A comfortable warm-looking sweater." + icon_state = "warm_sweater" + greyscale_config = /datum/greyscale_config/warm_sweater + greyscale_config_worn = /datum/greyscale_config/warm_sweater/worn + greyscale_colors = "#867361" + flags_1 = IS_PLAYER_COLORABLE_1 + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + +/obj/item/clothing/suit/heart_sweater + name = "heart sweater" + desc = "A comfortable warm-looking sweater. It even has a heart pattern on it, how cute." + icon_state = "heart_sweater" + greyscale_config = /datum/greyscale_config/heart_sweater + greyscale_config_worn = /datum/greyscale_config/heart_sweater/worn + greyscale_colors = "#867361#8f3a3a" + flags_1 = IS_PLAYER_COLORABLE_1 + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON diff --git a/monkestation/code/modules/blueshift/clothing/nova_neck.dm b/monkestation/code/modules/blueshift/clothing/nova_neck.dm new file mode 100644 index 000000000000..4a4835d562cd --- /dev/null +++ b/monkestation/code/modules/blueshift/clothing/nova_neck.dm @@ -0,0 +1,219 @@ +/obj/item/clothing/neck/tie/disco + name = "horrific necktie" + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/neck.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/neck.dmi' + icon_state = "eldritch_tie" + desc = "The necktie is adorned with a garish pattern. It's disturbingly vivid. Somehow you feel as if it would be wrong to ever take it off. It's your friend now. You will betray it if you change it for some boring scarf." + +/obj/item/clothing/neck/mantle + name = "mantle" + desc = "A decorative drape over the shoulders. This one has a simple, dry color." + icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/neck.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/neck.dmi' + icon_state = "mantle" + +/obj/item/clothing/neck/mantle/regal + name = "regal mantle" + desc = "A colorful felt mantle. You feel posh just holding this thing." + icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/neck.dmi' + icon_state = "regal-mantle" + +/obj/item/clothing/neck/mantle/qm + name = "\proper the quartermaster's mantle" + desc = "A snug and comfortable looking shoulder covering garment, it has an air of rebellion and independence. Or annoyance and delusions, your call." + icon_state = "qmmantle" + +/obj/item/clothing/neck/mantle/hopmantle + name = "\proper the head of personnel's mantle" + desc = "A decorative draping of blue and red over your shoulders, signifying your stamping prowess." + icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/neck.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/neck.dmi' + icon_state = "hopmantle" + +/obj/item/clothing/neck/mantle/cmomantle + name = "\proper the chief medical officer's mantle" + desc = "A light blue shoulder draping for THE medical professional. Contrasts well with blood." + icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/neck.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/neck.dmi' + icon_state = "cmomantle" + +/obj/item/clothing/neck/mantle/rdmantle + name = "\proper the research director's mantle" + desc = "A terribly comfortable shoulder draping for the discerning scientist of fashion." + icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/neck.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/neck.dmi' + icon_state = "rdmantle" + +/obj/item/clothing/neck/mantle/cemantle + name = "\proper the chief engineer's mantle" + desc = "A bright white and yellow striped mantle. Do not wear around active machinery." + icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/neck.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/neck.dmi' + icon_state = "cemantle" + +/obj/item/clothing/neck/mantle/hosmantle + name = "\proper the head of security's mantle" + desc = "A plated mantle that one might wrap around the upper torso. The 'scales' of the garment signify the members of security and how you're carrying them on your shoulders." + icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/neck.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/neck.dmi' + icon_state = "hosmantle_blue" //There's a red version if you remove the _blue, but its not coded in currently. + +/obj/item/clothing/neck/mantle/bsmantle + name = "\proper the blueshield's mantle" + desc = "A plated mantle with command colors. Suitable for the one assigned to making sure they're still breathing." + icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/neck.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/neck.dmi' + icon_state = "bsmantle" + +/obj/item/clothing/neck/mantle/capmantle + name = "\proper the captain's mantle" + desc = "A formal mantle to drape around the shoulders. Others stand on the shoulders of giants. You're the giant they stand on." + icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/neck.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/neck.dmi' + icon_state = "capmantle" + +/obj/item/clothing/neck/mantle/recolorable + name = "mantle" + desc = "A simple drape over the shoulders." + icon = 'monkestation/code/modules/blueshift/gags/icons/neck/neck.dmi' + worn_icon = 'monkestation/code/modules/blueshift/gags/icons/neck/neck.dmi' + icon_state = "mantle" + greyscale_colors = "#ffffff" + greyscale_config = /datum/greyscale_config/mantle + greyscale_config_worn = /datum/greyscale_config/mantle/worn + flags_1 = IS_PLAYER_COLORABLE_1 + +/obj/item/clothing/neck/face_scarf + name = "face scarf" + desc = "A warm looking scarf that you can easily put around your face." + icon_state = "face_scarf" + greyscale_config = /datum/greyscale_config/face_scarf + greyscale_config_worn = /datum/greyscale_config/face_scarf/worn + greyscale_colors = "#a52424" + flags_1 = IS_PLAYER_COLORABLE_1 + flags_inv = HIDEFACIALHAIR | HIDESNOUT + supports_variations_flags = CLOTHING_SNOUTED_VARIATION + +/obj/item/clothing/neck/face_scarf/Initialize(mapload) + . = ..() + AddComponent(/datum/component/toggle_icon, toggle_noun = "scarf") + +/obj/item/clothing/neck/face_scarf/AltClick(mob/user) //Make sure that toggling actually hides the snout so that it doesn't clip + if(icon_state != "face_scarf_t") + flags_inv = HIDEFACIALHAIR | HIDESNOUT + else + flags_inv = HIDEFACIALHAIR + return TRUE + +/obj/item/clothing/neck/maid_neck_cover + name = "maid neck cover" + desc = "A neckpiece for a maid costume, it smells faintly of disappointment." + icon_state = "maid_neck_cover" + greyscale_config = /datum/greyscale_config/maid_neck_cover + greyscale_config_worn = /datum/greyscale_config/maid_neck_cover/worn + greyscale_colors = "#7b9ab5#edf9ff" + flags_1 = IS_PLAYER_COLORABLE_1 + +/obj/item/clothing/neck/cloak/colourable + name = "colourable cloak" + icon_state = "gags_cloak" + greyscale_config = /datum/greyscale_config/cloak + greyscale_config_worn = /datum/greyscale_config/cloak/worn + greyscale_colors = "#917A57#4e412e#4e412e" + flags_1 = IS_PLAYER_COLORABLE_1 + +/obj/item/clothing/neck/cloak/colourable/veil + name = "colourable veil" + icon_state = "gags_veil" + greyscale_config = /datum/greyscale_config/cloak/veil + greyscale_config_worn = /datum/greyscale_config/cloak/veil/worn + +/obj/item/clothing/neck/cloak/colourable/boat + name = "colourable boatcloak" + icon_state = "gags_boat" + greyscale_config = /datum/greyscale_config/cloak/boat + greyscale_config_worn = /datum/greyscale_config/cloak/boat/worn + +/obj/item/clothing/neck/cloak/colourable/shroud + name = "colourable shroud" + icon_state = "gags_shroud" + greyscale_config = /datum/greyscale_config/cloak/shroud + greyscale_config_worn = /datum/greyscale_config/cloak/shroud/worn + +/obj/item/clothing/neck/chaplain + name = "bishop's cloak" + desc = "Become the space pope." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/neck.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/neck.dmi' + icon_state = "bishopcloak" + +/obj/item/clothing/neck/chaplain/black + name = "black bishop's cloak" + icon_state = "blackbishopcloak" + +/obj/item/clothing/neck/cloak/qm/nova/interdyne + name = "deck officer's cloak" + desc = "A cloak that represents the eternal Cargonia. There's little Mosin Nagant emblems woven into the fabric." + +/obj/item/clothing/neck/cowboylea + name = "green cowboy poncho" + desc = "A sand covered cloak, there seems to be a small deer head with antlers embroidered inside." + body_parts_covered = NECK + slot_flags = ITEM_SLOT_NECK + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/neck.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/neck.dmi' + icon_state = "cowboy_poncho" + heat_protection = CHEST + +/obj/item/clothing/neck/cowboylea/Initialize(mapload) + . = ..() + AddComponent(/datum/component/toggle_clothes, "cowboy_poncho_t") + +//This one is greyscale :) +/obj/item/clothing/neck/ranger_poncho + name = "ranger poncho" + desc = "Aim for the Heart, Ramon." + icon_state = "ranger_poncho" + greyscale_config = /datum/greyscale_config/ranger_poncho + greyscale_config_worn = /datum/greyscale_config/ranger_poncho/worn + greyscale_colors = "#917A57#858585" //Roughly the same color as the original non-greyscale item was + flags_1 = IS_PLAYER_COLORABLE_1 + heat_protection = CHEST + +/obj/item/clothing/neck/ranger_poncho/Initialize(mapload) + . = ..() + AddComponent(/datum/component/toggle_clothes, "ranger_poncho_t") + +/obj/item/clothing/neck/robe_cape + name = "robe cape" + desc = "A comfortable northern-style cape, draped down your back and held around your neck with a brooch. Reminds you of a sort of robe." + icon_state = "robe_cape" + greyscale_config = /datum/greyscale_config/robe_cape + greyscale_config_worn = /datum/greyscale_config/robe_cape/worn + greyscale_colors = "#867361" + flags_1 = IS_PLAYER_COLORABLE_1 + body_parts_covered = CHEST|ARMS + +/obj/item/clothing/neck/long_cape + name = "long cape" + desc = "A graceful cloak that carefully surrounds your body." + icon_state = "long_cape" + greyscale_config = /datum/greyscale_config/long_cape + greyscale_config_worn = /datum/greyscale_config/long_cape/worn + greyscale_colors = "#867361#4d433d#b2a69c#b2a69c" + flags_1 = IS_PLAYER_COLORABLE_1 + body_parts_covered = CHEST|ARMS + +/obj/item/clothing/neck/long_cape/Initialize(mapload) + . = ..() + AddComponent(/datum/component/toggle_clothes, "long_cape_t") + +/obj/item/clothing/neck/wide_cape + name = "wide cape" + desc = "A proud, broad-shouldered cloak with which you can protect the honor of your back." + icon_state = "wide_cape" + greyscale_config = /datum/greyscale_config/wide_cape + greyscale_config_worn = /datum/greyscale_config/wide_cape/worn + greyscale_colors = "#867361#4d433d#b2a69c" + flags_1 = IS_PLAYER_COLORABLE_1 + body_parts_covered = CHEST|ARMS diff --git a/monkestation/code/modules/blueshift/clothing/nova_science.dm b/monkestation/code/modules/blueshift/clothing/nova_science.dm new file mode 100644 index 000000000000..f0c18219b42c --- /dev/null +++ b/monkestation/code/modules/blueshift/clothing/nova_science.dm @@ -0,0 +1,68 @@ +/obj/item/clothing/under/rank/rnd + worn_icon_digitigrade = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/rnd_digi.dmi' + +/obj/item/clothing/under/rank/rnd/research_director/alt + greyscale_config_worn_digitigrade = /datum/greyscale_config/buttondown_slacks/worn/digi + +/obj/item/clothing/under/rank/rnd/scientist/nova + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/rnd.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/rnd.dmi' + icon_state = null //debug item + +/obj/item/clothing/under/rank/rnd/roboticist/nova + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/rnd.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/rnd.dmi' + icon_state = null //debug item + +/obj/item/clothing/under/rank/rnd/research_director/nova + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/rnd.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/rnd.dmi' + icon_state = null //debug item + +/* + * GENETICIST (TO-DO) + * Add geneticist icons!!! + */ + +/* +/obj/item/clothing/under/rank/rnd/geneticist/nova/utility + name = "genetics utility uniform" + desc = "A utility uniform worn by NT-certified Genetics staff." + icon_state = "util_gene" + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION + can_adjust = FALSE + +/obj/item/clothing/under/rank/rnd/geneticist/nova/utility/syndicate + desc = "A utility uniform worn by Genetics staff." + armor_type = /datum/armor/clothing_under/utility_syndicate + has_sensor = NO_SENSORS +*/ + +/* + * SCIENTIST + */ +/obj/item/clothing/under/rank/rnd/scientist/nova/utility + name = "science utility uniform" + desc = "A utility uniform worn by NT-certified Science staff." + icon_state = "util_sci" + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION + can_adjust = FALSE + +/obj/item/clothing/under/rank/rnd/scientist/nova/utility/syndicate + desc = "A utility uniform worn by Science staff." + armor_type = /datum/armor/clothing_under/utility_syndicate + has_sensor = NO_SENSORS + +/obj/item/clothing/under/rank/rnd/scientist/nova/hlscience + name = "science team uniform" + desc = "A simple semi-formal uniform consisting of a grayish-blue shirt and off-white slacks, paired with a ridiculous, but mandatory, tie." + icon_state = "hl_scientist" + can_adjust = FALSE + +/* + * RESEARCH DIRECTOR + */ +/obj/item/clothing/under/rank/rnd/research_director/nova/imperial //Rank pins of the Major General + desc = "An off-white naval suit over black pants, with a rank badge denoting the Officer of the Internal Science Division. It's a peaceful life." + name = "research director's naval jumpsuit" + icon_state = "imprd" diff --git a/monkestation/code/modules/blueshift/clothing/nova_security.dm b/monkestation/code/modules/blueshift/clothing/nova_security.dm new file mode 100644 index 000000000000..f2a4d1067b0e --- /dev/null +++ b/monkestation/code/modules/blueshift/clothing/nova_security.dm @@ -0,0 +1,455 @@ +/obj/item/clothing/under/rank/security + worn_icon_digitigrade = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/security_digi.dmi' + +/obj/item/clothing/under/rank/security/nova + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/security.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/security.dmi' + +/obj/item/clothing/under/rank/security/head_of_security/nova + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/security.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/security.dmi' + +//DEBATE MOVING *ALL* SECURITY STUFF HERE? Even overrides, at least as a like, sub-file? + +/* +* SECURITY OFFICER +*/ + +/obj/item/clothing/under/rank/security/nova/utility + name = "security utility uniform" + desc = "A utility uniform worn by Lopland-certified Security officers." + icon_state = "util_sec" + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION + can_adjust = FALSE + +/obj/item/clothing/under/rank/security/nova/utility/redsec + desc = "A utility uniform worn by trained Security officers." + icon_state = "util_sec_old" + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION + can_adjust = FALSE + +/obj/item/clothing/under/rank/security/nova/utility/redsec/syndicate + armor_type = /datum/armor/clothing_under/redsec_syndicate + has_sensor = NO_SENSORS + +/obj/item/clothing/under/rank/security/peacekeeper/dress + name = "security battle dress" + desc = "An asymmetrical, unisex uniform with the legs replaced by a utility skirt." + worn_icon_state = "security_skirt" + icon_state = "security_skirt" + uses_advanced_reskins = FALSE + unique_reskin = null + alt_covers_chest = FALSE + +/obj/item/clothing/under/rank/security/peacekeeper/trousers + name = "security trousers" + desc = "Some Peacekeeper-blue combat trousers. Probably should pair it with a vest for safety." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/security.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/security.dmi' + icon_state = "workpants_blue" + body_parts_covered = GROIN|LEGS + can_adjust = FALSE + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION + female_sprite_flags = FEMALE_UNIFORM_NO_BREASTS + uses_advanced_reskins = TRUE + unique_reskin = list( + "Blue Variant" = list( + RESKIN_ICON_STATE = "workpants_blue", + RESKIN_WORN_ICON_STATE = "workpants_blue" + ), + "White Variant" = list( + RESKIN_ICON_STATE = "workpants_white", + RESKIN_WORN_ICON_STATE = "workpants_white" + ), + ) + +/obj/item/clothing/under/rank/security/peacekeeper/trousers/shorts + name = "security shorts" + desc = "Some Peacekeeper-blue combat shorts. Definitely should pair it with a vest for safety." + icon_state = "workshorts_blue" + uses_advanced_reskins = TRUE + unique_reskin = list( + "Blue Variant, Short" = list( + RESKIN_ICON_STATE = "workshorts_blue", + RESKIN_WORN_ICON_STATE = "workshorts_blue" + ), + "Blue Variant, Short Short" = list( + RESKIN_ICON_STATE = "workshorts_blue_short", + RESKIN_WORN_ICON_STATE = "workshorts_blue_short" + ), + "White Variant, Short" = list( + RESKIN_ICON_STATE = "workshorts_white", + RESKIN_WORN_ICON_STATE = "workshorts_white" + ), + "White Variant, Short Short" = list( + RESKIN_ICON_STATE = "workshorts_white_short", + RESKIN_WORN_ICON_STATE = "workshorts_white_short" + ), + ) + +/obj/item/clothing/under/rank/security/peacekeeper/jumpsuit + name = "security jumpsuit" + desc = "Turtleneck sweater commonly worn by Peacekeepers, attached with pants." + icon_state = "jumpsuit_blue" + can_adjust = TRUE + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION + female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY + +/obj/item/clothing/under/rank/security/peacekeeper/plain_skirt + name = "security plain skirt" + desc = "Plain-shirted uniform commonly worn by Peacekeepers, attached with a skirt." + icon_state = "plain_skirt_blue" + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/security.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/security.dmi' + female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY + + uses_advanced_reskins = TRUE + unique_reskin = list( + "Blue Variant" = list( + RESKIN_ICON_STATE = "plain_skirt_blue", + RESKIN_WORN_ICON_STATE = "plain_skirt_blue" + ), + "Black Variant" = list( + RESKIN_ICON_STATE = "plain_skirt_black", + RESKIN_WORN_ICON_STATE = "plain_skirt_black" + ), + ) + +/obj/item/clothing/under/rank/security/peacekeeper/miniskirt + name = "security miniskirt" + desc = "This miniskirt was originally featured in a gag calendar, but entered official use once they realized its potential for arid climates." + icon_state = "miniskirt_blue" + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/security.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/security.dmi' + female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY + + uses_advanced_reskins = TRUE + unique_reskin = list( + "Blue Variant" = list( + RESKIN_ICON_STATE = "miniskirt_blue", + RESKIN_WORN_ICON_STATE = "miniskirt_blue" + ), + "Black Variant" = list( + RESKIN_ICON_STATE = "miniskirt_black", + RESKIN_WORN_ICON_STATE = "miniskirt_black" + ), + ) + +/* +* HEAD OF SECURITY +*/ + +/datum/armor/clothing_under/redsec_syndicate + melee = 10 + fire = 50 + acid = 40 + +/obj/item/clothing/under/rank/security/head_of_security/nova/imperial //Rank pins of the Grand General + desc = "A tar black naval suit and a rank badge denoting the Officer of The Internal Security Division. Be careful your underlings don't bump their head on a door." + name = "head of security's naval jumpsuit" + icon_state = "imphos" + +/obj/item/clothing/head/beret/sec/peacekeeper + name = "peacekeeper beret" + desc = "A robust beret with the peacekeeper insignia emblazoned on it. Uses reinforced fabric to offer sufficient protection." + greyscale_config = /datum/greyscale_config/beret_badge + greyscale_config_worn = /datum/greyscale_config/beret_badge/worn + icon_state = "beret_badge" + greyscale_colors = "#3F3C40#375989" + armor_type = /datum/armor/head_helmet + +/obj/item/clothing/head/beret/sec/peacekeeper/white + greyscale_config = /datum/greyscale_config/beret + greyscale_config_worn = /datum/greyscale_config/beret/worn + icon_state = "beret" + greyscale_colors = "#EAEAEA" + +/obj/item/clothing/head/hats/hos/beret/peacekeeper + name = "head of security's peacekeeper beret" + desc = "A special beret with the Head of Security's insignia emblazoned on it. A symbol of excellence, a badge of courage, a mark of distinction." + armor_type = /datum/armor/hats_hos + +/obj/item/clothing/head/beret/sec/navywarden/peacekeeper + name = "warden's peacekeeper beret" + desc = "A special beret with the Warden's insignia emblazoned on it. For wardens with class." + greyscale_config = /datum/greyscale_config/beret_badge_fancy + greyscale_config_worn = /datum/greyscale_config/beret_badge_fancy/worn + greyscale_colors = "#3f6e9e#FF0000#00AEEF" + icon_state = "beret_badge_fancy_twist" + armor_type = /datum/armor/hats_warden + +/obj/item/clothing/head/helmet/sec/sol + name = "sol police helmet" + desc = "A helmet to protect any officer from bludgeoning attacks, or the occasional bullet." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/head/helmet.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/head/helmet.dmi' + icon_state = "security_helmet_novisor" + base_icon_state = "security_helmet_novisor" + actions_types = NONE + armor_type = /datum/armor/head_helmet + +/obj/item/clothing/head/hats/warden/police/patrol + name = "police patrol cap" + desc = "A dark colored hat with a silver badge, for the officer interested in style." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/hats.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/head.dmi' + icon_state = "policeofficerpatrolcap" + armor_type = /datum/armor/head_helmet + unique_reskin = list( + "Blue" = "policeofficercap", + "Sillitoe" = "policetrafficcap", + "Black" = "policeofficerpatrolcap", + "Cadet" = "policecadetcap", + ) + +/obj/item/clothing/glasses/hud/security/sunglasses/peacekeeper + name = "peacekeeper hud glasses" + icon_state = "peacekeeperglasses" + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/eyes.dmi' + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/glasses.dmi' + +//PEACEKEEPER UNIFORM +/obj/item/clothing/under/rank/security/peacekeeper + name = "peacekeeper uniform" + desc = "A sleek peacekeeper uniform, made to a price." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/security.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/security.dmi' + icon_state = "peacekeeper" + can_adjust = TRUE + sensor_mode = SENSOR_COORDS + random_sensor = FALSE + +/obj/item/clothing/under/rank/security/warden/peacekeeper + name = "peacekeeper wardens suit" + desc = "A formal security suit for officers complete with Armadyne belt buckle." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/security.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/security.dmi' + icon_state = "peacekeeper_warden" + +/obj/item/clothing/under/rank/security/warden + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/security.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/security.dmi' + +/obj/item/clothing/under/rank/security/head_of_security/peacekeeper + name = "head of security's peacekeeper jumpsuit" + desc = "A security jumpsuit decorated for those few with the dedication to achieve the position of Head of Security." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/security.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/security.dmi' + icon_state = "peacekeeper_hos" + +//PEACEKEEPER ARMOR +/obj/item/clothing/suit/armor/vest/peacekeeper + name = "peacekeeper armor vest" + desc = "A standard issue peacekeeper armor vest, versatile, lightweight, and most importantly, cheap." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/suits/armor.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/suits/armor.dmi' + icon_state = "peacekeeper_white" + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + +/obj/item/clothing/suit/armor/vest/peacekeeper/black + icon_state = "peacekeeper_black" + +/obj/item/clothing/suit/armor/vest/peacekeeper/brit + name = "high vis armored vest" + desc = "Oi bruv, you got a loicence for that?" + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/suits.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/suit.dmi' + icon_state = "hazardbg" + worn_icon_state = "hazardbg" + +/obj/item/clothing/suit/armor/vest/peacekeeper/brit/Initialize(mapload) + . = ..() + AddComponent(/datum/component/toggle_icon, "zipper") + +/obj/item/clothing/suit/armor/vest/peacekeeper/spacecoat + name = "peacekeeper sleek coat" + desc = "An incredibly stylish and heavy black coat made of synthetic kangaroo leather, padded with durathread and lined with kevlar." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/suits.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/suit.dmi' + icon_state = "peacekeeper_spacecoat" + worn_icon_state = "peacekeeper_spacecoat" + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + +/obj/item/clothing/suit/armor/vest/peacekeeper/jacket + name = "peacekeeper jacket" + desc = "A slightly vintage canvas and aramid jacket; hi-vis checkers included. Armored and stylish? Implausible." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/suits/armor.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/suits/armor.dmi' + icon_state = "peacekeeper_jacket" + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + body_parts_covered = CHEST|GROIN|ARMS + cold_protection = CHEST|GROIN|ARMS + heat_protection = CHEST|GROIN|ARMS + +/obj/item/clothing/suit/armor/vest/peacekeeper/jacket/Initialize(mapload) + . = ..() + AddComponent(/datum/component/toggle_icon, "zipper") + +/obj/item/clothing/suit/armor/vest/peacekeeper/jacket/badge + name = "badged peacekeeper jacket" + desc = "A slightly vintage canvas and aramid jacket; hi-vis checkers and chevron badge included. Armored and stylish? Implausible." + icon_state = "peacekeeper_jacket_badge" + +//PEACEKEEPER GLOVES +/obj/item/clothing/gloves/combat/peacekeeper + name = "peacekeeper gloves" + desc = "These tactical gloves are fireproof." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/gloves.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/hands.dmi' + icon_state = "peacekeeper_gloves" + worn_icon_state = "peacekeeper" + siemens_coefficient = 0.5 + strip_delay = 20 + cold_protection = 0 + min_cold_protection_temperature = null + heat_protection = 0 + max_heat_protection_temperature = null + resistance_flags = FLAMMABLE + armor_type = /datum/armor/none + cut_type = null + +/obj/item/clothing/gloves/tackler/peacekeeper + name = "peacekeeper gripper gloves" + desc = "Special gloves that manipulate the blood vessels in the wearer's hands, granting them the ability to launch headfirst into walls." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/gloves.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/hands.dmi' + icon_state = "peacekeeper_gripper_gloves" + +/obj/item/clothing/gloves/krav_maga/sec/peacekeeper + name = "peacekeeper krav maga gloves" + desc = "These gloves can teach you to perform Krav Maga using nanochips." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/gloves.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/hands.dmi' + icon_state = "peacekeeper_gripper_gloves" + +//PEACEKEEPER WEBBING +/obj/item/storage/belt/security/webbing/peacekeeper + name = "peacekeeper webbing" + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/belts.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/belt.dmi' + icon_state = "peacekeeper_webbing" + worn_icon_state = "peacekeeper_webbing" + +//BOOTS +/obj/item/clothing/shoes/jackboots/peacekeeper + name = "peacekeeper boots" + desc = "High speed, low drag combat boots." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/shoes.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/feet.dmi' + icon_state = "peacekeeper" + +// DETECTIVE +/obj/item/clothing/under/rank/security/detective/cowboy + name = "blonde cowboy uniform" + desc = "A blue shirt and dark jeans, with a pair of spurred cowboy boots to boot." + icon = 'monkestation/code/modules/blueshift/icons/donator/obj/clothing/uniform.dmi' //Donator item-ish? See the /armorless one below it + worn_icon = 'monkestation/code/modules/blueshift/icons/donator/mob/clothing/uniform.dmi' + icon_state = "cowboy_uniform" + supports_variations_flags = NONE + can_adjust = FALSE + +/obj/item/clothing/under/rank/security/detective/cowboy/armorless //Donator variant, just uses the sprite. + armor_type = /datum/armor/none + +/obj/item/clothing/suit/cowboyvest + name = "blonde cowboy vest" + desc = "A white cream vest lined with... fur, of all things, for desert weather. There's a small deer head logo sewn into the vest." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/suits.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/suit.dmi' + icon_state = "cowboy_vest" + body_parts_covered = CHEST|ARMS + cold_protection = CHEST|ARMS + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + heat_protection = CHEST|ARMS + +/obj/item/clothing/suit/jacket/det_suit/cowboyvest + name = "blonde cowboy vest" + desc = "A white cream vest lined with... fur, of all things, for desert weather. There's a small deer head logo sewn into the vest." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/suits.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/suit.dmi' + icon_state = "cowboy_vest" + body_parts_covered = CHEST|ARMS + cold_protection = CHEST|ARMS + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + heat_protection = CHEST|ARMS + +/obj/item/clothing/under/rank/security/detective/runner + name = "runner sweater" + desc = "\"You look lonely.\"" + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/security.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/security.dmi' + icon_state = "runner" + supports_variations_flags = NONE + can_adjust = FALSE + +/// PRISONER +/obj/item/clothing/under/rank/prisoner/protcust + name = "protective custody prisoner jumpsuit" + desc = "A mustard coloured prison jumpsuit, often worn by former Security members, informants and former CentCom employees. Its suit sensors are stuck in the \"Fully On\" position." + greyscale_colors = "#FFB600" + +/obj/item/clothing/under/rank/prisoner/skirt/protcust + name = "protective custody prisoner jumpskirt" + desc = "A mustard coloured prison jumpskirt, often worn by former Security members, informants and former CentCom employees. Its suit sensors are stuck in the \"Fully On\" position." + greyscale_colors = "#FFB600" + supports_variations_flags = NONE + +/obj/item/clothing/under/rank/prisoner/lowsec + name = "low security prisoner jumpsuit" + desc = "A pale, almost creamy prison jumpsuit, this one denotes a low security prisoner, things like fraud and anything white collar. Its suit sensors are stuck in the \"Fully On\" position." + greyscale_colors = "#AB9278" + +/obj/item/clothing/under/rank/prisoner/skirt/lowsec + name = "low security prisoner jumpskirt" + desc = "A pale, almost creamy prison jumpskirt, this one denotes a low security prisoner, things like fraud and anything white collar. Its suit sensors are stuck in the \"Fully On\" position." + greyscale_colors = "#AB9278" + supports_variations_flags = NONE + +/obj/item/clothing/under/rank/prisoner/highsec + name = "high risk prisoner jumpsuit" + desc = "A bright red prison jumpsuit, depending on who sees it, either a badge of honour or a sign to avoid. Its suit sensors are stuck in the \"Fully On\" position." + greyscale_colors = "#FF3400" + +/obj/item/clothing/under/rank/prisoner/skirt/highsec + name = "high risk prisoner jumpskirt" + desc = "A bright red prison jumpskirt, depending on who sees it, either a badge of honour or a sign to avoid. Its suit sensors are stuck in the \"Fully On\" position." + greyscale_colors = "#FF3400" + supports_variations_flags = NONE + +/obj/item/clothing/under/rank/prisoner/supermax + name = "supermax prisoner jumpsuit" + desc = "A dark crimson red prison jumpsuit, for the worst of the worst, or the Clown. Its suit sensors are stuck in the \"Fully On\" position." + greyscale_colors = "#992300" + +/obj/item/clothing/under/rank/prisoner/skirt/supermax + name = "supermax prisoner jumpskirt" + desc = "A dark crimson red prison jumpskirt, for the worst of the worst, or the Clown. Its suit sensors are stuck in the \"Fully On\" position." + greyscale_colors = "#992300" + supports_variations_flags = NONE + +/obj/item/clothing/under/rank/prisoner/classic + name = "classic prisoner jumpsuit" + desc = "A black and white striped jumpsuit, like something out of a movie." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/costume.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/costume.dmi' + worn_icon_digitigrade = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/costume_digi.dmi' + icon_state = "prisonerclassic" + greyscale_colors = null + greyscale_config = null + greyscale_config_inhand_left = null + greyscale_config_inhand_right = null + greyscale_config_worn = null + supports_variations_flags = NONE + +/obj/item/clothing/under/rank/prisoner/syndicate + name = "syndicate prisoner jumpsuit" + desc = "A crimson red jumpsuit worn by syndicate captives. Its sensors have been shorted out." + greyscale_colors = "#992300" + has_sensor = FALSE + +/obj/item/clothing/under/rank/prisoner/skirt/syndicate + name = "syndicate prisoner jumpskirt" + desc = "A crimson red jumpskirt worn by syndicate captives. Its sensors have been shorted out." + greyscale_colors = "#992300" + has_sensor = FALSE + supports_variations_flags = NONE diff --git a/monkestation/code/modules/blueshift/clothing/nova_shoes.dm b/monkestation/code/modules/blueshift/clothing/nova_shoes.dm new file mode 100644 index 000000000000..da35ad660f6e --- /dev/null +++ b/monkestation/code/modules/blueshift/clothing/nova_shoes.dm @@ -0,0 +1,217 @@ +/obj/item/clothing/shoes/wraps + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/shoes.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/feet.dmi' + name = "gilded leg wraps" + desc = "Ankle coverings. These ones have a golden design." + icon_state = "gildedcuffs" + body_parts_covered = FALSE + +/obj/item/clothing/shoes/wraps/silver + name = "silver leg wraps" + desc = "Ankle coverings. Not made of real silver." + icon_state = "silvergildedcuffs" + +/obj/item/clothing/shoes/wraps/red + name = "red leg wraps" + desc = "Ankle coverings. Show off your style with these shiny red ones!" + icon_state = "redcuffs" + +/obj/item/clothing/shoes/wraps/blue + name = "blue leg wraps" + desc = "Ankle coverings. Hang ten, brother." + icon_state = "bluecuffs" + +/obj/item/clothing/shoes/cowboyboots + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/shoes.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/feet.dmi' + name = "cowboy boots" + desc = "A standard pair of brown cowboy boots." + icon_state = "cowboyboots" + +/obj/item/clothing/shoes/cowboyboots/black + name = "black cowboy boots" + desc = "A pair of black cowboy boots, pretty easy to scuff up." + icon_state = "cowboyboots_black" + +/obj/item/clothing/shoes/high_heels + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/shoes.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/feet.dmi' + name = "high heels" + desc = "A fancy pair of high heels. Won't compensate for your below average height that much." + icon_state = "heels" + greyscale_config = /datum/greyscale_config/heels + greyscale_config_worn = /datum/greyscale_config/heels/worn + greyscale_config_worn_digitigrade = /datum/greyscale_config/heels/worn/digi + greyscale_colors = "#FFFFFF" + flags_1 = IS_PLAYER_COLORABLE_1 + +/obj/item/clothing/shoes/high_heels/Initialize(mapload) + . = ..() + //AddComponent(/datum/component/squeak, list('monkestation/code/modules/blueshift/sounds/effects/heel1.ogg' = 1, 'monkestation/code/modules/blueshift/sounds/effects/heel2.ogg' = 1), 50) + +/obj/item/clothing/shoes/fancy_heels + name = "fancy heels" + desc = "A pair of fancy high heels that are much smaller on your feet." + icon_state = "fancyheels" + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/shoes.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/feet.dmi' + greyscale_colors = "#FFFFFF" + greyscale_config = /datum/greyscale_config/fancyheels + greyscale_config_worn = /datum/greyscale_config/fancyheels/worn + greyscale_config_worn_digitigrade = /datum/greyscale_config/fancyheels/worn/digi + flags_1 = IS_PLAYER_COLORABLE_1 + +/obj/item/clothing/shoes/fancy_heels/Initialize(mapload) + . = ..() + //AddComponent(/datum/component/squeak, list('monkestation/code/modules/blueshift/sounds/effects/heel1.ogg' = 1, 'monkestation/code/modules/blueshift/sounds/effects/heel2.ogg' = 1), 50) + +/obj/item/clothing/shoes/discoshoes + name = "green snakeskin shoes" + desc = "They may have lost some of their lustre over the years, but these green crocodile leather shoes fit you perfectly." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/shoes.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/feet.dmi' + icon_state = "lizardskin_shoes" + +/obj/item/clothing/shoes/kimshoes + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/shoes.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/feet.dmi' + name = "aerostatic boots" + desc = "A brown pair of boots, prim and proper, ready to set off and get a body out of a tree." + icon_state = "aerostatic_boots" + + +/obj/item/clothing/shoes/jungleboots + name = "jungle boots" + desc = "Take me to your paradise, I want to see the Jungle. A brown pair of boots." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/shoes.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/feet.dmi' + icon_state = "jungle" + inhand_icon_state = "jackboots" + strip_delay = 30 + equip_delay_other = 50 + resistance_flags = NONE + +/obj/item/clothing/shoes/jungleboots/Initialize(mapload) + . = ..() + + create_storage(storage_type = /datum/storage/pockets/shoes) + +/obj/item/clothing/shoes/jackboots/black + name = "dark jackboots" + desc = "Nanotrasen-issue Security combat boots for combat scenarios or combat situations. All combat, all the time. These are fully black." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/shoes.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/feet.dmi' + icon_state = "blackjack" + +/obj/item/clothing/shoes/wraps/cloth + name = "cloth foot wraps" + desc = "Boxer tape or bandages wrapped like a mummy, all left up to the choice of the wearer." + icon_state = "clothwrap" + greyscale_config = /datum/greyscale_config/clothwraps + greyscale_config_worn = /datum/greyscale_config/clothwraps/worn + greyscale_config_worn_digitigrade = /datum/greyscale_config/clothwraps/worn/digi + greyscale_colors = "#FFFFFF" + body_parts_covered = FALSE + flags_1 = IS_PLAYER_COLORABLE_1 + +/obj/item/clothing/shoes/wraps/colourable + name = "colourable foot wraps" + desc = "Ankle coverings. These ones have a customisable colour design." + icon_state = "legwrap" + greyscale_config = /datum/greyscale_config/legwraps + greyscale_config_worn = /datum/greyscale_config/legwraps/worn + greyscale_config_worn_digitigrade = /datum/greyscale_config/legwraps/worn/digi + greyscale_colors = "#FFFFFF" + body_parts_covered = FALSE + flags_1 = IS_PLAYER_COLORABLE_1 + +/obj/item/clothing/shoes/sports + name = "sport shoes" + desc = "Shoes for the sporty individual. The giants of Charlton play host to the titans of Ipswich - making them both seem normal sized." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/shoes.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/feet.dmi' + icon_state = "sportshoe" + +/obj/item/clothing/shoes/jackboots/knee + name = "knee boots" + desc = "Black leather boots that go up to the knee." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/shoes.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/feet.dmi' + icon_state = "kneeboots" + +/obj/item/clothing/shoes/jackboots/timbs + name = "fashionable boots" + desc = "Fresh from Luna, deadass good for rappers." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/shoes.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/feet.dmi' + icon_state = "timbs" + +/obj/item/clothing/shoes/winterboots/christmas + name = "red christmas boots" + desc = "A pair of fluffy red christmas boots!" + icon_state = "christmas_boots" + greyscale_colors = "#cc0f0f#c4c2c2" + greyscale_config = /datum/greyscale_config/boots/christmasboots + greyscale_config_worn = /datum/greyscale_config/boots/christmasboots/worn + greyscale_config_worn_digitigrade = /datum/greyscale_config/boots/christmasboots/worn/digi + flags_1 = IS_PLAYER_COLORABLE_1 + +/obj/item/clothing/shoes/winterboots/christmas/green + name = "green christmas boots" + desc = "A pair of fluffy green christmas boots!" + greyscale_colors = "#1a991a#c4c2c2" + +/obj/item/clothing/shoes/clown_shoes/pink + name = "pink clown shoes" + desc = "A particularly pink pair of punny shoes." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/shoes.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/feet.dmi' + icon_state = "pink_clown_shoes" + +//Modular overide to give jackboots laces +/obj/item/clothing/shoes/jackboots + can_be_tied = TRUE + +/obj/item/clothing/shoes/colorable_laceups + name = "laceup shoes" + desc = "These don't seem to come pre-polished, how saddening." + icon = 'monkestation/code/modules/blueshift/gags/icons/shoes/shoes.dmi' + worn_icon = 'monkestation/code/modules/blueshift/gags/icons/shoes/shoes.dmi' + icon_state = "laceups" + greyscale_colors = "#383631" + greyscale_config = /datum/greyscale_config/laceup + greyscale_config_worn = /datum/greyscale_config/laceup/worn + flags_1 = IS_PLAYER_COLORABLE_1 + +/obj/item/clothing/shoes/colorable_sandals + name = "sandals" + desc = "Rumor has it that wearing these with socks puts you on a no entry list in several sectors." + icon = 'monkestation/code/modules/blueshift/gags/icons/shoes/shoes.dmi' + worn_icon = 'monkestation/code/modules/blueshift/gags/icons/shoes/shoes.dmi' + icon_state = "sandals" + greyscale_colors = "#383631" + greyscale_config = /datum/greyscale_config/sandals + greyscale_config_worn = /datum/greyscale_config/sandals/worn + greyscale_config_worn_digitigrade = /datum/greyscale_config/sandals/worn/digi + flags_1 = IS_PLAYER_COLORABLE_1 + +/obj/item/clothing/shoes/jackboots/recolorable + icon = 'monkestation/code/modules/blueshift/gags/icons/shoes/shoes.dmi' + worn_icon = 'monkestation/code/modules/blueshift/gags/icons/shoes/shoes.dmi' + icon_state = "boots" + greyscale_colors = "#383631" + greyscale_config = /datum/greyscale_config/boots + greyscale_config_worn = /datum/greyscale_config/boots/worn + greyscale_config_worn_digitigrade = /datum/greyscale_config/boots/worn/digi + flags_1 = IS_PLAYER_COLORABLE_1 + +/obj/item/clothing/shoes/wraps/cloth + name = "cloth foot wraps" + desc = "Boxer tape or bandages wrapped like a mummy, all left up to the choice of the wearer." + icon_state = "clothwrap" + greyscale_config = /datum/greyscale_config/clothwraps + greyscale_config_worn = /datum/greyscale_config/clothwraps/worn + greyscale_config_worn_digitigrade = /datum/greyscale_config/clothwraps/worn/digi + greyscale_colors = "#FFFFFF" + body_parts_covered = FALSE + flags_1 = IS_PLAYER_COLORABLE_1 diff --git a/monkestation/code/modules/blueshift/clothing/nova_shorts.dm b/monkestation/code/modules/blueshift/clothing/nova_shorts.dm new file mode 100644 index 000000000000..f1fcf7330df0 --- /dev/null +++ b/monkestation/code/modules/blueshift/clothing/nova_shorts.dm @@ -0,0 +1,134 @@ +#define SHORTS_PANTS_SHIRTS_DIGIFILE 'monkestation/code/modules/blueshift/icons/mob/clothing/under/shorts_pants_shirts_digi.dmi' + +/obj/item/clothing/under/pants + worn_icon_digitigrade = SHORTS_PANTS_SHIRTS_DIGIFILE + +/obj/item/clothing/under/shorts + worn_icon_digitigrade = SHORTS_PANTS_SHIRTS_DIGIFILE + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION //That's right, TG, I have icons for ALL of these!! Mwahahaha!!!! + +/obj/item/clothing/under/pants/nova + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/shorts_pants_shirts.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/shorts_pants_shirts.dmi' + +/obj/item/clothing/under/shorts/nova + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/shorts_pants_shirts.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/shorts_pants_shirts.dmi' + //Need to reset all these so our custom stuff can choose independently to be greyscale or not. TG putting these on the basetype was kinda gross. + greyscale_config = null + greyscale_config_worn = null + greyscale_config_worn_digitigrade = null + greyscale_colors = null + flags_1 = NONE + +//TG's files separate this into Shorts.dmi and Pants.dmi. We wont have as many, so both go into here. + +/* +* PANTS +*/ + +/obj/item/clothing/under/pants/nova/jeans_ripped + name = "ripped jeans" + desc = "A nondescript pair of tough jeans, with several rips and tears. The staple pants choice of both rebels and the poor." + icon_state = "jeans_ripped" + greyscale_config = /datum/greyscale_config/jeans_ripped //These configs are defined in the GAGS module for now; the icons and item will remain in these files. + greyscale_config_worn = /datum/greyscale_config/jeans_ripped/worn + greyscale_config_worn_digitigrade = /datum/greyscale_config/jeans_ripped/worn/digi + greyscale_colors = "#787878#723E0E#4D7EAC" + flags_1 = IS_PLAYER_COLORABLE_1 + +/obj/item/clothing/under/pants/nova/yoga + name = "yoga pants" + desc = "Breathable and stretchy, perfect for exercising comfortably!" + icon_state = "yoga_pants" + greyscale_config = /datum/greyscale_config/yoga_pants //These configs are defined in the GAGS module for now; the icons and item will remain in these files. + greyscale_config_worn = /datum/greyscale_config/yoga_pants/worn + greyscale_config_worn_digitigrade = /datum/greyscale_config/yoga_pants/worn/digi + greyscale_colors = "#3d3d3d" //Having all the configs for a single color feels wrong. This is wrong. + flags_1 = IS_PLAYER_COLORABLE_1 + +/obj/item/clothing/under/pants/nova/chaps + name = "black chaps" + desc = "Yeehaw" + icon_state = "chaps" + + +/* +* SHORTS +*/ + +/obj/item/clothing/under/shorts/nova/shorts_ripped + name = "ripped shorts" + desc = "A nondescript pair of tough jean shorts, with the ends of the pantlegs frayed and torn. No one will ever know if this was done intentionally." + icon_state = "shorts_ripped" + greyscale_config = /datum/greyscale_config/shorts_ripped //These configs are defined in the GAGS module for now; the icons and item will remain in these files. + greyscale_config_worn = /datum/greyscale_config/shorts_ripped/worn + greyscale_config_worn_digitigrade = /datum/greyscale_config/shorts_ripped/worn/digi + greyscale_colors = "#787878#723E0E#202020" + flags_1 = IS_PLAYER_COLORABLE_1 + +/obj/item/clothing/under/shorts/nova/shortershorts + name = "shorter shorts" + desc = "Show those legs off with these even shorter shorts!" + icon_state = "shortershorts" + greyscale_config = /datum/greyscale_config/shortershorts + greyscale_config_worn = /datum/greyscale_config/shortershorts/worn + greyscale_config_worn_digitigrade = /datum/greyscale_config/shortershorts/worn/digi + greyscale_colors = "#787878#723E0E#202020" + flags_1 = IS_PLAYER_COLORABLE_1 + +/* +* MISC (Technically belongs in this file as a shorts/pants/shirt combo) +* Here's hoping TG gives these their own typepath, but for now this is gonna be under/pants/nova. No, it's not all pants, but it's better than a whole new type +*/ + +/obj/item/clothing/under/pants/nova/kilt + name = "recolorable kilt" + desc = "A kilt and buttondown, adorned with a tartan sash. It is NOT a skirt." + icon_state = "kilt" + greyscale_config = /datum/greyscale_config/kilt + greyscale_config_worn = /datum/greyscale_config/kilt/worn + greyscale_config_worn_digitigrade = /datum/greyscale_config/kilt/worn/digi + greyscale_colors = "#FFFFFF#365736#d9e6e5" + body_parts_covered = CHEST|GROIN|LEGS|ARMS + flags_1 = IS_PLAYER_COLORABLE_1 + female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION + +/obj/item/clothing/under/pants/nova/vicvest //there's no way I'm typing out a path called double_breasted 10 times over, too complex and everyone will be scared of it + name = "buttondown shirt with double-breasted vest" + desc = "A fancy buttondown shirt with slacks and a vest worn overtop, with a second row of buttons. Truly an outdated fashion statement." + icon_state = "buttondown_vicvest" + greyscale_config = /datum/greyscale_config/buttondown_vicvest + greyscale_config_worn = /datum/greyscale_config/buttondown_vicvest/worn + greyscale_config_worn_digitigrade = /datum/greyscale_config/buttondown_vicvest/worn/digi + greyscale_colors = "#8b2c2c#222227#222227#fbc056" + body_parts_covered = CHEST|GROIN|LEGS|ARMS + flags_1 = IS_PLAYER_COLORABLE_1 + +/* +* Shorts that were previously using nonmodular edits to add their greyscale data, pulled from code/modules/clothing/under/shorts.dm +*/ + +/obj/item/clothing/under/shorts + greyscale_config_worn_digitigrade = /datum/greyscale_config/shorts/worn/digi + +/obj/item/clothing/under/shorts/jeanshorts + greyscale_config_worn_digitigrade = /datum/greyscale_config/jeanshorts/worn/digi + +/* +* Pants that were previously using nonmodular edits to add their greyscale data, pulled from code/modules/clothing/under/pants.dm +*/ + +/obj/item/clothing/under/pants/slacks + greyscale_config_worn_digitigrade = /datum/greyscale_config/slacks/worn/digi + +/obj/item/clothing/under/pants/jeans + greyscale_config_worn_digitigrade = /datum/greyscale_config/jeans/worn/digi + +/obj/item/clothing/under/pants/camo + greyscale_config = /datum/greyscale_config/camo_pants + greyscale_config_worn = /datum/greyscale_config/camo_pants/worn + greyscale_config_worn_digitigrade = /datum/greyscale_config/camo_pants/worn/digi + greyscale_colors = "#69704C#6E5B4C#343741" + flags_1 = IS_PLAYER_COLORABLE_1 diff --git a/monkestation/code/modules/blueshift/clothing/nova_skirts.dm b/monkestation/code/modules/blueshift/clothing/nova_skirts.dm new file mode 100644 index 000000000000..d5c18348588b --- /dev/null +++ b/monkestation/code/modules/blueshift/clothing/nova_skirts.dm @@ -0,0 +1,198 @@ +#define SKIRTS_DRESSES_DIGIFILE 'monkestation/code/modules/blueshift/icons/mob/clothing/under/skirts_dresses_digi.dmi' + +/obj/item/clothing/under/dress + body_parts_covered = CHEST|GROIN //For reference + female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY //For reference - We dont want to cut a random hole in dresses + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON //For reference - keep in mind some dresses will need adjusted for digi thighs - hence the link below + worn_icon_digitigrade = SKIRTS_DRESSES_DIGIFILE + + //God bless the skirt being a subtype of the dress, only need one worn_digi_icon definition + +/obj/item/clothing/under/dress/nova + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/skirts_dresses.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/skirts_dresses.dmi' + +/obj/item/clothing/under/dress/skirt/nova //Just so they can stay under TG's skirts in case code needs subtypes of them (also SDMM dropdown looks nicer like this) + icon_state = "long_skirt" + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/skirts_dresses.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/skirts_dresses.dmi' + +//TG's icons only have a dress.dmi, but that means its not ABC-sorted to be beside shorts_pants_shirts.dmi. So its skirts_dresses for us. + +/* + * TG DIGI VERSION DRESSES + */ +/obj/item/clothing/under/dress/striped + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION + +/obj/item/clothing/under/dress/skirt/plaid + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION + +/* + * Skirts + */ + +/obj/item/clothing/under/dress/skirt/nova/swept + name = "swept skirt" + desc = "Formal skirt." + icon_state = "skirt_swept" + body_parts_covered = GROIN + greyscale_config = null + greyscale_config_worn = null + greyscale_colors = null + +/obj/item/clothing/under/dress/skirt/nova/striped_skirt + name = "red bra and striped skirt" + desc = "A red side-slit skirt with stripes! Comes with a matching two-tone bra." + icon_state = "striped_skirt" + body_parts_covered = CHEST|GROIN|LEGS + can_adjust = TRUE + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION + greyscale_config = null + greyscale_config_worn = null + greyscale_colors = null + +/obj/item/clothing/under/dress/skirt/nova/red_skirt + name = "red bra and skirt" + desc = "An eye-catching knee-length red skirt, with a golden-yellow trim. Comes with a matching two-tone bra." + icon_state = "red_skirt" + body_parts_covered = CHEST|GROIN|LEGS + can_adjust = TRUE + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION + greyscale_config = null + greyscale_config_worn = null + greyscale_colors = null + +/obj/item/clothing/under/dress/skirt/nova/black_skirt + name = "black bra and skirt" + desc = "A black side-slit skirt with a golden-yellow trim. Screams 'affluent goth'. Comes with a funky-looking matching bra." + icon_state = "black_skirt" + body_parts_covered = CHEST|GROIN|LEGS + can_adjust = TRUE + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION + greyscale_config = null + greyscale_config_worn = null + greyscale_colors = null + +/obj/item/clothing/under/dress/skirt/nova/turtleskirt_knit //Essentially the same as the Turtleneck Skirt but with a different texture + name = "cableknit skirt" + desc = "A casual turtleneck skirt, with a cableknit pattern." + icon_state = "turtleskirt_knit" + custom_price = PAYCHECK_CREW + greyscale_config = /datum/greyscale_config/turtleskirt_knit + greyscale_config_worn = /datum/greyscale_config/turtleskirt_knit/worn + greyscale_colors = "#cc0000#5f5f5f" + flags_1 = IS_PLAYER_COLORABLE_1 + can_adjust = TRUE + alt_covers_chest = TRUE + +/obj/item/clothing/under/dress/skirt/nova/jean + name = "jean skirt" + desc = "Technically, is there much difference between these and jorts? It's just one big hole instead of two. Does that make this a jirt?" + icon_state = "jean_skirt" + female_sprite_flags = NO_FEMALE_UNIFORM + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION + greyscale_config = /datum/greyscale_config/jean_skirt + greyscale_config_worn = /datum/greyscale_config/jean_skirt/worn + greyscale_config_worn_digitigrade = /datum/greyscale_config/jean_skirt/worn/digi + greyscale_colors = "#787878#723E0E#4D7EAC" + flags_1 = IS_PLAYER_COLORABLE_1 + +/obj/item/clothing/under/dress/skirt/nova/lone_skirt + name = "skirt" + desc = "Just a skirt! Hope you have a tanktop to wear with this." + icon_state = "lone_skirt" + body_parts_covered = GROIN + greyscale_config = /datum/greyscale_config/lone_skirt + greyscale_config_worn = /datum/greyscale_config/lone_skirt/worn + greyscale_colors = "#5f534a" + flags_1 = IS_PLAYER_COLORABLE_1 + +/obj/item/clothing/under/dress/skirt/nova/medium + name = "medium skirt" + desc = "An appealing medium-length skirt. Top not included." + icon_state = "medium_skirt" + body_parts_covered = GROIN + greyscale_config = /datum/greyscale_config/medium_skirt + greyscale_config_worn = /datum/greyscale_config/medium_skirt/worn + greyscale_colors = "#3a3c45" + female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY|FEMALE_UNIFORM_NO_BREASTS + flags_1 = IS_PLAYER_COLORABLE_1 + +/obj/item/clothing/under/dress/skirt/nova/long + name = "long skirt" + desc = "An appealing long skirt. At this point does it qualify as a dress?" + icon_state = "long_skirt" + body_parts_covered = GROIN|LEGS + greyscale_config = /datum/greyscale_config/long_skirt + greyscale_config_worn = /datum/greyscale_config/long_skirt/worn + greyscale_colors = "#3a3c45" + female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY|FEMALE_UNIFORM_NO_BREASTS + alternate_worn_layer = ABOVE_SHOES_LAYER + flags_1 = IS_PLAYER_COLORABLE_1 + +/* + * Dresses + */ + +/obj/item/clothing/under/dress/nova/short_dress + name = "short dress" + desc = "An extremely short dress with a lovely sash and flower - only for those with good self-confidence." + icon_state = "short_dress" + greyscale_config = /datum/greyscale_config/short_dress + greyscale_config_worn = /datum/greyscale_config/short_dress/worn + greyscale_colors = "#ff3636#363030" + flags_1 = IS_PLAYER_COLORABLE_1 + +/obj/item/clothing/under/dress/nova/pinktutu + name = "pink tutu" + desc = "A fluffy pink tutu." + icon_state = "pinktutu" + +/obj/item/clothing/under/dress/nova/flower + name = "flower dress" + desc = "Lovely dress. Colored like the autumn leaves." + icon_state = "flower_dress" + body_parts_covered = CHEST|GROIN|LEGS + +/obj/item/clothing/under/dress/nova/redformal + name = "formal red dress" + desc = "Not too wide flowing, but big enough to make an impression." + icon_state = "formal_red" + body_parts_covered = CHEST|GROIN|LEGS|ARMS + flags_inv = HIDESHOES + +/obj/item/clothing/under/dress/nova/countess + name = "countess dress" + desc = "A wide flowing dress fitting for a countess; may be prone to catching onto stuff as you pass." + icon_state = "countess" + body_parts_covered = CHEST|GROIN|LEGS|ARMS + flags_inv = HIDESHOES + +/obj/item/clothing/under/dress/nova/strapless + name = "strapless dress" + desc = "Typical formal wear with no straps, instead opting to be tied at the waist. Most likely will need constant adjustments." + icon_state = "dress_strapless" + body_parts_covered = CHEST|GROIN|LEGS + greyscale_config = /datum/greyscale_config/strapless_dress + greyscale_config_worn = /datum/greyscale_config/strapless_dress/worn + greyscale_colors = "#cc0000#5f5f5f" + flags_1 = IS_PLAYER_COLORABLE_1 + +/obj/item/clothing/under/dress/nova/pentagram + name = "pentagram strapped dress" + desc = "A soft dress with straps designed to rest as a pentragram. Isn't this against NT's whole \"Authorized Religion\" stuff?" + icon_state = "dress_pentagram" + body_parts_covered = CHEST|GROIN|LEGS + greyscale_config = /datum/greyscale_config/pentagram_dress + greyscale_config_worn = /datum/greyscale_config/pentagram_dress/worn + greyscale_colors = "#403c46" + flags_1 = IS_PLAYER_COLORABLE_1 + +/obj/item/clothing/under/dress/nova/jute + name = "Jacarta Dress" + desc = "A thick dress with a strong rough exterior layer; lined with a soft breathable thin layer. It's loose-fitting, and has a tag inside that says 'Made in Jacarta'." + icon_state = "jute" + body_parts_covered = CHEST|GROIN|LEGS + can_adjust = TRUE + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION diff --git a/monkestation/code/modules/blueshift/clothing/nova_suit.dm b/monkestation/code/modules/blueshift/clothing/nova_suit.dm new file mode 100644 index 000000000000..ea247bd41491 --- /dev/null +++ b/monkestation/code/modules/blueshift/clothing/nova_suit.dm @@ -0,0 +1,140 @@ +/* +* The hoodies and attached sprites [WERE ORIGINALLY FROM] https://github.com/Citadel-Station-13/Citadel-Station-13-RP before GAGSification +* Respective datums can be found in modular_nova/modules/customization/datums/greyscale/hoodies +* These are now a subtype of toggle/jacket too, so it properly toggles and isnt the unused 'storage' type +*/ + +/obj/item/clothing/suit/toggle/jacket/hoodie + name = "hoodie" + desc = "A warm hoodie. you cant help but mess with the zipper..." + icon_state = "hoodie" + greyscale_config = /datum/greyscale_config/hoodie + greyscale_config_worn = /datum/greyscale_config/hoodie/worn + greyscale_colors = "#FFFFFF" + flags_1 = IS_PLAYER_COLORABLE_1 + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + min_cold_protection_temperature = T0C - 20 //Not as good as the base jacket + +/obj/item/clothing/suit/toggle/jacket/hoodie/trim + icon_state = "hoodie_trim" + greyscale_config = /datum/greyscale_config/hoodie_trim + greyscale_config_worn = /datum/greyscale_config/hoodie_trim/worn + greyscale_colors = "#ffffff#313131" + flags_1 = IS_PLAYER_COLORABLE_1 + +/obj/item/clothing/suit/toggle/jacket/hoodie/trim/alt + icon_state = "hoodie_trim_alt" + greyscale_colors = "#ffffff#313131" + flags_1 = IS_PLAYER_COLORABLE_1 + +/* +* PRESET GREYSCALES & BRANDED +*/ + +/obj/item/clothing/suit/toggle/jacket/hoodie/grey + greyscale_colors = "#a8a8a8" + +/obj/item/clothing/suit/toggle/jacket/hoodie/black + greyscale_colors = "#313131" + +/obj/item/clothing/suit/toggle/jacket/hoodie/red + greyscale_colors = "#D13838" + +/obj/item/clothing/suit/toggle/jacket/hoodie/blue + greyscale_colors = "#034A8D" + +/obj/item/clothing/suit/toggle/jacket/hoodie/green + greyscale_colors = "#1DA103" + +/obj/item/clothing/suit/toggle/jacket/hoodie/orange + greyscale_colors = "#F79305" + +/obj/item/clothing/suit/toggle/jacket/hoodie/yellow + greyscale_colors = "#F0D655" + +/obj/item/clothing/suit/toggle/jacket/hoodie/branded + name = "NT hoodie" + desc = "A warm, blue sweatshirt. It proudly bears the silver Nanotrasen insignia lettering on the back. The edges are trimmed with silver." + icon_state = "hoodie_NT" + greyscale_config = /datum/greyscale_config/hoodie_branded + greyscale_config_worn = /datum/greyscale_config/hoodie_branded/worn + greyscale_colors = "#02519A#ffffff" //white to prevent changing the actual color of the icon. I've no clue why it REQUIRES two inputs despite being set otherwise. + flags_1 = NONE + +/obj/item/clothing/suit/toggle/jacket/hoodie/branded/nrti + name = "New Reykjavik Technical Institute hoodie" + desc = "A warm, gray sweatshirt. It bears the letters ‘NRT’ on the back, in reference to Sif's premiere technical institute." + icon_state = "hoodie_NRTI" + greyscale_colors = "#747474#a83232" + +/obj/item/clothing/suit/toggle/jacket/hoodie/branded/mu + name = "mojave university hoodie" + desc = "A warm, gray sweatshirt. It bears the letters ‘MU’ on the front, a lettering to the well-known public college, Mojave University." + icon_state = "hoodie_MU" + greyscale_colors = "#747474#ffffff" + + +/obj/item/clothing/suit/toggle/jacket/hoodie/branded/cti + name = "CTI hoodie" + desc = "A warm, black sweatshirt. It bears the letters ‘CTI’ on the back, a lettering to the prestigious university in Tau Ceti, Ceti Technical Institute. There is a blue supernova embroidered on the front, the emblem of CTI." + icon_state = "hoodie_CTI" + greyscale_colors = "#313131#ffffff" + +/obj/item/clothing/suit/toggle/jacket/hoodie/branded/smw + name = "Space Mountain Wind hoodie" + desc = "A warm, black sweatshirt. It has the logo for the popular softdrink Space Mountain Wind on both the front and the back." + icon_state = "hoodie_SMW" + greyscale_colors = "#313131#ffffff" + + +/obj/item/clothing/under/suit/fancy + name = "fancy suit" + desc = "A fancy suit and jacket with an elegant shirt." + icon_state = "fancy_suit" + greyscale_config = /datum/greyscale_config/fancy_suit + greyscale_config_worn = /datum/greyscale_config/fancy_suit/worn + greyscale_colors = "#FFFFFA#0075C4#7C787D" + flags_1 = IS_PLAYER_COLORABLE_1 + supports_variations_flags = NONE + + +// Modular Overwrites +/obj/item/clothing/under/suit + female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY + +/obj/item/clothing/under/suit/white/skirt + female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY + +/obj/item/clothing/under/suit/black/skirt + female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY + +/obj/item/clothing/under/suit/black_really/skirt + female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY + +//Heister kit +/obj/item/clothing/suit/jacket/det_suit/noir/heister + name = "armored suit jacket" + desc = "A professional suit jacket, it feels much heavier than a regular jacket. A label on the inside reads \"Nanite-based Self-repairing Kevlar weave\"." + armor_type = /datum/armor/heister + /// How many hits we can take before the armor breaks, PAYDAY style + var/armor_stacks = 2 + +/datum/armor/heister + melee = 35 + bullet = 30 + laser = 30 + energy = 40 + bomb = 25 + fire = 50 + acid = 50 + wound = 10 + +/obj/item/clothing/suit/jacket/det_suit/noir/heister/Initialize(mapload) + . = ..() + AddComponent(/datum/component/shielded/suit, max_charges = armor_stacks, recharge_start_delay = 8 SECONDS, charge_increment_delay = 1 SECONDS, \ + charge_recovery = armor_stacks, lose_multiple_charges = FALSE, starting_charges = armor_stacks, shield_icon_file = null, shield_icon = null) + +/obj/item/clothing/gloves/latex/nitrile/heister + desc = "Pricy sterile gloves that are thicker than latex. Perfect for hiding fingerprints." + clothing_traits = null + siemens_coefficient = 0 diff --git a/monkestation/code/modules/blueshift/clothing/nova_syndicate.dm b/monkestation/code/modules/blueshift/clothing/nova_syndicate.dm new file mode 100644 index 000000000000..9bb1a92ed1c6 --- /dev/null +++ b/monkestation/code/modules/blueshift/clothing/nova_syndicate.dm @@ -0,0 +1,559 @@ +#define RESKIN_CHARCOAL "Charcoal" +#define RESKIN_NT "NT Blue" +#define RESKIN_SYNDIE "Syndicate Red" + +/obj/item/clothing/under/syndicate + worn_icon_digitigrade = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/syndicate_digi.dmi' + +/obj/item/clothing/under/syndicate/nova + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/syndicate.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/syndicate.dmi' + //These are pre-set for ease and reference, as syndie under items SHOULDNT have sensors and should have similar stats; also its better to start with adjust = false + has_sensor = NO_SENSORS + can_adjust = FALSE + +//Related files: +// modular_nova\modules\Syndie_edits\code\syndie_edits.dm (this has the Overalls and non-Uniforms) +// modular_nova\modules\novaya_ert\code\uniform.dm (NRI uniform(s)) + +/* +* TACTICOOL +*/ + +//This is an overwrite, not a fully new item, but still fits best here. + +/obj/item/clothing/under/syndicate/tacticool //Overwrites the 'fake' one. Zero armor, sensors, and default blue. More Balanced to make station-available. + name = "tacticool turtleneck" + desc = "A snug turtleneck, in fabulous Nanotrasen-blue. Just looking at it makes you want to buy a NT-certifed coffee, go into the office, and -work-." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/syndicate.dmi' //Since its an overwrite it needs new icon linking. Woe. + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/syndicate.dmi' + icon_state = "tactifool_blue" + inhand_icon_state = "b_suit" + can_adjust = TRUE + has_sensor = HAS_SENSORS + armor_type = /datum/armor/clothing_under + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION + unique_reskin = list( + RESKIN_NT = "tactifool_blue", + RESKIN_CHARCOAL = "tactifool" + ) + resistance_flags = FLAMMABLE + +/obj/item/clothing/under/syndicate/tacticool/reskin_obj(mob/M) + ..() + if(current_skin && current_skin == RESKIN_CHARCOAL) + desc = "Just looking at it makes you want to buy an SKS, go into the woods, and -operate-." //Default decription of the normal tacticool + inhand_icon_state = "bl_suit" //May as well, while we're updating it + +/obj/item/clothing/under/syndicate/tacticool/skirt //Overwrites the 'fake' one. Zero armor, sensors, and default blue. More Balanced to make station-available. + name = "tacticool skirtleneck" + desc = "A snug skirtleneck, in fabulous Nanotrasen-blue. Just looking at it makes you want to buy a NT-certifed coffee, go into the office, and -work-." + icon_state = "tactifool_blue_skirt" + + body_parts_covered = CHEST|GROIN|ARMS + female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY + dying_key = DYE_REGISTRY_JUMPSKIRT + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + +/obj/item/clothing/under/syndicate/bloodred/sleepytime/sensors //Halloween-only + has_sensor = HAS_SENSORS + armor_type = /datum/armor/clothing_under + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION + +/obj/item/clothing/under/syndicate/nova/baseball + name = "syndicate baseball tee" + desc = "Aaand the Syndicate Snakes are up to bat, ready for one of their signature nuclear home-runs! Lets show these corpos a good time." //NT pitches their plasma/bluespace(something) + icon_state = "syndicate_baseball" + +/obj/item/clothing/under/syndicate/unarmoured + name = "suspicious tactical turtleneck" + desc = "A non-descript and slightly suspicious looking turtleneck with digital camouflage cargo pants." + icon_state = "syndicate" + inhand_icon_state = "bl_suit" + has_sensor = HAS_SENSORS + armor_type = /datum/armor/clothing_under + +/obj/item/clothing/under/syndicate/unarmoured/skirt + name = "suspicious tactical skirtleneck" + desc = "A non-descript and slightly suspicious looking skirtleneck." + icon_state = "syndicate_skirt" + + female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY + dying_key = DYE_REGISTRY_JUMPSKIRT + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + +/obj/item/clothing/under/syndicate/unarmoured/examine_more(mob/user) + . = ..() + . += span_notice("The armor has been removed from the fabric.") + +/obj/item/clothing/under/syndicate/nova/tactical/unarmoured + name = "suspicious tactical turtleneck" + desc = "A snug syndicate-red turtleneck with charcoal-black cargo pants." + icon_state = "syndicate_red" + inhand_icon_state = "r_suit" + has_sensor = HAS_SENSORS + armor_type = /datum/armor/clothing_under + unique_reskin = null + +/obj/item/clothing/under/syndicate/nova/tactical/unarmoured/skirt + name = "suspicious tactical skirtleneck" + desc = "A pair of spiffy overalls with a turtleneck underneath, this one is a skirt instead, breezy." + icon_state = "syndicate_red_skirt" + + female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY + dying_key = DYE_REGISTRY_JUMPSKIRT + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + +/obj/item/clothing/under/syndicate/nova/tactical/unarmoured/examine_more(mob/user) + . = ..() + . += span_notice("The armor has been removed from the fabric.") + +/obj/item/clothing/under/syndicate/nova/overalls/unarmoured + name = "suspicious utility overalls turtleneck" + desc = "A pair of spiffy overalls with a turtleneck underneath, useful for both engineering and botanical work." + icon_state = "syndicate_overalls" + armor_type = /datum/armor/clothing_under + has_sensor = HAS_SENSORS + can_adjust = TRUE + +/obj/item/clothing/under/syndicate/nova/overalls/unarmoured/skirt + name = "suspicious utility overalls skirtleneck" + desc = "A pair of spiffy overalls with a turtleneck underneath, this one is a skirt instead, breezy." + icon_state = "syndicate_overallskirt" + + female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY + dying_key = DYE_REGISTRY_JUMPSKIRT + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + +/obj/item/clothing/under/syndicate/nova/overalls/unarmoured/examine_more(mob/user) + . = ..() + . += span_notice("The armor has been removed from the fabric.") + +/obj/item/clothing/mask/gas/sechailer/half_mask + name = "tacticool neck gaiter" + desc = "A black techwear mask. Its low-profile design contrasts with the edge. Has a small respirator to be used with internals." + actions_types = list(/datum/action/item_action/adjust) + //alternate_worn_layer = BODY_FRONT_UNDER_CLOTHES + icon_state = "half_mask" + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/masks.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/mask.dmi' +/* +* TACTICAL (Real) +*/ +//The red alts, for BLATANTLY syndicate stuff (Like DS2) +// (Multiple non-syndicate things use the base tactical turtleneck, they cant have it red nor reskinnable. OUR version, however, can be.) +/obj/item/clothing/under/syndicate/nova/tactical + name = "tactical turtleneck" + desc = "A snug syndicate-red turtleneck with charcoal-black cargo pants. Good luck arguing allegiance with this on." + icon_state = "syndicate_red" + inhand_icon_state = "r_suit" + can_adjust = TRUE + alt_covers_chest = TRUE + armor_type = /datum/armor/clothing_under/syndicate + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION + unique_reskin = list( + RESKIN_SYNDIE = "syndicate_red", + RESKIN_CHARCOAL = "syndicate" + ) + +/datum/armor/clothing_under/syndicate/coldres + melee = 20 + bullet = 10 + energy = 5 + fire = 25 + acid = 25 + +/datum/armor/clothing_under/syndicate + melee = 10 + fire = 50 + acid = 40 + wound = 10 + +/obj/item/clothing/under/syndicate/nova/tactical/reskin_obj(mob/M) + ..() + if(current_skin && current_skin == RESKIN_CHARCOAL) + desc = "A non-descript and slightly suspicious looking turtleneck with digital camouflage cargo pants." //(Digital camo? Brown? What?) + inhand_icon_state = "bl_suit" + +/obj/item/clothing/under/syndicate/nova/tactical/skirt + name = "tactical skirtleneck" + desc = "A snug syndicate-red skirtleneck with a charcoal-black skirt. Good luck arguing allegiance with this on." + icon_state = "syndicate_red_skirt" + inhand_icon_state = "r_suit" + female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY + dying_key = DYE_REGISTRY_JUMPSKIRT + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + unique_reskin = list( + RESKIN_SYNDIE = "syndicate_red_skirt", + RESKIN_CHARCOAL = "syndicate_skirt" + ) + +/obj/item/clothing/under/syndicate/nova/tactical/skirt/reskin_obj(mob/M) + ..() + if(current_skin && current_skin == RESKIN_CHARCOAL) + desc = "A non-descript and slightly suspicious looking skirtleneck." + inhand_icon_state = "bl_suit" + + +/obj/item/clothing/under/syndicate/skirt/coldres + name = "insulated tactical turtleneck skirt" + desc = "A non-descript and slightly suspicious looking skirtleneck. The interior has been padded with special insulation for both warmth and protection." + armor_type = /datum/armor/clothing_under/syndicate/coldres + cold_protection = CHEST|GROIN|ARMS|LEGS + min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT + + +/* +* ENCLAVE +*/ +/obj/item/clothing/under/syndicate/nova/enclave + name = "neo-American sergeant uniform" + desc = "Throughout the stars, rumors of mad scientists and angry drill sergeants run rampant; of creatures in armor black as night, being led by men or women wearing this uniform. They share one thing: a deep, natonalistic zeal of the dream of America." + icon_state = "enclave" + can_adjust = TRUE + armor_type = /datum/armor/clothing_under + +/obj/item/clothing/under/syndicate/nova/enclave/officer + name = "neo-American officer uniform" + icon_state = "enclaveo" + +/obj/item/clothing/under/syndicate/nova/enclave/real + armor_type = /datum/armor/clothing_under/syndicate + +/obj/item/clothing/under/syndicate/nova/enclave/real/officer + name = "neo-American officer uniform" + icon_state = "enclaveo" + +#undef RESKIN_CHARCOAL +#undef RESKIN_NT +#undef RESKIN_SYNDIE + +//DS-2/Syndicate clothing. + +/obj/item/clothing/suit/armor/vest/capcarapace/syndicate + icon = 'monkestation/code/modules/blueshift/icons/obj.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/worn.dmi' + icon_state = "syndievest" + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + + +/obj/item/clothing/suit/armor/vest/capcarapace/syndicate/Initialize(mapload) + . = ..() + AddComponent(/datum/component/toggle_icon) + +/obj/item/clothing/suit/armor/vest/capcarapace/syndicate/winter + name = "syndicate captain's winter vest" + desc = "A sinister yet comfortable looking vest of advanced armor worn over a black and red fireproof jacket. The fur is said to be from wolves on the icemoon." + icon = 'monkestation/code/modules/blueshift/icons/obj.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/worn.dmi' + icon_state = "syndievest_winter" + body_parts_covered = CHEST|GROIN + cold_protection = CHEST|GROIN|ARMS + min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT + resistance_flags = FIRE_PROOF + +/obj/item/clothing/suit/armor/vest/capcarapace/syndicate/winter/Initialize(mapload) + . = ..() + AddComponent(/datum/component/toggle_icon) + +/obj/item/clothing/head/hats/warden/syndicate + name = "master at arms' police hat" + desc = "A fashionable police cap emblazoned with a golden badge, issued to the Master at Arms. Protects the head from impacts." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/hats.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/head.dmi' + icon_state = "policehelm_syndie" + dog_fashion = null + +/obj/item/clothing/head/helmet/swat/ds + name = "SWAT helmet" + desc = "A robust and spaceworthy helmet with a small cross on it along with 'IP' written across the earpad." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/head/helmet.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/head/helmet.dmi' + icon_state = "swat_ds" + supports_variations_flags = CLOTHING_SNOUTED_VARIATION + +/obj/item/clothing/head/beret/sec/syndicate + name = "brig officer's beret" + desc = "A stylish and protective beret, produced and manufactured by Interdyne Pharmaceuticals with help from the Gorlex Marauders." + greyscale_config = /datum/greyscale_config/beret_badge + greyscale_config_worn = /datum/greyscale_config/beret_badge/worn + icon_state = "beret_badge" + greyscale_colors = "#3F3C40#DB2929" + +/obj/item/clothing/mask/gas/syndicate/ds + name = "balaclava" + desc = "A fancy balaclava, while it doesn't muffle your voice, it's fireproof and has a miniature rebreather for internals. Comfy to boot!" + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/masks.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/mask.dmi' + icon_state = "balaclava_ds" + flags_inv = HIDEFACE | HIDEEARS | HIDEFACIALHAIR + //alternate_worn_layer = LOW_FACEMASK_LAYER //This lets it layer below glasses and headsets; yes, that's below hair, but it already has HIDEHAIR + +/obj/item/clothing/mask/gas/sechailer/syndicate + name = "neck gaiter" + desc = "For the agent wanting to keep a low profile whilst concealing their identity. Has a small respirator to be used with internals." + actions_types = list(/datum/action/item_action/adjust) + //alternate_worn_layer = BODY_FRONT_UNDER_CLOTHES + icon_state = "half_mask" + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/masks.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/mask.dmi' + +/obj/item/clothing/shoes/combat //TO-DO: Move these overrides out of a syndicate file! + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/shoes.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/feet.dmi' + icon_state = "combat" + +/obj/item/clothing/gloves/combat + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/gloves.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/hands.dmi' + icon_state = "combat" + +/obj/item/clothing/gloves/combat/wizard + icon = 'icons/obj/clothing/gloves.dmi' + worn_icon = null + +/obj/item/clothing/gloves/tackler/combat/insulated + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/gloves.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/hands.dmi' + icon_state = "combat" + +/obj/item/clothing/gloves/krav_maga/combatglovesplus + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/gloves.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/hands.dmi' + icon_state = "combat" + +/obj/item/clothing/gloves/krav_maga/combatglovesplus/maa + name = "master at arms' combat gloves" + desc = "A set of combat gloves plus emblazoned with red knuckles, showing dedication to the trade while also hiding any blood left after use." + icon_state = "maagloves" + +/obj/item/storage/belt/security/webbing/ds + name = "brig officer webbing" + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/belts.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/belt.dmi' + icon_state = "webbingds" + worn_icon_state = "webbingds" + uses_advanced_reskins = FALSE + +/obj/item/clothing/suit/armor/bulletproof/old + desc = "A Type III heavy bulletproof vest that excels in protecting the wearer against traditional projectile weaponry and explosives to a minor extent." + icon = 'icons/obj/clothing/suits/armor.dmi' + worn_icon = 'icons/mob/clothing/suits/armor.dmi' + icon_state = "bulletproof" + body_parts_covered = CHEST //TG's version has no groin/arm padding + +/obj/item/clothing/under/syndicate/nova/overalls + name = "utility overalls turtleneck" + desc = "A pair of spiffy overalls with a turtleneck underneath, useful for both engineering and botanical work." + icon_state = "syndicate_overalls" + can_adjust = TRUE + +/obj/item/clothing/under/syndicate/nova/overalls/skirt + name = "utility overalls skirtleneck" + desc = "A pair of spiffy overalls with a turtleneck underneath, this one is a skirt instead, breezy." + icon_state = "syndicate_overallskirt" + female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY + dying_key = DYE_REGISTRY_JUMPSKIRT + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + +/obj/item/clothing/head/soft/sec/syndicate + name = "engine tech utility cover" + desc = "A utility cover for an engine technician, there's a tag that reads 'IP-DS-2'." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/hats.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/head.dmi' + icon_state = "dssoft" + soft_type = "ds" + +//Maid Outfit +/obj/item/clothing/head/costume/maidheadband/syndicate + name = "tactical maid headband" + desc = "Tacticute." + icon_state = "syndimaid_headband" + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/head/costume.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/head/costume.dmi' + +/obj/item/clothing/gloves/combat/maid + name = "combat maid sleeves" + desc = "These 'tactical' gloves and sleeves are fireproof and electrically insulated. Warm to boot." + icon_state = "syndimaid_arms" + +/obj/item/clothing/under/syndicate/nova/maid + name = "tactical maid outfit" + desc = "A 'tactical' skirtleneck fashioned to the likeness of a maid outfit. Why the Syndicate has these, you'll never know." + icon_state = "syndimaid" + //armor_type = /datum/armor/clothing_under/none + female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY + dying_key = DYE_REGISTRY_JUMPSKIRT + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + +/obj/item/clothing/under/syndicate/nova/maid/Initialize(mapload) + . = ..() + var/obj/item/clothing/accessory/maidcorset/syndicate/A = new (src) + attach_accessory(A) + +/obj/item/clothing/accessory/maidcorset/syndicate + name = "syndicate maid apron" + desc = "Practical? No. Tactical? Also no. Cute? Most definitely yes." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/accessories.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/accessories.dmi' + icon_state = "syndimaid_corset" + minimize_when_attached = FALSE + attachment_slot = null + +//Wintercoat & Hood +/obj/item/clothing/suit/hooded/wintercoat/nova/syndicate + name = "syndicate winter coat" + desc = "A sinister black coat with red accents and a fancy mantle, it feels like it can take a hit. The zipper tab looks like a triple headed snake in the shape of an S, spooky." + icon_state = "coatsyndie" + inhand_icon_state = "coatwinter" + armor_type = /datum/armor/wintercoat_syndicate + hoodtype = /obj/item/clothing/head/hooded/winterhood/nova/syndicate + +/datum/armor/wintercoat_syndicate + melee = 25 + bullet = 15 + laser = 30 + energy = 40 + bomb = 25 + acid = 45 + +/obj/item/clothing/suit/hooded/wintercoat/nova/syndicate/Initialize(mapload) + . = ..() + allowed += GLOB.security_wintercoat_allowed + +/obj/item/clothing/head/hooded/winterhood/nova/syndicate + desc = "A sinister black hood with armor padding." + icon_state = "hood_syndie" + armor_type = /datum/armor/winterhood_syndicate + +/datum/armor/winterhood_syndicate + melee = 25 + bullet = 15 + laser = 30 + energy = 40 + bomb = 25 + acid = 45 + +//Interdyne Clothing +/obj/item/clothing/under/syndicate/nova/interdyne + name = "interdyne turtleneck" + desc = "A sleek white turtleneck with a hint of interdyne-green, appropriately paired with some charcoal-black cargo pants." + has_sensor = HAS_SENSORS + armor_type = /datum/armor/clothing_under/syndicate + icon_state = "ip_turtleneck" + can_adjust = TRUE + alt_covers_chest = TRUE + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION + +/obj/item/clothing/under/syndicate/nova/interdyne/miner + name = "interdyne jumpsuit" + desc = "A black and green Interdyne Pharmaceutics jumpsuit with reinforced fibers." + //armor_type = /datum/armor/clothing_under/cargo_miner + icon_state = "ip_miner" + can_adjust = TRUE + alt_covers_chest = FALSE + +/obj/item/clothing/under/syndicate/nova/interdyne/deckofficer + name = "deck officer's jumpsuit" + desc = "A black and green Interdyne Pharmaceutics uniform complete with a golden belt buckle." + armor_type = /datum/armor/clothing_under/syndicate + icon_state = "ip_deckofficer" + can_adjust = TRUE + alt_covers_chest = FALSE + +/obj/item/clothing/head/beret/medical/nova/interdyne + name = "interdyne beret" + desc = "A white and green beret denoting one's allegiance to Interdyne Pharmaceutics." + greyscale_colors = "#FFFFFF#198019" + +/obj/item/clothing/head/hats/syndicate/interdyne_deckofficer_black + name = "black deck officer's cap" + desc = "A black officer's cap that demands discipline from the one who wears it." + icon_state = "ip_officercap_black" + armor_type = /datum/armor/sec_navywarden + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/hats.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/head.dmi' + +/obj/item/clothing/head/hats/syndicate/interdyne_deckofficer_white + name = "white deck officer's cap" + desc = "A white officer's cap that demands discipline from the one who wears it." + icon_state = "ip_officercap_white" + armor_type = /datum/armor/sec_navywarden + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/hats.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/head.dmi' + +/obj/item/clothing/head/bio_hood/interdyne + name = "interdyne biosuit helmet" + desc = "An Interdyne Pharmaceutics biosuit helmet designed to keep the wearer safe from biohazardous materials." + icon_state = "ip_biosuit_head" + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/hats.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/head.dmi' + +/obj/item/clothing/suit/bio_suit/interdyne + name = "interdyne biosuit" + desc = "An Interdyne Pharmaceutics biosuit designed to keep the wearer safe from biohazardous materials. It's lighter than a typical biosuit." + icon_state = "ip_biosuit" + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/suits.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/suit.dmi' + slowdown = 0.3 + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + +/obj/item/clothing/suit/armor/hos/deckofficer + name = "deck officer's cloak" + desc = "An armored trench-cloak with green accents worn by high-ranking interdyne staff." + icon_state = "ip_officercloak" + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/suits/armor.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/suits/armor.dmi' + current_skin = "ip_officercloak" //prevents reskinning + +/obj/item/clothing/suit/toggle/labcoat/nova + name = "MONKE LABCOAT SUIT DEBUG" + desc = "REPORT THIS IF FOUND" + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/suits/labcoat.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/suits/labcoat.dmi' + icon_state = null //Keeps this from showing up under the chameleon hat + + +/obj/item/clothing/suit/toggle/labcoat/nova/interdyne_labcoat/black + name = "interdyne black labcoat" + desc = "A black labcoat accented with interdyne-green colors." + icon_state = "ip_labcoatblack" + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + +/obj/item/clothing/suit/toggle/labcoat/nova/interdyne_labcoat/white + name = "interdyne white labcoat" + desc = "A white labcoat accented with interdyne-green colors." + icon_state = "ip_labcoatwhite" + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + + +/obj/item/clothing/suit/syndicate/interdyne_jacket + name = "interdyne jacket" + desc = "A green high-visibility jacket bearing interdyne colors." + icon_state = "ip_armorlabcoat" + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/suits/labcoat.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/suits/labcoat.dmi' + armor_type = /datum/armor/wintercoat_syndicate + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + +/obj/item/clothing/suit/toggle/labcoat/nova/rd/deckofficer + name = "deck officer's labcoat" + desc = "A white labcoat with interdyne-green accents and a particularly fancy collar." + icon_state = "ip_officerlabcoat" + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + +/obj/item/clothing/suit/hooded/wintercoat/medical/viro/interdyne + name = "interdyne winter coat" + desc = "A fuzzy winter coat bearing interdyne colors, complete with armored fibers." + armor_type = /datum/armor/wintercoat_syndicate +//Interdyne Clothing End + +/obj/item/clothing/glasses/hud/health/night/cultblind_unrestricted + desc = "Where we are going, we won't need eyes to see." + name = "zealot's blindfold" + icon_state = "blindfold" + inhand_icon_state = "blindfold" + flash_protect = FLASH_PROTECTION_WELDER + +/obj/item/clothing/glasses/hud/health/night/cultblind_unrestricted/narsie + desc = "May Nar'Sie guide you through the darkness and shield you from the light." diff --git a/monkestation/code/modules/blueshift/clothing/nova_under.dm b/monkestation/code/modules/blueshift/clothing/nova_under.dm new file mode 100644 index 000000000000..b7b623334a8f --- /dev/null +++ b/monkestation/code/modules/blueshift/clothing/nova_under.dm @@ -0,0 +1,75 @@ +/obj/item/clothing/under/misc/bluetracksuit + name = "blue tracksuit" + desc = "Found on a dead homeless man squatting in an alleyway, the classic design has been mass produced to bring terror to the galaxy." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/uniforms.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/uniform.dmi' + icon_state = "tracksuit_blue" + +/obj/item/clothing/under/tachawaiian + name = "orange tactical hawaiian outfit" + desc = "Clearly the wearer didn't know if they wanted to invade a country or lay on a nice Hawaiian beach." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/uniforms.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/uniform.dmi' + icon_state = "tacticool_hawaiian_orange" + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION + +/obj/item/clothing/under/tachawaiian/blue + name = "blue tactical hawaiian outfit" + icon_state = "tacticool_hawaiian_blue" + +/obj/item/clothing/under/tachawaiian/purple + name = "purple tactical hawaiian outfit" + icon_state = "tacticool_hawaiian_purple" + +/obj/item/clothing/under/tachawaiian/green + name = "green tactical hawaiian outfit" + icon_state = "tacticool_hawaiian_green" + +/obj/item/clothing/under/texas + name = "texan formal outfit" + desc = "A premium quality shirt and pants combo straight from Texas." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/uniforms.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/uniform.dmi' + icon_state = "texas" + supports_variations_flags = NONE + +/obj/item/clothing/under/doug_dimmadome + name = "dimmadome formal outfit" + desc = "A tight fitting suit with a belt that is surely made out of gold." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/uniforms.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/uniform.dmi' + icon_state = "doug_dimmadome" + supports_variations_flags = NONE + +/obj/item/clothing/under/pants/tactical + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/shorts_pants_shirts.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/shorts_pants_shirts.dmi' + name = "tactical pants" + desc = "A pair of tactical pants, designed for military use." + icon_state = "tactical_pants" + +/obj/item/clothing/under/sweater + name = "cableknit sweater" + desc = "Why trade style for comfort? Now you can go commando down south and still be cozy up north." + icon_state = "cableknit_sweater" + greyscale_config = /datum/greyscale_config/cableknit_sweater + greyscale_config_worn = /datum/greyscale_config/cableknit_sweater/worn + greyscale_colors = "#b2a484" + body_parts_covered = CHEST|GROIN|ARMS + female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY + can_adjust = TRUE + flags_1 = IS_PLAYER_COLORABLE_1 + +/obj/item/clothing/under/sweater/black + name = "black cableknit sweater" + greyscale_colors = "#4f4f4f" + +/obj/item/clothing/under/sweater/red + name = "red cableknit sweater" + greyscale_colors = "#9a0000" + +/obj/item/clothing/under/sweater/keyhole + name = "keyhole sweater" + desc = "So let me get this straight. They cut cleavage out of something meant to keep you warm..? Why? \"Now you can go commando down south and be freezing cold on your chest\" isn't a good motto!" + icon_state = "keyhole_sweater" + greyscale_colors = "#c5699c" diff --git a/monkestation/code/modules/blueshift/clothing/police.dm b/monkestation/code/modules/blueshift/clothing/police.dm new file mode 100644 index 000000000000..033af99125ba --- /dev/null +++ b/monkestation/code/modules/blueshift/clothing/police.dm @@ -0,0 +1,113 @@ +/datum/armor/cosmetic_sec + melee = 30 + bullet = 25 + laser = 25 + energy = 35 + bomb = 25 + fire = 20 + acid = 50 + wound = 4 + +/datum/armor/clothing_under/rank_security + melee = 10 + fire = 30 + acid = 30 + wound = 10 + +/obj/item/clothing/under/colonial/nri_police + name = "imperial police outfit" + desc = "Fancy blue durathread shirt and a pair of cotton-blend pants with a black synthleather belt. A time-tested design first employed by the NRI police's \ + precursor organisation, Rim-world Colonial Militia, now utilised by them as a tribute." + icon_state = "under_police" + armor_type = /datum/armor/clothing_under/rank_security + strip_delay = 5 SECONDS + sensor_mode = SENSOR_COORDS + random_sensor = FALSE + can_adjust = FALSE + +/obj/item/clothing/neck/cloak/colonial/nri_police + name = "imperial police cloak" + desc = "A cloak made from heavy tarpaulin. Nigh wind- and waterproof thanks to its design. The signature white rectangle of the NRI police covers the garment's back." + icon_state = "cloak_police" + +// Just some extra police equipment +/obj/item/clothing/neck/cloak/colonial/nri_police/Initialize() + allowed += list( + /obj/item/restraints/handcuffs, + /obj/item/ammo_box, + /obj/item/ammo_casing, + ) + return ..() + +/obj/item/clothing/head/hats/colonial/nri_police + name = "imperial police cap" + desc = "A puffy cap made out of tarpaulin covered by some textile. It is sturdy and comfortable, and seems to retain its form very well.
\ + Silver NRI police insignia is woven right above its visor." + icon_state = "cap_police" + armor_type = /datum/armor/cosmetic_sec + +/obj/item/clothing/mask/gas/nri_police + name = "imperial police mask" + desc = "A close-fitting tactical mask." + icon = 'monkestation/code/modules/blueshift/icons/mask.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/wornmask.dmi' + worn_icon_digitigrade = 'monkestation/code/modules/blueshift/icons/wornmask_digi.dmi' + icon_state = "nri_police" + inhand_icon_state = "swat" + flags_inv = HIDEFACIALHAIR | HIDEFACE | HIDESNOUT + visor_flags_inv = 0 + flags_cover = MASKCOVERSMOUTH | MASKCOVERSEYES | PEPPERPROOF + visor_flags_cover = MASKCOVERSMOUTH | MASKCOVERSEYES | PEPPERPROOF + +/obj/item/clothing/head/helmet/nri_police + name = "imperial police helmet" + desc = "Thick-looking tactical helmet made out of shaped Plasteel. Colored dark blue, similar to one imperial police is commonly using." + icon_state = "police_helmet" + icon = 'monkestation/code/modules/blueshift/icons/armor.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/wornarmor.dmi' + +/obj/item/clothing/suit/armor/vest/nri_police + name = "imperial police plate carrier" + desc = "A reasonably heavy, yet comfortable armor vest comprised of a bunch of dense plates. Colored dark blue and bears a reflective stripe on the front and back." + icon_state = "police_vest" + icon = 'monkestation/code/modules/blueshift/icons/armor.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/wornarmor.dmi' + +/obj/item/clothing/under/colonial + name = "colonial outfit" + desc = "Fancy white satin shirt and a pair of cotton-blend pants with a black synthleather belt." + icon = 'monkestation/code/modules/blueshift/icons/colonies/clothing.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/colonies/clothing_worn.dmi' + worn_icon_digitigrade = 'monkestation/code/modules/blueshift/icons/colonies/clothing_digi.dmi' + icon_state = "under_colonial" + + +/obj/item/clothing/shoes/jackboots/colonial + name = "colonial half-boots" + desc = "Good old laceless boots, with a sturdy plastic toe to, theoretically, keep your toes uncrushed." + icon = 'monkestation/code/modules/blueshift/icons/colonies/clothing.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/colonies/clothing_worn.dmi' + worn_icon_digitigrade = 'monkestation/code/modules/blueshift/icons/colonies/clothing_digi.dmi' + icon_state = "boots_colonial" + + +/obj/item/clothing/neck/cloak/colonial + name = "colonial cloak" + desc = "A cloak made from heavy tarpaulin. Nigh wind- and waterproof thanks to its design." + slot_flags = ITEM_SLOT_OCLOTHING|ITEM_SLOT_NECK + w_class = WEIGHT_CLASS_NORMAL + icon = 'monkestation/code/modules/blueshift/icons/colonies/clothing.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/colonies/clothing_worn.dmi' + worn_icon_digitigrade = 'monkestation/code/modules/blueshift/icons/colonies/clothing_digi.dmi' + icon_state = "cloak_colonial" + allowed = /obj/item/clothing/suit/jacket/leather::allowed // these are special and can be worn in the suit slot, so we need this var to be defined + + +/obj/item/clothing/head/hats/colonial + name = "colonial cap" + desc = "A puffy cap made out of tarpaulin covered by some textile. It is sturdy and comfortable, and seems to retain its form very well." + icon = 'monkestation/code/modules/blueshift/icons/colonies/clothing.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/colonies/clothing_worn.dmi' + worn_icon_digitigrade = 'monkestation/code/modules/blueshift/icons/colonies/clothing_digi.dmi' + icon_state = "cap_colonial" + inhand_icon_state = null diff --git a/monkestation/code/modules/blueshift/clothing/rus_army.dm b/monkestation/code/modules/blueshift/clothing/rus_army.dm new file mode 100644 index 000000000000..d893afc65302 --- /dev/null +++ b/monkestation/code/modules/blueshift/clothing/rus_army.dm @@ -0,0 +1,271 @@ +// THESE WILL (MOSTLY) SPAWN WITH A RANDOM 'CAMO' COLOR WHEN ORDERED THROUGH CARGO +// THE STANDARD COLORS FOR USE WILL BE BELOW + +#define CIN_WINTER_COLORS "#bbbbc9" +#define CIN_MOUNTAIN_DESERT_COLORS "#aa6d4c" +#define CIN_FOREST_COLORS "#6D6D51" +#define CIN_MARINE_COLORS "#51517b" +#define CIN_EVIL_COLORS "#5d5d66" + +#define CIN_WINTER_COLORS_COMPLIMENT "#838392" +#define CIN_MOUNTAIN_DESERT_COLORS_COMPLIMENT "#a37e45" +#define CIN_FOREST_COLORS_COMPLIMENT "#474734" +#define CIN_MARINE_COLORS_COMPLIMENT "#39394d" +#define CIN_EVIL_COLORS_COMPLIMENT "#3d3d46" + +#define HELMET_NO_ACCESSORIES "plain" +#define HELMET_CHINSTRAP "strap" +#define HELMET_GLASS_VISOR "glass" +#define HELMET_BOTH_OF_THE_ABOVE "both" + +// Shared Armor Datum +// CIN armor is decently tough against bullets and wounding, but flounders when lasers enter the play, because it wasn't designed to protect against those much + +/datum/armor/cin_surplus_armor + melee = 30 + bullet = 40 + laser = 10 + energy = 10 + bomb = 40 + fire = 50 + acid = 50 + wound = 20 + +// Hats + +/obj/item/clothing/head/helmet/cin_surplus_helmet + name = "\improper GZ-03 combat helmet" + desc = "An outdated service helmet previously used by CIN military forces. The design dates back to the years leading up to CIN - SolFed border war, and was in service until the advent of VOSKHOD powered armor becoming standard issue." + icon = 'monkestation/code/modules/blueshift/icons/surplus_armor/surplus_armor.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/surplus_armor/surplus_armor_object.dmi' + icon_state = "helmet_plain" + greyscale_config = /datum/greyscale_config/cin_surplus_helmet/object + greyscale_config_worn = /datum/greyscale_config/cin_surplus_helmet + greyscale_colors = CIN_WINTER_COLORS + armor_type = /datum/armor/cin_surplus_armor + + /// Controls what helmet accessories will be present in a weighted format + var/static/list/accessories_weighted_list = list( + HELMET_NO_ACCESSORIES = 15, + HELMET_CHINSTRAP = 10, + HELMET_GLASS_VISOR = 10, + HELMET_BOTH_OF_THE_ABOVE = 5, + ) + +/obj/item/clothing/head/helmet/cin_surplus_helmet/Initialize(mapload) + . = ..() + + generate_random_accessories() + +/// Takes accessories_weighted_list and picks what icon_state suffix to use +/obj/item/clothing/head/helmet/cin_surplus_helmet/proc/generate_random_accessories() + var/chosen_accessories = pick_weight(accessories_weighted_list) + + icon_state = "helmet_[chosen_accessories]" + + if(chosen_accessories == (HELMET_GLASS_VISOR || HELMET_BOTH_OF_THE_ABOVE)) + flags_cover = HEADCOVERSEYES + else + flags_cover = NONE + + update_appearance() + +/obj/item/clothing/head/helmet/cin_surplus_helmet/examine_more(mob/user) + . = ..() + + . += "The GZ-03 series of coalition armor was a collaborative project between the NRI and TransOrbital \ + to develop a frontline soldier's armor set that could withstand attacks from the Solar Federation's \ + then relatively new pulse ballistics. The design itself is based upon a far older pattern \ + of armor originally developed by SolFed themselves, which was the standard pattern of armor design \ + granted to the first colony ships leaving Sol. Armor older than any of the CIN member states, \ + upgraded with modern technology. This helmet in particular encloses the entire head save for \ + the face, and should come with a glass visor and relatively comfortable internal padding. Should, \ + anyways, surplus units such as this are infamous for arriving with several missing accessories." + + return . + +/obj/item/clothing/head/helmet/cin_surplus_helmet/desert + greyscale_colors = CIN_MOUNTAIN_DESERT_COLORS + +/obj/item/clothing/head/helmet/cin_surplus_helmet/forest + greyscale_colors = CIN_FOREST_COLORS + +/obj/item/clothing/head/helmet/cin_surplus_helmet/marine + greyscale_colors = CIN_MARINE_COLORS + +/obj/item/clothing/head/helmet/cin_surplus_helmet/random_color + /// The different colors this helmet can choose from when initializing + var/static/list/possible_spawning_colors = list( + CIN_WINTER_COLORS, + CIN_MOUNTAIN_DESERT_COLORS, + CIN_FOREST_COLORS, + CIN_MARINE_COLORS, + CIN_EVIL_COLORS, + ) + +/obj/item/clothing/head/helmet/cin_surplus_helmet/random_color/Initialize(mapload) + greyscale_colors = pick(possible_spawning_colors) + + . = ..() + +// Undersuits + +/obj/item/clothing/under/syndicate/rus_army/cin_surplus + name = "\improper CIN combat uniform" + desc = "A CIN designed combat uniform that can come in any number of camouflauge variations. Despite this particular design being developed in the years leading up to the CIN-SolFed border war, the uniform is still in use by many member states to this day." + icon = 'monkestation/code/modules/blueshift/icons/surplus_armor/surplus_armor.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/surplus_armor/surplus_armor_object.dmi' + icon_state = "undersuit_greyscale" + greyscale_config = /datum/greyscale_config/cin_surplus_undersuit/object + greyscale_config_worn = /datum/greyscale_config/cin_surplus_undersuit + greyscale_config_worn_digitigrade = /datum/greyscale_config/cin_surplus_undersuit/digi + greyscale_colors = "#bbbbc9#bbbbc9#34343a" + +/obj/item/clothing/under/syndicate/rus_army/cin_surplus/desert + greyscale_colors = "#aa6d4c#aa6d4c#34343a" + +/obj/item/clothing/under/syndicate/rus_army/cin_surplus/forest + greyscale_colors = "#6D6D51#6D6D51#34343a" + +/obj/item/clothing/under/syndicate/rus_army/cin_surplus/marine + greyscale_colors = "#51517b#51517b#34343a" + +/obj/item/clothing/under/syndicate/rus_army/cin_surplus/random_color + /// What colors the jumpsuit can spawn with (only does the arms and legs of it) + var/static/list/possible_limb_colors = list( + CIN_WINTER_COLORS, + CIN_MOUNTAIN_DESERT_COLORS, + CIN_FOREST_COLORS, + CIN_MARINE_COLORS, + ) + +/obj/item/clothing/under/syndicate/rus_army/cin_surplus/random_color/Initialize(mapload) + greyscale_colors = "[pick(possible_limb_colors)][pick(possible_limb_colors)][CIN_EVIL_COLORS]" + + . = ..() + +// Vests + +/obj/item/clothing/suit/armor/vest/cin_surplus_vest + name = "\improper GZ-03 armor vest" + desc = "An outdated armor vest previously used by CIN military forces. The design dates back to the years leading up to CIN - SolFed border war, and was in service until the advent of VOSKHOD powered armor becoming standard issue." + worn_icon = 'monkestation/code/modules/blueshift/icons/surplus_armor/surplus_armor.dmi' + icon = 'monkestation/code/modules/blueshift/icons/surplus_armor/surplus_armor_object.dmi' + icon_state = "vest_basic" + armor_type = /datum/armor/cin_surplus_armor + supports_variations_flags = CLOTHING_NO_VARIATION + +/obj/item/clothing/suit/armor/vest/cin_surplus_vest/Initialize(mapload) + . = ..() + + generate_random_accessories() + +/// Decides if the armor vest should have its extra plates or not +/obj/item/clothing/suit/armor/vest/cin_surplus_vest/proc/generate_random_accessories() + if(prob(30)) + icon_state = "vest_extra" + body_parts_covered = CHEST|GROIN // In reality this does like nothing at all but flavor you know + else + icon_state = "vest_basic" + body_parts_covered = CHEST + + update_appearance() + +/obj/item/clothing/suit/armor/vest/cin_surplus_vest/examine_more(mob/user) + . = ..() + + . += "The GZ-03 series of coalition armor was a collaborative project between the NRI and TransOrbital \ + to develop a frontline soldier's armor set that could withstand attacks from the Solar Federation's \ + then relatively new pulse ballistics. The design itself is based upon a far older pattern \ + of armor originally developed by SolFed themselves, which was the standard pattern of armor design \ + granted to the first colony ships leaving Sol. Armor older than any of the CIN member states, \ + upgraded with modern technology. This vest in particular is made up of several large, dense plates \ + front and back. While vests like this were also produced with extra plating to protect the groin, many \ + surplus vests are missing them due to the popularity of removing the plates and using them as seating \ + during wartime." + + return . + +// Chest Rig + +/obj/item/storage/belt/military/cin_surplus + desc = "A tactical webbing often used by the CIN's military forces." + icon = 'monkestation/code/modules/blueshift/icons/surplus_armor/surplus_armor.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/surplus_armor/surplus_armor_object.dmi' + icon_state = "chestrig" + worn_icon_state = "chestrig" + greyscale_config = /datum/greyscale_config/cin_surplus_chestrig/object + greyscale_config_worn = /datum/greyscale_config/cin_surplus_chestrig + greyscale_colors = CIN_WINTER_COLORS_COMPLIMENT + +/obj/item/storage/belt/military/cin_surplus/desert + greyscale_colors = CIN_MOUNTAIN_DESERT_COLORS_COMPLIMENT + +/obj/item/storage/belt/military/cin_surplus/forest + greyscale_colors = CIN_FOREST_COLORS_COMPLIMENT + +/obj/item/storage/belt/military/cin_surplus/marine + greyscale_colors = CIN_MARINE_COLORS_COMPLIMENT + +/obj/item/storage/belt/military/cin_surplus/random_color + /// The different colors this can choose from when initializing + var/static/list/possible_spawning_colors = list( + CIN_WINTER_COLORS_COMPLIMENT, + CIN_MOUNTAIN_DESERT_COLORS_COMPLIMENT, + CIN_FOREST_COLORS_COMPLIMENT, + CIN_MARINE_COLORS_COMPLIMENT, + CIN_EVIL_COLORS_COMPLIMENT, + ) + +/obj/item/storage/belt/military/cin_surplus/random_color/Initialize(mapload) + greyscale_colors = pick(possible_spawning_colors) + + . = ..() + +// Backpack + +/obj/item/storage/backpack/industrial/cin_surplus + name = "\improper CIN military backpack" + desc = "A rugged backpack often used by the CIN's military forces." + icon = 'monkestation/code/modules/blueshift/icons/surplus_armor/surplus_armor.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/surplus_armor/surplus_armor_object.dmi' + icon_state = "backpack" + greyscale_config = /datum/greyscale_config/cin_surplus_backpack/object + greyscale_config_worn = /datum/greyscale_config/cin_surplus_backpack + greyscale_colors = CIN_WINTER_COLORS_COMPLIMENT + +/obj/item/storage/backpack/industrial/cin_surplus/desert + greyscale_colors = CIN_MOUNTAIN_DESERT_COLORS_COMPLIMENT + +/obj/item/storage/backpack/industrial/cin_surplus/forest + greyscale_colors = CIN_FOREST_COLORS_COMPLIMENT + +/obj/item/storage/backpack/industrial/cin_surplus/marine + greyscale_colors = CIN_MARINE_COLORS_COMPLIMENT + +/obj/item/storage/backpack/industrial/cin_surplus/random_color + /// The different colors this can choose from when initializing + var/static/list/possible_spawning_colors = list( + CIN_WINTER_COLORS_COMPLIMENT, + CIN_MOUNTAIN_DESERT_COLORS_COMPLIMENT, + CIN_FOREST_COLORS_COMPLIMENT, + CIN_MARINE_COLORS_COMPLIMENT, + CIN_EVIL_COLORS_COMPLIMENT, + ) + +/obj/item/storage/backpack/industrial/cin_surplus/random_color/Initialize(mapload) + greyscale_colors = pick(possible_spawning_colors) + + . = ..() + +#undef CIN_WINTER_COLORS +#undef CIN_MOUNTAIN_DESERT_COLORS +#undef CIN_FOREST_COLORS +#undef CIN_MARINE_COLORS +#undef CIN_EVIL_COLORS + +#undef CIN_WINTER_COLORS_COMPLIMENT +#undef CIN_MOUNTAIN_DESERT_COLORS_COMPLIMENT +#undef CIN_FOREST_COLORS_COMPLIMENT +#undef CIN_MARINE_COLORS_COMPLIMENT +#undef CIN_EVIL_COLORS_COMPLIMENT diff --git a/monkestation/code/modules/blueshift/clothing/solfed_clothing.dm b/monkestation/code/modules/blueshift/clothing/solfed_clothing.dm new file mode 100644 index 000000000000..300f9120e46f --- /dev/null +++ b/monkestation/code/modules/blueshift/clothing/solfed_clothing.dm @@ -0,0 +1,43 @@ +// Peacekeeper jumpsuit + +/obj/item/clothing/under/sol_peacekeeper + name = "sol peacekeeper uniform" + desc = "A military-grade uniform with military grade comfort (none at all), often seen on \ + SolFed's various peacekeeping forces, and usually alongside a blue helmet." + icon = 'monkestation/code/modules/blueshift/icons/goofsec/uniforms.dmi' + icon_state = "peacekeeper" + worn_icon = 'monkestation/code/modules/blueshift/icons/goofsec/uniforms_worn.dmi' + worn_icon_digitigrade = 'monkestation/code/modules/blueshift/icons/goofsec/uniforms_worn_digi.dmi' + worn_icon_state = "peacekeeper" + armor_type = /datum/armor/clothing_under/rank_security + inhand_icon_state = null + has_sensor = SENSOR_COORDS + random_sensor = FALSE + +// EMT jumpsuit +/datum/armor/clothing_under/rank_medical + bio = 50 + +/obj/item/clothing/under/sol_emt + name = "sol emergency medical uniform" + desc = "A copy of SolFed's peacekeeping uniform, recolored and re-built with paramedics in mind." + icon = 'monkestation/code/modules/blueshift/icons/goofsec/uniforms.dmi' + icon_state = "emt" + worn_icon = 'monkestation/code/modules/blueshift/icons/goofsec/uniforms_worn.dmi' + worn_icon_digitigrade = 'monkestation/code/modules/blueshift/icons/goofsec/uniforms_worn_digi.dmi' + worn_icon_state = "emt" + armor_type = /datum/armor/clothing_under/rank_medical + inhand_icon_state = null + has_sensor = SENSOR_COORDS + random_sensor = FALSE + +// Solfed flak jacket, for marshals + +/obj/item/clothing/suit/armor/vest/det_suit/sol + name = "'Gordyn' flak vest" + desc = "A light armored jacket common on SolFed personnel who need armor, but find a full vest \ + too impractical or uneeded." + icon = 'monkestation/code/modules/blueshift/icons/goofsec/uniforms.dmi' + icon_state = "flak" + worn_icon = 'monkestation/code/modules/blueshift/icons/goofsec/uniforms_worn.dmi' + worn_icon_state = "flak" diff --git a/monkestation/code/modules/blueshift/clothing/specialist_armor.dm b/monkestation/code/modules/blueshift/clothing/specialist_armor.dm new file mode 100644 index 000000000000..ecd4b89e1403 --- /dev/null +++ b/monkestation/code/modules/blueshift/clothing/specialist_armor.dm @@ -0,0 +1,344 @@ +// Sacrificial armor has massive bullet protection, but gets damaged by being shot, thus, is sacrificing itself to protect the wearer +/datum/armor/armor_sf_sacrificial + melee = ARMOR_LEVEL_WEAK + bullet = ARMOR_LEVEL_INSANE // When the level IV plates stop the bullet but not the energy transfer + laser = ARMOR_LEVEL_TINY + energy = ARMOR_LEVEL_TINY + bomb = ARMOR_LEVEL_MID + fire = ARMOR_LEVEL_MID + acid = ARMOR_LEVEL_WEAK + wound = WOUND_ARMOR_HIGH + +/obj/item/clothing/suit/armor/sf_sacrificial + name = "'Val' sacrificial ballistic vest" + desc = "A hefty vest with a unique pattern of hexes on its outward faces. \ + As the 'sacrificial' name might imply, this vest has extremely high bullet protection \ + in exchange for allowing itself to be destroyed by impacts. It'll protect you from hell, \ + but only for so long." + icon = 'monkestation/code/modules/blueshift/icons/specialist_armor/armor.dmi' + icon_state = "hexagon" + worn_icon = 'monkestation/code/modules/blueshift/icons/specialist_armor/armor_worn.dmi' + inhand_icon_state = "armor" + blood_overlay_type = "armor" + armor_type = /datum/armor/armor_sf_sacrificial + max_integrity = 200 + limb_integrity = 200 + repairable_by = null // No being cheeky and keeping a pile of repair materials in your bag to fix it either + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + resistance_flags = FIRE_PROOF + +/obj/item/clothing/suit/armor/sf_sacrificial/Initialize(mapload) + . = ..() + + AddComponent(/datum/component/clothing_damaged_by_bullets) + +/obj/item/clothing/suit/armor/sf_sacrificial/examine_more(mob/user) + . = ..() + + . += "An extreme solution to an extreme problem. While many galactic armors have some semblance of self-repairing tech \ + in them to prevent the armor becoming useless after being shot enough, it does have its limits. Those limits tend to be \ + that the self-repairing, while handy, take the place of what could have simply been more armor. For a small market, \ + one that doesn't care if their armor lasts more than one gunfight, there exists a niche for armors such as the 'Val'. \ + Passing up self-repair for nigh-immunity to bullets, the right tool for a certain job, if you can find whatever that job may be." + + return . + +/obj/item/clothing/head/helmet/sf_sacrificial + name = "'Val' sacrificial ballistic helmet" + desc = "A large, almost always ill-fitting helmet painted in a tacticool black. \ + As the 'sacrificial' name might imply, this helmet has extremely high bullet protection \ + in exchange for allowing itself to be destroyed by impacts. It'll protect you from hell, \ + but only for so long." + icon = 'monkestation/code/modules/blueshift/icons/specialist_armor/armor.dmi' + icon_state = "bulletproof" + worn_icon = 'monkestation/code/modules/blueshift/icons/specialist_armor/armor_worn.dmi' + inhand_icon_state = "helmet" + armor_type = /datum/armor/armor_sf_sacrificial + max_integrity = 200 + limb_integrity = 200 + repairable_by = null // No being cheeky and keeping a pile of repair materials in your bag to fix it either + dog_fashion = null + flags_inv = null + resistance_flags = FIRE_PROOF + /// Holds the faceshield for quick reference + var/obj/item/sacrificial_face_shield/face_shield + +/obj/item/clothing/head/helmet/sf_sacrificial/Initialize(mapload) + . = ..() + + AddComponent(/datum/component/clothing_damaged_by_bullets) + +/obj/item/clothing/head/helmet/sf_sacrificial/attackby(obj/item/attacking_item, mob/user, params) + . = ..() + + if(!(istype(attacking_item, /obj/item/sacrificial_face_shield))) + return + + add_face_shield(user, attacking_item) + +/obj/item/clothing/head/helmet/sf_sacrificial/Destroy() + QDEL_NULL(face_shield) + return ..() + +/obj/item/clothing/head/helmet/sf_sacrificial/AltClick(mob/user) + remove_face_shield(user) + return + +/// Attached the passed face shield to the helmet. +/obj/item/clothing/head/helmet/sf_sacrificial/proc/add_face_shield(mob/living/carbon/human/user, obj/shield_in_question, on_spawn) + if(face_shield) + return + if(!user?.transferItemToLoc(shield_in_question, src) && !on_spawn) + return + + if(on_spawn) + shield_in_question = new /obj/item/sacrificial_face_shield(src) + + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDESNOUT + flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF + + playsound(src, 'sound/items/modsuit/magnetic_harness.ogg', 50, TRUE) + face_shield = shield_in_question + + icon_state = "bulletproof_glass" + worn_icon_state = icon_state + update_appearance() + +/// Removes the face shield from the helmet, breaking it into a glass shard decal if that's wanted, too. +/obj/item/clothing/head/helmet/sf_sacrificial/proc/remove_face_shield(mob/living/carbon/human/user, break_it) + if(!face_shield) + return + + flags_inv = initial(flags_inv) + flags_cover = initial(flags_cover) + + if(break_it) + playsound(src, SFX_SHATTER, 70, TRUE) + new /obj/effect/decal/cleanable/glass(drop_location(src)) + qdel(face_shield) + face_shield = null // just to be safe + else + user.put_in_hands(face_shield) + playsound(src, 'sound/items/modsuit/magnetic_harness.ogg', 50, TRUE) + face_shield = null + + icon_state = initial(icon_state) + worn_icon_state = icon_state // Against just to be safe + update_appearance() + +/obj/item/clothing/head/helmet/sf_sacrificial/take_damage_zone(def_zone, damage_amount, damage_type, armour_penetration) + . = ..() + + if((damage_amount > 20) && face_shield) + remove_face_shield(break_it = TRUE) + +/obj/item/clothing/head/helmet/sf_sacrificial/examine(mob/user) + . = ..() + if(face_shield) + . += span_notice("The face shield can be removed with Right-Click.") + else + . += span_notice("A face shield can be attached to it.") + + return . + +/obj/item/clothing/head/helmet/sf_sacrificial/examine_more(mob/user) + . = ..() + + . += "An extreme solution to an extreme problem. While many galactic armors have some semblance of self-repairing tech \ + in them to prevent the armor becoming useless after being shot enough, it does have its limits. Those limits tend to be \ + that the self-repairing, while handy, take the place of what could have simply been more armor. For a small market, \ + one that doesn't care if their armor lasts more than one gunfight, there exists a niche for armors such as the 'Val'. \ + Passing up self-repair for nigh-immunity to bullets, the right tool for a certain job, if you can find whatever that job may be." + + return . + +/obj/item/clothing/head/helmet/sf_sacrificial/spawns_with_shield + +/obj/item/clothing/head/helmet/sf_sacrificial/spawns_with_shield/Initialize(mapload) + . = ..() + add_face_shield(on_spawn = TRUE) + +/obj/item/sacrificial_face_shield + name = "'Val' ballistic add-on face plate" + desc = "A thick piece of glass with mounting points for slotting onto a 'Val' sacrificial ballistic helmet. \ + While it does not make the helmet any stronger, it does protect your face much like a riot helmet would." + icon = 'monkestation/code/modules/blueshift/icons/specialist_armor/armor.dmi' + icon_state = "face_shield" + w_class = WEIGHT_CLASS_NORMAL + +// The peacekeeper armors and helmets will be less effective at stopping bullet damage than bulletproof vests, but stronger against wounds especially, and some other damage types +/datum/armor/armor_sf_peacekeeper + melee = ARMOR_LEVEL_WEAK + bullet = ARMOR_LEVEL_MID + laser = ARMOR_LEVEL_TINY + energy = ARMOR_LEVEL_TINY + bomb = ARMOR_LEVEL_WEAK + fire = ARMOR_LEVEL_MID + acid = ARMOR_LEVEL_WEAK + wound = WOUND_ARMOR_HIGH + +/obj/item/clothing/suit/armor/sf_peacekeeper + name = "'Touvou' peacekeeper armor vest" + desc = "A bright blue vest, proudly bearing 'SF' in white on its front and back. Dense fabric with a thin layer of rolled metal \ + will protect you from bullets best, a few blunt blows, and the wounds they cause. Lasers will burn more or less straight through it." + icon = 'monkestation/code/modules/blueshift/icons/specialist_armor/armor.dmi' + icon_state = "soft_peacekeeper" + worn_icon = 'monkestation/code/modules/blueshift/icons/specialist_armor/armor_worn.dmi' + inhand_icon_state = "armor" + blood_overlay_type = "armor" + armor_type = /datum/armor/armor_sf_peacekeeper + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + +/obj/item/clothing/suit/armor/sf_peacekeeper/examine_more(mob/user) + . = ..() + + . += "A common SolFed designed armor vest for a common cause, not having your innards become outards. \ + While heavier armors certainly exist, the 'Touvou' is relatively cheap for the protection you do get, \ + and many soldiers and officers around the galaxy will tell you the convenience of a mostly soft body armor. \ + Not for any of the protection, but for the relative comfort, especially in areas where you don't need to care \ + much if you're able to stop an anti materiel round with your chest. Likely due to all those factors, \ + it is a common sight on SolFed peacekeepers around the galaxy, alongside other misfits and corporate baddies \ + across the galaxy." + + return . + +/obj/item/clothing/suit/armor/sf_peacekeeper/debranded + name = "'Touvou' soft armor vest" + desc = "A bright white vest, notably missing an 'SF' marking on either its front or back. Dense fabric with a thin layer of rolled metal \ + will protect you from bullets best, a few blunt blows, and the wounds they cause. Lasers will burn more or less straight through it." + icon_state = "soft_civilian" + +/obj/item/clothing/head/helmet/sf_peacekeeper + name = "'Kastrol' peacekeeper helmet" + desc = "A large, almost always ill-fitting helmet painted in bright blue. It proudly bears the emblems of SolFed on its sides. \ + It will protect from bullets best, with some protection against blunt blows, but falters easily in the presence of lasers." + icon = 'monkestation/code/modules/blueshift/icons/specialist_armor/armor.dmi' + icon_state = "helmet_peacekeeper" + worn_icon = 'monkestation/code/modules/blueshift/icons/specialist_armor/armor_worn.dmi' + inhand_icon_state = "helmet" + armor_type = /datum/armor/armor_sf_peacekeeper + dog_fashion = null + flags_inv = null + resistance_flags = FIRE_PROOF + +/obj/item/clothing/head/helmet/sf_peacekeeper/examine_more(mob/user) + . = ..() + + . += "A common SolFed designed ballistic helmet for a common cause, keeping your brain inside your head. \ + While heavier helmets certainly exist, the 'Kastrol' is relatively cheap for the protection you do get, \ + and many soldiers don't mind it much due to its large over-head size bypassing a lot of the fitting issues \ + some more advanced or more protective helmets might have. \ + Especially in areas where you don't need to care \ + much if you're able to stop an anti materiel round with your forehead, it does the job just fine. \ + Likely due to all those factors, \ + it is a common sight on SolFed peacekeepers around the galaxy, alongside other misfits and corporate baddies \ + across the galaxy." + + return . + +/obj/item/clothing/head/helmet/sf_peacekeeper/debranded + name = "'Kastrol' ballistic helmet" + desc = "A large, almost always ill-fitting helmet painted a dull grey. This one seems to lack any special markings. \ + It will protect from bullets best, with some protection against blunt blows, but falters easily in the presence of lasers." + icon_state = "helmet_grey" + +// Hardened vests negate any and all projectile armor penetration, in exchange for having mid af bullet armor +/datum/armor/armor_sf_hardened + melee = ARMOR_LEVEL_WEAK + bullet = ARMOR_LEVEL_MID + laser = ARMOR_LEVEL_WEAK + energy = ARMOR_LEVEL_TINY + bomb = ARMOR_LEVEL_WEAK + fire = ARMOR_LEVEL_MID + acid = ARMOR_LEVEL_WEAK + wound = WOUND_ARMOR_WEAK + +/obj/item/clothing/suit/armor/sf_hardened + name = "'Muur' hardened armor vest" + desc = "A large white breastplate, and a semi-flexible mail of dense panels that cover the torso. \ + While not so incredible at directly stopping bullets, the vest is uniquely suited to cause bullets \ + to lose much of their armor penetrating energy before any damage can be done." + icon = 'monkestation/code/modules/blueshift/icons/specialist_armor/armor.dmi' + icon_state = "hardened_standard" + worn_icon = 'monkestation/code/modules/blueshift/icons/specialist_armor/armor_worn.dmi' + inhand_icon_state = "armor" + blood_overlay_type = "armor" + armor_type = /datum/armor/armor_sf_hardened + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + resistance_flags = FIRE_PROOF + +/obj/item/clothing/suit/armor/sf_hardened/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text, final_block_chance, damage, attack_type, damage_type) + . = ..() + + if(istype(hitby, /obj/projectile)) + var/obj/projectile/incoming_projectile = hitby + incoming_projectile.armour_penetration = 0 + playsound(owner, SFX_RICOCHET, BLOCK_SOUND_VOLUME, vary = TRUE) + +/obj/item/clothing/suit/armor/sf_hardened/examine_more(mob/user) + . = ..() + + . += "What do you do in an age where armor penetration technology keeps getting better and better, \ + and you're quite fond of not being a corpse? The 'Muur' type armor was a pretty successful attempt at an answer \ + to the question. Using some advanced materials, micro-scale projectile dampener fields, and a whole \ + host of other technologies that some poor SolFed procurement general had to talked to death about, \ + it offers a unique advantage over many armor piercing bullets. Why stop the bullet from piercing the armor \ + with more armor, when you could simply force the bullet to penetrate less and get away with less protection? \ + Some people would rather the bullet just be stopped, of course, but when you have to make choices, many choose \ + this one." + + return . + +/obj/item/clothing/suit/armor/sf_hardened/emt + name = "'Archangel' hardened armor vest" + desc = "A large white breastplate with a lone red stripe, and a semi-flexible mail of dense panels that cover the torso. \ + While not so incredible at directly stopping bullets, the vest is uniquely suited to cause bullets \ + to lose much of their armor penetrating energy before any damage can be done." + icon_state = "hardened_emt" + +/obj/item/clothing/head/helmet/toggleable/sf_hardened + name = "'Muur' enclosed helmet" + desc = "A thick-fronted helmet with extendable visor for whole face protection. The materials and geometry of the helmet \ + combine in such a way that bullets lose much of their armor penetrating energy before any damage can be done, rather than penetrate into it." + icon = 'monkestation/code/modules/blueshift/icons/specialist_armor/armor.dmi' + icon_state = "enclosed_standard" + worn_icon = 'monkestation/code/modules/blueshift/icons/specialist_armor/armor_worn.dmi' + inhand_icon_state = "helmet" + armor_type = /datum/armor/armor_sf_hardened + toggle_message = "You extend the visor on" + alt_toggle_message = "You retract the visor on" + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT + visor_flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR + flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF + visor_flags_cover = HEADCOVERSEYES + dog_fashion = null + resistance_flags = FIRE_PROOF + +/obj/item/clothing/head/helmet/toggleable/sf_hardened/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text, final_block_chance, damage, attack_type, damage_type) + . = ..() + + if(istype(hitby, /obj/projectile)) + var/obj/projectile/incoming_projectile = hitby + incoming_projectile.armour_penetration = 0 + playsound(src, SFX_RICOCHET, BLOCK_SOUND_VOLUME, vary = TRUE) + +/obj/item/clothing/head/helmet/toggleable/sf_hardened/examine_more(mob/user) + . = ..() + + . += "What do you do in an age where armor penetration technology keeps getting better and better, \ + and you're quite fond of not being a corpse? The 'Muur' type armor was a pretty successful attempt at an answer \ + to the question. Using some advanced materials, micro-scale projectile dampener fields, and a whole \ + host of other technologies that some poor SolFed procurement general had to talked to death about, \ + it offers a unique advantage over many armor piercing bullets. Why stop the bullet from piercing the armor \ + with more armor, when you could simply force the bullet to penetrate less and get away with less protection? \ + Some people would rather the bullet just be stopped, of course, but when you have to make choices, many choose \ + this one." + + return . + +/obj/item/clothing/head/helmet/toggleable/sf_hardened/emt + name = "'Archangel' enclosed helmet" + desc = "A thick-fronted helmet with extendable visor for whole face protection. The materials and geometry of the helmet \ + combine in such a way that bullets lose much of their armor penetrating energy before any damage can be done, rather than penetrate into it. \ + This one has a red stripe down the front." + icon_state = "enclosed_emt" diff --git a/monkestation/code/modules/blueshift/components/armament.dm b/monkestation/code/modules/blueshift/components/armament.dm new file mode 100644 index 000000000000..3cd2cdebdd06 --- /dev/null +++ b/monkestation/code/modules/blueshift/components/armament.dm @@ -0,0 +1,567 @@ +/** + * This is the component that runs the armaments vendor. + * + * It's intended to be used with the armament vendor, or other atoms that otherwise aren't vending machines. + */ + +/datum/component/armament + /// The types of armament datums we wish to add to this component. + var/list/products + /// What access do we require to use this machine? + var/list/required_access + /// Our parent machine. + var/atom/parent_atom + /// The points card that is currently inserted into the parent. + var/obj/item/armament_points_card/inserted_card + /// Used to keep track of what categories have been used. + var/list/used_categories = list() + /// Used to keep track of what items have been purchased. + var/list/purchased_items = list() + +/datum/component/armament/Initialize(list/required_products, list/needed_access) + if(!required_products) + stack_trace("No products specified for armament") + return COMPONENT_INCOMPATIBLE + + parent_atom = parent + + products = required_products + + required_access = needed_access + + RegisterSignal(parent, COMSIG_ATOM_ATTACK_HAND, PROC_REF(on_attack_hand)) + RegisterSignal(parent, COMSIG_ATOM_ATTACKBY, PROC_REF(on_attackby)) + +/datum/component/armament/Destroy(force) + if(inserted_card) + inserted_card.forceMove(parent_atom.drop_location()) + inserted_card = null + return ..() + +/datum/component/armament/proc/on_attackby(atom/target, obj/item, mob/user) + SIGNAL_HANDLER + + if(!user || !item) + return + + if(!user.can_interact_with(parent_atom)) + return + + if(!istype(item, /obj/item/armament_points_card) || inserted_card) + return + + item.forceMove(parent_atom) + inserted_card = item + +/datum/component/armament/proc/on_attack_hand(datum/source, mob/living/user) + SIGNAL_HANDLER + + if(!user) + return + + if(!user.can_interact_with(parent_atom)) + return + + if(!check_access(user)) + to_chat(user, span_warning("You don't have the required access!")) + return + + INVOKE_ASYNC(src, PROC_REF(ui_interact), user) + +/datum/component/armament/ui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "ArmamentStation") + ui.open() + +/datum/component/armament/ui_data(mob/user) + var/list/data = list() + + data["card_inserted"] = inserted_card ? TRUE : FALSE + data["card_name"] = "unknown" + data["card_points"] = 0 + if(inserted_card) + data["card_points"] = inserted_card.points + data["card_name"] = inserted_card.name + + data["armaments_list"] = list() + for(var/armament_category as anything in SSarmaments.entries) + var/list/armament_subcategories = list() + for(var/subcategory as anything in SSarmaments.entries[armament_category][CATEGORY_ENTRY]) + var/list/subcategory_items = list() + for(var/datum/armament_entry/armament_entry as anything in SSarmaments.entries[armament_category][CATEGORY_ENTRY][subcategory]) + if(products && !(armament_entry.type in products)) + continue + subcategory_items += list(list( + "ref" = REF(armament_entry), + "icon" = armament_entry.cached_base64, + "name" = armament_entry.name, + "cost" = armament_entry.cost, + "buyable_ammo" = armament_entry.magazine ? TRUE : FALSE, + "magazine_cost" = armament_entry.magazine_cost, + "quantity" = armament_entry.max_purchase, + "purchased" = purchased_items[armament_entry] ? purchased_items[armament_entry] : 0, + "description" = armament_entry.description, + "armament_category" = armament_entry.category, + "equipment_subcategory" = armament_entry.subcategory, + )) + if(!LAZYLEN(subcategory_items)) + continue + armament_subcategories += list(list( + "subcategory" = subcategory, + "items" = subcategory_items, + )) + if(!LAZYLEN(armament_subcategories)) + continue + data["armaments_list"] += list(list( + "category" = armament_category, + "category_limit" = SSarmaments.entries[armament_category][CATEGORY_LIMIT], + "category_uses" = used_categories[armament_category], + "subcategories" = armament_subcategories, + )) + + return data + +/datum/component/armament/ui_act(action, list/params) + . = ..() + if(.) + return + + switch(action) + if("equip_item") + var/check = check_item(params["armament_ref"]) + if(!check) + return + select_armament(usr, check) + if("buy_ammo") + var/check = check_item(params["armament_ref"]) + if(!check) + return + buy_ammo(usr, check, params["quantity"]) + if("eject_card") + eject_card(usr) + +/datum/component/armament/proc/buy_ammo(mob/user, datum/armament_entry/armament_entry, quantity = 1) + if(!armament_entry.magazine) + return + if(!inserted_card) + to_chat(user, span_warning("No card inserted!")) + return + var/quantity_cost = armament_entry.magazine_cost * quantity + if(!inserted_card.use_points(quantity_cost)) + to_chat(user, span_warning("Not enough points!")) + return + for(var/i in 1 to quantity) + new armament_entry.magazine(parent_atom.drop_location()) + +/datum/component/armament/proc/check_item(reference) + var/datum/armament_entry/armament_entry + for(var/category in SSarmaments.entries) + for(var/subcategory in SSarmaments.entries[category][CATEGORY_ENTRY]) + armament_entry = locate(reference) in SSarmaments.entries[category][CATEGORY_ENTRY][subcategory] + if(armament_entry) + break + if(armament_entry) + break + if(!armament_entry) + return FALSE + if(products && !(armament_entry.type in products)) + return FALSE + return armament_entry + +/datum/component/armament/proc/eject_card(mob/user) + if(!inserted_card) + to_chat(user, span_warning("No card inserted!")) + return + inserted_card.forceMove(parent_atom.drop_location()) + user.put_in_hands(inserted_card) + inserted_card = null + to_chat(user, span_notice("Card ejected!")) + playsound(src, 'sound/machines/terminal_insert_disc.ogg', 70) + +/datum/component/armament/proc/select_armament(mob/user, datum/armament_entry/armament_entry) + if(!inserted_card) + to_chat(user, span_warning("No card inserted!")) + return + if(used_categories[armament_entry.category] >= SSarmaments.entries[armament_entry.category][CATEGORY_LIMIT]) + to_chat(user, span_warning("Category limit reached!")) + return + if(purchased_items[armament_entry] >= armament_entry.max_purchase) + to_chat(user, span_warning("Item limit reached!")) + return + if(!ishuman(user)) + return + if(!inserted_card.use_points(armament_entry.cost)) + to_chat(user, span_warning("Not enough points!")) + return + + var/mob/living/carbon/human/human_to_equip = user + + var/obj/item/new_item = new armament_entry.item_type(parent_atom.drop_location()) + + used_categories[armament_entry.category]++ + purchased_items[armament_entry]++ + + playsound(src, 'sound/machines/machine_vend.ogg', 50, TRUE, extrarange = -3) + + if(armament_entry.equip_to_human(human_to_equip, new_item)) + to_chat(user, span_notice("Equipped directly to your person.")) + playsound(src, 'sound/items/equip/toolbelt_equip.ogg', 100) + armament_entry.after_equip(parent_atom.drop_location(), new_item) + +/datum/component/armament/proc/check_access(mob/living/user) + if(!user) + return FALSE + + if(!required_access) + return TRUE + + if(issilicon(user)) + if(ispAI(user)) + return FALSE + return TRUE //AI can do whatever it wants + + if(isAdminGhostAI(user)) + return TRUE + + //If the mob has the simple_access component with the requried access, the check passes + else if(SEND_SIGNAL(user, COMSIG_MOB_TRIED_ACCESS, src) & ACCESS_ALLOWED) + return TRUE + + //If the mob is holding a valid ID, they pass the access check + else if(check_access_obj(user.get_active_held_item())) + return TRUE + + //if they are wearing a card that has access and are human, that works + else if(ishuman(user)) + var/mob/living/carbon/human/human_user = user + if(check_access_obj(human_user.wear_id)) + return TRUE + + //if they're strange and have a hacky ID card as an animal + else if(isanimal(user)) + var/mob/living/simple_animal/animal = user + if(check_access_obj(animal.access_card)) + return TRUE + +/datum/component/armament/proc/check_access_obj(obj/item/id) + return check_access_list(id ? id.GetAccess() : null) + +/datum/component/armament/proc/check_access_list(list/access_list) + if(!islist(required_access)) //something's very wrong + return TRUE + + if(!length(required_access)) + return TRUE + + if(!length(access_list) || !islist(access_list)) + return FALSE + + for(var/req in required_access) + if(!(req in access_list)) //doesn't have this access + return FALSE + + return TRUE + +#define MAX_AMMO_AMOUNT 10 +#define CARGO_CONSOLE 1 +#define IRN_CONSOLE 2 + +/datum/component/armament/company_imports + /// Selected amount of ammo to purchase + var/ammo_purchase_num = 1 + /// Is this set to private order + var/self_paid = FALSE + /// Cooldown to announce a requested order + COOLDOWN_DECLARE(radio_cooldown) + /// To cut down on redundant istypes(), what this component is attached to + var/console_state = null + /// If this is a tablet, the parent budgetordering + var/datum/computer_file/program/budgetorders/parent_prog + +/datum/component/armament/company_imports/Initialize(list/required_products, list/needed_access) + . = ..() + if(istype(parent, /obj/machinery/computer/cargo)) + console_state = CARGO_CONSOLE + else if(istype(parent, /obj/item/modular_computer)) + console_state = IRN_CONSOLE + +/datum/component/armament/company_imports/Destroy(force) + parent_prog = null + . = ..() + +/datum/component/armament/company_imports/on_attack_hand(datum/source, mob/living/user) + return + +/datum/component/armament/company_imports/on_attackby(atom/target, obj/item, mob/user) + return + +/datum/component/armament/company_imports/ui_data(mob/user) + var/list/data = list() + + var/mob/living/carbon/human/the_person = user + var/obj/item/card/id/id_card + var/datum/bank_account/buyer = SSeconomy.get_dep_account(ACCOUNT_CAR) + + if(console_state == IRN_CONSOLE) + id_card = parent_prog.computer.computer_id_slot?.GetID() + else + if(istype(the_person)) + id_card = the_person.get_idcard(TRUE) + + var/budget_name = "Cargo Budget" + + if(id_card?.registered_account && (console_state == IRN_CONSOLE)) + if((ACCESS_COMMAND in id_card.access) || (ACCESS_QM in id_card.access)) + parent_prog.requestonly = FALSE + buyer = SSeconomy.get_dep_account(id_card.registered_account?.account_job.paycheck_department) + parent_prog.can_approve_requests = TRUE + else + parent_prog.requestonly = TRUE + parent_prog.can_approve_requests = FALSE + else + parent_prog?.requestonly = TRUE + + if(id_card) + budget_name = self_paid ? id_card.name : buyer.account_holder + + data["budget_name"] = budget_name + + var/cant_buy_restricted = TRUE + + if(console_state == CARGO_CONSOLE) + var/obj/machinery/computer/cargo/console = parent + if(!console.requestonly) + cant_buy_restricted = FALSE + + else if((console_state == IRN_CONSOLE) && id_card?.registered_account) + if((ACCESS_COMMAND in id_card.access) || (ACCESS_QM in id_card.access)) + if((buyer == SSeconomy.get_dep_account(id_card.registered_account.account_job.paycheck_department)) && !self_paid) + cant_buy_restricted = FALSE + + data["cant_buy_restricted"] = !!cant_buy_restricted + data["budget_points"] = self_paid ? id_card?.registered_account?.account_balance : buyer?.account_balance + data["ammo_amount"] = ammo_purchase_num + data["self_paid"] = !!self_paid + data["armaments_list"] = list() + + for(var/armament_category as anything in SSarmaments.entries) + + var/list/armament_subcategories = list() + + for(var/subcategory as anything in SSarmaments.entries[armament_category][CATEGORY_ENTRY]) + var/list/subcategory_items = list() + for(var/datum/armament_entry/armament_entry as anything in SSarmaments.entries[armament_category][CATEGORY_ENTRY][subcategory]) + if(products && !(armament_entry.type in products)) + continue + + var/datum/armament_entry/company_import/gun_entry = armament_entry + + if(gun_entry.contraband) + if(!(console_state == CARGO_CONSOLE)) + continue + var/obj/machinery/computer/cargo/parent_console = parent + if(!parent_console.contraband) + continue + + subcategory_items += list(list( + "ref" = REF(armament_entry), + "icon" = armament_entry.cached_base64, + "name" = armament_entry.name, + "cost" = armament_entry.cost, + "buyable_ammo" = armament_entry.magazine ? TRUE : FALSE, + "magazine_cost" = armament_entry.magazine_cost, + "purchased" = purchased_items[armament_entry] ? purchased_items[armament_entry] : 0, + "description" = armament_entry.description, + "armament_category" = armament_entry.category, + "equipment_subcategory" = armament_entry.subcategory, + "restricted" = !!armament_entry.restricted, + )) + + if(!LAZYLEN(subcategory_items)) + continue + + armament_subcategories += list(list( + "subcategory" = subcategory, + "items" = subcategory_items, + )) + + if(!LAZYLEN(armament_subcategories)) + continue + + data["armaments_list"] += list(list( + "category" = armament_category, + "category_uses" = used_categories[armament_category], + "subcategories" = armament_subcategories, + )) + + return data + +/datum/component/armament/company_imports/ui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "CargoImportConsole") + ui.open() + +/datum/component/armament/company_imports/select_armament(mob/user, datum/armament_entry/company_import/armament_entry) + var/datum/bank_account/buyer = SSeconomy.get_dep_account(ACCOUNT_CAR) + var/obj/item/modular_computer/possible_downloader + var/obj/machinery/computer/cargo/possible_console + + if(console_state == CARGO_CONSOLE) + possible_console = parent + + else if(console_state == IRN_CONSOLE) + possible_downloader = parent + + if(!istype(armament_entry)) + return + + var/mob/living/carbon/human/the_person = user + + if(istype(the_person)) + + var/obj/item/card/id/id_card + + if(console_state == IRN_CONSOLE) + id_card = parent_prog.computer.computer_id_slot?.GetID() + else + id_card = the_person.get_idcard(TRUE) + + if(id_card?.registered_account && (console_state == IRN_CONSOLE)) + if((ACCESS_COMMAND in id_card.access) || (ACCESS_QM in id_card.access)) + parent_prog.requestonly = FALSE + buyer = SSeconomy.get_dep_account(id_card.registered_account.account_job.paycheck_department) + parent_prog.can_approve_requests = TRUE + else + parent_prog.requestonly = TRUE + parent_prog.can_approve_requests = FALSE + else + parent_prog?.requestonly = TRUE + + if(self_paid) + if(!istype(id_card)) + to_chat(user, span_warning("No ID card detected.")) + return + + if(istype(id_card, /obj/item/card/id/departmental_budget)) + to_chat(user, span_warning("[id_card] cannot be used to make purchases.")) + return + + var/datum/bank_account/account = id_card.registered_account + + if(!istype(account)) + to_chat(user, span_warning("Invalid bank account.")) + return + + buyer = account + + if(issilicon(user) && (console_state == IRN_CONSOLE)) + parent_prog.can_approve_requests = TRUE + parent_prog.requestonly = FALSE + + if(!buyer) + to_chat(user, span_warning("No budget found!")) + return + + if(!ishuman(user) && !issilicon(user)) + return + + if(!buyer.has_money(armament_entry.cost)) + to_chat(user, span_warning("Not enough money!")) + return + + var/name + + if(issilicon(user)) + name = user.real_name + else + the_person.get_authentification_name() + + var/reason = "" + + if(possible_console) + if(possible_console.requestonly && !self_paid) + reason = tgui_input_text(user, "Reason", name) + if(isnull(reason)) + return + + else if(possible_downloader) + var/datum/computer_file/program/budgetorders/parent_file = parent_prog + if((parent_file.requestonly && !self_paid) || !(possible_downloader.computer_id_slot?.GetID())) + reason = tgui_input_text(user, "Reason", name) + if(isnull(reason)) + return + + used_categories[armament_entry.category]++ + + purchased_items[armament_entry]++ + + var/datum/supply_pack/armament/created_pack = new + created_pack.name = initial(armament_entry.item_type.name) + created_pack.cost = cost_calculate(armament_entry.cost) //Paid for seperately + created_pack.contains = list(armament_entry.item_type) + + var/rank + + if(issilicon(user)) + rank = "Silicon" + else + rank = the_person.get_assignment(hand_first = TRUE) + + var/ckey = user.ckey + + var/datum/supply_order/company_import/created_order + if(buyer != SSeconomy.get_dep_account(ACCOUNT_CAR)) + created_order = new(created_pack, name, rank, ckey, paying_account = buyer, reason = reason, can_be_cancelled = TRUE) + else + created_pack.goody = FALSE // Cargo ordered stuff should just show up in a box I think + created_order = new(created_pack, name, rank, ckey, reason = reason, can_be_cancelled = TRUE) + created_order.selected_entry = armament_entry + created_order.used_component = src + if(console_state == CARGO_CONSOLE) + created_order.generateRequisition(get_turf(parent)) + if(possible_console.requestonly && !self_paid) + SSshuttle.request_list += created_order + else + SSshuttle.shopping_list += created_order + else if(console_state == IRN_CONSOLE) + var/datum/computer_file/program/budgetorders/comp_file = parent_prog + created_order.generateRequisition(get_turf(parent)) + if(comp_file.requestonly && !self_paid) + SSshuttle.request_list += created_order + else + SSshuttle.shopping_list += created_order + +/datum/component/armament/company_imports/proc/cost_calculate(cost) + . = cost + . *= SSeconomy.pack_price_modifier + +/datum/component/armament/company_imports/ui_act(action, list/params) + . = ..() + if(.) + return + + switch(action) + if("toggleprivate") + var/obj/item/card/id/id_card + var/mob/living/carbon/human/the_person = usr + + if(!istype(the_person)) + if(issilicon(the_person)) + self_paid = FALSE + return + + if(console_state == IRN_CONSOLE) + id_card = parent_prog.computer.computer_id_slot?.GetID() + else + id_card = the_person.get_idcard(TRUE) + + if(!id_card) + return + + self_paid = !self_paid + +#undef MAX_AMMO_AMOUNT +#undef CARGO_CONSOLE +#undef IRN_CONSOLE diff --git a/monkestation/code/modules/blueshift/components/cell_component.dm b/monkestation/code/modules/blueshift/components/cell_component.dm new file mode 100644 index 000000000000..9a4522c17d94 --- /dev/null +++ b/monkestation/code/modules/blueshift/components/cell_component.dm @@ -0,0 +1,207 @@ +/* +CELL COMPONENT + +What we aim to achieve with cell components is a universal framework for all items that would logically use batteries, +Be it a flashlight, T-ray scanner or multitool. All of them would logically require batteries right? Well, welcome, +to the cell component. + +General logic: +Component attaches to parent(flashlight etc) +Registers onhit signal to check if it's being slapped by a battery +Component moves battery to equipment loc, keeps a record, and then communicates with +the equipment and controls the behaviour of said equipment. + +If it's a robot, it uses the robot cell - Using certified shitcode.(this needs redone) + +If you are adding this to an item that is active for a period of time, register signal to COMSIG_CELL_START_USE when it would start using the cell +and COMSIG_CELL_STOP_USE when it should stop. To handle the turning off of said item once the cell is depleted, add your code into the +component_cell_out_of_charge/component_cell_removed proc using loc where necessary, processing is done in the component! +*/ + +/datum/component/cell + /// Our reference to the inserted cell, which will be stored in the parent. + var/obj/item/stock_parts/cell/inserted_cell + /// The item reference to parent. + var/obj/item/equipment + /// How much power do we use each process? + var/power_use_amount = 50 + /// Are we using a robot's powersource? + var/inside_robot = FALSE + /// Callback interaction for when the cell is removed. + var/datum/callback/on_cell_removed = null + ///Can this cell be removed from the parent? + var/cell_can_be_removed = TRUE + ///Our reference to the cell overlay + var/mutable_appearance/cell_overlay = null + ///Do we have cell overlays to be applied? + var/has_cell_overlays + +/datum/component/cell/Initialize(cell_override, _on_cell_removed, _power_use_amount, start_with_cell = TRUE, _cell_can_be_removed, _has_cell_overlays = TRUE) + if(QDELETED(parent)) + qdel(src) + return + + if(!isitem(parent)) //Currently only compatable with items. + return COMPONENT_INCOMPATIBLE + + equipment = parent //We'd like a simple reference to the atom this component is attached to instead of having to declare it every time we use it. + + if(_on_cell_removed) + src.on_cell_removed = _on_cell_removed + + has_cell_overlays = _has_cell_overlays + + if(_power_use_amount) + power_use_amount = _power_use_amount + else + power_use_amount = equipment.power_use_amount + + if(_cell_can_be_removed) + cell_can_be_removed = _cell_can_be_removed + + //So this is shitcode in it's ultimate form. Right now, as far as I can see, this is the only way to handle robot items that would normally use a cell. + if(istype(equipment.loc, /obj/item/robot_model)) //Really, I absolutely hate borg code. + inside_robot = TRUE + else if(start_with_cell) + var/obj/item/stock_parts/cell/new_cell + if(!cell_override) + new_cell = new /obj/item/stock_parts/cell/upgraded() + else + new_cell = new cell_override() + inserted_cell = new_cell + new_cell.forceMove(parent) //We use the parents location so things like EMP's can interact with the cell. + handle_cell_overlays() + return ..() + +/datum/component/cell/RegisterWithParent() + //Component to Parent signal registries + RegisterSignal(parent, COMSIG_ITEM_POWER_USE, PROC_REF(simple_power_use)) + RegisterSignal(parent, COMSIG_ATOM_ATTACKBY, PROC_REF(insert_cell)) + RegisterSignal(parent, COMSIG_CLICK_CTRL_SHIFT , PROC_REF(remove_cell)) + RegisterSignal(parent, COMSIG_ATOM_EXAMINE, PROC_REF(examine_cell)) + +/datum/component/cell/UnregisterFromParent() + UnregisterSignal(parent, COMSIG_ITEM_POWER_USE) + UnregisterSignal(parent, COMSIG_ATOM_ATTACKBY) + UnregisterSignal(parent, COMSIG_CLICK_CTRL_SHIFT) + UnregisterSignal(parent, COMSIG_ATOM_EXAMINE) + +/datum/component/cell/Destroy(force, silent) + if(on_cell_removed) + on_cell_removed = null + if(inserted_cell) + if(!inside_robot) //We really don't want to be deleting the robot's cell. + QDEL_NULL(inserted_cell) + inserted_cell = null + return ..() + +/** + * The basic way of processing the cell, with included feedback. + * + * This proc is the basic way of processing the cell, with included feedback. + * It will return a bitflag if it failed to use the power, or COMPONENT_POWER_SUCCESS if it succeeds. + * Arguments: + * * use_amount - an override + * * check_only - will only return if it can use the cell and feedback relating to that including any relevant detail + */ +/datum/component/cell/proc/simple_power_use(datum/source, use_amount, mob/user, check_only) + SIGNAL_HANDLER + + if(inside_robot) + return COMPONENT_POWER_SUCCESS + + if(!use_amount) + use_amount = power_use_amount + + if(!inserted_cell) + if(user) + to_chat(user, span_danger("There is no cell inside [equipment]")) + return COMPONENT_NO_CELL + + if(check_only && inserted_cell.charge < use_amount) + if(user) + to_chat(user, span_danger("The cell inside [equipment] does not have enough charge to perform this action!")) + return COMPONENT_NO_CHARGE + + if(!inserted_cell.use(use_amount)) + inserted_cell.update_appearance() //Updates the attached cell sprite - Why does this not happen in cell.use? + if(user) + to_chat(user, span_danger("The cell inside [equipment] does not have enough charge to perform this action!")) + return COMPONENT_NO_CHARGE + + inserted_cell.update_appearance() + + return COMPONENT_POWER_SUCCESS + +/datum/component/cell/proc/examine_cell(atom/A, mob/user, list/examine_list) + SIGNAL_HANDLER + + if(!inserted_cell) + examine_list += span_danger("It does not have a cell inserted!") + else if(!inside_robot) + examine_list += span_notice("It has [inserted_cell] inserted. It has [inserted_cell.percent()]% charge left. \ + Ctrl+Shift+Click to remove the [inserted_cell].") + else + examine_list += span_notice("It is drawing power from an external powersource, reading [inserted_cell.percent()]% charge.") + +/// Handling of cell removal. +/datum/component/cell/proc/remove_cell(datum/source, mob/user) + SIGNAL_HANDLER + if(!equipment.can_interact(user)) + return + + if(inside_robot) + return + + if(!cell_can_be_removed) + return + + if(!isliving(user)) + return + + if(inserted_cell) + to_chat(user, span_notice("You remove [inserted_cell] from [equipment]!")) + playsound(equipment, 'sound/weapons/magout.ogg', 40, TRUE) + inserted_cell.forceMove(get_turf(equipment)) + INVOKE_ASYNC(user, TYPE_PROC_REF(/mob/living, put_in_hands), inserted_cell) + inserted_cell = null + if(on_cell_removed) + on_cell_removed.Invoke() + handle_cell_overlays(TRUE) + else + to_chat(user, span_danger("There is no cell inserted in [equipment]!")) + +/// Handling of cell insertion. +/datum/component/cell/proc/insert_cell(datum/source, obj/item/inserting_item, mob/living/user, params) + SIGNAL_HANDLER + if(!equipment.can_interact(user)) + return + + if(inside_robot) //More robot shitcode, if we allowed them to remove the cell, it would cause the universe to implode. + return + + if(!istype(inserting_item, /obj/item/stock_parts/cell)) + return + + if(inserted_cell) //No quickswap compatibility + to_chat(user, span_danger("There is already a cell inserted in [equipment]!")) + return + + to_chat(user, span_notice("You insert [inserting_item] into [equipment]!")) + playsound(equipment, 'sound/weapons/magin.ogg', 40, TRUE) + inserted_cell = inserting_item + inserting_item.forceMove(parent) + handle_cell_overlays(FALSE) + +/datum/component/cell/proc/handle_cell_overlays(update_overlays) + if(!has_cell_overlays) + return + if(inserted_cell) + cell_overlay = mutable_appearance(equipment.icon, "[initial(equipment.icon_state)]_cell") + equipment.add_overlay(cell_overlay) + else + QDEL_NULL(cell_overlay) + cell_overlay = null + if(update_overlays) + equipment.overlays.Cut() + equipment.update_overlays() diff --git a/monkestation/code/modules/blueshift/components/clothing_damaged_by_bullets.dm b/monkestation/code/modules/blueshift/components/clothing_damaged_by_bullets.dm new file mode 100644 index 000000000000..48d569486607 --- /dev/null +++ b/monkestation/code/modules/blueshift/components/clothing_damaged_by_bullets.dm @@ -0,0 +1,81 @@ +/// Component that lets clothing be damaged in zones by piercing bullets. The parent MUST have limb_integrity set. +/datum/component/clothing_damaged_by_bullets + /// How much of the incoming projectile damage is taken, multiplier + var/projectile_damage_multiplier + /// Who is wearing the target? + var/mob/living/wearer + +/datum/component/clothing_damaged_by_bullets/Initialize(projectile_damage_multiplier = 1) + if(!istype(parent, /obj/item/clothing)) // Just in case someone loses it and tries to put this on something that's not clothing + return COMPONENT_INCOMPATIBLE + + var/obj/item/clothing/parent_clothing = parent + + src.projectile_damage_multiplier = projectile_damage_multiplier + + if(ismob(parent_clothing.loc)) + var/mob/holder = parent_clothing.loc + if(holder.is_holding(parent_clothing)) + return + set_wearer(holder) + +/datum/component/clothing_damaged_by_bullets/RegisterWithParent() + RegisterSignal(parent, COMSIG_ATOM_EXAMINE, PROC_REF(on_examine)) + RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, PROC_REF(on_equipped)) + RegisterSignal(parent, COMSIG_ITEM_DROPPED, PROC_REF(lost_wearer)) + +/datum/component/clothing_damaged_by_bullets/UnregisterFromParent() + UnregisterSignal(parent, list(COMSIG_ATOM_EXAMINE, COMSIG_ITEM_DROPPED, COMSIG_ITEM_EQUIPPED, COMSIG_QDELETING, COMSIG_ATOM_BULLET_ACT)) + +/// Check if we've been equipped to a valid slot to shield +/datum/component/clothing_damaged_by_bullets/proc/on_equipped(datum/source, mob/user, slot) + SIGNAL_HANDLER + + if((slot & ITEM_SLOT_HANDS)) + lost_wearer(source, user) + return + set_wearer(user) + +/// Either we've been dropped or our wearer has been QDEL'd. Either way, they're no longer our problem +/datum/component/clothing_damaged_by_bullets/proc/lost_wearer(datum/source, mob/user) + SIGNAL_HANDLER + + wearer = null + UnregisterSignal(parent, list(COMSIG_QDELETING, COMSIG_ATOM_BULLET_ACT)) + +/// Sets the wearer and registers the appropriate signals for them +/datum/component/clothing_damaged_by_bullets/proc/set_wearer(mob/user) + if(wearer == user) + return + if(!isnull(wearer)) + CRASH("[type] called set_wearer with [user] but [wearer] was already the wearer!") + + wearer = user + RegisterSignal(wearer, COMSIG_QDELETING, PROC_REF(lost_wearer)) + RegisterSignal(wearer, COMSIG_ATOM_BULLET_ACT, PROC_REF(hit_by_projectile)) + +/// Checks an incoming projectile to see if it should damage the thing we're attached to, +/datum/component/clothing_damaged_by_bullets/proc/hit_by_projectile(mob/living/dude_getting_hit, obj/projectile/hitting_projectile, def_zone) + SIGNAL_HANDLER + + var/obj/item/clothing/clothing_parent = parent + + if(!(def_zone in cover_flags2body_zones(clothing_parent.body_parts_covered))) + return + if(hitting_projectile.sharpness == SHARP_EDGED) + return + if(hitting_projectile.damage_type != BRUTE) + return + + /// This seems complex but the actual math is simple, the damage of the projectile * vest damage multiplier, divided by two if the projectile is weak to armour, then modified by wound bonus + var/total_damage = ((hitting_projectile.damage * projectile_damage_multiplier) * (hitting_projectile.weak_against_armour ? 0.5 : 1) * (1 + (hitting_projectile.wound_bonus / 10))) + var/damage_dealt = clothing_parent.take_damage(total_damage, BRUTE, hitting_projectile.armour_penetration, FALSE) + + if(clothing_parent.limb_integrity) + clothing_parent.take_damage_zone(def_zone, damage_dealt, BRUTE) + +/// Warns any examiner that the clothing we're stuck to will be damaged by piercing bullets +/datum/component/clothing_damaged_by_bullets/proc/on_examine(obj/item/source, mob/examiner, list/examine_list) + SIGNAL_HANDLER + + examine_list += "
[span_warning("This will be damaged when it protects you from bullets, taking [projectile_damage_multiplier] times the damage that the bullet deals.")]" diff --git a/monkestation/code/modules/blueshift/components/lockable_storage.dm b/monkestation/code/modules/blueshift/components/lockable_storage.dm new file mode 100644 index 000000000000..cce0d603f559 --- /dev/null +++ b/monkestation/code/modules/blueshift/components/lockable_storage.dm @@ -0,0 +1,206 @@ +/** + * ##lockable_storage + * Adds a UI to the object that triggers when you use it in hand (if item) or attack (everything else). + * The UI is a lock that, when unlocked, allows you to access the contents inside of it. + * When using this, make sure you have icons for `on_update_icon_state`. + */ +/datum/component/lockable_storage + ///Boolean on whether the panel has been hacked open with a screwdriver. + var/panel_open = FALSE + ///The number currently sitting in the briefcase's panel. + var/numeric_input + + ///The code that will open this safe, set by usually players. + ///Importantly, can be null if there's no password. + var/lock_code + ///Boolean on whether the storage can be hacked open with a multitool. + var/can_hack_open + +/datum/component/lockable_storage/Initialize( + lock_code, + can_hack_open = TRUE, +) + . = ..() + if(!isobj(parent)) + return COMPONENT_INCOMPATIBLE + + var/atom/atom_parent = parent + atom_parent.flags_1 |= HAS_CONTEXTUAL_SCREENTIPS_1 + + if(!atom_parent.atom_storage) + atom_parent.create_storage( + max_specific_storage = WEIGHT_CLASS_GIGANTIC, + max_total_storage = 14, + canthold = list(/obj/item/storage/briefcase/secure), + ) + + + src.lock_code = lock_code + if(!isnull(lock_code)) + atom_parent.atom_storage.locked = STORAGE_FULLY_LOCKED + src.can_hack_open = can_hack_open + + atom_parent.update_appearance() + +/datum/component/lockable_storage/RegisterWithParent() + . = ..() + if(can_hack_open) + RegisterSignal(parent, COMSIG_ATOM_TOOL_ACT(TOOL_SCREWDRIVER), PROC_REF(on_screwdriver_act)) + RegisterSignal(parent, COMSIG_ATOM_TOOL_ACT(TOOL_MULTITOOL), PROC_REF(on_multitool_act)) + + RegisterSignal(parent, COMSIG_ATOM_EXAMINE, PROC_REF(on_examine)) + RegisterSignal(parent, COMSIG_ATOM_REQUESTING_CONTEXT_FROM_ITEM, PROC_REF(on_requesting_context_from_item)) + RegisterSignal(parent, COMSIG_ATOM_UPDATE_ICON_STATE, PROC_REF(on_update_icon_state)) + + if(isitem(parent)) + RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, PROC_REF(on_interact)) + else + RegisterSignal(parent, COMSIG_ATOM_ATTACK_HAND, PROC_REF(on_interact)) + +/datum/component/lockable_storage/UnregisterFromParent() + if(can_hack_open) + UnregisterSignal(parent, list( + COMSIG_ATOM_TOOL_ACT(TOOL_SCREWDRIVER), + COMSIG_ATOM_TOOL_ACT(TOOL_MULTITOOL), + )) + UnregisterSignal(parent, list( + COMSIG_ATOM_EXAMINE, + COMSIG_ATOM_REQUESTING_CONTEXT_FROM_ITEM, + COMSIG_ATOM_UPDATE_ICON_STATE, + )) + + if(isitem(parent)) + UnregisterSignal(parent, COMSIG_ITEM_ATTACK_SELF) + else + UnregisterSignal(parent, COMSIG_ATOM_ATTACK_HAND) + return ..() + +/** + * Adds context screentips to the locked item. + * Arguments: + * * source - The item that will display its screentip + * * context - The list of context that will be displayed. We add onto this list for it to show up. + * * held_item - The item in your hand, which in this case should be a screwdriver or multitool, if necessary. + * * user - The user who is going to see the screentips. + */ +/datum/component/lockable_storage/proc/on_requesting_context_from_item(datum/source, list/context, obj/item/held_item, mob/user) + SIGNAL_HANDLER + if(isnull(held_item)) + context[SCREENTIP_CONTEXT_LMB] = "Open storage" + return CONTEXTUAL_SCREENTIP_SET + + if(can_hack_open) + switch(held_item.tool_behaviour) + if(TOOL_SCREWDRIVER) + context[SCREENTIP_CONTEXT_LMB] = "[panel_open ? "Close" : "Open"] panel" + return CONTEXTUAL_SCREENTIP_SET + if(TOOL_MULTITOOL) + context[SCREENTIP_CONTEXT_LMB] = "Hack panel open" + return CONTEXTUAL_SCREENTIP_SET + + return NONE + +///Called when examining the storage item. +/datum/component/lockable_storage/proc/on_examine(atom/source, mob/user, list/examine_list) + SIGNAL_HANDLER + if(can_hack_open) + examine_list += "The service panel is currently [panel_open ? "unscrewed" : "screwed shut"]." + +/** + * Called when a screwdriver is used on the parent, if it's hackable. + */ +/datum/component/lockable_storage/proc/on_screwdriver_act(atom/source, mob/user, obj/item/tool) + SIGNAL_HANDLER + if(!can_hack_open || !source.atom_storage.locked) + return NONE + + panel_open = !panel_open + source.balloon_alert(user, "panel [panel_open ? "opened" : "closed"]") + return + +/** + * Called when a multitool is used on the parent, if it's hackable. + * Checks if we can start hacking and, if so, will begin the hacking process. + */ +/datum/component/lockable_storage/proc/on_multitool_act(atom/source, mob/user, obj/item/tool) + SIGNAL_HANDLER + if(!can_hack_open || !source.atom_storage.locked) + return NONE + if(!panel_open) + source.balloon_alert(user, "panel closed!") + return + source.balloon_alert(user, "hacking...") + INVOKE_ASYNC(src, PROC_REF(hack_open), source, user, tool) + return + +///Does a do_after to hack the storage open, takes a long time cause idk. +/datum/component/lockable_storage/proc/hack_open(atom/source, mob/user, obj/item/tool) + if(!tool.use_tool(parent, user, 40 SECONDS)) + return + source.balloon_alert(user, "hacked") + lock_code = null + +///Updates the icon state depending on if we're locked or not. +/datum/component/lockable_storage/proc/on_update_icon_state(obj/source) + SIGNAL_HANDLER + source.icon_state = "[source.base_icon_state][source.atom_storage.locked ? "_locked" : null]" + +///Called when interacted with in-hand or on attack, opens the UI. +/datum/component/lockable_storage/proc/on_interact(atom/source, mob/user) + SIGNAL_HANDLER + INVOKE_ASYNC(src, PROC_REF(ui_interact), user) + +/datum/component/lockable_storage/ui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "LockedSafe", parent) + ui.open() + +/datum/component/lockable_storage/ui_data(mob/user) + var/list/data = list() + var/atom/source = parent + data["input_code"] = numeric_input || "*****" + data["locked"] = source.atom_storage.locked + data["lock_code"] = !!lock_code //we just need to know if it has one. + return data + +/datum/component/lockable_storage/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) + . = ..() + if(action != "keypad") + return TRUE + var/digit = params["digit"] + switch(digit) + //locking it back up + if("C") + var/atom/source = parent + numeric_input = "" + //you can't lock it if it's already locked or lacks a lock code. + if(source.atom_storage.locked || isnull(lock_code)) + return TRUE + source.atom_storage.locked = STORAGE_FULLY_LOCKED + source.atom_storage.hide_contents(usr) + source.update_appearance(UPDATE_ICON) + return TRUE + //setting a password & unlocking + if("E") + //inputting a new code if there isn't one set. + if(!lock_code) + if(length(numeric_input) != 5) + return TRUE + lock_code = numeric_input + numeric_input = "" + return TRUE + //unlocking the current code. + if(numeric_input != lock_code) + return TRUE + var/atom/source = parent + source.atom_storage.locked = STORAGE_NOT_LOCKED + numeric_input = "" + source.update_appearance(UPDATE_ICON) + return TRUE + //putting digits in. + if("0", "1", "2", "3", "4", "5", "6", "7", "8", "9") + if(length(numeric_input) == 5) + return + numeric_input += digit + return TRUE diff --git a/monkestation/code/modules/blueshift/components/polarizer.dm b/monkestation/code/modules/blueshift/components/polarizer.dm new file mode 100644 index 000000000000..ddd24ec11617 --- /dev/null +++ b/monkestation/code/modules/blueshift/components/polarizer.dm @@ -0,0 +1,163 @@ +GLOBAL_LIST_EMPTY(polarization_controllers) + +/** + * A component for windows to allow them to be dynamically rendered opaque / + * transparent based on a button press. + */ +/datum/component/polarization_controller + /// The ID of the polarizer we're listening to. + var/id + /// The color of the window when polarized. + var/polarized_color = "#222222" + /// The color the window was before it was polarized. + var/non_polarized_color = "#FFFFFF" + /// The time it takes for the polarization process to happen. + var/polarization_process_duration = 0.5 SECONDS + /// The capacitor that was used on the window, if any. Can be null if the + /// window was spawned already polarized. + var/obj/item/stock_parts/capacitor/used_capacitor + + +/datum/component/polarization_controller/Initialize(obj/item/stock_parts/capacitor/used_capacitor = null, polarizer_id = null) + if(!istype(parent, /obj/structure/window)) + return COMPONENT_INCOMPATIBLE + + var/obj/managed_window = parent + + if(used_capacitor) + src.used_capacitor = used_capacitor + used_capacitor.forceMove(managed_window) + + if(polarizer_id) + id = "[polarizer_id]" + // But why make it a string here? Otherwise it won't be an associative list and it kind of explodes. Shitty, I know. + LAZYADDASSOC(GLOB.polarization_controllers, id, list(src)) + + RegisterSignal(parent, COMSIG_ATOM_ATTACKBY, PROC_REF(on_window_attackby)) + RegisterSignal(parent, COMSIG_ATOM_EXAMINE, PROC_REF(on_window_examine)) + RegisterSignal(parent, COMSIG_ATOM_TOOL_ACT(TOOL_MULTITOOL), PROC_REF(on_window_multitool_act)) + + +/datum/component/polarization_controller/Destroy(force, silent) + if(id) + LAZYREMOVEASSOC(GLOB.polarization_controllers, id, list(src)) + + if(used_capacitor) + QDEL_NULL(used_capacitor) + + return ..() + + +/** + * Handles toggling the window between opaque and transparent. + * + * Arguments: + * * should_be_opaque - Boolean on whether or not the window should now be opaque. + */ +/datum/component/polarization_controller/proc/toggle(should_be_opaque) + var/obj/managed_window = parent + + // No need to do anything if we're already at the right opacity. + if(managed_window.opacity == !!should_be_opaque) + return + + if(should_be_opaque) + non_polarized_color = managed_window.color + animate(managed_window, alpha = 255, color = polarized_color, time = polarization_process_duration) + addtimer(CALLBACK(managed_window, TYPE_PROC_REF(/atom, set_opacity), TRUE), polarization_process_duration) // So that is changes opacity mid-way through the animation, hopefully. + else + animate(managed_window, alpha = initial(managed_window.alpha), color = non_polarized_color, time = polarization_process_duration) + managed_window.set_opacity(FALSE) // So that is changes opacity mid-way through the animation, hopefully. + + + +/** + * Called when the parent window is being hit by an item + * + * Arguments: + * * obj/item/attacking_item - The item hitting this atom + * * mob/user - The wielder of this item + * * params - click params such as alt/shift etc + * + * See: [/obj/item/proc/melee_attack_chain] + */ +/datum/component/polarization_controller/proc/on_window_attackby(datum/source, obj/item/attacking_item, mob/user, params) + SIGNAL_HANDLER + + if(!istype(attacking_item, /obj/item/assembly/control/polarizer)) + return + + var/obj/item/assembly/control/polarizer/polarizer = attacking_item + var/atom/parent_atom = parent + + if(!polarizer.id) + parent_atom.balloon_alert(user, "set id on controller first!") + return COMPONENT_NO_AFTERATTACK + + if(id) + LAZYREMOVEASSOC(GLOB.polarization_controllers, id, list(src)) + + id = "[polarizer.id]" + + LAZYADDASSOC(GLOB.polarization_controllers, id, list(src)) + parent_atom.balloon_alert(user, "linked polarizer!") + + return COMPONENT_NO_AFTERATTACK + + +/** + * Handles adding the examine strings to windows that have a polarization + * controller installed. + */ +/datum/component/polarization_controller/proc/on_window_examine(datum/source, mob/user, list/examine_strings) + SIGNAL_HANDLER + + examine_strings += span_notice("It has a polarization controller installed.") + examine_strings += span_notice("Use a window polarizing controller on it to link it to that controller's current ID.") + examine_strings += span_notice("Use a multitool on it to remove the polarization controller.") + + +/** + * Signal handler to handle the removal of this component when someone uses a + * multitool (or something that acts like one) on the parent window. + */ +/datum/component/polarization_controller/proc/on_window_multitool_act(datum/source, mob/user, obj/item/tool) + SIGNAL_HANDLER + + remove_polarization_controller(source, user, tool) + + return COMPONENT_BLOCK_TOOL_ATTACK + + +/** + * Proc that handles removing the polarization controller. + * Had to be made into a separate proc so that it wouldn't be waited for by the + * signal handler for the multitool tool act. + */ +/datum/component/polarization_controller/proc/remove_polarization_controller(datum/source, mob/user, obj/item/tool) + set waitfor = FALSE + + var/obj/managed_window = parent + + managed_window.balloon_alert(user, "removing polarization controller") + + if(!do_after(user, 1 SECONDS, managed_window)) + managed_window.balloon_alert(user, "cancelled removal") + return + + toggle(FALSE) + + if(!used_capacitor) + used_capacitor = new + + used_capacitor.forceMove(managed_window.drop_location()) + + used_capacitor = null + + UnregisterSignal(parent, COMSIG_ATOM_ATTACKBY) + UnregisterSignal(parent, COMSIG_ATOM_EXAMINE) + UnregisterSignal(parent, COMSIG_ATOM_TOOL_ACT(TOOL_MULTITOOL)) + + managed_window.balloon_alert(user, "removed polarization controller") + + qdel(src) diff --git a/monkestation/code/modules/blueshift/components/shielded_suits.dm b/monkestation/code/modules/blueshift/components/shielded_suits.dm new file mode 100644 index 000000000000..94601de771ab --- /dev/null +++ b/monkestation/code/modules/blueshift/components/shielded_suits.dm @@ -0,0 +1,24 @@ +/datum/component/shielded/suit + +/datum/component/shielded/suit/process(seconds_per_tick) + if(current_charges >= max_charges) + STOP_PROCESSING(SSdcs, src) + return + + if(!COOLDOWN_FINISHED(src, recently_hit_cd)) + return + if(!COOLDOWN_FINISHED(src, charge_add_cd)) + return + + var/obj/item/item_parent = parent + COOLDOWN_START(src, charge_add_cd, charge_increment_delay) + adjust_charge(charge_recovery) // set the number of charges to current + recovery per increment, clamped from zero to max_charges + playsound(item_parent, 'sound/magic/charge.ogg', 50, TRUE) + + +/datum/component/shielded/suit/default_run_hit_callback(mob/living/owner, attack_text, current_charges) + var/obj/item/item_parent = parent + owner.visible_message(span_danger("[owner]'s armor absorbs [attack_text]!")) + if(current_charges <= 0) + owner.visible_message(span_warning("[owner]'s armor breaks!")) + playsound(item_parent, 'sound/items/ceramic_break.ogg', 60, TRUE) diff --git a/monkestation/code/modules/blueshift/components/soulcatcher.dm b/monkestation/code/modules/blueshift/components/soulcatcher.dm new file mode 100644 index 000000000000..6e9c5eed177a --- /dev/null +++ b/monkestation/code/modules/blueshift/components/soulcatcher.dm @@ -0,0 +1,111 @@ +/datum/component/soulcatcher/small_device + max_souls = 1 + +/datum/component/soulcatcher/attachable_soulcatcher + max_souls = 1 + communicate_as_parent = TRUE + removable = TRUE + +/datum/component/soulcatcher/attachable_soulcatcher/New() + . = ..() + var/obj/item/parent_item = parent + if(!istype(parent_item)) + return COMPONENT_INCOMPATIBLE + + name = parent_item.name + var/datum/soulcatcher_room/first_room = soulcatcher_rooms[1] + first_room.name = parent_item.name + first_room.room_description = parent_item.desc + + RegisterSignal(parent, COMSIG_ATOM_EXAMINE, PROC_REF(on_examine)) + RegisterSignal(parent, COMSIG_CLICK_CTRL_SHIFT, PROC_REF(bring_up_ui)) + RegisterSignal(parent, COMSIG_PREQDELETED, PROC_REF(remove_self)) + +/// Adds text to the examine text of the parent item, explaining that the item can be used to enable the use of NIFSoft HUDs +/datum/component/soulcatcher/attachable_soulcatcher/proc/on_examine(datum/source, mob/user, list/examine_text) + SIGNAL_HANDLER + examine_text += span_cyan("[source] has a soulcatcher attached to it, Ctrl+Shift+Click to use it.") + +/datum/component/soulcatcher/attachable_soulcatcher/proc/bring_up_ui(datum/source, mob/user) + SIGNAL_HANDLER + INVOKE_ASYNC(src, PROC_REF(ui_interact), user) + +/datum/component/soulcatcher/attachable_soulcatcher/Destroy(force) + UnregisterSignal(parent, COMSIG_ATOM_EXAMINE) + UnregisterSignal(parent, COMSIG_CLICK_CTRL_SHIFT) + UnregisterSignal(parent, COMSIG_PREQDELETED) + return ..() + +/datum/component/soulcatcher/attachable_soulcatcher/remove_self() + var/obj/item/parent_item = parent + var/turf/drop_turf = get_turf(parent_item) + var/obj/item/attachable_soulcatcher/dropped_item = new (drop_turf) + + var/datum/component/soulcatcher/dropped_soulcatcher = dropped_item.GetComponent(/datum/component/soulcatcher) + var/datum/soulcatcher_room/target_room = dropped_soulcatcher.soulcatcher_rooms[1] + var/list/current_souls = get_current_souls() + + if(current_souls) // If we have souls inside of here, they should be transferred to the new object + for(var/mob/living/soulcatcher_soul/soul as anything in current_souls) + var/datum/soulcatcher_room/current_room = soul.current_room.resolve() + if(istype(current_room)) + current_room.transfer_soul(soul, target_room) + + return ..() + +/obj/item/attachable_soulcatcher + name = "Poltergeist-Type RSD" + desc = "This device, a polymorphic nanomachine net, wraps around objects of most sizes and allows them to function as a container for Resonance. The soul in question within the vessel is imbued much like it would be in a body or a normal Soulcatcher, perceiving the world and even speaking out of their new form. The nanomachine net of the device allows for the consciousness to somewhat manipulate their container, but any large-scale movement is out of the question." + icon = 'monkestation/code/modules/blueshift/icons/obj/devices.dmi' + icon_state = "attachable-soulcatcher" + w_class = WEIGHT_CLASS_SMALL + /// Do we want to destory the item once it is attached to an item? + var/destroy_on_use = TRUE + /// What items do we want to prevent the viewer from attaching this to? + var/list/blacklisted_items = list( + /obj/item/organ, + /obj/item/mmi, + /obj/item/pai_card, + /obj/item/aicard, + /obj/item/card, + /obj/item/radio, + /obj/item/disk/nuclear, // Woah there + ) + /// What soulcathcer component is currnetly linked to this object? + var/datum/component/soulcatcher/small_device/linked_soulcatcher + +/obj/item/attachable_soulcatcher/Initialize(mapload) + . = ..() + linked_soulcatcher = AddComponent(/datum/component/soulcatcher/small_device) + linked_soulcatcher.name = name + +/obj/item/attachable_soulcatcher/attack_self(mob/user, modifiers) + linked_soulcatcher.ui_interact(user) + +/obj/item/attachable_soulcatcher/afterattack(obj/item/target_item, mob/user, proximity_flag, click_parameters) + . = ..() + if(!proximity_flag || !istype(target_item)) + return FALSE + + if(target_item.GetComponent(/datum/component/soulcatcher)) + balloon_alert(user, "already attached!") + return FALSE + + if(is_type_in_list(target_item, blacklisted_items)) + balloon_alert(user, "incompatible!") + return FALSE + + var/datum/component/soulcatcher/new_soulcatcher = target_item.AddComponent(/datum/component/soulcatcher/attachable_soulcatcher) + playsound(target_item.loc, 'sound/weapons/circsawhit.ogg', 50, vary = TRUE) + + var/datum/soulcatcher_room/target_room = new_soulcatcher.soulcatcher_rooms[1] + var/list/current_souls = linked_soulcatcher.get_current_souls() + if(current_souls) + for(var/mob/living/soulcatcher_soul/soul as anything in current_souls) + var/datum/soulcatcher_room/current_room = soul.current_room.resolve() + if(istype(current_room)) + current_room.transfer_soul(soul, target_room) + current_room.transfer_soul(soul, target_room) + + if(destroy_on_use) + qdel(src) diff --git a/monkestation/code/modules/blueshift/components/soulcatcher_base.dm b/monkestation/code/modules/blueshift/components/soulcatcher_base.dm new file mode 100644 index 000000000000..345fac866ad4 --- /dev/null +++ b/monkestation/code/modules/blueshift/components/soulcatcher_base.dm @@ -0,0 +1,816 @@ +///Global list containing any and all soulcatchers +GLOBAL_LIST_EMPTY(soulcatchers) + +#define SOULCATCHER_DEFAULT_COLOR "#75D5E1" +#define SOULCATCHER_WARNING_MESSAGE "You have entered a soulcatcher, do not share any information you have received while a ghost. If you have died within the round, you do not know your identity until your body has been scanned, standard blackout policy also applies." + +/** + * Soulcatcher Component + * + * This component functions as a bridge between the `soulcatcher_room` attached to itself and the parented datum. + * It handles the creation of new soulcatcher rooms, TGUI, and relaying messages to the parent datum. + * If the component is deleted, any soulcatcher rooms inside of `soulcatcher_rooms` will be deleted. + */ +/datum/component/soulcatcher + /// What is the name of the soulcatcher? + var/name = "soulcatcher" + /// What rooms are linked to this soulcatcher + var/list/soulcatcher_rooms = list() + /// What soulcatcher room are verbs sending messages to? + var/datum/soulcatcher_room/targeted_soulcatcher_room + /// What theme are we using for our soulcatcher UI? + var/ui_theme = "default" + + /// Are ghosts currently able to join this soulcatcher? + var/ghost_joinable = TRUE + /// Do we want to ask the user permission before the ghost joins? + var/require_approval = TRUE + /// What is the max number of people we can keep in this soulcatcher? If this is set to `FALSE` we don't have a limit + var/max_souls = FALSE + /// Are are the souls inside able to emote/speak as the parent? + var/communicate_as_parent = TRUE + /// Is the soulcatcher removable from the parent object? + var/removable = FALSE + +/datum/component/soulcatcher/New() + . = ..() + if(!parent) + return COMPONENT_INCOMPATIBLE + + create_room() + targeted_soulcatcher_room = soulcatcher_rooms[1] + GLOB.soulcatchers += src + + var/obj/item/soulcatcher_holder/soul_holder = parent + if(istype(soul_holder) && ismob(soul_holder.loc)) + var/mob/living/soulcatcher_owner = soul_holder.loc + add_verb(soulcatcher_owner, list( + /mob/living/proc/soulcatcher_say, + /mob/living/proc/soulcatcher_emote, + )) + +/datum/component/soulcatcher/Destroy(force) + GLOB.soulcatchers -= src + + targeted_soulcatcher_room = null + for(var/datum/soulcatcher_room as anything in soulcatcher_rooms) + soulcatcher_rooms -= soulcatcher_room + qdel(soulcatcher_room) + + var/mob/living/soulcatcher_owner = parent + var/obj/item/organ/internal/cyberimp/brain/nif/parent_nif = parent + if(istype(parent_nif)) + soulcatcher_owner = parent_nif.linked_mob + + if(istype(soulcatcher_owner)) + remove_verb(soulcatcher_owner, list( + /mob/living/proc/soulcatcher_say, + /mob/living/proc/soulcatcher_emote, + )) + + return ..() + +/** + * Creates a `/datum/soulcatcher_room` and adds it to the `soulcatcher_rooms` list. + * + * Arguments + * * target_name - The name that we want to assign to the created room. + * * target_desc - The description that we want to assign to the created room. + */ +/datum/component/soulcatcher/proc/create_room(target_name = "Default Room", target_desc = "An orange platform suspended in space orbited by reflective cubes of various sizes. There really isn't much here at the moment.") + var/datum/soulcatcher_room/created_room = new(src) + created_room.name = target_name + created_room.room_description = target_desc + soulcatcher_rooms += created_room + + created_room.master_soulcatcher = WEAKREF(src) + +/// Tries to find out who is currently using the soulcatcher, returns the holder. If no holder can be found, returns FALSE +/datum/component/soulcatcher/proc/get_current_holder() + var/mob/living/holder + + if(!istype(parent, /obj/item)) + return FALSE + + var/obj/item/parent_item = parent + holder = parent_item.loc + + if(!istype(holder)) + return FALSE + + return holder + +/// Receives a message from a soulcatcher room. +/datum/component/soulcatcher/proc/receive_message(message_to_receive) + if(!message_to_receive) + return FALSE + + var/mob/living/soulcatcher_owner = get_current_holder() + if(!soulcatcher_owner) + return FALSE + + to_chat(soulcatcher_owner, message_to_receive) + return TRUE + +/// Attempts to ping the current user of the soulcatcher, asking them if `joiner_name` is allowed in. If they are, the proc returns `TRUE`, otherwise returns FALSE +/datum/component/soulcatcher/proc/get_approval(joiner_name) + if(!require_approval) + return TRUE + + var/mob/living/soulcatcher_owner = get_current_holder() + + if(!soulcatcher_owner) + return FALSE + + if(tgui_alert(soulcatcher_owner, "Do you wish to allow [joiner_name] into your soulcatcher?", name, list("Yes", "No"), autofocus = FALSE) != "Yes") + return FALSE + + return TRUE + +/// Attempts to scan the body for the `previous_body component`, returns FALSE if the body is unable to be scanned, otherwise returns TRUE +/datum/component/soulcatcher/proc/scan_body(mob/living/parent_body, mob/living/user) + if(!parent_body || !user) + return FALSE + + var/signal_result = SEND_SIGNAL(parent_body, COMSIG_SOULCATCHER_SCAN_BODY, parent_body) + if(!signal_result) + to_chat(user, span_warning("[parent_body] has already been scanned!")) + return FALSE + + if(istype(parent, /obj/item/handheld_soulcatcher)) + var/obj/item/handheld_soulcatcher/parent_device = parent + playsound(parent_device, 'monkestation/code/modules/blueshift/sounds/default_good.ogg', 50, FALSE, ignore_walls = FALSE) + parent_device.visible_message(span_notice("[parent_device] beeps: [parent_body] is now scanned.")) + + return TRUE + +/// Returns a list containing all of the souls currently present within a soulcatcher. +/datum/component/soulcatcher/proc/get_current_souls() + var/list/current_souls = list() + for(var/datum/soulcatcher_room/room as anything in soulcatcher_rooms) + for(var/mob/living/soulcatcher_soul as anything in room.current_souls) + current_souls += soulcatcher_soul + + return current_souls + +/// Checks the total number of souls present and compares it with `max_souls` returns `TRUE` if there is room (or no limit), otherwise returns `FALSE` +/datum/component/soulcatcher/proc/check_for_vacancy() + if(!max_souls) + return TRUE + + if(length(get_current_souls()) >= max_souls) + return FALSE + + return TRUE + +/// Attempts to remove the soulcatcher from the attached object +/datum/component/soulcatcher/proc/remove_self() + if(!removable) + return FALSE + + qdel(src) + +/** + * Soulcatcher Room + * + * This datum is where souls are sent to when joining soulcatchers. + * It handles sending messages to souls from the outside along with adding new souls, transfering, and removing souls. + * + */ +/datum/soulcatcher_room + /// What is the name of the room? + var/name = "Default Room" + /// What is the description of the room? + var/room_description = "An orange platform suspended in space orbited by reflective cubes of various sizes. There really isn't much here at the moment." + /// What souls are currently inside of the room? + var/list/current_souls = list() + /// Weakref for the master soulcatcher datum + var/datum/weakref/master_soulcatcher + /// What is the name of the person sending the messages? + var/outside_voice = "Host" + /// Can the room be joined at all? + var/joinable = TRUE + /// What is the color of chat messages sent by the room? + var/room_color = SOULCATCHER_DEFAULT_COLOR + +/// Attemps to add a ghost to the soulcatcher room. +/datum/soulcatcher_room/proc/add_soul_from_ghost(mob/dead/observer/ghost) + if(!ghost || !ghost.ckey) + return FALSE + + if(!ghost.mind) + ghost.mind = new /datum/mind(ghost.key) + ghost.mind.name = ghost.name + ghost.mind.active = TRUE + + if(!add_soul(ghost.mind)) + return FALSE + + return TRUE + +/// Converts a mind into a soul and adds the resulting soul to the room. +/datum/soulcatcher_room/proc/add_soul(datum/mind/mind_to_add) + if(!mind_to_add) + return FALSE + + var/datum/component/soulcatcher/parent_soulcatcher = master_soulcatcher.resolve() + var/datum/parent_object = parent_soulcatcher.parent + if(!parent_object) + return FALSE + + var/mob/living/soulcatcher_soul/new_soul = new(parent_object) + new_soul.name = mind_to_add.name + + if(mind_to_add.current) + var/datum/component/previous_body/body_component = mind_to_add.current.AddComponent(/datum/component/previous_body) + body_component.soulcatcher_soul = WEAKREF(new_soul) + + new_soul.round_participant = TRUE + new_soul.body_scan_needed = TRUE + + new_soul.previous_body = WEAKREF(mind_to_add.current) + new_soul.name = pick(GLOB.last_names) //Until the body is discovered, the soul is a new person. + new_soul.soul_desc = "[new_soul] lacks a discernible form." + + mind_to_add.transfer_to(new_soul, TRUE) + current_souls += new_soul + new_soul.current_room = WEAKREF(src) + + /* + var/datum/preferences/preferences = new_soul.client?.prefs + if(preferences) + new_soul.ooc_notes = preferences.read_preference(/datum/preference/text/ooc_notes) + if(!new_soul.body_scan_needed) + new_soul.soul_desc = preferences.read_preference(/datum/preference/text/flavor_text) + */. + + to_chat(new_soul, span_cyan("You find yourself now inside of: [name]")) + to_chat(new_soul, span_notice(room_description)) + to_chat(new_soul, span_doyourjobidiot("You have entered a soulcatcher, do not share any information you have received while a ghost. If you have died within the round, you do not know your identity until your body has been scanned, standard blackout policy also applies.")) + to_chat(new_soul, span_notice("While inside of a soulcatcher, you are able to speak and emote by using the normal hotkeys and verbs, unless disabled by the owner.")) + to_chat(new_soul, span_notice("You may use the leave soulcatcher verb to leave the soulcatcher and return to your body at any time.")) + + var/atom/parent_atom = parent_object + if(istype(parent_atom)) + var/turf/soulcatcher_turf = get_turf(parent_soulcatcher.parent) + var/message_to_log = "[key_name(new_soul)] joined [src] inside of [parent_atom] at [loc_name(soulcatcher_turf)]" + parent_atom.log_message(message_to_log, LOG_GAME) + new_soul.log_message(message_to_log, LOG_GAME) + + return TRUE + +/// Removes a soul from a soulcatcher room, leaving it as a ghost. Returns `FALSE` if the `soul_to_remove` cannot be found, otherwise returns `TRUE` after a successful deletion. +/datum/soulcatcher_room/proc/remove_soul(mob/living/soulcatcher_soul/soul_to_remove) + if(!soul_to_remove || !(soul_to_remove in current_souls)) + return FALSE + + current_souls -= soul_to_remove + soul_to_remove.current_room = null + + soul_to_remove.return_to_body() + qdel(soul_to_remove) + + return TRUE + +/// Transfers a soul from a soulcatcher room to another soulcatcher room. Returns `FALSE` if the target room or target soul cannot be found. +/datum/soulcatcher_room/proc/transfer_soul(mob/living/soulcatcher_soul/target_soul, datum/soulcatcher_room/target_room) + if(!(target_soul in current_souls) || !target_room) + return FALSE + + var/datum/component/soulcatcher/target_master_soulcatcher = target_room.master_soulcatcher.resolve() + if(target_master_soulcatcher != master_soulcatcher.resolve()) + target_soul.forceMove(target_master_soulcatcher.parent) + + target_soul.current_room = WEAKREF(target_room) + current_souls -= target_soul + target_room.current_souls += target_soul + + to_chat(target_soul, span_cyan("you've been transferred to [target_room]!")) + to_chat(target_soul, span_notice(target_room.room_description)) + + return TRUE + +/** + * Sends a message or emote to all of the souls currently located inside of the soulcatcher room. Returns `FALSE` if a message cannot be sent, otherwise returns `TRUE`. + * + * Arguments + * * message_to_send - The message we want to send to the occupants of the room + * * message_sender - The person that is sending the message. This is not required. + * * emote - Is the message sent an emote or not? + */ +/datum/soulcatcher_room/proc/send_message(message_to_send, message_sender, emote = FALSE) + if(!message_to_send) //Why say nothing? + return FALSE + + var/datum/asset/spritesheet/sheet = get_asset_datum(/datum/asset/spritesheet/chat) + var/tag = sheet.icon_tag("nif-soulcatcher") + var/soulcatcher_icon = "" + + if(tag) + soulcatcher_icon = tag + + var/mob/living/soulcatcher_soul/soul_sender = message_sender + if(istype(soul_sender) && soul_sender.communicating_externally) + var/master_resolved = master_soulcatcher.resolve() + if(!master_resolved) + return FALSE + var/datum/component/soulcatcher/parent_soulcatcher = master_resolved + var/obj/item/parent_object = parent_soulcatcher.parent + if(!istype(parent_object)) + return FALSE + + var/temp_name = parent_object.name + parent_object.name = "[parent_object.name] [soulcatcher_icon]" + + if(emote) + parent_object.manual_emote(html_decode(message_to_send)) + log_emote("[soul_sender] in [name] soulcatcher room emoted: [message_to_send], as an external object") + else + parent_object.say(html_decode(message_to_send)) + log_say("[soul_sender] in [name] soulcatcher room said: [message_to_send], as an external object") + + parent_object.name = temp_name + return TRUE + + var/sender_name = "" + if(message_sender) + sender_name = "[message_sender] " + + var/first_room_name_word = splittext(name, " ") + var/message = "" + var/owner_message = "" + if(!emote) + message = "\ [soulcatcher_icon] [sender_name]says, \"[message_to_send]\"" + owner_message = "\ ([first_room_name_word[1]]) [soulcatcher_icon] [sender_name]says, \"[message_to_send]\"" + log_say("[sender_name] in [name] soulcatcher room said: [message_to_send]") + else + message = "\ [soulcatcher_icon] [sender_name][message_to_send]" + owner_message = "\ ([first_room_name_word[1]]) [soulcatcher_icon] [sender_name][message_to_send]" + log_emote("[sender_name] in [name] soulcatcher room emoted: [message_to_send]") + + for(var/mob/living/soulcatcher_soul/soul as anything in current_souls) + if((emote && !soul.internal_sight) || (!emote && !soul.internal_hearing)) + continue + + to_chat(soul, message) + + relay_message_to_soulcatcher(owner_message) + return TRUE + +/// Relays a message sent from the send_message proc to the parent soulcatcher datum +/datum/soulcatcher_room/proc/relay_message_to_soulcatcher(message) + if(!message) + return FALSE + + var/datum/component/soulcatcher/recepient_soulcatcher = master_soulcatcher.resolve() + recepient_soulcatcher.receive_message(message) + return TRUE + +/datum/soulcatcher_room/Destroy(force) + for(var/mob/living/soulcatcher_soul/soul as anything in current_souls) + remove_soul(soul) + + return ..() + +/datum/action/innate/join_soulcatcher + name = "Enter Soulcatcher" + background_icon = 'monkestation/code/modules/blueshift/icons/mob/actions/action_backgrounds.dmi' + background_icon_state = "android" + button_icon = 'monkestation/code/modules/blueshift/icons/mob/actions/actions_nif.dmi' + button_icon_state = "soulcatcher_enter" + +/datum/action/innate/join_soulcatcher/Activate() + . = ..() + var/mob/dead/observer/joining_soul = owner + if(!joining_soul) + return FALSE + + joining_soul.join_soulcatcher() + +/mob/dead/observer/verb/join_soulcatcher() + set name = "Enter Soulcatcher" + set category = "Ghost" + + var/list/joinable_soulcatchers = list() + for(var/datum/component/soulcatcher/soulcatcher in GLOB.soulcatchers) + if(!soulcatcher.ghost_joinable || !isobj(soulcatcher.parent) || !soulcatcher.check_for_vacancy()) + continue + + var/obj/item/soulcatcher_parent = soulcatcher.parent + if(soulcatcher.name != soulcatcher_parent.name) + soulcatcher.name = soulcatcher_parent.name + + joinable_soulcatchers += soulcatcher + + if(!length(joinable_soulcatchers)) + to_chat(src, span_warning("No soulcatchers are joinable.")) + return FALSE + + var/datum/component/soulcatcher/soulcatcher_to_join = tgui_input_list(src, "Choose a soulcatcher to join", "Enter a soulcatcher", joinable_soulcatchers) + if(!soulcatcher_to_join || !(soulcatcher_to_join in joinable_soulcatchers)) + return FALSE + + var/list/rooms_to_join = list() + for(var/datum/soulcatcher_room/room in soulcatcher_to_join.soulcatcher_rooms) + if(!room.joinable) + continue + + rooms_to_join += room + + var/datum/soulcatcher_room/room_to_join + if(length(rooms_to_join) < 1) + to_chat(src, span_warning("There no rooms that you can join.")) + return FALSE + + if(length(rooms_to_join) == 1) + room_to_join = rooms_to_join[1] + + else + room_to_join = tgui_input_list(src, "Choose a room to enter", "Enter a room", rooms_to_join) + + if(!room_to_join) + to_chat(src, span_warning("There no rooms that you can join.")) + return FALSE + + if(soulcatcher_to_join.require_approval) + var/ghost_name = name + if(mind?.current) + ghost_name = "unknown" + + if(!soulcatcher_to_join.get_approval(ghost_name)) + to_chat(src, span_warning("The owner of [soulcatcher_to_join.name] declined your request to join.")) + return FALSE + + room_to_join.add_soul_from_ghost(src) + return TRUE + +/mob/grab_ghost(force) + SEND_SIGNAL(src, COMSIG_SOULCATCHER_CHECK_SOUL) + return ..() + +/mob/get_ghost(even_if_they_cant_reenter, ghosts_with_clients) + if(GetComponent(/datum/component/previous_body)) //Is the soul currently within a soulcatcher? + return TRUE + + return ..() + +/mob/dead/observer/Login() + . = ..() + var/datum/preferences/preferences = client?.prefs + var/soulcatcher_action_given + + if(preferences) + soulcatcher_action_given = preferences.read_preference(/datum/preference/toggle/soulcatcher_join_action) + + if(!soulcatcher_action_given) + return + + if(locate(/datum/action/innate/join_soulcatcher) in actions) + return + + var/datum/action/innate/join_soulcatcher/new_join_action = new(src) + new_join_action.Grant(src) + +/datum/component/soulcatcher/ui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(usr, src, ui) + + if(!ui) + ui = new(usr, src, "Soulcatcher", name) + ui.open() + +/datum/component/soulcatcher/nifsoft/ui_state(mob/user) + return GLOB.conscious_state + +/datum/component/soulcatcher/ui_data(mob/user) + var/list/data = list() + + data["ghost_joinable"] = ghost_joinable + data["require_approval"] = require_approval + data["theme"] = ui_theme + data["communicate_as_parent"] = communicate_as_parent + data["current_soul_count"] = length(get_current_souls()) + data["max_souls"] = max_souls + data["removable"] = removable + + data["current_rooms"] = list() + for(var/datum/soulcatcher_room/room in soulcatcher_rooms) + var/currently_targeted = (room == targeted_soulcatcher_room) + + var/list/room_data = list( + "name" = html_decode(room.name), + "description" = html_decode(room.room_description), + "reference" = REF(room), + "joinable" = room.joinable, + "color" = room.room_color, + "currently_targeted" = currently_targeted, + ) + + for(var/mob/living/soulcatcher_soul/soul in room.current_souls) + var/list/soul_list = list( + "name" = soul.name, + "description" = soul.soul_desc, + "reference" = REF(soul), + "internal_hearing" = soul.internal_hearing, + "internal_sight" = soul.internal_sight, + "outside_hearing" = soul.outside_hearing, + "outside_sight" = soul.outside_sight, + "able_to_emote" = soul.able_to_emote, + "able_to_speak" = soul.able_to_speak, + "able_to_rename" = soul.able_to_rename, + "ooc_notes" = soul.ooc_notes, + "scan_needed" = soul.body_scan_needed, + "able_to_speak_as_container" = soul.able_to_speak_as_container, + "able_to_emote_as_container" = soul.able_to_emote_as_container, + ) + room_data["souls"] += list(soul_list) + + data["current_rooms"] += list(room_data) + + return data + +/datum/component/soulcatcher/ui_static_data(mob/user) + var/list/data = list() + + data["current_vessel"] = parent + + return data + +/datum/component/soulcatcher/ui_act(action, list/params) + . = ..() + if(.) + return + + var/datum/soulcatcher_room/target_room + if(params["room_ref"]) + target_room = locate(params["room_ref"]) in soulcatcher_rooms + if(!target_room) + return FALSE + + var/mob/living/soulcatcher_soul/target_soul + if(params["target_soul"]) + target_soul = locate(params["target_soul"]) in target_room.current_souls + if(!target_soul) + return FALSE + + switch(action) + if("delete_room") + if(length(soulcatcher_rooms) <= 1) + return FALSE + + soulcatcher_rooms -= target_room + targeted_soulcatcher_room = soulcatcher_rooms[1] + qdel(target_room) + return TRUE + + if("change_targeted_room") + targeted_soulcatcher_room = target_room + return TRUE + + if("create_room") + create_room() + return TRUE + + if("rename_room") + var/new_room_name = tgui_input_text(usr,"Choose a new name for the room", name, target_room.name) + if(!new_room_name) + return FALSE + + target_room.name = new_room_name + return TRUE + + if("redescribe_room") + var/new_room_desc = tgui_input_text(usr,"Choose a new description for the room", name, target_room.room_description, multiline = TRUE) + if(!new_room_desc) + return FALSE + + target_room.room_description = new_room_desc + return TRUE + + if("toggle_joinable_room") + target_room.joinable = !target_room.joinable + return TRUE + + if("toggle_joinable") + ghost_joinable = !ghost_joinable + return TRUE + + if("toggle_approval") + require_approval = !require_approval + return TRUE + + if("modify_name") + var/new_name = tgui_input_text(usr,"Choose a new name to send messages as", name, target_room.outside_voice, multiline = TRUE) + if(!new_name) + return FALSE + + target_room.outside_voice = new_name + return TRUE + + if("remove_soul") + target_room.remove_soul(target_soul) + return TRUE + + if("transfer_soul") + var/list/available_rooms = soulcatcher_rooms.Copy() + available_rooms -= target_room + + if(ishuman(usr)) + var/mob/living/carbon/human/human_user = usr + var/datum/nifsoft/soulcatcher/soulcatcher_nifsoft = human_user.find_nifsoft(/datum/nifsoft/soulcatcher) + if(soulcatcher_nifsoft && (parent != soulcatcher_nifsoft.parent_nif.resolve())) + var/datum/component/soulcatcher/nifsoft_soulcatcher = soulcatcher_nifsoft.linked_soulcatcher.resolve() + if(istype(nifsoft_soulcatcher)) + available_rooms.Add(nifsoft_soulcatcher.soulcatcher_rooms) + + for(var/obj/item/held_item in human_user.held_items) + if(parent == held_item) + continue + + var/datum/component/soulcatcher/soulcatcher_component = held_item.GetComponent(/datum/component/soulcatcher) + if(!soulcatcher_component || !soulcatcher_component.check_for_vacancy()) + continue + + for(var/datum/soulcatcher_room/room in soulcatcher_component.soulcatcher_rooms) + available_rooms += room + + var/datum/soulcatcher_room/transfer_room = tgui_input_list(usr, "Choose a room to transfer to", name, available_rooms) + if(!(transfer_room in available_rooms)) + return FALSE + + target_room.transfer_soul(target_soul, transfer_room) + return TRUE + + if("change_room_color") + var/new_room_color = input(usr, "", "Choose Color", SOULCATCHER_DEFAULT_COLOR) as color + if(!new_room_color) + return FALSE + + target_room.room_color = new_room_color + + if("toggle_soul_outside_sense") + if(params["sense_to_change"] == "hearing") + target_soul.toggle_hearing() + else + target_soul.toggle_sight() + + return TRUE + + if("toggle_soul_sense") + if(params["sense_to_change"] == "hearing") + target_soul.internal_hearing = !target_soul.internal_hearing + else + target_soul.internal_sight = !target_soul.internal_sight + + return TRUE + + if("toggle_soul_communication") + if(params["communication_type"] == "emote") + target_soul.able_to_emote = !target_soul.able_to_emote + else + target_soul.able_to_speak = !target_soul.able_to_speak + + return TRUE + + if("toggle_soul_external_communication") + if(params["communication_type"] == "emote") + target_soul.able_to_emote_as_container = !target_soul.able_to_emote_as_container + else + target_soul.able_to_speak_as_container = !target_soul.able_to_speak_as_container + + return TRUE + + if("toggle_soul_renaming") + target_soul.able_to_rename = !target_soul.able_to_rename + return TRUE + + if("change_name") + var/new_name = tgui_input_text(usr, "Enter a new name for [target_soul]", "Soulcatcher", target_soul) + if(!new_name) + return FALSE + + target_soul.change_name(new_name) + return TRUE + + if("reset_name") + if(tgui_alert(usr, "Do you wish to reset [target_soul]'s name to default?", "Soulcatcher", list("Yes", "No")) != "Yes") + return FALSE + + target_soul.reset_name() + + if("send_message") + var/message_to_send = "" + var/emote = params["emote"] + var/message_sender = target_room.outside_voice + if(params["narration"]) + message_sender = FALSE + + message_to_send = tgui_input_text(usr, "Input the message you want to send", name, multiline = TRUE) + + if(!message_to_send) + return FALSE + + target_room.send_message(message_to_send, message_sender, emote) + return TRUE + + if("delete_self") + if(tgui_alert(usr, "Are you sure you want to detach the soulcatcher?", parent, list("Yes", "No")) != "Yes") + return FALSE + + remove_self() + return TRUE + +/datum/component/soulcatcher_user/New() + . = ..() + var/mob/living/soulcatcher_soul/parent_soul = parent + if(!istype(parent_soul)) + return COMPONENT_INCOMPATIBLE + + return TRUE + +/datum/component/soulcatcher_user/ui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(usr, src, ui) + if(!ui) + ui = new(usr, src, "SoulcatcherUser") + ui.open() + +/datum/component/soulcatcher_user/ui_state(mob/user) + return GLOB.conscious_state + +/datum/component/soulcatcher_user/ui_data(mob/user) + var/list/data = list() + + var/mob/living/soulcatcher_soul/user_soul = parent + if(!istype(user_soul)) + return FALSE //uhoh + + data["user_data"] = list( + "name" = user_soul.name, + "description" = user_soul.soul_desc, + "reference" = REF(user_soul), + "internal_hearing" = user_soul.internal_hearing, + "internal_sight" = user_soul.internal_sight, + "outside_hearing" = user_soul.outside_hearing, + "outside_sight" = user_soul.outside_sight, + "able_to_emote" = user_soul.able_to_emote, + "able_to_speak" = user_soul.able_to_speak, + "able_to_rename" = user_soul.able_to_rename, + "able_to_speak_as_container" = user_soul.able_to_speak_as_container, + "able_to_emote_as_container" = user_soul.able_to_emote_as_container, + "communicating_externally" = user_soul.communicating_externally, + "ooc_notes" = user_soul.ooc_notes, + "scan_needed" = user_soul.body_scan_needed, + ) + + var/datum/soulcatcher_room/current_room = user_soul.current_room.resolve() + data["current_room"] = list( + "name" = html_decode(current_room.name), + "description" = html_decode(current_room.room_description), + "reference" = REF(current_room), + "color" = current_room.room_color, + "owner" = current_room.outside_voice, + ) + + var/datum/component/soulcatcher/master_soulcatcher = current_room.master_soulcatcher.resolve() + data["communicate_as_parent"] = master_soulcatcher.communicate_as_parent + + for(var/mob/living/soulcatcher_soul/soul in current_room.current_souls) + if(soul == user_soul) + continue + + var/list/soul_list = list( + "name" = soul.name, + "description" = soul.soul_desc, + "ooc_notes" = soul.ooc_notes, + "reference" = REF(soul), + ) + data["souls"] += list(soul_list) + + return data + +/datum/component/soulcatcher_user/ui_act(action, list/params) + . = ..() + if(.) + return + + var/mob/living/soulcatcher_soul/user_soul = parent + if(!istype(user_soul)) + return FALSE + + switch(action) + if("change_name") + var/new_name = tgui_input_text(usr, "Enter a new name", "Soulcatcher", user_soul.name) + if(!new_name) + return FALSE + + user_soul.change_name(new_name) + return TRUE + + if("reset_name") + if(tgui_alert(usr, "Do you wish to reset your name to default?", "Soulcatcher", list("Yes", "No")) != "Yes") + return FALSE + + user_soul.reset_name() + + if("toggle_external_communication") + user_soul.communicating_externally = !user_soul.communicating_externally + return TRUE diff --git a/monkestation/code/modules/blueshift/components/soulcatcher_body.dm b/monkestation/code/modules/blueshift/components/soulcatcher_body.dm new file mode 100644 index 000000000000..ba479d5a9067 --- /dev/null +++ b/monkestation/code/modules/blueshift/components/soulcatcher_body.dm @@ -0,0 +1,65 @@ +/// A component that is given to a body when the soul inside is inhabiting a soulcatcher. this is mostly here so that the bodies of souls can be revived. +/datum/component/previous_body + /// What soulcatcher soul do we need to return to the body? + var/datum/weakref/soulcatcher_soul + /// Do we want to try and restore the mind when this is destroyed? + var/restore_mind = TRUE + +/datum/component/previous_body/Initialize(...) + . = ..() + if(!ismob(parent)) + return COMPONENT_INCOMPATIBLE + + RegisterSignal(parent, COMSIG_SOULCATCHER_CHECK_SOUL, PROC_REF(signal_destroy)) + RegisterSignal(parent, COMSIG_SOULCATCHER_SCAN_BODY, PROC_REF(scan_body)) + +/// Destroys the source component through a signal. `mind_restored` controls whether or not the mind will be grabbed upon deletion. +/datum/component/previous_body/proc/signal_destroy(mob/source_mob, mind_restored = TRUE) + SIGNAL_HANDLER + if(!mind_restored) + restore_mind = FALSE + + qdel(src) + + return TRUE + +/// Attempts to scan the soul referenced in the `soulcatcher_soul` variable. Returns TRUE if the soul has been scanned, otherwise returns FALSE +/datum/component/previous_body/proc/scan_body(mob/source_mob) + SIGNAL_HANDLER + + if(!soulcatcher_soul) + return FALSE + + var/mob/living/soulcatcher_soul/target_soul = soulcatcher_soul.resolve() + if(!target_soul || !target_soul.body_scan_needed) + return FALSE + + to_chat(target_soul, span_cyan("Your body has scanned, revealing your true identity.")) + target_soul.name = source_mob.real_name + target_soul.body_scan_needed = FALSE + + /* + var/datum/preferences/preferences = target_soul.client?.prefs + if(preferences) + target_soul.soul_desc = preferences.read_preference(/datum/preference/text/flavor_text) + */ + + return TRUE + +/// Attempts to destroy the component. If `restore_mind` is true, it will attempt to place the mind back inside of the body and delete the soulcatcher soul. +/datum/component/previous_body/Destroy(force) + UnregisterSignal(parent, COMSIG_SOULCATCHER_CHECK_SOUL) + UnregisterSignal(parent, COMSIG_SOULCATCHER_SCAN_BODY) + + if(restore_mind) + var/mob/living/original_body = parent + var/mob/living/soulcatcher_soul/soul = soulcatcher_soul.resolve() + if(original_body && soul && !original_body.mind) + var/datum/mind/mind_to_tranfer = soul.mind + if(mind_to_tranfer) + mind_to_tranfer.transfer_to(original_body) + + soul.previous_body = FALSE + qdel(soul) + + return ..() diff --git a/monkestation/code/modules/blueshift/components/toggle_clothing.dm b/monkestation/code/modules/blueshift/components/toggle_clothing.dm new file mode 100644 index 000000000000..b445b9a86da0 --- /dev/null +++ b/monkestation/code/modules/blueshift/components/toggle_clothing.dm @@ -0,0 +1,27 @@ +/datum/component/toggle_clothes + var/toggled = FALSE + var/toggled_icon_state + +/datum/component/toggle_clothes/Initialize(toggled_icon_state) + if(!isclothing(parent)) + return COMPONENT_INCOMPATIBLE + + if(!toggled_icon_state) + return COMPONENT_INCOMPATIBLE + + src.toggled_icon_state = toggled_icon_state + + RegisterSignal(parent, COMSIG_CLICK_ALT, PROC_REF(clothing_toggle)) + RegisterSignal(parent, COMSIG_ATOM_EXAMINE, PROC_REF(handle_examine)) + +/datum/component/toggle_clothes/proc/handle_examine(datum/source, mob/user, list/examine_text) + SIGNAL_HANDLER + examine_text += span_notice("This item is toggleable! Alt Click to toggle!") + +/datum/component/toggle_clothes/proc/clothing_toggle(obj/item/clothing/source, mob/living/clicker) + SIGNAL_HANDLER + + toggled = !toggled + source.icon_state = (toggled ? toggled_icon_state : initial(source.icon_state)) + to_chat(clicker, "You toggle \the [source]!") + clicker.update_appearance() diff --git a/monkestation/code/modules/blueshift/components/wall_mounted.dm b/monkestation/code/modules/blueshift/components/wall_mounted.dm new file mode 100644 index 000000000000..1ed4632c5a65 --- /dev/null +++ b/monkestation/code/modules/blueshift/components/wall_mounted.dm @@ -0,0 +1,97 @@ +// This element should be applied to wall-mounted machines/structures, so that if the wall it's "hanging" from is broken or deconstructed, the wall-hung structure will deconstruct. +/datum/component/wall_mounted + dupe_mode = COMPONENT_DUPE_ALLOWED + /// The wall our object is currently linked to. + var/turf/hanging_wall_turf + /// Callback to the parent's proc to call on the linked object when the wall disappear's or changes. + var/datum/callback/on_drop + +/datum/component/wall_mounted/Initialize(target_wall, on_drop_callback) + . = ..() + if(!isobj(parent)) + return COMPONENT_INCOMPATIBLE + if(!isturf(target_wall)) + return COMPONENT_INCOMPATIBLE + hanging_wall_turf = target_wall + on_drop = on_drop_callback + +/datum/component/wall_mounted/RegisterWithParent() + ADD_TRAIT(parent, TRAIT_WALLMOUNTED, REF(src)) + RegisterSignal(hanging_wall_turf, COMSIG_ATOM_EXAMINE, PROC_REF(on_examine)) + RegisterSignal(hanging_wall_turf, COMSIG_TURF_CHANGE, PROC_REF(on_turf_changing)) + RegisterSignal(parent, COMSIG_MOVABLE_MOVED, PROC_REF(on_move)) + RegisterSignal(parent, COMSIG_QDELETING, PROC_REF(on_linked_destroyed)) + +/datum/component/wall_mounted/UnregisterFromParent() + REMOVE_TRAIT(parent, TRAIT_WALLMOUNTED, REF(src)) + UnregisterSignal(hanging_wall_turf, list(COMSIG_ATOM_EXAMINE, COMSIG_TURF_CHANGE)) + UnregisterSignal(parent, list(COMSIG_QDELETING, COMSIG_MOVABLE_MOVED)) + hanging_wall_turf = null + +/** + * Basic reference handling if the hanging/linked object is destroyed first. + */ +/datum/component/wall_mounted/proc/on_linked_destroyed() + SIGNAL_HANDLER + if(!QDELING(src)) + qdel(src) + +/** + * When the wall is examined, explains that it's supporting the linked object. + */ +/datum/component/wall_mounted/proc/on_examine(datum/source, mob/user, list/examine_list) + SIGNAL_HANDLER + examine_list += span_notice("\The [hanging_wall_turf] is currently supporting [span_bold("[parent]")]. Deconstruction or excessive damage would cause it to [span_bold("fall to the ground")].") + +/** + * When the type of turf changes, if it is changing into a floor we should drop our contents + */ +/datum/component/wall_mounted/proc/on_turf_changing(datum/source, path, new_baseturfs, flags, post_change_callbacks) + SIGNAL_HANDLER + if (ispath(path, /turf/open)) + drop_wallmount() + + +/** + * If we get dragged from our wall (by a singulo for instance) we should deconstruct + */ +/datum/component/wall_mounted/proc/on_move(datum/source, atom/old_loc, dir, forced, list/old_locs) + SIGNAL_HANDLER + drop_wallmount() + +/** + * Handles the dropping of the linked object. This is done via deconstruction, as that should be the most sane way to handle it for most objects. + * Except for intercoms, which are handled by creating a new wallframe intercom, as they're apparently items. + */ +/datum/component/wall_mounted/proc/drop_wallmount() + SIGNAL_HANDLER + var/obj/hanging_parent = parent + + if(on_drop) + hanging_parent.visible_message(message = span_warning("\The [hanging_parent] falls off the wall!"), vision_distance = 5) + on_drop.Invoke(hanging_parent) + else + hanging_parent.visible_message(message = span_warning("\The [hanging_parent] falls apart!"), vision_distance = 5) + hanging_parent.deconstruct() + + if(!QDELING(src)) + qdel(src) //Well, we fell off the wall, so we're done here. + +/** + * Checks object direction and then verifies if there's a wall in that direction. Finally, applies a wall_mounted component to the object. + * + * @param directional If TRUE, will use the direction of the object to determine the wall to attach to. If FALSE, will use the object's loc. + * @param custom_drop_callback If set, will use this callback instead of the default deconstruct callback. + */ +/obj/proc/find_and_hang_on_wall(directional = TRUE, custom_drop_callback) + if(istype(get_area(src), /area/shuttle)) + return FALSE //For now, we're going to keep the component off of shuttles to avoid the turf changing issue. We'll hit that later really; + var/turf/attachable_wall + if(directional) + attachable_wall = get_step(src, dir) + else + attachable_wall = loc ///Pull from the curent object loc + if(!iswallturf(attachable_wall)) + return FALSE//Nothing to latch onto, or not the right thing. + src.AddComponent(/datum/component/wall_mounted, attachable_wall, custom_drop_callback) + return TRUE diff --git a/monkestation/code/modules/blueshift/datums/laser_modes.dm b/monkestation/code/modules/blueshift/datums/laser_modes.dm new file mode 100644 index 000000000000..4b5b71defafa --- /dev/null +++ b/monkestation/code/modules/blueshift/datums/laser_modes.dm @@ -0,0 +1,272 @@ + +#define CM_COLOR_HUE 1 +#define CM_COLOR_SATURATION 2 +#define CM_COLOR_LUMINANCE 3 + +#define CM_COLOR_SAT_MAX 90 // 90% saturation is the default ceiling +#define CM_COLOR_LUM_MIN 40 // 40% luminosity is the default floor +#define CM_COLOR_LUM_MIN_GREY 35 // 35% luminosity for greys +#define CM_COLOR_LUM_MAX_DARK_RANGE 45 // 45% luminosity for dark blues/reds/violets + +#define CM_COLOR_HUE_RANGE_LOWER 180 +#define CM_COLOR_HUE_RANGE_UPPER 350 +#define CM_COLOR_HUE_GREY 0 + +/** + * Converts a given color to comply within a smaller subset of colors to be used in runechat. + * If a color is outside the min/max saturation or lum, it will be set at the nearest + * value that passes validation. + * + * Arguments: + * * color - The color to process + * * sat_shift - A value between 0 and 1 that will be multiplied against the saturation + * * lum_shift - A value between 0 and 1 that will be multiplied against the luminescence + */ +/proc/process_chat_color(color, sat_shift = 1, lum_shift = 1) + if(isnull(color)) + return "#FFFFFF" + + // Convert color hex to HSL + var/hsl_color = rgb2num(color, COLORSPACE_HSL) + + // Hue / saturation / luminance + var/hue = hsl_color[CM_COLOR_HUE] + var/saturation = hsl_color[CM_COLOR_SATURATION] + var/luminance = hsl_color[CM_COLOR_LUMINANCE] + + // Cap the saturation at 90% + saturation = min(saturation, CM_COLOR_SAT_MAX) + + // Now clamp the luminance according to the hue + var/processed_luminance + + // There are special cases for greyscale and the red/blue/violet range + if(hue == CM_COLOR_HUE_GREY) + processed_luminance = max(luminance, CM_COLOR_LUM_MIN_GREY) // greys have a lower floor on the allowed luminance value than the default + else if(CM_COLOR_HUE_RANGE_UPPER > hue > CM_COLOR_HUE_RANGE_LOWER) + processed_luminance = min(luminance, CM_COLOR_LUM_MAX_DARK_RANGE) // colors in the deep reds/blues/violets range will have a slightly higher luminance floor than the default + else + processed_luminance = max(luminance, CM_COLOR_LUM_MIN) // everything else gets the default floor + + // Convert it back to a hex + return rgb(hue, saturation*sat_shift, processed_luminance*lum_shift, space = COLORSPACE_HSL) + +#undef CM_COLOR_HUE +#undef CM_COLOR_SATURATION +#undef CM_COLOR_LUMINANCE + +#undef CM_COLOR_SAT_MAX +#undef CM_COLOR_LUM_MIN +#undef CM_COLOR_LUM_MIN_GREY +#undef CM_COLOR_LUM_MAX_DARK_RANGE + +#undef CM_COLOR_HUE_RANGE_LOWER +#undef CM_COLOR_HUE_RANGE_UPPER +#undef CM_COLOR_HUE_GREY + +// Yeah I'm using datums for this, because the code on a regular gun would suck huge +// Holds a lot of information that will be applied ot the gun, as well as info that the gun will read later +// This basetype is applies to the base 2 burst laser kill mode for the large laser gun +/datum/laser_weapon_mode + /// What name does this weapon mode have? Will appear in the weapon's radial menu + var/name = "Kill" + /// What casing does this variant of weapon use? + var/obj/item/ammo_casing/casing = /obj/item/ammo_casing/energy/cybersun_big_kill + /// What icon_state does this weapon mode use? + var/weapon_icon_state = "kill" + /// How many charge sections does this variant of weapon have? + var/charge_sections = 5 + /// What is the shot cooldown this variant applies to the weapon? + var/shot_delay = 0.3 SECONDS + /// What json string do we check for when making chat messages with this mode? + var/json_speech_string = "kill" + /// What do we change the gun's runetext color to when applied + var/gun_runetext_color = "#cd4456" + +/// Applies some of the universal stats from the variables above +/datum/laser_weapon_mode/proc/apply_stats(obj/item/gun/energy/applied_gun) + if(length(applied_gun.ammo_type)) + for(var/found_casing as anything in applied_gun.ammo_type) + applied_gun.ammo_type.Remove(found_casing) + qdel(found_casing) + applied_gun.ammo_type.Add(casing) + applied_gun.update_ammo_types() + applied_gun.charge_sections = charge_sections + applied_gun.fire_delay = shot_delay + var/new_icon_state = "[applied_gun.base_icon_state]_[weapon_icon_state]" + applied_gun.icon_state = new_icon_state + applied_gun.inhand_icon_state = new_icon_state + applied_gun.worn_icon_state = new_icon_state + applied_gun.update_appearance() + applied_gun.chat_color = gun_runetext_color + applied_gun.chat_color_darkened = process_chat_color(gun_runetext_color, sat_shift = 0.85, lum_shift = 0.85) + +/// Stuff applied to the passed gun when the weapon mode is given to the gun +/datum/laser_weapon_mode/proc/apply_to_weapon(obj/item/gun/energy/applied_gun) + applied_gun.burst_size = 2 + +/// Stuff applied to the passed gun when the weapon mode is removed from the gun +/datum/laser_weapon_mode/proc/remove_from_weapon(obj/item/gun/energy/applied_gun) + applied_gun.burst_size = 1 + +// Marksman mode for the large laser, adds a scope, slower firing rate, and really quick projectiles +/datum/laser_weapon_mode/marksman + name = "Marksman" + casing = /obj/item/ammo_casing/energy/cybersun_big_sniper + weapon_icon_state = "sniper" + shot_delay = 2 SECONDS + json_speech_string = "sniper" + gun_runetext_color = "#f8d860" + /// Keeps track of the scope component for deleting later + var/datum/component/scope/scope_component + +/datum/laser_weapon_mode/marksman/apply_to_weapon(obj/item/gun/energy/applied_gun) + scope_component = applied_gun.AddComponent(/datum/component/scope, 3) + +/datum/laser_weapon_mode/marksman/remove_from_weapon(obj/item/gun/energy/applied_gun) + QDEL_NULL(scope_component) + +// Windup autofire disabler mode for the large laser +/datum/laser_weapon_mode/disabler_machinegun + name = "Disable" + casing = /obj/item/ammo_casing/energy/cybersun_big_disabler + weapon_icon_state = "disabler" + charge_sections = 2 + shot_delay = 0.25 SECONDS + json_speech_string = "disable" + gun_runetext_color = "#47a1b3" + /// Keeps track of the autofire component for deleting later + var/datum/component/automatic_fire/autofire_component + +/datum/laser_weapon_mode/disabler_machinegun/apply_to_weapon(obj/item/gun/energy/applied_gun) + autofire_component = applied_gun.AddComponent(/datum/component/automatic_fire, shot_delay) + +/datum/laser_weapon_mode/disabler_machinegun/remove_from_weapon(obj/item/gun/energy/applied_gun) + QDEL_NULL(autofire_component) + +// Grenade launching mode for the large laser +/datum/laser_weapon_mode/launcher + name = "Launcher" + casing = /obj/item/ammo_casing/energy/cybersun_big_launcher + weapon_icon_state = "launcher" + charge_sections = 3 + shot_delay = 2 SECONDS + json_speech_string = "launcher" + gun_runetext_color = "#77bd5d" + +/datum/laser_weapon_mode/launcher/apply_to_weapon(obj/item/gun/energy/applied_gun) + applied_gun.recoil = 2 + +/datum/laser_weapon_mode/launcher/remove_from_weapon(obj/item/gun/energy/applied_gun) + applied_gun.recoil = initial(applied_gun.recoil) + +// Shotgun mode for the large laser +/datum/laser_weapon_mode/shotgun + name = "Shotgun" + casing = /obj/item/ammo_casing/energy/cybersun_big_shotgun + weapon_icon_state = "shot" + charge_sections = 3 + shot_delay = 0.75 SECONDS + json_speech_string = "shotgun" + gun_runetext_color = "#7a0bb7" + +/datum/laser_weapon_mode/shotgun/apply_to_weapon(obj/item/gun/energy/applied_gun) + applied_gun.recoil = 1 + +/datum/laser_weapon_mode/shotgun/remove_from_weapon(obj/item/gun/energy/applied_gun) + applied_gun.recoil = initial(applied_gun.recoil) + +// Hellfire mode for the small laser +/datum/laser_weapon_mode/hellfire + name = "Incinerate" + casing = /obj/item/ammo_casing/energy/cybersun_small_hellfire + weapon_icon_state = "kill" + charge_sections = 3 + shot_delay = 0.4 SECONDS + json_speech_string = "incinerate" + gun_runetext_color = "#cd4456" + +/datum/laser_weapon_mode/hellfire/apply_to_weapon(obj/item/gun/energy/applied_gun) + return + +/datum/laser_weapon_mode/hellfire/remove_from_weapon(obj/item/gun/energy/applied_gun) + return + +// Melee mode for the small laser, yeah this one will be weird +/datum/laser_weapon_mode/sword + name = "Blade" + // This mode doesn't actually shoot but we gotta have a casing regardless so it doesn't runtime times a million + // And also so the visuals work :3 + casing = /obj/item/ammo_casing/energy/cybersun_small_blade + weapon_icon_state = "blade" + charge_sections = 2 + json_speech_string = "blade" + gun_runetext_color = "#f8d860" + +/datum/laser_weapon_mode/sword/apply_to_weapon(obj/item/gun/energy/modular_laser_rifle/applied_gun) + playsound(src, 'sound/items/unsheath.ogg', 25, TRUE) + applied_gun.force = 18 + applied_gun.sharpness = SHARP_EDGED + applied_gun.bare_wound_bonus = 10 + applied_gun.disabled_for_other_reasons = TRUE + applied_gun.attack_verb_continuous = list("slashes", "cuts") + applied_gun.attack_verb_simple = list("slash", "cut") + applied_gun.hitsound = 'sound/weapons/rapierhit.ogg' + +/datum/laser_weapon_mode/sword/remove_from_weapon(obj/item/gun/energy/modular_laser_rifle/applied_gun) + playsound(src, 'sound/items/sheath.ogg', 25, TRUE) + applied_gun.force = initial(applied_gun.force) + applied_gun.sharpness = initial(applied_gun.sharpness) + applied_gun.bare_wound_bonus = initial(applied_gun.bare_wound_bonus) + applied_gun.disabled_for_other_reasons = FALSE + applied_gun.attack_verb_continuous = initial(applied_gun.attack_verb_continuous) + applied_gun.attack_verb_simple = initial(applied_gun.attack_verb_simple) + applied_gun.hitsound = initial(applied_gun.hitsound) + +// Flare mode for the small laser +/datum/laser_weapon_mode/flare + name = "Flare" + casing = /obj/item/ammo_casing/energy/cybersun_small_launcher + weapon_icon_state = "flare" + charge_sections = 3 + shot_delay = 2 SECONDS + json_speech_string = "flare" + gun_runetext_color = "#77bd5d" + +/datum/laser_weapon_mode/flare/apply_to_weapon(obj/item/gun/energy/applied_gun) + applied_gun.recoil = 2 + +/datum/laser_weapon_mode/flare/remove_from_weapon(obj/item/gun/energy/applied_gun) + applied_gun.recoil = initial(applied_gun.recoil) + +// Shotgun mode for the small laser +/datum/laser_weapon_mode/shotgun_small + name = "Shotgun" + casing = /obj/item/ammo_casing/energy/cybersun_small_shotgun + weapon_icon_state = "shot" + charge_sections = 3 + shot_delay = 0.6 SECONDS + json_speech_string = "shotgun" + gun_runetext_color = "#7a0bb7" + +/datum/laser_weapon_mode/shotgun_small/apply_to_weapon(obj/item/gun/energy/applied_gun) + applied_gun.recoil = 1 + +/datum/laser_weapon_mode/shotgun_small/remove_from_weapon(obj/item/gun/energy/applied_gun) + applied_gun.recoil = initial(applied_gun.recoil) + +// Trickshot bounce disabler mode for the small laser +/datum/laser_weapon_mode/trickshot_disabler + name = "Disable" + casing = /obj/item/ammo_casing/energy/cybersun_small_disabler + weapon_icon_state = "disable" + charge_sections = 3 + shot_delay = 0.4 SECONDS + json_speech_string = "disable" + gun_runetext_color = "#47a1b3" + +/datum/laser_weapon_mode/trickshot_disabler/apply_to_weapon(obj/item/gun/energy/applied_gun) + return + +/datum/laser_weapon_mode/trickshot_disabler/remove_from_weapon(obj/item/gun/energy/applied_gun) + return diff --git a/monkestation/code/modules/blueshift/decals/nova.dm b/monkestation/code/modules/blueshift/decals/nova.dm new file mode 100644 index 000000000000..8e1e6f7b2e0b --- /dev/null +++ b/monkestation/code/modules/blueshift/decals/nova.dm @@ -0,0 +1,297 @@ +/obj/effect/turf_decal/stripes/blue + icon_state = "warningline_blue" + icon = 'monkestation/code/modules/blueshift/icons/turf_decals.dmi' + +/obj/effect/turf_decal/stripes/blue/line + icon_state = "warningline_blue" + +/obj/effect/turf_decal/stripes/blue/end + icon_state = "warn_end_blue" + +/obj/effect/turf_decal/stripes/blue/corner + icon_state = "warninglinecorner_blue" + +/obj/effect/turf_decal/stripes/blue/box + icon_state = "warn_box_blue" + +/obj/effect/turf_decal/stripes/blue/full + icon_state = "warn_full_blue" + +/obj/effect/turf_decal/bot_blue + icon = 'monkestation/code/modules/blueshift/icons/turf_decals.dmi' + icon_state = "bot_blue" + +/obj/effect/turf_decal/caution/stand_clear/blue + icon = 'monkestation/code/modules/blueshift/icons/turf_decals.dmi' + icon_state = "stand_clear_blue" + +/obj/effect/turf_decal/arrows/blue + icon = 'monkestation/code/modules/blueshift/icons/turf_decals.dmi' + icon_state = "arrows_blue" + +/obj/effect/turf_decal/box/blue + icon = 'monkestation/code/modules/blueshift/icons/turf_decals.dmi' + icon_state = "box_blue" + +/obj/effect/turf_decal/box/blue/corners + icon = 'monkestation/code/modules/blueshift/icons/turf_decals.dmi' + icon_state = "box_corners_blue" + + +/obj/effect/turf_decal/delivery/blue + icon = 'monkestation/code/modules/blueshift/icons/turf_decals.dmi' + icon_state = "delivery_blue" + +/obj/effect/turf_decal/caution/blue + icon = 'monkestation/code/modules/blueshift/icons/turf_decals.dmi' + icon_state = "caution_blue" + + +// Adds red variant that doesnt break 'bluesec' but allows mappers to use red elsewhere + +/obj/effect/turf_decal/siding/red/real_red + color = "#DE3A3A" + +/obj/effect/turf_decal/siding/red/real_red/corner + icon_state = "siding_corner" + +/obj/effect/turf_decal/siding/red/real_red/end + icon_state = "siding_end" + +/// To make upstream mapping easier we overwrote the color for Red to be not red but blue for our weird bluesec +/// This re-adds a red coloring to be used by mappers in other areas. + +/// Real Red Tiles + +/obj/effect/turf_decal/tile/red/real_red + name = "red corner" + color = "#DE3A3A" + +/obj/effect/turf_decal/tile/red/real_red/opposingcorners + icon_state = "tile_opposing_corners" + name = "opposing red corners" + +/obj/effect/turf_decal/tile/red/real_red/half + icon_state = "tile_half" + name = "red half" + +/obj/effect/turf_decal/tile/red/real_red/half/contrasted + icon_state = "tile_half_contrasted" + name = "contrasted red half" + +/obj/effect/turf_decal/tile/red/real_red/anticorner + icon_state = "tile_anticorner" + name = "red anticorner" + +/obj/effect/turf_decal/tile/red/real_red/anticorner/contrasted + icon_state = "tile_anticorner_contrasted" + name = "contrasted red anticorner" + +/obj/effect/turf_decal/tile/red/real_red/fourcorners + icon_state = "tile_fourcorners" + name = "red fourcorners" + +/obj/effect/turf_decal/tile/red/real_red/full + icon_state = "tile_full" + name = "red full" + +/obj/effect/turf_decal/tile/red/real_red/diagonal_centre + icon_state = "diagonal_centre" + name = "red diagonal centre" + +/obj/effect/turf_decal/tile/red/real_red/diagonal_edge + icon_state = "diagonal_edge" + name = "red diagonal edge" + +/// Real Red Trimlines + +/obj/effect/turf_decal/trimline/red/real_red + color = "#DE3A3A" + +/obj/effect/turf_decal/trimline/red/real_red/line + icon_state = "trimline" + +/obj/effect/turf_decal/trimline/red/real_red/corner + icon_state = "trimline_corner" + +/obj/effect/turf_decal/trimline/red/real_red/end + icon_state = "trimline_end" + +/obj/effect/turf_decal/trimline/red/real_red/arrow_cw + icon_state = "trimline_arrow_cw" + +/obj/effect/turf_decal/trimline/red/real_red/arrow_ccw + icon_state = "trimline_arrow_ccw" + +/obj/effect/turf_decal/trimline/red/real_red/warning + icon_state = "trimline_warn" + +/obj/effect/turf_decal/trimline/red/real_red/mid_joiner + icon_state = "trimline_mid" + +/obj/effect/turf_decal/trimline/red/real_red/filled + icon_state = "trimline_box_fill" + +/obj/effect/turf_decal/trimline/red/real_red/filled/line + icon_state = "trimline_fill" + +/obj/effect/turf_decal/trimline/red/real_red/filled/corner + icon_state = "trimline_corner_fill" + +/obj/effect/turf_decal/trimline/red/real_red/filled/end + icon_state = "trimline_end_fill" + +/obj/effect/turf_decal/trimline/red/real_red/filled/arrow_cw + icon_state = "trimline_arrow_cw_fill" + +/obj/effect/turf_decal/trimline/red/real_red/filled/arrow_ccw + icon_state = "trimline_arrow_ccw_fill" + +/obj/effect/turf_decal/trimline/red/real_red/filled/warning + icon_state = "trimline_warn_fill" + +/obj/effect/turf_decal/trimline/red/real_red/filled/mid_joiner + icon_state = "trimline_mid_fill" + +/obj/effect/turf_decal/trimline/red/real_red/filled/shrink_cw + icon_state = "trimline_shrink_cw" + +/obj/effect/turf_decal/trimline/red/real_red/filled/shrink_ccw + icon_state = "trimline_shrink_ccw" + +/obj/effect/turf_decal/nova_decals + icon = 'monkestation/code/modules/blueshift/icons/turf/turf_decals.dmi' + icon_state = "bad_coder" + +/obj/effect/decal/fakelattice/passthru //Why the hell did TG make it dense anyways + density = FALSE + +/obj/effect/decal/fakelattice/passthru/NeverShouldHaveComeHere(turf/here_turf) + return !isclosedturf(here_turf) && ..() + +///SYNDICATE EMBLEM/// +//Bottom +/obj/effect/turf_decal/nova_decals/syndicate/bottom/left + icon_state = "1,1" + +/obj/effect/turf_decal/nova_decals/syndicate/bottom/middle + icon_state = "1,2" + +/obj/effect/turf_decal/nova_decals/syndicate/bottom/right + icon_state = "1,3" +//Middle +/obj/effect/turf_decal/nova_decals/syndicate/middle/left + icon_state = "2,1" + +/obj/effect/turf_decal/nova_decals/syndicate/middle/middle + icon_state = "2,2" + +/obj/effect/turf_decal/nova_decals/syndicate/middle/right + icon_state = "2,3" +//Top +/obj/effect/turf_decal/nova_decals/syndicate/top/left + icon_state = "3,1" + +/obj/effect/turf_decal/nova_decals/syndicate/top/middle + icon_state = "3,2" + +/obj/effect/turf_decal/nova_decals/syndicate/top/right + icon_state = "3,3" + +///ENCLAVE EMBLEM/// +/obj/effect/turf_decal/nova_decals/enclave + layer = TURF_PLATING_DECAL_LAYER + alpha = 110 + color = "#A46106" +//Bottom +/obj/effect/turf_decal/nova_decals/enclave/bottom/left + icon_state = "e1,1" + +/obj/effect/turf_decal/nova_decals/enclave/bottom/middle + icon_state = "e1,2" + +/obj/effect/turf_decal/nova_decals/enclave/bottom/right + icon_state = "e1,3" +//Middle +/obj/effect/turf_decal/nova_decals/enclave/middle/left + icon_state = "e2,1" + +/obj/effect/turf_decal/nova_decals/enclave/middle/middle + icon_state = "e2,2" + +/obj/effect/turf_decal/nova_decals/enclave/middle/right + icon_state = "e2,3" +//Top +/obj/effect/turf_decal/nova_decals/enclave/top/left + icon_state = "e3,1" + +/obj/effect/turf_decal/nova_decals/enclave/top/middle + icon_state = "e3,2" + +/obj/effect/turf_decal/nova_decals/enclave/top/right + icon_state = "e3,3" + +///Departments/// +/obj/effect/turf_decal/nova_decals/departments/bridge + icon_state = "bridge" + +///DS-2 Sign/// +/obj/effect/turf_decal/nova_decals/ds2/left + icon_state = "ds1" + +/obj/effect/turf_decal/nova_decals/ds2/middle + icon_state = "ds2" + +/obj/effect/turf_decal/nova_decals/ds2/right + icon_state = "ds3" + +///Misc/// +/obj/effect/turf_decal/nova_decals/misc/handicapped + icon_state = "handicapped" + +/obj/structure/sign/shuttleg250 + name = "Transfer Shuttle G250" + desc = "Transfer Shuttle G250." + icon = 'monkestation/code/modules/blueshift/icons/g250.dmi' //LARGE icon + icon_state = "g250" + +/obj/structure/fans/tiny/forcefield + name = "forcefield" + desc = "A fluctuating forcefield for ships to cross." + icon = 'monkestation/code/modules/blueshift/icons/effects.dmi' + icon_state = "forcefield" + +//Floor Decals ----- +/obj/effect/turf_decal/shuttle/exploration + icon = 'monkestation/code/modules/blueshift/icons/exploration_floor.dmi' + icon_state = "decal1" + +/obj/effect/turf_decal/shuttle/exploration/medbay + icon_state = "decalmed" + +/obj/effect/turf_decal/shuttle/exploration/cargostore + icon_state = "decalstore" + +/obj/effect/turf_decal/shuttle/exploration/bridge + icon_state = "decalbridge" + +/obj/effect/turf_decal/shuttle/exploration/o2 + icon_state = "decalo2" + +/obj/effect/turf_decal/shuttle/exploration/typhon + icon_state = "decal2" + +/obj/effect/turf_decal/shuttle/exploration/echidna + icon_state = "decal1" + +/obj/effect/turf_decal/shuttle/exploration/weapons + icon_state = "decal3" + +/obj/effect/turf_decal/shuttle/exploration/airlock + icon_state = "decal4" + +/obj/effect/turf_decal/shuttle/exploration/hazardstripe + icon_state = "hazard_decal" + +/obj/effect/turf_decal/shuttle/exploration/bot + icon_state = "bot_decal" diff --git a/monkestation/code/modules/blueshift/decals/vg_decals.dm b/monkestation/code/modules/blueshift/decals/vg_decals.dm new file mode 100644 index 000000000000..b35295d0c7c1 --- /dev/null +++ b/monkestation/code/modules/blueshift/decals/vg_decals.dm @@ -0,0 +1,118 @@ +// Full credit goes to VG station for these assets. https://github.com/vgstation-coders/vgstation13 +// All items in this .dm and the associated .dmi were made by VG station and all credit should go to them. + +// -<| IMPORTANT MAPPER NOTE |>- +// Change the 'color' variable on any white sprite to simply recolour it! + +/obj/effect/turf_decal/vg_decals + icon = 'monkestation/code/modules/blueshift/icons/turf/decals/vgstation_decals.dmi' + icon_state = "no" + +// NUMBERS START + +/obj/effect/turf_decal/vg_decals/numbers + icon_state = "no" + +/obj/effect/turf_decal/vg_decals/numbers/one + icon_state = "1" + +/obj/effect/turf_decal/vg_decals/numbers/two + icon_state = "2" + +/obj/effect/turf_decal/vg_decals/numbers/three + icon_state = "3" + +/obj/effect/turf_decal/vg_decals/numbers/four + icon_state = "4" + +/obj/effect/turf_decal/vg_decals/numbers/five + icon_state = "5" + +/obj/effect/turf_decal/vg_decals/numbers/six + icon_state = "6" + +/obj/effect/turf_decal/vg_decals/numbers/seven + icon_state = "7" + +/obj/effect/turf_decal/vg_decals/numbers/eight + icon_state = "8" + +/obj/effect/turf_decal/vg_decals/numbers/nine + icon_state = "9" + +/obj/effect/turf_decal/vg_decals/numbers/zero + icon_state = "0" + +// NUMBERS END + +// ATMOS START + +/obj/effect/turf_decal/vg_decals/atmos + icon_state = "no" + +/obj/effect/turf_decal/vg_decals/atmos/oxygen + icon_state = "oxygen" + +/obj/effect/turf_decal/vg_decals/atmos/carbon_dioxide + icon_state = "carbon_dioxide" + +/obj/effect/turf_decal/vg_decals/atmos/nitrogen + icon_state = "nitrogen" + +/obj/effect/turf_decal/vg_decals/atmos/air + icon_state = "air" + +/obj/effect/turf_decal/vg_decals/atmos/nitrous_oxide + icon_state = "nitrous_oxide" + +/obj/effect/turf_decal/vg_decals/atmos/plasma + icon_state = "plasma" + +/obj/effect/turf_decal/vg_decals/atmos/mix + icon_state = "mix" + +// ATMOS END + +// DEPARTMENT START + +/obj/effect/turf_decal/vg_decals/department/hop + icon_state = "hop" + +/obj/effect/turf_decal/vg_decals/department/bar + icon_state = "bar" + +/obj/effect/turf_decal/vg_decals/department/cargo + icon_state = "cargo" + +/obj/effect/turf_decal/vg_decals/department/med + icon_state = "med" + +/obj/effect/turf_decal/vg_decals/department/sci + icon_state = "sci" + +/obj/effect/turf_decal/vg_decals/department/sec + icon_state = "sec" + +/obj/effect/turf_decal/vg_decals/department/mining + icon_state = "mine" + +/obj/effect/turf_decal/vg_decals/department/zoo + icon_state = "zoo" + +// DEPARTMENT END + +// MISC START + +/obj/effect/turf_decal/vg_decals/no + icon_state = "no" + +/obj/effect/turf_decal/vg_decals/radiation_huge + icon_state = "radiation_huge" + +/obj/effect/turf_decal/vg_decals/radiation + icon_state = "radiation" + +/obj/effect/turf_decal/vg_decals/radiation_custom + icon_state = "radiation-w" + +// MISC END diff --git a/monkestation/code/modules/blueshift/designs/colony.dm b/monkestation/code/modules/blueshift/designs/colony.dm new file mode 100644 index 000000000000..aee124c8f137 --- /dev/null +++ b/monkestation/code/modules/blueshift/designs/colony.dm @@ -0,0 +1,473 @@ +/datum/design/board/solarcontrol/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/board/atmosalerts/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/board/powermonitor/New() + . = ..() + build_type |= COLONY_FABRICATOR + +// This file is going to be just all bitflag additions + +/datum/design/apc_board/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/airalarm_electronics/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/airlock_board/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/firealarm_electronics/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/control/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/firelock_board/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/infrared_emitter/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/prox_sensor/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/signaler/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/timer/New() + . = ..() + build_type |= COLONY_FABRICATOR + +// Wall frames + +/datum/design/camera_assembly/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/intercom_frame/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/light_switch_frame/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/ignition_control/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/sparker/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/newscaster_frame/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/status_display_frame/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/requests_console/New() + . = ..() + build_type |= COLONY_FABRICATOR + +// Lights + +/datum/design/light_tube/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/light_bulb/New() + . = ..() + build_type |= COLONY_FABRICATOR + +// Conveyors + +/datum/design/conveyor_belt/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/conveyor_switch/New() + . = ..() + build_type |= COLONY_FABRICATOR + +// Materials + +/datum/design/lavarods/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/rglass/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/plasteel_alloy/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/plaglass_alloy/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/plasmarglass_alloy/New() + . = ..() + build_type |= COLONY_FABRICATOR + +// This file is going to be just all bitflag additions + +/datum/design/radio_navigation_beacon/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/engine_goggles/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/pneumatic_seal/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/welding_goggles/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/welding_helmet/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/gas_filter/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/plasmaman_gas_filter/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/plasmarefiller/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/emergency_oxygen_engi/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/plasmaman_tank_belt/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/generic_gas_tank/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/plasma_tank/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/diagnostic_hud/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/portaseeder/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/oven_tray/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/bowl/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/beaker/New() + . = ..() + build_type |= COLONY_FABRICATOR + +// Stock parts are going here too because there's not many of them + +/datum/design/water_recycler/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/super_cell/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/adv_capacitor/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/adv_scanning/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/nano_mani/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/high_micro_laser/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/adv_matter_bin/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/rped/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/board/hydroponics/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/board/cyborgrecharger/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/board/processor/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/board/suit_storage_unit/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/board/reagentgrinder/New() + . = ..() + build_type |= COLONY_FABRICATOR + +// Turbine Stuff + +/datum/design/board/turbine_computer/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/board/turbine_compressor/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/board/turbine_rotor/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/board/turbine_stator/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/turbine_part_compressor/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/turbine_part_stator/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/turbine_part_rotor/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/water_recycler/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/super_cell/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/adv_capacitor/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/adv_scanning/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/nano_mani/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/high_micro_laser/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/adv_matter_bin/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/rped/New() + . = ..() + build_type |= COLONY_FABRICATOR + +// Various designs that get added to the colony fab + +/datum/design/holosignatmos/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/analyzer/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/extinguisher/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/cable_coil/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/airlock_painter/decal/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/airlock_painter/decal/tile/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/holosignengi/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/inducer/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/multitool/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/tscanner/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/pipe_painter/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/rwd/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/bolter_wrench/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/rpd/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/rpd_upgrade/unwrench/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/rtd_loaded/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/rcd_ammo/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/light_replacer/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/rld_mini/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/miningsatchel_holding/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/mining_scanner/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/flashlight/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/ducts/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/plunger/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/handlabeler/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/paperroll/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/spraycan/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/pickaxe/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/bucket/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/watering_can/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/mop/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/broom/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/tray/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/cultivator/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/plant_analyzer/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/shovel/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/spade/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/hatchet/New() + . = ..() + build_type |= COLONY_FABRICATOR + +/datum/design/secateurs/New() + . = ..() + build_type |= COLONY_FABRICATOR diff --git a/monkestation/code/modules/blueshift/designs/deforest.dm b/monkestation/code/modules/blueshift/designs/deforest.dm new file mode 100644 index 000000000000..2dcc462e41ba --- /dev/null +++ b/monkestation/code/modules/blueshift/designs/deforest.dm @@ -0,0 +1,209 @@ +/datum/design/organic_bloodbag_aplus + name = "A+ Blood Pack" + id = "organic_bloodbag_aplus" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass = 100) + build_path = /obj/item/reagent_containers/blood/a_plus + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_DEFOREST_BLOOD, + ) + +/datum/design/organic_bloodbag_aminus + name = "A- Blood Pack" + id = "organic_bloodbag_aminus" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass = 100) + build_path = /obj/item/reagent_containers/blood/a_minus + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_DEFOREST_BLOOD, + ) + +/datum/design/organic_bloodbag_bplus + name = "B+ Blood Pack" + id = "organic_bloodbag_bplus" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass = 100) + build_path = /obj/item/reagent_containers/blood/b_plus + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_DEFOREST_BLOOD, + ) + +/datum/design/organic_bloodbag_bminus + name = "B- Blood Pack" + id = "organic_bloodbag_bminus" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass = 100) + build_path = /obj/item/reagent_containers/blood/b_minus + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_DEFOREST_BLOOD, + ) + +/datum/design/organic_bloodbag_oplus + name = "O+ Blood Pack" + id = "organic_bloodbag_oplus" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass = 100) + build_path = /obj/item/reagent_containers/blood/o_plus + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_DEFOREST_BLOOD, + ) + +/datum/design/organic_bloodbag_ominus + name = "O- Blood Pack" + id = "organic_bloodbag_ominus" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass = 150) + build_path = /obj/item/reagent_containers/blood/o_minus + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_DEFOREST_BLOOD, + ) + +/datum/design/organic_bloodbag_lizard + name = "L Blood Pack" + id = "organic_bloodbag_lizard" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass = 100) + build_path = /obj/item/reagent_containers/blood/lizard + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_DEFOREST_BLOOD, + ) + +/datum/design/organic_bloodbag_ethereal + name = "LE Blood Pack" + id = "organic_bloodbag_ethereal" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass = 100) + build_path = /obj/item/reagent_containers/blood/ethereal + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_DEFOREST_BLOOD, + ) + +/datum/design/organic_bloodbag_plant + name = "H2O Blood Pack" + id = "organic_bloodbag_plant" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass = 50) + build_path = /obj/item/reagent_containers/blood/podperson + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_DEFOREST_BLOOD, + ) + +/datum/design/organic_bloodbag_slimeperson + name = "TOX Blood Pack" + id = "organic_bloodbag_slimeperson" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass = 100) + build_path = /obj/item/reagent_containers/blood/toxin + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_DEFOREST_BLOOD, + ) + +/datum/design/organic_printer_balm + name = "Red Sun Balm" + id = "organic_sun_balm" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass = 50) + build_path = /obj/item/stack/medical/ointment/red_sun + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_DEFOREST_MEDICAL, + ) + +/datum/design/organic_printer_gauze + name = "Sealed Aseptic Guaze" + id = "organic_gauze" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass = 50) + build_path = /obj/item/stack/medical/gauze/sterilized + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_DEFOREST_MEDICAL, + ) + +/datum/design/organic_printer_coagulant_f + name = "Coagulant-F Packet" + id = "organic_coagulant_pack" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass = 50) + build_path = /obj/item/stack/medical/suture/coagulant + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_DEFOREST_MEDICAL, + ) + +/datum/design/organic_printer_ointment + name = "Ointment" + id = "organic_ointment" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass = 25) + build_path = /obj/item/stack/medical/ointment + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_DEFOREST_MEDICAL, + ) + +/datum/design/organic_printer_bruise_pack + name = "Bruise Packs" + id = "organic_bruise_packs" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass = 25) + build_path = /obj/item/stack/medical/bruise_pack + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_DEFOREST_MEDICAL, + ) + +/datum/design/organic_printer_amollin_pill + name = "Amollin Painkiller" + id = "organic_printer_amollin_pill" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass = 25) + build_path = /obj/item/reagent_containers/pill/amollin + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_DEFOREST_MEDICAL, + ) + +/datum/design/organic_printer_synth_patch + name = "Robotic Repair Patch" + id = "organic_repair_patch" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass = 100) + build_path = /obj/item/reagent_containers/pill/robotic_patch/synth_repair + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_DEFOREST_MEDICAL, + ) + + +/datum/design/organic_printer_bone_gel + name = "Bone Gel" + id = "organic_bone_gel" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass = 100) + build_path = /obj/item/stack/medical/bone_gel + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_DEFOREST_MEDICAL, + ) + +/datum/design/organic_printer_surgical_tape + name = "Surgical Tape" + id = "organic_surgical_tape" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass = 100) + build_path = /obj/item/stack/sticky_tape/surgical + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_DEFOREST_MEDICAL, + ) diff --git a/monkestation/code/modules/blueshift/designs/frontier.dm b/monkestation/code/modules/blueshift/designs/frontier.dm new file mode 100644 index 000000000000..1eb60850a04b --- /dev/null +++ b/monkestation/code/modules/blueshift/designs/frontier.dm @@ -0,0 +1,772 @@ +// Machine categories + +#define FABRICATOR_CATEGORY_APPLIANCES "/Appliances" +#define FABRICATOR_SUBCATEGORY_POWER "/Power" +#define FABRICATOR_SUBCATEGORY_ATMOS "/Atmospherics" +#define FABRICATOR_SUBCATEGORY_FLUIDS "/Liquids" +#define FABRICATOR_SUBCATEGORY_MATERIALS "/Materials" +#define FABRICATOR_SUBCATEGORY_SUSTENANCE "/Sustenance" + +// Techweb node that shouldnt show up anywhere ever specifically for the fabricator to work with + +/datum/techweb_node/colony_fabricator_appliances + id = "colony_fabricator_appliances" + display_name = "Colony Fabricator Appliance Designs" + description = "Contains all of the colony fabricator's appliance machine designs." + design_ids = list( + "wall_multi_cell_rack", + "portable_lil_pump", + "portable_scrubbs", + "survival_knife", // I just don't want to make a whole new node for this one sorry + "water_synth", + "hydro_synth", + "frontier_sustenance_dispenser", + "co2_cracker", + "portable_recycler", + "foodricator", + "wall_heater", + "macrowave", + "frontier_range", + "tabletop_griddle", + ) + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000000000000000) // God save you + hidden = TRUE + show_on_wiki = FALSE + starting_node = TRUE + +// Wall mountable multi cell charger + +/datum/design/wall_mounted_multi_charger + name = "Mounted Multi-Cell Charging Rack" + id = "wall_multi_cell_rack" + build_type = COLONY_FABRICATOR + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 2, + /datum/material/silver = SHEET_MATERIAL_AMOUNT * 1, + ) + build_path = /obj/item/wallframe/cell_charger_multi + category = list( + RND_CATEGORY_INITIAL, + FABRICATOR_CATEGORY_APPLIANCES + FABRICATOR_SUBCATEGORY_POWER, + ) + construction_time = 15 SECONDS + +// Portable scrubber and pumps for all your construction atmospherics needs + +/datum/design/portable_gas_pump + name = "Portable Air Pump" + id = "portable_lil_pump" + build_type = COLONY_FABRICATOR + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 7.5, + /datum/material/glass = SHEET_MATERIAL_AMOUNT * 3, + ) + build_path = /obj/machinery/portable_atmospherics/pump + category = list( + RND_CATEGORY_INITIAL, + FABRICATOR_CATEGORY_APPLIANCES + FABRICATOR_SUBCATEGORY_ATMOS, + ) + construction_time = 30 SECONDS + +/datum/design/portable_gas_scrubber + name = "Portable Air Scrubber" + id = "portable_scrubbs" + build_type = COLONY_FABRICATOR + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 7.5, + /datum/material/glass = SHEET_MATERIAL_AMOUNT * 3, + ) + build_path = /obj/machinery/portable_atmospherics/scrubber + category = list( + RND_CATEGORY_INITIAL, + FABRICATOR_CATEGORY_APPLIANCES + FABRICATOR_SUBCATEGORY_ATMOS, + ) + construction_time = 30 SECONDS + +/// Space heater, but it mounts on walls + +/datum/design/wall_mounted_space_heater + name = "Mounted Heater" + id = "wall_heater" + build_type = COLONY_FABRICATOR + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 4, + /datum/material/silver = SHEET_MATERIAL_AMOUNT * 1, + /datum/material/gold = SMALL_MATERIAL_AMOUNT, + ) + build_path = /obj/item/wallframe/wall_heater + category = list( + RND_CATEGORY_INITIAL, + FABRICATOR_CATEGORY_APPLIANCES + FABRICATOR_SUBCATEGORY_ATMOS, + ) + construction_time = 15 SECONDS + +// Plumbable chem machine that makes nothing but water + +/datum/design/water_synthesizer + name = "Water Synthesizer" + id = "water_synth" + build_type = COLONY_FABRICATOR + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 2.5, + /datum/material/glass = SHEET_MATERIAL_AMOUNT, + ) + build_path = /obj/item/flatpacked_machine/water_synth + category = list( + RND_CATEGORY_INITIAL, + FABRICATOR_CATEGORY_APPLIANCES + FABRICATOR_SUBCATEGORY_FLUIDS, + ) + construction_time = 30 SECONDS + +// Plumbable chem machine that makes nothing but water + +/datum/design/hydro_synthesizer + name = "Hydroponics Chemical Synthesizer" + id = "hydro_synth" + build_type = COLONY_FABRICATOR + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 2.5, + /datum/material/glass = SHEET_MATERIAL_AMOUNT, + ) + build_path = /obj/item/flatpacked_machine/hydro_synth + category = list( + RND_CATEGORY_INITIAL, + FABRICATOR_CATEGORY_APPLIANCES + FABRICATOR_SUBCATEGORY_FLUIDS, + ) + construction_time = 30 SECONDS + +// Chem dispenser that dispenses various flavored beverages and nutrislop, yum! + +/datum/design/frontier_sustenance_dispenser + name = "Sustenance Dispenser" + id = "frontier_sustenance_dispenser" + build_type = COLONY_FABRICATOR + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 2, + /datum/material/glass = SHEET_MATERIAL_AMOUNT, + /datum/material/titanium = HALF_SHEET_MATERIAL_AMOUNT, + ) + build_path = /obj/item/flatpacked_machine/sustenance_machine + category = list( + RND_CATEGORY_INITIAL, + FABRICATOR_CATEGORY_APPLIANCES + FABRICATOR_SUBCATEGORY_SUSTENANCE, + ) + construction_time = 30 SECONDS + +// CO2 cracker, portable machines that takes CO2 and turns it into oxygen + +/datum/design/co2_cracker + name = "Portable Carbon Dioxide Cracker" + id = "co2_cracker" + build_type = COLONY_FABRICATOR + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 7.5, + /datum/material/glass = SHEET_MATERIAL_AMOUNT * 3, + /datum/material/plasma = HALF_SHEET_MATERIAL_AMOUNT, // We're gonna pretend plasma is the catalyst for co2 cracking + ) + build_path = /obj/item/flatpacked_machine/co2_cracker + category = list( + RND_CATEGORY_INITIAL, + FABRICATOR_CATEGORY_APPLIANCES + FABRICATOR_SUBCATEGORY_ATMOS, + ) + construction_time = 30 SECONDS + +// A portable recycling machine, use item with materials on it to recycle + +/datum/design/portable_recycler + name = "Portable Recycler" + id = "portable_recycler" + build_type = COLONY_FABRICATOR + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 7.5, + /datum/material/glass = SHEET_MATERIAL_AMOUNT * 3, + /datum/material/titanium = HALF_SHEET_MATERIAL_AMOUNT, // Titan for the crushing element + ) + build_path = /obj/item/flatpacked_machine/recycler + category = list( + RND_CATEGORY_INITIAL, + FABRICATOR_CATEGORY_APPLIANCES + FABRICATOR_SUBCATEGORY_MATERIALS, + ) + construction_time = 30 SECONDS + +// Rations printer, turns biomass into seeds, some synthesized foods, ingredients, so on + +/datum/design/foodricator + name = "Organic Rations Printer" + id = "foodricator" + build_type = COLONY_FABRICATOR + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 5, + /datum/material/glass = SHEET_MATERIAL_AMOUNT * 2, + /datum/material/silver = SHEET_MATERIAL_AMOUNT, + /datum/material/gold = HALF_SHEET_MATERIAL_AMOUNT, + ) + build_path = /obj/item/flatpacked_machine/organics_ration_printer + category = list( + RND_CATEGORY_INITIAL, + FABRICATOR_CATEGORY_APPLIANCES + FABRICATOR_SUBCATEGORY_SUSTENANCE, + ) + construction_time = 30 SECONDS + +// Really, its just a microwave + +/datum/design/macrowave + name = "Microwave Oven" + id = "macrowave" + build_type = COLONY_FABRICATOR + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 5, + /datum/material/glass = SHEET_MATERIAL_AMOUNT * 2, + /datum/material/silver = HALF_SHEET_MATERIAL_AMOUNT, + ) + build_path = /obj/item/flatpacked_machine/macrowave + category = list( + RND_CATEGORY_INITIAL, + FABRICATOR_CATEGORY_APPLIANCES + FABRICATOR_SUBCATEGORY_SUSTENANCE, + ) + construction_time = 30 SECONDS + +// A range, but it looks cool af + +/datum/design/frontier_range + name = "Frontier Range" + id = "frontier_range" + build_type = COLONY_FABRICATOR + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 7, + /datum/material/glass = SHEET_MATERIAL_AMOUNT * 3, + /datum/material/silver = HALF_SHEET_MATERIAL_AMOUNT, + ) + build_path = /obj/item/flatpacked_machine/frontier_range + category = list( + RND_CATEGORY_INITIAL, + FABRICATOR_CATEGORY_APPLIANCES + FABRICATOR_SUBCATEGORY_SUSTENANCE, + ) + construction_time = 1 MINUTES + +// Griddles that fit on top of any regular table + +/datum/design/tabletop_griddle + name = "Tabletop Griddle" + id = "tabletop_griddle" + build_type = COLONY_FABRICATOR + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 7, + /datum/material/glass = SHEET_MATERIAL_AMOUNT * 3, + /datum/material/silver = HALF_SHEET_MATERIAL_AMOUNT, + ) + build_path = /obj/item/flatpacked_machine/frontier_griddle + category = list( + RND_CATEGORY_INITIAL, + FABRICATOR_CATEGORY_APPLIANCES + FABRICATOR_SUBCATEGORY_SUSTENANCE, + ) + construction_time = 1 MINUTES + +#undef FABRICATOR_CATEGORY_APPLIANCES +#undef FABRICATOR_SUBCATEGORY_POWER +#undef FABRICATOR_SUBCATEGORY_ATMOS +#undef FABRICATOR_SUBCATEGORY_FLUIDS +#undef FABRICATOR_SUBCATEGORY_MATERIALS +#undef FABRICATOR_SUBCATEGORY_SUSTENANCE + +// Look, I had to make its name start with A so it'd be top of the list, fight me + +#define FABRICATOR_SUBCATEGORY_STRUCTURES "/Autofab Structures" + +// Techweb node that shouldnt show up anywhere ever specifically for the fabricator to work with + +/datum/techweb_node/colony_fabricator_structures + id = "colony_fabricator_structures" + display_name = "Colony Fabricator Structure Designs" + description = "Contains all of the colony fabricator's structure designs." + design_ids = list( + "prefab_airlock_kit", + "prefab_manual_airlock_kit", + "prefab_shutters_kit", + "prefab_floor_tile", + "prefab_cat_floor_tile", + "colony_fab_plastic_wall_panel", + ) + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000000000000000) // God save you + hidden = TRUE + show_on_wiki = FALSE + starting_node = TRUE + +// Airlock kit + +/datum/design/prefab_airlock_kit + name = "Prefab Airlock" + id = "prefab_airlock_kit" + build_type = COLONY_FABRICATOR + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 5, + /datum/material/glass = SHEET_MATERIAL_AMOUNT * 2, + ) + build_path = /obj/item/flatpacked_machine/airlock_kit + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_CONSTRUCTION + FABRICATOR_SUBCATEGORY_STRUCTURES, + ) + construction_time = 10 SECONDS + +// Manul Airlock kit + +/datum/design/prefab_manual_airlock_kit + name = "Prefab Manual Airlock" + id = "prefab_manual_airlock_kit" + build_type = COLONY_FABRICATOR + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 5, + /datum/material/glass = SHEET_MATERIAL_AMOUNT * 2, + ) + build_path = /obj/item/flatpacked_machine/airlock_kit_manual + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_CONSTRUCTION + FABRICATOR_SUBCATEGORY_STRUCTURES, + ) + construction_time = 5 SECONDS + +// Shutters kit + +/datum/design/prefab_shutters_kit + name = "Prefab Shutters" + id = "prefab_shutters_kit" + build_type = COLONY_FABRICATOR + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 5, + /datum/material/glass = SHEET_MATERIAL_AMOUNT * 2, + ) + build_path = /obj/item/flatpacked_machine/shutter_kit + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_CONSTRUCTION + FABRICATOR_SUBCATEGORY_STRUCTURES, + ) + construction_time = 10 SECONDS + +// Fancy floor tiles + +/datum/design/prefab_floor_tile + name = "Prefab Floor Tile" + id = "prefab_floor_tile" + build_type = COLONY_FABRICATOR + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT / 4, + ) + build_path = /obj/item/stack/tile/iron/colony + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_CONSTRUCTION + FABRICATOR_SUBCATEGORY_STRUCTURES, + ) + construction_time = 0.5 SECONDS + +// Fancy catwalk floor tiles + +/datum/design/prefab_cat_floor_tile + name = "Prefab Catwalk Plating" + id = "prefab_cat_floor_tile" + build_type = COLONY_FABRICATOR + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT / 4, + ) + build_path = /obj/item/stack/tile/catwalk_tile/colony_lathe + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_CONSTRUCTION + FABRICATOR_SUBCATEGORY_STRUCTURES, + ) + construction_time = 0.5 SECONDS + +// Plastic wall panels, twice the wall for the same price in plastic, efficient! + +/datum/design/colony_fab_plastic_wall_panel + name = "Plastic Paneling" + id = "colony_fab_plastic_wall_panel" + build_type = COLONY_FABRICATOR + materials = list( + /datum/material/plastic = HALF_SHEET_MATERIAL_AMOUNT, + /datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, + ) + build_path = /obj/item/stack/sheet/plastic_wall_panel/ten + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_CONSTRUCTION + FABRICATOR_SUBCATEGORY_STRUCTURES, + ) + construction_time = 1 SECONDS + +#undef FABRICATOR_SUBCATEGORY_STRUCTURES + +/datum/design/survival_knife + name = "Survival Knife" + id = "survival_knife" + build_type = COLONY_FABRICATOR + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 6, + ) + build_path = /obj/item/knife/combat/survival + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_KITCHEN, + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE + +// Lets colony fabricators make soup pots, removes bluespace crystal requirement. +/datum/design/soup_pot/New() + build_type |= COLONY_FABRICATOR + materials -= /datum/material/bluespace + return ..() + +// Machine categories + +#define FABRICATOR_CATEGORY_FLATPACK_MACHINES "/Flatpacked Machines" +#define FABRICATOR_SUBCATEGORY_MANUFACTURING "/Manufacturing" +#define FABRICATOR_SUBCATEGORY_POWER "/Power" +#define FABRICATOR_SUBCATEGORY_MATERIALS "/Materials" +#define FABRICATOR_SUBCATEGORY_ATMOS "/Atmospherics" + +// Techweb node that shouldnt show up anywhere ever specifically for the fabricator to work with + +/datum/techweb_node/colony_fabricator_flatpacks + id = "colony_fabricator_flatpacks" + display_name = "Colony Fabricator Flatpack Designs" + description = "Contains all of the colony fabricator's flatpack machine designs." + design_ids = list( + "flatpack_solar_panel", + "flatpack_solar_tracker", + "flatpack_arc_furnace", + "flatpack_colony_fab", + "flatpack_station_battery", + "flatpack_station_battery_large", + "flatpack_fuel_generator", + "flatpack_rtg", + "flatpack_thermo", + "flatpack_ore_silo", + "flatpack_turbine_team_fortress_two", + "flatpack_bootleg_teg", + ) + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000000000000000) // God save you + hidden = TRUE + show_on_wiki = FALSE + starting_node = TRUE + +// Lets the colony lathe make more colony lathes but at very hihg cost, for fun + +/datum/design/flatpack_colony_fabricator + name = "Flat-Packed Colony Fabricator" + desc = "A deployable fabricator capable of producing other flat-packed machines and other special equipment tailored for \ + rapidly constructing functional structures given resources and power. While it cannot be upgraded, it can be repacked \ + and moved to any location you see fit." + id = "flatpack_colony_fab" + build_type = COLONY_FABRICATOR + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 10, + /datum/material/glass = SHEET_MATERIAL_AMOUNT * 7.5, + /datum/material/titanium = SHEET_MATERIAL_AMOUNT * 2.5, + /datum/material/gold = HALF_SHEET_MATERIAL_AMOUNT, + /datum/material/silver = HALF_SHEET_MATERIAL_AMOUNT, + ) + build_path = /obj/item/flatpacked_machine + category = list( + RND_CATEGORY_INITIAL, + FABRICATOR_CATEGORY_FLATPACK_MACHINES + FABRICATOR_SUBCATEGORY_MANUFACTURING, + ) + construction_time = 2 MINUTES + +// Solar panels and trackers + +/datum/design/flatpack_solar_panel + name = "Flat-Packed Solar Panel" + desc = "A deployable solar panel, able to be repacked after placement for relocation or recycling." + id = "flatpack_solar_panel" + build_type = COLONY_FABRICATOR + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 1.5, + /datum/material/glass = SHEET_MATERIAL_AMOUNT * 1, + ) + build_path = /obj/item/flatpacked_machine/solar + category = list( + RND_CATEGORY_INITIAL, + FABRICATOR_CATEGORY_FLATPACK_MACHINES + FABRICATOR_SUBCATEGORY_POWER, + ) + construction_time = 5 SECONDS + +/datum/design/flatpack_solar_tracker + name = "Flat-Packed Solar Tracker" + desc = "A deployable solar tracker, able to be repacked after placement for relocation or recycling." + id = "flatpack_solar_tracker" + build_type = COLONY_FABRICATOR + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 2, + /datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT * 3.5, + ) + build_path = /obj/item/flatpacked_machine/solar_tracker + category = list( + RND_CATEGORY_INITIAL, + FABRICATOR_CATEGORY_FLATPACK_MACHINES + FABRICATOR_SUBCATEGORY_POWER, + ) + construction_time = 7 SECONDS + +// Arc furance + +/datum/design/flatpack_arc_furnace + name = "Flat-Packed Arc Furnace" + desc = "A deployable furnace for refining ores. While slower and less safe than conventional refining methods, \ + it multiplies the output of refined materials enough to still outperform simply recycling ore." + id = "flatpack_arc_furnace" + build_type = COLONY_FABRICATOR + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 7.5, + /datum/material/glass = SHEET_MATERIAL_AMOUNT * 3, + ) + build_path = /obj/item/flatpacked_machine/arc_furnace + category = list( + RND_CATEGORY_INITIAL, + FABRICATOR_CATEGORY_FLATPACK_MACHINES + FABRICATOR_SUBCATEGORY_MATERIALS, + ) + construction_time = 15 SECONDS + +// Power storage structures + +/datum/design/flatpack_power_storage + name = "Flat-Packed Stationary Battery" + desc = "A deployable station-scale power cell with an overall low capacity, but high input and output rate." + id = "flatpack_station_battery" + build_type = COLONY_FABRICATOR + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 7, + /datum/material/glass = SHEET_MATERIAL_AMOUNT * 2, + /datum/material/silver = HALF_SHEET_MATERIAL_AMOUNT, + ) + build_path = /obj/item/flatpacked_machine/station_battery + category = list( + RND_CATEGORY_INITIAL, + FABRICATOR_CATEGORY_FLATPACK_MACHINES + FABRICATOR_SUBCATEGORY_POWER, + ) + construction_time = 20 SECONDS + +/datum/design/flatpack_power_storage_large + name = "Flat-Packed Large Stationary Battery" + desc = "A deployable station-scale power cell with an overall extremely high capacity, but low input and output rate." + id = "flatpack_station_battery_large" + build_type = COLONY_FABRICATOR + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 12, + /datum/material/glass = SHEET_MATERIAL_AMOUNT * 4, + /datum/material/gold = SHEET_MATERIAL_AMOUNT, + ) + build_path = /obj/item/flatpacked_machine/large_station_battery + category = list( + RND_CATEGORY_INITIAL, + FABRICATOR_CATEGORY_FLATPACK_MACHINES + FABRICATOR_SUBCATEGORY_POWER, + ) + construction_time = 40 SECONDS + +// PACMAN generator but epic!! + +/datum/design/flatpack_solids_generator + name = "Flat-Packed S.O.F.I.E. Generator" + desc = "A deployable plasma-burning generator capable of outperforming even upgraded P.A.C.M.A.N. type generators, \ + at expense of creating hot carbon dioxide exhaust." + id = "flatpack_fuel_generator" + build_type = COLONY_FABRICATOR + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 5, + /datum/material/glass = SHEET_MATERIAL_AMOUNT, + /datum/material/titanium = SHEET_MATERIAL_AMOUNT, + /datum/material/gold = HALF_SHEET_MATERIAL_AMOUNT, + ) + build_path = /obj/item/flatpacked_machine/fuel_generator + category = list( + RND_CATEGORY_INITIAL, + FABRICATOR_CATEGORY_FLATPACK_MACHINES + FABRICATOR_SUBCATEGORY_POWER, + ) + construction_time = 30 SECONDS + +// Buildable RTG that is quite radioactive + +/datum/design/flatpack_rtg + name = "Flat-Packed Radioisotope Thermoelectric Generator" + desc = "A deployable radioisotope generator capable of producing a practically free trickle of power. \ + Free if you can tolerate the radiation that the machine makes while deployed, that is." + id = "flatpack_rtg" + build_type = COLONY_FABRICATOR + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 15, + /datum/material/uranium = SHEET_MATERIAL_AMOUNT * 5, + /datum/material/plasma = HALF_SHEET_MATERIAL_AMOUNT, + /datum/material/gold = HALF_SHEET_MATERIAL_AMOUNT, + ) + build_path = /obj/item/flatpacked_machine/rtg + category = list( + RND_CATEGORY_INITIAL, + FABRICATOR_CATEGORY_FLATPACK_MACHINES + FABRICATOR_SUBCATEGORY_POWER, + ) + construction_time = 30 SECONDS + +// Thermomachine with decent temperature change rate, but a limited max/min temperature + +/datum/design/flatpack_thermomachine + name = "Flat-Packed Atmospheric Temperature Regulator" + desc = "A deployable temperature control device for use with atmospherics pipe systems. \ + Limited in its temperature range, however comes with a higher than normal heat capacity." + id = "flatpack_thermo" + build_type = COLONY_FABRICATOR + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 7.5, + /datum/material/glass = SHEET_MATERIAL_AMOUNT, + ) + build_path = /obj/item/flatpacked_machine/thermomachine + category = list( + RND_CATEGORY_INITIAL, + FABRICATOR_CATEGORY_FLATPACK_MACHINES + FABRICATOR_SUBCATEGORY_ATMOS, + ) + construction_time = 20 SECONDS + +// Ore silo except it beeps + +/datum/design/flatpack_ore_silo + name = "Flat-Packed Ore Silo" + desc = "An all-in-one materials management solution. Connects resource-using machines \ + through a network of distrobution systems." + id = "flatpack_ore_silo" + build_type = COLONY_FABRICATOR + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 5, + /datum/material/glass = SHEET_MATERIAL_AMOUNT * 5, + ) + build_path = /obj/item/flatpacked_machine/ore_silo + category = list( + RND_CATEGORY_INITIAL, + FABRICATOR_CATEGORY_FLATPACK_MACHINES + FABRICATOR_SUBCATEGORY_MATERIALS, + ) + construction_time = 1 MINUTES + +// Wind turbine, produces tiny amounts of power when placed outdoors in an atmosphere, but makes significantly more if there's a storm in that area + +/datum/design/flatpack_turbine_team_fortress_two + name = "Flat-Packed Miniature Wind Turbine" + desc = "A deployable fabricator capable of producing other flat-packed machines and other special equipment tailored for \ + rapidly constructing functional structures given resources and power. While it cannot be upgraded, it can be repacked \ + and moved to any location you see fit. This one makes specialized engineering designs and tools." + id = "flatpack_turbine_team_fortress_two" + build_type = COLONY_FABRICATOR + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 5, + /datum/material/glass = SHEET_MATERIAL_AMOUNT * 2, + /datum/material/gold = HALF_SHEET_MATERIAL_AMOUNT, + ) + build_path = /obj/item/flatpacked_machine/wind_turbine + category = list( + RND_CATEGORY_INITIAL, + FABRICATOR_CATEGORY_FLATPACK_MACHINES + FABRICATOR_SUBCATEGORY_POWER, + ) + construction_time = 30 SECONDS + +// Stirling generator, kinda like a TEG but on a smaller scale and producing less insane amounts of power + +/datum/design/flatpack_bootleg_teg + name = "Flat-Packed Stirling Generator" + desc = "An industrial scale stirling generator. Stirling generators operate by intaking \ + hot gasses through their inlet pipes, and being cooled by the ambient air around them. \ + The cycling compression and expansion that this creates creates power, and this one is made \ + to make power on the scale of small stations and outposts." + id = "flatpack_bootleg_teg" + build_type = COLONY_FABRICATOR + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 15, + /datum/material/glass = SHEET_MATERIAL_AMOUNT * 5, + /datum/material/plasma = SHEET_MATERIAL_AMOUNT * 10, + /datum/material/titanium = SHEET_MATERIAL_AMOUNT * 5, + /datum/material/gold = SHEET_MATERIAL_AMOUNT * 5, + ) + build_path = /obj/item/flatpacked_machine/stirling_generator + category = list( + RND_CATEGORY_INITIAL, + FABRICATOR_CATEGORY_FLATPACK_MACHINES + FABRICATOR_SUBCATEGORY_POWER, + ) + construction_time = 2 MINUTES + +#undef FABRICATOR_CATEGORY_FLATPACK_MACHINES +#undef FABRICATOR_SUBCATEGORY_MANUFACTURING +#undef FABRICATOR_SUBCATEGORY_POWER +#undef FABRICATOR_SUBCATEGORY_MATERIALS +#undef FABRICATOR_SUBCATEGORY_ATMOS + +/datum/techweb_node/colony_fabricator_special_tools + id = "colony_fabricator_tools" + display_name = "Colony Fabricator Tool Designs" + description = "Contains all of the colony fabricator's tool designs." + design_ids = list( + "colony_power_drive", + "colony_prybar", + "colony_arc_welder", + "colony_compact_drill", + ) + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000000000000000) // God save you + hidden = TRUE + show_on_wiki = FALSE + starting_node = TRUE + +// Screw-Wrench-Wirecutter combo machine + +/datum/design/colony_power_driver + name = "Powered Driver" + id = "colony_power_drive" + build_type = COLONY_FABRICATOR + build_path = /obj/item/screwdriver/omni_drill + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 1.75, + /datum/material/silver = HALF_SHEET_MATERIAL_AMOUNT * 1.5, + /datum/material/titanium = HALF_SHEET_MATERIAL_AMOUNT, + ) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ENGINEERING_ADVANCED, + ) + +// Crowbar that is completely normal except it can force doors + +/datum/design/colony_door_crowbar + name = "Prybar" + id = "colony_prybar" + build_type = COLONY_FABRICATOR + build_path = /obj/item/crowbar/large/doorforcer + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 1.75, + /datum/material/titanium = HALF_SHEET_MATERIAL_AMOUNT, + ) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ENGINEERING_ADVANCED, + ) + +// Welder that takes no fuel or power to run but is quite slow, at least it sounds cool as hell + +/datum/design/colony_arc_welder + name = "Arc Welder" + id = "colony_arc_welder" + build_type = COLONY_FABRICATOR + build_path = /obj/item/weldingtool/electric/arc_welder + materials = list( + /datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT, + /datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, + /datum/material/plasma = HALF_SHEET_MATERIAL_AMOUNT * 1.5, + ) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ENGINEERING_ADVANCED, + ) + +// Slightly slower drill that fits in backpacks + +/datum/design/colony_compact_drill + name = "Compact Mining Drill" + id = "colony_compact_drill" + build_type = COLONY_FABRICATOR + build_path = /obj/item/pickaxe/drill/compact + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 3, + /datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, + ) + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_MINING, + ) diff --git a/monkestation/code/modules/blueshift/designs/guns.dm b/monkestation/code/modules/blueshift/designs/guns.dm new file mode 100644 index 000000000000..93d5d273165c --- /dev/null +++ b/monkestation/code/modules/blueshift/designs/guns.dm @@ -0,0 +1,217 @@ +/* +* AMMO +*/ + +/datum/design/strilka310_rubber + name = ".310 Rubber Bullet (Less Lethal)" + id = "astrilka310_rubber" + build_type = AUTOLATHE + materials = list( + /datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT, + ) + build_path = /obj/item/ammo_casing/strilka310/rubber + category = list( + RND_CATEGORY_HACKED, + RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO, + ) + +// 4.6x30mm - SMG round, used in the WT550 and in numerous modular guns as a weaker alternative to 9mm. + +/datum/design/c46x30mm + name = "4.6x30mm Bullet" + id = "c46x30mm" + build_type = AUTOLATHE + materials = list( + /datum/material/iron = SMALL_MATERIAL_AMOUNT * 7.5, + ) + build_path = /obj/item/ammo_casing/c46x30mm + category = list( + RND_CATEGORY_HACKED, + RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO, + ) + +/datum/design/c46x30mm_rubber + name = "4.6x30mm Rubber Bullet" + id = "c46x30mm_rubber" + build_type = AUTOLATHE + materials = list( + /datum/material/iron = SMALL_MATERIAL_AMOUNT * 7.5 + ) + build_path = /obj/item/ammo_casing/c46x30mm/rubber + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO, + ) + +// .45 + +/datum/design/c45_lethal + name = ".45 Bullet" + id = "c45_lethal" + build_type = AUTOLATHE + materials = list( + /datum/material/iron = SMALL_MATERIAL_AMOUNT * 7.5, + ) + build_path = /obj/item/ammo_casing/c45 + category = list( + RND_CATEGORY_HACKED, + RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO, + ) + +/datum/design/c45_rubber + name = ".45 Bouncy Rubber Ball" + id = "c45_rubber" + build_type = AUTOLATHE + materials = list( + /datum/material/iron = SMALL_MATERIAL_AMOUNT * 7.5, + ) + build_path = /obj/item/ammo_casing/c45/rubber + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO, + ) + +// 10mm +/datum/design/c10mm_lethal + name = "10mm Bullet" + id = "c10mm_lethal" + build_type = AUTOLATHE + materials = list( + /datum/material/iron = SMALL_MATERIAL_AMOUNT * 7.5, + ) + build_path = /obj/item/ammo_casing/c10mm + category = list( + RND_CATEGORY_HACKED, + RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO, + ) + +/datum/design/c10mm_rubber + name = "10mm Rubber Bullet" + id = "c10mm_rubber" + build_type = AUTOLATHE + materials = list( + /datum/material/iron = SMALL_MATERIAL_AMOUNT * 7.5, + ) + build_path = /obj/item/ammo_casing/c10mm/rubber + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO, + ) + +/datum/techweb_node/robotics/New() + design_ids += list( + "mini_soulcatcher", + ) + return ..() + +/datum/techweb_node/neural_programming/New() + design_ids += list( + "soulcatcher_device", + ) + return ..() + +//12 Gauge +/datum/design/shotgun_slug + name = "Shotgun Slug" + id = "shotgun_slug" + build_type = AUTOLATHE + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 2, + ) + build_path = /obj/item/ammo_casing/shotgun + category = list( + RND_CATEGORY_HACKED, RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO, + ) + +/datum/design/shotgun_slug/sec + id = "sec_shotgun_slug" + build_type = PROTOLATHE | AWAY_LATHE + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT, + ) + category = list( + RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO, + ) + departmental_flags = DEPARTMENT_BITFLAG_SECURITY + autolathe_exportable = FALSE + +/datum/design/buckshot_shell + name = "Buckshot Shell" + id = "buckshot_shell" + build_type = AUTOLATHE + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 2, + ) + build_path = /obj/item/ammo_casing/shotgun/buckshot + category = list( + RND_CATEGORY_HACKED, RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO, + ) + +/datum/design/buckshot_shell/sec + id = "sec_buckshot_shell" + build_type = PROTOLATHE | AWAY_LATHE + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT, + ) + category = list( + RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO, + ) + departmental_flags = DEPARTMENT_BITFLAG_SECURITY + autolathe_exportable = FALSE + +//Existing Designs Discounting + +/datum/design/rubbershot + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 2, + ) + +/datum/design/rubbershot/sec + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT, + ) + +/datum/design/beanbag_slug + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 2, + ) + +/datum/design/beanbag_slug/sec + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT, + ) + +/datum/design/shotgun_dart + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 2, + ) + +/datum/design/shotgun_dart/sec + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT, + ) + +/datum/design/incendiary_slug + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 2, + ) + +/datum/design/incendiary_slug/sec + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT, + ) + + +/datum/techweb_node/integrated_hud/New() + design_ids += list( + "permit_glasses", + "nifsoft_money_sense", + "nifsoft_hud_kit", + "nifsoft_hud_science", + "nifsoft_hud_meson", + "nifsoft_hud_medical", + "nifsoft_hud_security", + "nifsoft_hud_diagnostic", + "nifsoft_hud_cargo", + ) + return ..() diff --git a/monkestation/code/modules/blueshift/designs/nif.dm b/monkestation/code/modules/blueshift/designs/nif.dm new file mode 100644 index 000000000000..3355a31e0ea5 --- /dev/null +++ b/monkestation/code/modules/blueshift/designs/nif.dm @@ -0,0 +1,132 @@ +/datum/design/nifsoft_remover + name = "Lopland 'Wrangler' NIF-Cutter" + desc = "A small device that lets the user remove NIFSofts from a NIF user." + id = "nifsoft_remover" + build_type = PROTOLATHE | AWAY_LATHE + build_path = /obj/item/nifsoft_remover + materials = list( + /datum/material/iron = SMALL_MATERIAL_AMOUNT, + /datum/material/silver = HALF_SHEET_MATERIAL_AMOUNT, + /datum/material/uranium = HALF_SHEET_MATERIAL_AMOUNT, + ) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_SECURITY, + ) + departmental_flags = DEPARTMENT_BITFLAG_SECURITY + +/datum/design/nifsoft_money_sense + name = "Automatic Appraisal NIFSoft" + desc = "A NIFSoft datadisk containing the Automatic Appraisal NIFsoft." + id = "nifsoft_money_sense" + build_type = PROTOLATHE | AWAY_LATHE + build_path = /obj/item/disk/nifsoft_uploader/money_sense + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT, + /datum/material/silver = HALF_SHEET_MATERIAL_AMOUNT, + /datum/material/plastic = SHEET_MATERIAL_AMOUNT, + ) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_CARGO, + ) + departmental_flags = DEPARTMENT_BITFLAG_CARGO + +/datum/design/soulcatcher_device + name = "Evoker-Type RSD" + desc = "An RSD instrument that lets the user pull the consciousness from a body and store it virtually." + id = "soulcatcher_device" + build_type = PROTOLATHE | AWAY_LATHE + build_path = /obj/item/handheld_soulcatcher + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 3, + /datum/material/silver = SHEET_MATERIAL_AMOUNT, + /datum/material/bluespace = SHEET_MATERIAL_AMOUNT, + ) + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_EQUIPMENT_MEDICAL, + ) + departmental_flags = DEPARTMENT_BITFLAG_MEDICAL | DEPARTMENT_BITFLAG_SCIENCE + +/datum/design/mini_soulcatcher + name = "Poltergeist-Type RSD" + desc = "A miniature version of a Soulcatcher that can be attached to various objects." + id = "mini_soulcatcher" + build_type = PROTOLATHE | AWAY_LATHE + build_path = /obj/item/attachable_soulcatcher + materials = list( + /datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, + /datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT, + ) + category = list( + RND_CATEGORY_AI + RND_SUBCATEGORY_AI_MISC, + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_SERVICE | DEPARTMENT_BITFLAG_MEDICAL + +/datum/design/nifsoft_hud + build_type = PROTOLATHE | AWAY_LATHE + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT, + /datum/material/silver = HALF_SHEET_MATERIAL_AMOUNT, + /datum/material/plastic = SHEET_MATERIAL_AMOUNT, + ) + category = list( + RND_CATEGORY_EQUIPMENT, + ) + +/datum/design/nifsoft_hud/medical + name = "Medical HUD NIFSoft" + desc = "A NIFSoft datadisk containing the Medical HUD NIFsoft." + id = "nifsoft_hud_medical" + build_path = /obj/item/disk/nifsoft_uploader/med_hud + departmental_flags = DEPARTMENT_BITFLAG_MEDICAL + +/datum/design/nifsoft_hud/security + name = "Security HUD NIFSoft" + desc = "A NIFSoft datadisk containing the Security HUD NIFsoft." + id = "nifsoft_hud_security" + build_path = /obj/item/disk/nifsoft_uploader/sec_hud + departmental_flags = DEPARTMENT_BITFLAG_SECURITY + +/datum/design/nifsoft_hud/cargo + name = "Permit HUD NIFSoft" + desc = "A NIFSoft datadisk containing the Permit HUD NIFsoft." + id = "nifsoft_hud_cargo" + build_path = /obj/item/disk/nifsoft_uploader/permit_hud + departmental_flags = DEPARTMENT_BITFLAG_CARGO + +/datum/design/nifsoft_hud/diagnostic + name = "Diagnostic HUD NIFSoft" + desc = "A NIFSoft datadisk containing the Diagnostic HUD NIFsoft." + id = "nifsoft_hud_diagnostic" + build_path = /obj/item/disk/nifsoft_uploader/diag_hud + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE + +/datum/design/nifsoft_hud/science + name = "Science HUD NIFSoft" + desc = "A NIFSoft datadisk containing the Science HUD NIFsoft." + id = "nifsoft_hud_science" + build_path = /obj/item/disk/nifsoft_uploader/sci_hud + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_SERVICE | DEPARTMENT_BITFLAG_MEDICAL + +/datum/design/nifsoft_hud/meson + name = "Meson HUD NIFSoft" + desc = "A NIFSoft datadisk containing the Meson HUD NIFsoft." + id = "nifsoft_hud_meson" + build_path = /obj/item/disk/nifsoft_uploader/meson_hud + departmental_flags = DEPARTMENT_BITFLAG_CARGO | DEPARTMENT_BITFLAG_ENGINEERING + +/datum/design/nif_hud_kit + name = "NIF HUD Retrofitter" + desc = "A kit that modifies select glasses to display HUDs for NIFs." + id = "nifsoft_hud_kit" + build_type = PROTOLATHE | AWAY_LATHE + departmental_flags = DEPARTMENT_BITFLAG_CARGO | DEPARTMENT_BITFLAG_MEDICAL | DEPARTMENT_BITFLAG_SERVICE | DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING | DEPARTMENT_BITFLAG_SECURITY + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 2, + /datum/material/glass = SHEET_MATERIAL_AMOUNT * 2, + /datum/material/plastic = SHEET_MATERIAL_AMOUNT, + ) + category = list( + RND_CATEGORY_EQUIPMENT, + ) + build_path = /obj/item/nif_hud_adapter + diff --git a/monkestation/code/modules/blueshift/designs/ration_printer.dm b/monkestation/code/modules/blueshift/designs/ration_printer.dm new file mode 100644 index 000000000000..ccfc7341834c --- /dev/null +++ b/monkestation/code/modules/blueshift/designs/ration_printer.dm @@ -0,0 +1,420 @@ +/datum/design/frontier_ration_egg + name = "Egg" + id = "frontier_ration_egg" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass = 25) + build_path = /obj/item/food/egg + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_AKHTER_FOODRICATOR_INGREDIENTS, + ) + +/datum/design/frontier_ration_chicken + name = "Chicken" + id = "frontier_ration_chicken" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass = 50) + build_path = /obj/item/food/meat/slab/chicken + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_AKHTER_FOODRICATOR_INGREDIENTS, + ) + +/datum/design/frontier_ration_mystery_meat + name = "Meat Product" + id = "frontier_ration_mystery_meat" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass = 50) + build_path = /obj/item/food/meat/slab/meatproduct + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_AKHTER_FOODRICATOR_INGREDIENTS, + ) + +/datum/design/frontier_ration_butter + name = "Butter" + id = "frontier_ration_butter" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass = 25) + build_path = /obj/item/food/butter + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_AKHTER_FOODRICATOR_INGREDIENTS, + ) + +/datum/design/frontier_ration_cheese + name = "Cheese" + id = "frontier_ration_cheese" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass = 25) + build_path = /obj/item/food/cheese/wedge + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_AKHTER_FOODRICATOR_INGREDIENTS, + ) + +/datum/design/frontier_ration_cheese_firm + name = "Firm Cheese" + id = "frontier_ration_firm_cheese" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass = 25) + build_path = /obj/item/food/cheese/firm_cheese_slice + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_AKHTER_FOODRICATOR_INGREDIENTS, + ) + +/datum/design/frontier_ration_flour + name = "Flour Sack" + id = "frontier_ration_flour_sack" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass = 100) + build_path = /obj/item/reagent_containers/condiment/flour/small_ration + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_AKHTER_FOODRICATOR_BAGS, + ) + +/datum/design/frontier_ration_flour_korta + name = "Korta Flour Sack" + id = "frontier_ration_flour_sack_korta" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass = 100) + build_path = /obj/item/reagent_containers/condiment/small_ration_korta_flour + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_AKHTER_FOODRICATOR_BAGS, + ) + +/datum/design/frontier_ration_rice + name = "Rice Sack" + id = "frontier_ration_rice_sack" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass = 100) + build_path = /obj/item/reagent_containers/condiment/rice/small_ration + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_AKHTER_FOODRICATOR_BAGS, + ) + +/datum/design/frontier_ration_sugar + name = "Sugar Sack" + id = "frontier_ration_sugar_sack" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass = 100) + build_path = /obj/item/reagent_containers/condiment/sugar/small_ration + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_AKHTER_FOODRICATOR_BAGS, + ) + +/datum/design/frontier_ration_soy_milk + name = "Soy Milk" + id = "frontier_ration_soy_milk_cart" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass = 100) + build_path = /obj/item/reagent_containers/condiment/soymilk/small_ration + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_AKHTER_FOODRICATOR_BAGS, + ) + +/datum/design/frontier_ration_milk + name = "Milk" + id = "frontier_ration_milk_cart" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass = 100) + build_path = /obj/item/reagent_containers/condiment/milk/small_ration + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_AKHTER_FOODRICATOR_BAGS, + ) + +/datum/design/organic_parsnip_seed + name = "Pack of Parsnip Seeds" + id = "oganic_parsnip_seed" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass = 25) + build_path = /obj/item/seeds/carrot/parsnip + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_AKHTER_SEEDS, + ) + +/datum/design/organic_beet_seed + name = "Pack of White-Beet Seeds" + id = "oganic_beet_seed" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass = 25) + build_path = /obj/item/seeds/whitebeet + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_AKHTER_SEEDS, + ) + +/datum/design/organic_potato_seed + name = "Pack of Potato Seeds" + id = "oganic_potato_seed" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass = 25) + build_path = /obj/item/seeds/potato + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_AKHTER_SEEDS, + ) + +/datum/design/organic_soy_seed + name = "Pack of Soybean Seeds" + id = "oganic_soy_seed" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass = 25) + build_path = /obj/item/seeds/soya + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_AKHTER_SEEDS, + ) + +/datum/design/organic_rice_seed + name = "Pack of Rice Seeds" + id = "oganic_rice_seed" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass = 25) + build_path = /obj/item/seeds/wheat/rice + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_AKHTER_SEEDS, + ) + +/datum/design/organic_oat_seed + name = "Pack of Oat Seeds" + id = "oganic_oat_seed" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass = 25) + build_path = /obj/item/seeds/wheat/oat + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_AKHTER_SEEDS, + ) + +/datum/design/organic_korta_seed + name = "Pack of Korta Seeds" + id = "oganic_korta_seed" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass = 25) + build_path = /obj/item/seeds/korta_nut + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_AKHTER_SEEDS, + ) + +/datum/design/organic_plump_helmet + name = "Pack of Plump-Helmet Seeds" + id = "oganic_plump_helmet" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass = 25) + build_path = /obj/item/seeds/plump + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_AKHTER_SEEDS, + ) + +/datum/design/frontier_ration_gum + name = "Gum" + id = "frontier_ration_gum" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass = 100) + build_path = /obj/item/storage/box/gum + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_AKHTER_FOODRICATOR_SNACKS, + ) + +/datum/design/frontier_ration_gum_wakeup + name = "Activin 12 Hour Medicated Gum" + id = "frontier_ration_gum_wakeup" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass = 100) + build_path = /obj/item/storage/box/gum/wake_up + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_AKHTER_FOODRICATOR_SNACKS, + ) + +/datum/design/frontier_ration_energy_bar + name = "High Power Energy Bar" + id = "frontier_ration_energy_bar" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass = 50) + build_path = /obj/item/food/energybar + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_AKHTER_FOODRICATOR_SNACKS, + ) + +/datum/design/frontier_ration_ciggies + name = "Cigarettes" + id = "frontier_ration_ciggies" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass = 50) + build_path = /obj/item/storage/fancy/cigarettes/cigpack_uplift + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_AKHTER_FOODRICATOR_SNACKS, + ) + +/datum/design/frontier_ration_engine_fodder + name = "Engine Fodder" + id = "frontier_ration_engine_fodder" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass = 50) + build_path = /obj/item/food/vendor_snacks/moth_bag + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_AKHTER_FOODRICATOR_SNACKS, + ) + +/datum/design/frontier_ration_fueljak_snack + name = "Fueljack's Snack" + id = "frontier_ration_fueljak_snack" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass = 50) + build_path = /obj/item/food/vendor_snacks/moth_bag/fuel_jack + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_AKHTER_FOODRICATOR_SNACKS, + ) + +/datum/design/frontier_ration_ricecracker + name = "Rice Crackers" + id = "frontier_ration_ricecracker" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass = 50) + build_path = /obj/item/food/vendor_snacks/rice_crackers + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_AKHTER_FOODRICATOR_SNACKS, + ) + +/datum/design/frontier_ration_plastic_fork + name = "Plastic Fork" + id = "frontier_ration_plastic_fork" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass = 10) + build_path = /obj/item/kitchen/fork/plastic + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_AKHTER_FOODRICATOR_UTENSILS, + ) + +/datum/design/frontier_ration_plastic_spoon + name = "Plastic Spoon" + id = "frontier_ration_plastic_spoon" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass = 10) + build_path = /obj/item/kitchen/spoon/plastic + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_AKHTER_FOODRICATOR_UTENSILS, + ) + +/datum/design/frontier_ration_plastic_knife + name = "Plastic Knife" + id = "frontier_ration_plastic_knife" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass = 10) + build_path = /obj/item/knife/plastic + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_AKHTER_FOODRICATOR_UTENSILS, + ) + +/datum/design/frontier_ration_plastic_cup + name = "Plastic Cup" + id = "frontier_ration_plastic_cup" + build_type = BIOGENERATOR + materials = list(/datum/material/biomass = 25) + build_path = /obj/item/reagent_containers/cup/glass/coffee_cup + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_AKHTER_FOODRICATOR_UTENSILS, + ) + +/obj/item/reagent_containers/condiment/flour/small_ration + name = "small flour sack" + desc = "A maritime ration-sized portion of flour, containing just enough to make a single good loaf of bread to fuel the day." + icon = 'monkestation/code/modules/blueshift/icons/food_containers.dmi' + list_reagents = list(/datum/reagent/consumable/flour = 15) + +/obj/item/reagent_containers/condiment/rice/small_ration + name = "small rice sack" + desc = "A maritime ration-sized portion of rice, containing just enough to make the universe's saddest rice dish." + icon = 'monkestation/code/modules/blueshift/icons/food_containers.dmi' + list_reagents = list(/datum/reagent/consumable/rice = 10) + +/obj/item/reagent_containers/condiment/sugar/small_ration + name = "small sugar sack" + desc = "A maritime ration-sized portion of sugar, containing just enough to make the day just a tiny bit sweeter." + icon = 'monkestation/code/modules/blueshift/icons/food_containers.dmi' + list_reagents = list(/datum/reagent/consumable/sugar = 10) + +/obj/item/reagent_containers/condiment/small_ration_korta_flour + name = "small korta flour sack" + desc = "A maritime ration-sized portion of korta flour, containing just enough to make a single good loaf of bread to fuel the day." + icon = 'monkestation/code/modules/blueshift/icons/food_containers.dmi' + icon_state = "flour_korta" + inhand_icon_state = "carton" + lefthand_file = 'icons/mob/inhands/items/drinks_lefthand.dmi' + righthand_file = 'icons/mob/inhands/items/drinks_righthand.dmi' + list_reagents = list(/datum/reagent/consumable/korta_flour = 10) + fill_icon_thresholds = null + +/obj/item/reagent_containers/condiment/soymilk/small_ration + name = "small soy milk" + desc = "It's soy milk. White and nutritious goodness! This one is significantly smaller than normal cartons; just enough to make some rootdough with." + icon = 'monkestation/code/modules/blueshift/icons/food_containers.dmi' + list_reagents = list(/datum/reagent/consumable/soymilk = 15) + +/obj/item/reagent_containers/condiment/milk/small_ration + name = "small milk" + desc = "It's milk. White and nutritious goodness! This one is significantly smaller than normal cartons; just enough to make some cheese with." + icon = 'monkestation/code/modules/blueshift/icons/food_containers.dmi' + list_reagents = list(/datum/reagent/consumable/milk = 15) + +/obj/item/reagent_containers/cup/glass/bottle/small/tiny + name = "tiny glass bottle" + volume = 10 + +/obj/item/reagent_containers/cup/glass/bottle/small/tiny/Initialize(mapload, vol) + . = ..() + transform = transform.Scale(0.75, 0.75) + +/obj/item/reagent_containers/cup/glass/bottle/small/tiny/lime_juice + name = "tiny lime juice bottle" + desc = "A maritime ration-sized bottle of lime juice, containing enough to keep the scurvy away while on long voyages." + list_reagents = list(/datum/reagent/consumable/limejuice = 10) + +/obj/item/reagent_containers/cup/glass/bottle/small/tiny/vinegar + name = "tiny vinegar bottle" + desc = "A maritime ration-sized bottle of vinegar, containing enough to... Well, we're not entirely sure, but law mandates you're given this, so..." + list_reagents = list(/datum/reagent/consumable/vinegar = 10) + +/obj/item/reagent_containers/cup/glass/bottle/small/tiny/coffee + name = "tiny coffee powder bottle" + desc = "A maritime ration-sized bottle of coffee powder, containing enough to make a morning's brew." + list_reagents = list(/datum/reagent/toxin/coffeepowder = 10) + +/obj/item/reagent_containers/cup/glass/bottle/small/tiny/tea + name = "tiny tea powder bottle" + desc = "A maritime ration-sized bottle of tea powder, containing enough to make a morning's tea." + list_reagents = list(/datum/reagent/toxin/teapowder = 10) + +/obj/item/reagent_containers/cup/glass/bottle/small/tiny/honey + name = "tiny honey bottle" + desc = "A maritime ration-sized bottle of honey, a minuscule amount for a minuscule sweetening to your day." + list_reagents = list(/datum/reagent/consumable/honey = 5) + +/obj/item/reagent_containers/cup/glass/bottle/small/tiny/caramel + name = "tiny caramel bottle" + desc = "A maritime ration-sized bottle of caramel, in the past these used to be something called 'treacle', which was \ + the tar left over from refining sugar. Nowadays, governments are rich enough to just send caramel instead." + list_reagents = list(/datum/reagent/consumable/caramel = 10) diff --git a/monkestation/code/modules/blueshift/effects/ash_walker.dm b/monkestation/code/modules/blueshift/effects/ash_walker.dm new file mode 100644 index 000000000000..d3ee0f907e05 --- /dev/null +++ b/monkestation/code/modules/blueshift/effects/ash_walker.dm @@ -0,0 +1,573 @@ +/obj/item/seeds/surik + name = "pack of surik seeds" + desc = "These seeds grow into surik plants. Said to contain the very essence of Indecipheres." + icon = 'monkestation/code/modules/blueshift/icons/seeds.dmi' + icon_state = "surik" + species = "surik" + plantname = "Surik Plant" + product = /obj/item/food/grown/surik + lifespan = 55 + endurance = 35 + yield = 5 + growing_icon = 'monkestation/code/modules/blueshift/icons/growing.dmi' + icon_grow = "surik-stage" + growthstages = 4 + genes = list(/datum/plant_gene/trait/repeated_harvest, /datum/plant_gene/trait/fire_resistance) + reagents_add = list(/datum/reagent/brimdust = 0.1, /datum/reagent/medicine/omnizine/godblood = 0.1, /datum/reagent/wittel = 0.1) + +/obj/item/food/grown/surik + seed = /obj/item/seeds/surik + name = "surik" + desc = "A shimmering surik crystal. The center of the gem thrums with volcanic activity." + icon = 'monkestation/code/modules/blueshift/icons/harvest.dmi' + icon_state = "surik" + filling_color = "#FF4500" + bite_consumption_mod = 0.5 + foodtypes = FRUIT + juice_results = list(/datum/reagent/brimdust = 0) + tastes = list("crystals" = 1) + + +/datum/ash_ritual + /// the name of the ritual + var/name = "Summon Coders" + /// the description of the ritual + var/desc + + /// the components necessary for a successful ritual + var/list/required_components = list() + /// the list that checks whether the components will be consumed + var/list/consumed_components = list() + + /// if the ritual is successful, it will go through each item in the list to be spawned + var/list/ritual_success_items + + /// the effect that is spawned when the components are consumed, etc. + var/ritual_effect = /obj/effect/particle_effect/sparks + + /// the time it takes to process each stage of the ritual + var/ritual_time = 5 SECONDS + + /// whether the ritual is in use + var/in_use = FALSE + +/datum/ash_ritual/proc/ritual_start(obj/effect/ash_rune/rune) + + if(in_use) + return + in_use = TRUE + + rune.balloon_alert_to_viewers("ritual has begun...") + new ritual_effect(rune.loc) + + // it is entirely possible to have your own effects here... this is just a suggestion + var/atom/movable/warp_effect/warp = new(rune) + rune.vis_contents += warp + + sleep(ritual_time) + + if(!check_component_list(rune)) + rune.vis_contents -= warp + warp = null + return + + ritual_success(rune) + + // make sure to remove your effects at the end + rune.vis_contents -= warp + warp = null + +/datum/ash_ritual/proc/check_component_list(obj/effect/ash_rune/checked_rune) + for(var/checked_component in required_components) + var/set_direction = text2dir(checked_component) + var/turf/checked_turf = get_step(checked_rune, set_direction) + var/atom_check = locate(required_components[checked_component]) in checked_turf.contents + if(!atom_check) + ritual_fail(checked_rune) + return FALSE + + if(is_type_in_list(atom_check, consumed_components)) + qdel(atom_check) + checked_rune.balloon_alert_to_viewers("[checked_component] component has been consumed...") + + else + checked_rune.balloon_alert_to_viewers("[checked_component] component has been checked...") + + new ritual_effect(checked_rune.loc) + sleep(ritual_time) + + return TRUE + +/datum/ash_ritual/proc/ritual_fail(obj/effect/ash_rune/failed_rune) + new ritual_effect(failed_rune.loc) + failed_rune.balloon_alert_to_viewers("ritual has failed...") + failed_rune.current_ritual = null + in_use = FALSE + return + +/datum/ash_ritual/proc/ritual_success(obj/effect/ash_rune/success_rune) + new ritual_effect(success_rune.loc) + success_rune.balloon_alert_to_viewers("ritual has been successful...") + log_game("[name] ritual has been successfully activated.") + + var/turf/rune_turf = get_turf(success_rune) + if(length(ritual_success_items)) + for(var/type in ritual_success_items) + new type(rune_turf) + + success_rune.current_ritual = null + in_use = FALSE + return TRUE + +/datum/ash_ritual/summon_staff + name = "Summon Ash Staff" + desc = "Summon a staff that is imbued with the power of the tendril. Requires permission from the mother tendril." + required_components = list( + "north" = /obj/item/stack/sheet/mineral/wood, + "south" = /obj/item/organ/internal/monster_core/regenerative_core, + ) + consumed_components = list( + /obj/item/stack/sheet/mineral/wood, + /obj/item/organ/internal/monster_core/regenerative_core, + ) + ritual_success_items = list( + /obj/item/ash_staff, + ) + +/datum/ash_ritual/summon_necklace + name = "Summon Draconic Necklace" + desc = "Summons a necklace that imbues the wearer with the knowledge of our tongue." + required_components = list( + "north" = /obj/item/stack/sheet/bone, + "south" = /obj/item/organ/internal/monster_core/regenerative_core, + "east" = /obj/item/stack/sheet/sinew, + "west" = /obj/item/stack/sheet/sinew, + ) + consumed_components = list( + /obj/item/stack/sheet/bone, + /obj/item/organ/internal/monster_core/regenerative_core, + /obj/item/stack/sheet/sinew, + ) + ritual_success_items = list( + /obj/item/clothing/neck/necklace/ashwalker, + ) + +/datum/ash_ritual/summon_key + name = "Summon Skeleton Key" + desc = "Summons a key that opens the chests from fallen tendrils." + required_components = list( + "north" = /obj/item/stack/sheet/bone, + "south" = /obj/item/stack/sheet/bone, + "east" = /obj/item/stack/sheet/bone, + "west" = /obj/item/stack/sheet/bone, + ) + consumed_components = list( + /obj/item/stack/sheet/bone, + ) + ritual_success_items = list( + /obj/item/skeleton_key, + ) + +/datum/ash_ritual/summon_cursed_knife + name = "Summon Cursed Ash Knife" + desc = "Summons a knife that places a tracking curse on unsuspecting miners who destroy our marked tendrils." + required_components = list( + "north" = /obj/item/organ/internal/monster_core/regenerative_core, + "south" = /obj/item/knife/combat/bone, + "east" = /obj/item/stack/sheet/bone, + "west" = /obj/item/stack/sheet/sinew, + ) + consumed_components = list( + /obj/item/organ/internal/monster_core/regenerative_core, + /obj/item/knife/combat/bone, + /obj/item/stack/sheet/bone, + /obj/item/stack/sheet/sinew, + ) + ritual_success_items = list( + /obj/item/cursed_dagger, + ) + +/datum/ash_ritual/summon_cursed_carver + name = "Summon Cursed Ash Carver" + desc = "Summons a weapon that mimics the invader's tools, allowing us to collect trophies from the hunt." + required_components = list( + "north" = /obj/item/organ/internal/monster_core/regenerative_core, + "south" = /obj/item/cursed_dagger, + "east" = /obj/item/stack/sheet/bone, + "west" = /obj/item/stack/sheet/sinew, + ) + consumed_components = list( + /obj/item/organ/internal/monster_core/regenerative_core, + /obj/item/cursed_dagger, + /obj/item/stack/sheet/bone, + /obj/item/stack/sheet/sinew, + ) + ritual_success_items = list( + /obj/item/kinetic_crusher/cursed, + ) + +/datum/ash_ritual/summon_tendril_seed + name = "Summon Tendril Seed" + desc = "Summons a seed that, when used in the hand, will cause a tendril to come through at your location." + required_components = list( + "north" = /obj/item/organ/internal/monster_core/regenerative_core, + "south" = /obj/item/cursed_dagger, + "east" = /obj/item/crusher_trophy/goliath_tentacle, + "west" = /obj/item/crusher_trophy/watcher_wing, + ) + consumed_components = list( + /obj/item/organ/internal/monster_core/regenerative_core, + /obj/item/cursed_dagger, + /obj/item/crusher_trophy/goliath_tentacle, + /obj/item/crusher_trophy/watcher_wing, + ) + ritual_success_items = list( + /obj/item/tendril_seed, + ) + +/datum/ash_ritual/incite_megafauna + name = "Incite Megafauna" + desc = "Causes a horrible, unrecognizable sound that will attract the large fauna from around the planet." + required_components = list( + "north" = /mob/living/carbon/human, + "south" = /obj/item/tendril_seed, + "east" = /mob/living/carbon/human, + "west" = /mob/living/carbon/human, + ) + consumed_components = list( + /mob/living/carbon/human, + /obj/item/tendril_seed, + ) + +/datum/ash_ritual/incite_megafauna/ritual_success(obj/effect/ash_rune/success_rune) + . = ..() + for(var/mob/select_mob in GLOB.player_list) + if(select_mob.z != success_rune.z) + continue + + to_chat(select_mob, span_userdanger("The planet stirs... another monster has arrived!")) + playsound(get_turf(select_mob), 'sound/magic/demon_attack1.ogg', 50, TRUE) + flash_color(select_mob, flash_color = "#FF0000", flash_time = 3 SECONDS) + + var/megafauna_choice = pick( + /mob/living/simple_animal/hostile/megafauna/blood_drunk_miner, + /mob/living/simple_animal/hostile/megafauna/dragon, + /mob/living/simple_animal/hostile/megafauna/hierophant, + ) + + var/turf/spawn_turf = locate(rand(1,255), rand(1,255), success_rune.z) + + var/anti_endless = 0 + while(!istype(spawn_turf, /turf/open/misc/asteroid) && anti_endless < 100) + spawn_turf = locate(rand(1,255), rand(1,255), success_rune.z) + anti_endless++ + + new /obj/effect/particle_effect/sparks(spawn_turf) + addtimer(CALLBACK(src, PROC_REF(spawn_megafauna), megafauna_choice, spawn_turf), 3 SECONDS) + +/** + * Called within an addtimer in the ritual success of "Incite Megafauna." + * ARG: chosen_megafauna is the megafauna that will be spawned + * ARG: spawning_turf is the turf that the megafauna will be spawned on + */ +/datum/ash_ritual/incite_megafauna/proc/spawn_megafauna(chosen_megafauna, turf/spawning_turf) + new chosen_megafauna(spawning_turf) + +/datum/ash_ritual/ash_ceremony + name = "Ashen Age Ceremony" + desc = "Those who partake in the ceremony and are ready will age, increasing their value to the kin." + required_components = list( + "north" = /mob/living/carbon/human, + "south" = /obj/item/organ/internal/monster_core/regenerative_core, + "east" = /obj/item/stack/sheet/bone, + "west" = /obj/item/stack/sheet/sinew, + ) + consumed_components = list( + /mob/living/carbon/human, + /obj/item/organ/internal/monster_core/regenerative_core, + /obj/item/stack/sheet/bone, + /obj/item/stack/sheet/sinew, + ) + +/datum/ash_ritual/ash_ceremony/ritual_success(obj/effect/ash_rune/success_rune) + . = ..() + for(var/mob/living/carbon/human/human_target in range(2, get_turf(success_rune))) + SEND_SIGNAL(human_target, COMSIG_RUNE_EVOLUTION) + +/datum/ash_ritual/summon_lavaland_creature + name = "Summon Lavaland Creature" + desc = "Summons a random, wild monster from another region in space." + required_components = list( + "north" = /obj/item/organ/internal/monster_core/regenerative_core, + "south" = /mob/living/basic/mining/ice_whelp, + "east" = /obj/item/stack/ore/bluespace_crystal, + "west" = /obj/item/stack/ore/bluespace_crystal, + ) + consumed_components = list( + /obj/item/organ/internal/monster_core/regenerative_core, + /mob/living/basic/mining/ice_whelp, + ) + +/datum/ash_ritual/summon_lavaland_creature/ritual_success(obj/effect/ash_rune/success_rune) + . = ..() + var/mob_type = pick( + /mob/living/basic/mining/goliath, + /mob/living/basic/mining/legion, + /mob/living/basic/mining/brimdemon, + /mob/living/basic/mining/watcher, + /mob/living/basic/mining/lobstrosity/lava, + ) + new mob_type(success_rune.loc) + +/datum/ash_ritual/summon_icemoon_creature + name = "Summon Icemoon Creature" + desc = "Summons a random, wild monster from another region in space." + required_components = list( + "north" = /obj/item/organ/internal/monster_core/regenerative_core, + "south" = /obj/item/food/grown/surik, + "east" = /obj/item/stack/ore/bluespace_crystal, + "west" = /obj/item/stack/ore/bluespace_crystal, + ) + consumed_components = list( + /obj/item/organ/internal/monster_core/regenerative_core, + /obj/item/food/grown/surik, + ) + +/datum/ash_ritual/summon_icemoon_creature/ritual_success(obj/effect/ash_rune/success_rune) + . = ..() + var/mob_type = pick( + /mob/living/basic/mining/ice_demon, + /mob/living/basic/mining/ice_whelp, + /mob/living/basic/mining/lobstrosity, + /mob/living/simple_animal/hostile/asteroid/polarbear, + /mob/living/basic/mining/wolf, + ) + new mob_type(success_rune.loc) + +/datum/ash_ritual/share_damage + name = "Share Victim's Damage" + desc = "The damage from the central victim will be shared amongst the rest of the surrounding, living kin." + required_components = list( + "north" = /obj/item/stack/sheet/bone, + "south" = /obj/item/stack/sheet/sinew, + ) + consumed_components = list( + /obj/item/stack/sheet/bone, + /obj/item/stack/sheet/sinew, + ) + +/datum/ash_ritual/share_damage/ritual_success(obj/effect/ash_rune/success_rune) + . = ..() + + var/mob/living/carbon/human/human_victim = locate() in get_turf(success_rune) + if(!human_victim) + return + + var/total_damage = human_victim.getBruteLoss() + human_victim.getFireLoss() + var/divide_damage = 0 + var/list/valid_humans = list() + + for(var/mob/living/carbon/human/human_share in range(2, get_turf(success_rune))) + if(human_share == human_victim) + continue + + if(human_share.stat == DEAD) + continue + + valid_humans += human_share + divide_damage++ + + var/singular_damage = total_damage / divide_damage + + for(var/mob/living/carbon/human/human_target in valid_humans) + human_target.adjustBruteLoss(singular_damage) + + human_victim.heal_overall_damage(human_victim.getBruteLoss(), human_victim.getFireLoss()) + +/datum/ash_ritual/banish_kin + name = "Banish Kin" + desc = "Some kin are not fit for the tribe, this can solve that issue through democracy." + required_components = list() + consumed_components = list() + +/datum/ash_ritual/banish_kin/ritual_success(obj/effect/ash_rune/success_rune) + . = ..() + var/turf/src_turf = get_turf(success_rune) + + var/mob/living/carbon/human/find_banished = locate() in src_turf + if(!find_banished) + return + + if(!find_banished.mind.has_antag_datum(/datum/antagonist/ashwalker)) //must be an ashwalker + return + + var/list/asked_voters = list() + + for(var/mob/living/carbon/human/poll_human in range(2, src_turf)) + if(poll_human.stat != CONSCIOUS) //must be conscious + continue + + if(!poll_human.mind.has_antag_datum(/datum/antagonist/ashwalker)) //must be an ashwalker + continue + + asked_voters += poll_human + + var/list/yes_voters = SSpolling.poll_candidates("Do you wish to banish [find_banished.name]?", poll_time = 10 SECONDS, group = asked_voters) + + if(length(yes_voters) < length(asked_voters)) + find_banished.balloon_alert_to_viewers("banishment failed!") + return + + var/turf/teleport_turf = locate(rand(1,255), rand(1,255), success_rune.z) + + var/anti_endless = 0 + while(!istype(teleport_turf, /turf/open/misc/asteroid) && anti_endless < 100) + teleport_turf = locate(rand(1,255), rand(1,255), success_rune.z) + anti_endless++ + + new /obj/effect/particle_effect/sparks(teleport_turf) + find_banished.forceMove(teleport_turf) + +/datum/ash_ritual/revive_animal + name = "Revive Animal" + desc = "Revives a simple animal that will then become friendly." + required_components = list( + "north" = /obj/item/organ/internal/monster_core/regenerative_core, + "south" = /obj/item/organ/internal/monster_core/regenerative_core, + "east" = /obj/item/stack/sheet/bone, + "west" = /obj/item/stack/sheet/sinew, + ) + consumed_components = list( + /obj/item/organ/internal/monster_core/regenerative_core, + /obj/item/stack/sheet/bone, + /obj/item/stack/sheet/sinew, + ) + +/datum/ash_ritual/revive_animal/ritual_success(obj/effect/ash_rune/success_rune) + . = ..() + if(!revive_simple(success_rune)) + revive_basic(success_rune) + +/datum/ash_ritual/revive_animal/proc/revive_simple(obj/effect/ash_rune/success_rune) + var/turf/src_turf = get_turf(success_rune) + + var/mob/living/simple_animal/find_animal = locate() in src_turf + + if(!find_animal) + return FALSE + + if(find_animal.stat != DEAD) + return FALSE + + if(find_animal.sentience_type != SENTIENCE_ORGANIC) + return FALSE + + find_animal.faction = list(FACTION_ASHWALKER) + + if(ishostile(find_animal)) + var/mob/living/simple_animal/hostile/hostile_animal = find_animal + hostile_animal.attack_same = FALSE + + find_animal.revive(HEAL_ALL) + return TRUE + +/datum/ash_ritual/revive_animal/proc/revive_basic(obj/effect/ash_rune/success_rune) + var/turf/src_turf = get_turf(success_rune) + + var/mob/living/basic/find_animal = locate() in src_turf + + if(!find_animal) + return FALSE + + if(find_animal.health > 0) + return FALSE + + if(find_animal.sentience_type != SENTIENCE_ORGANIC) + return FALSE + + find_animal.faction = list(FACTION_ASHWALKER) + + find_animal.revive(HEAL_ALL) + return TRUE + +GLOBAL_LIST_EMPTY(ash_rituals) + +/obj/effect/ash_rune + name = "ash rune" + desc = "A remnant of a civilization that was once powerful enough to harness strange energy for transmutations." + icon = 'monkestation/code/modules/blueshift/icons/ash_ritual.dmi' + icon_state = "rune" + anchored = TRUE + + /// the current chosen ritual + var/datum/ash_ritual/current_ritual = null + + /// List of connected side runes + var/list/side_runes = list() + + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF | FREEZE_PROOF + +/obj/effect/ash_rune/examine(mob/user) + . = ..() + if(!current_ritual) + . += span_notice("
There is no selected ritual at this moment-- use the central rune to select a ritual.") + return + . += span_notice("
The current ritual is: [current_ritual.name]") + . += span_notice(current_ritual.desc) + . += span_warning("
The required components are as follows:") + for(var/the_components in current_ritual.required_components) + var/atom/component_name = current_ritual.required_components[the_components] + . += span_warning("[the_components] component is [initial(component_name.name)]") + +/obj/effect/ash_rune/Initialize(mapload) + . = ..() + // this is just to spawn the "aesthetic" runes around + for(var/direction in GLOB.cardinals) + var/obj/effect/side_rune/spawning_rune = new (get_step(src, direction)) + side_runes += spawning_rune + spawning_rune.icon_state = "[initial(icon_state)]_[direction]" + spawning_rune.connected_rune = src + if(!length(GLOB.ash_rituals)) + generate_rituals() + +/obj/effect/ash_rune/Destroy(force) + for(var/obj/side_rune as anything in side_runes) + qdel(side_rune) + current_ritual = null + . = ..() + +/obj/effect/ash_rune/proc/generate_rituals() + for(var/type in subtypesof(/datum/ash_ritual)) + var/datum/ash_ritual/spawned_ritual = new type + GLOB.ash_rituals[spawned_ritual.name] = spawned_ritual + +/obj/effect/ash_rune/attack_hand(mob/living/user, list/modifiers) + . = ..() + if(current_ritual && is_species(user, /datum/species/lizard/ashwalker)) + current_ritual.ritual_start(src) + return + current_ritual = tgui_input_list(user, "Choose the ritual to begin...", "Ritual Choice", GLOB.ash_rituals) + if(!current_ritual) + return + current_ritual = GLOB.ash_rituals[current_ritual] + balloon_alert_to_viewers("ritual has been chosen-- examine the central rune for more information.") + +// this is solely for aesthetics... though the central rune will check the directions, of which this is on +/obj/effect/side_rune + desc = "This rune seems to have some weird vacuum to it." + icon = 'monkestation/code/modules/blueshift/icons/ash_ritual.dmi' + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF | FREEZE_PROOF + anchored = TRUE + /// the central rune that this is connected to + var/obj/effect/ash_rune/connected_rune + +// just so that if you attack this, you actually attack the main rune +/obj/effect/side_rune/attack_hand(mob/living/user, list/modifiers) + . = ..() + if(connected_rune) + connected_rune.attack_hand(user, modifiers) + +/obj/effect/side_rune/Destroy(force) + if(connected_rune) + connected_rune = null + . = ..() diff --git a/monkestation/code/modules/blueshift/elements/caseless.dm b/monkestation/code/modules/blueshift/elements/caseless.dm new file mode 100644 index 000000000000..587a32f2b304 --- /dev/null +++ b/monkestation/code/modules/blueshift/elements/caseless.dm @@ -0,0 +1,37 @@ +/** + * An element that deletes the casing when fired and, if reusable is true, adds the projectile_drop element to the bullet. + * Just make sure to not add components or elements that also use COMSIG_FIRE_CASING after this one. + * Not compatible with pellets (how the eff would that work in a senible way tho?). + */ +/datum/element/caseless + element_flags = ELEMENT_BESPOKE + argument_hash_start_idx = 2 + var/reusable = FALSE + +/datum/element/caseless/Attach(datum/target, reusable = FALSE) + . = ..() + if(!isammocasing(target)) + return ELEMENT_INCOMPATIBLE + src.reusable = reusable + RegisterSignal(target, COMSIG_CASING_READY_PROJECTILE, PROC_REF(on_ready_projectile)) + RegisterSignal(target, COMSIG_FIRE_CASING, PROC_REF(on_fired_casing)) + +/datum/element/caseless/proc/on_ready_projectile(obj/item/ammo_casing/shell, atom/target, mob/living/user, quiet, zone_override, atom/fired_from) + SIGNAL_HANDLER + var/obj/projectile/proj = shell.loaded_projectile + if(isnull(proj)) + return + if(reusable) + if(!ispath(proj.shrapnel_type)) + proj.shrapnel_type = shell.type + proj.updateEmbedding() + proj.AddElement(/datum/element/projectile_drop, shell.type) + +/datum/element/caseless/proc/on_fired_casing(obj/item/ammo_casing/shell, atom/target, mob/living/user, fired_from, randomspread, spread, zone_override, params, distro, obj/projectile/proj) + SIGNAL_HANDLER + + if(isgun(fired_from)) + var/obj/item/gun/shot_from = fired_from + if(shot_from.chambered == shell) + shot_from.chambered = null //Nuke it. Nuke it now. + QDEL_NULL(shell) diff --git a/monkestation/code/modules/blueshift/elements/cuffsnapping.dm b/monkestation/code/modules/blueshift/elements/cuffsnapping.dm new file mode 100644 index 000000000000..df445f4acc97 --- /dev/null +++ b/monkestation/code/modules/blueshift/elements/cuffsnapping.dm @@ -0,0 +1,112 @@ +/** + * cuffsnapping element replaces the item's secondary attack with an aimed attack at the kneecaps under certain circumstances. + * + * Element is incompatible with non-items. Requires the parent item to have a force equal to or greater than WOUND_MINIMUM_DAMAGE. + * Also requires that the parent can actually get past pre_secondary_attack without the attack chain cancelling. + * + * cuffsnapping attacks have a wounding bonus between severe and critical+10 wound thresholds. Without some serious wound protecting + * armour this all but guarantees a wound of some sort. The attack is directed specifically at a limb and the limb takes the damage. + * + * Requires the cutter_user to be aiming for either leg zone, which will be targeted specifically. They will than have a 3-second long + * do_after before executing the attack. + * + * cuffsnapping requires the target to either be on the floor, immobilised or buckled to something. And also to have an appropriate leg. + * + * Passing all the checks will cancel the entire attack chain. + */ + +/** + * Cuffsnapping element! When added to an item allows it to attempt to break cuffs. + * Depending on certain parameters and variables it might only be able to cut through cable, or take time, etc. + * + * Element is only compatible with items. + */ + +/datum/element/cuffsnapping + element_flags = ELEMENT_BESPOKE + argument_hash_start_idx = 2 // let bos cutters paeper cutters and etc do it too + /// If not null, can snap cable restraints and similar. + var/snap_time_weak = 0 SECONDS + /// If not null, can snap handcuffs. + var/snap_time_strong = null + /// Note: As of time of writing (5/9/23) it takes 4 seconds to manually remove handcuffs. Anything above that value is a waste of time. + +/datum/element/cuffsnapping/Attach(datum/target, snap_time_weak = 0 SECONDS, snap_time_strong = null) + . = ..() + + if(!isitem(target)) + stack_trace("cuffsnapping element added to non-item object: \[[target]\]") + return ELEMENT_INCOMPATIBLE + + src.snap_time_weak = snap_time_weak + src.snap_time_strong = snap_time_strong + + RegisterSignal(target, COMSIG_ATOM_EXAMINE, PROC_REF(on_examine)) + RegisterSignal(target, COMSIG_ITEM_ATTACK , PROC_REF(try_cuffsnap_target)) + +/datum/element/cuffsnapping/Detach(datum/target) + UnregisterSignal(target, list(COMSIG_ITEM_ATTACK, COMSIG_ATOM_EXAMINE)) + + return ..() + +///signal called on parent being examined +/datum/element/cuffsnapping/proc/on_examine(datum/target, mob/user, list/examine_list) + SIGNAL_HANDLER + + var/examine_string + if(isnull(snap_time_weak)) + return + examine_string = "It looks like it could cut zipties or cable restraints off someone in [snap_time_weak] seconds" + + if(!isnull(snap_time_strong)) + examine_string += ", and handcuffs in [snap_time_strong] seconds." + else + examine_string += "." + + examine_list += span_notice(examine_string) + +/datum/element/cuffsnapping/proc/try_cuffsnap_target(obj/item/cutter, mob/living/carbon/target, mob/cutter_user, params) + SIGNAL_HANDLER + + if(!istype(target)) //we aren't the kind of mob that can even have cuffs, so we skip. + return + + if(!target.handcuffed) + return + + var/obj/item/restraints/handcuffs/cuffs = target.handcuffed + + if(!istype(cuffs)) + return + + if(cuffs.restraint_strength && isnull(src.snap_time_strong)) + cutter_user.visible_message(span_notice("[cutter_user] tries to cut through [target]'s restraints with [cutter], but fails!")) + playsound(source = get_turf(cutter), soundin = cutter.usesound ? cutter.usesound : cutter.hitsound, vol = cutter.get_clamped_volume(), vary = TRUE) + return COMPONENT_SKIP_ATTACK + + else if(isnull(src.snap_time_weak)) + cutter_user.visible_message(span_notice("[cutter_user] tries to cut through [target]'s restraints with [cutter], but fails!")) + playsound(source = get_turf(cutter), soundin = cutter.usesound ? cutter.usesound : cutter.hitsound, vol = cutter.get_clamped_volume(), vary = TRUE) + return COMPONENT_SKIP_ATTACK + + . = COMPONENT_SKIP_ATTACK + + INVOKE_ASYNC(src, PROC_REF(do_cuffsnap_target), cutter, target, cutter_user, cuffs) + +/datum/element/cuffsnapping/proc/do_cuffsnap_target(obj/item/cutter, mob/living/carbon/target, mob/cutter_user, obj/item/restraints/handcuffs/cuffs) + if(LAZYACCESS(cutter_user.do_afters, cutter)) + return + + log_combat(cutter_user, target, "cut or tried to cut [target]'s cuffs", cutter) + + var/snap_time = src.snap_time_weak + if(cuffs.restraint_strength) + snap_time = src.snap_time_strong + + if(snap_time == 0 || do_after(cutter_user, snap_time, target, interaction_key = cutter)) // If 0 just do it. This to bypass the do_after() creating a needless progress bar. + cutter_user.do_attack_animation(target, used_item = cutter) + cutter_user.visible_message(span_notice("[cutter_user] cuts [target]'s restraints with [cutter]!")) + qdel(target.handcuffed) + playsound(source = get_turf(cutter), soundin = cutter.usesound ? cutter.usesound : cutter.hitsound, vol = cutter.get_clamped_volume(), vary = TRUE) + + return diff --git a/monkestation/code/modules/blueshift/elements/gun_launches_little_guy.dm b/monkestation/code/modules/blueshift/elements/gun_launches_little_guy.dm new file mode 100644 index 000000000000..8174d3ce26b4 --- /dev/null +++ b/monkestation/code/modules/blueshift/elements/gun_launches_little_guy.dm @@ -0,0 +1,46 @@ +/// An element that makes guns throw their user back if they are just a little guy +/datum/element/gun_launches_little_guys + element_flags = ELEMENT_BESPOKE + argument_hash_start_idx = 2 + + /// The throwing force applied to the gun's user + var/throwing_force + /// The throwing range applied to the gun's user + var/throwing_range + +/datum/element/gun_launches_little_guys/Attach(datum/target, throwing_force = 2, throwing_range = 3) + . = ..() + if(!isgun(target)) + return ELEMENT_INCOMPATIBLE + + src.throwing_force = throwing_force + src.throwing_range = throwing_range + + RegisterSignal(target, COMSIG_ATOM_EXAMINE, PROC_REF(examine)) + RegisterSignal(target, COMSIG_GUN_FIRED, PROC_REF(throw_it_back)) + +/datum/element/gun_launches_little_guys/Detach(datum/target) + . = ..() + UnregisterSignal(target, COMSIG_ATOM_EXAMINE) + UnregisterSignal(target, COMSIG_GUN_FIRED) + +/// Warns that this gun might throw you away really hard +/datum/element/gun_launches_little_guys/proc/examine(datum/source, mob/user, list/examine_list) + SIGNAL_HANDLER + + examine_list += span_notice("It has some serious kick to it, smaller users should take caution while firing.") + +/// Checks if the shooter is just a little guy. If so? Throw it back. +/datum/element/gun_launches_little_guys/proc/throw_it_back(obj/item/gun/weapon, mob/living/carbon/user, atom/target, params, zone_override) + SIGNAL_HANDLER + + if(!issimian(user) && !HAS_TRAIT(user, TRAIT_DWARF) && !(user.dna.features["body_size"] <= 0.9)) + return + + var/fling_direction = REVERSE_DIR(user.dir) + var/atom/throw_target = get_edge_target_turf(user, fling_direction) + user.Knockdown(1 SECONDS) + user.throw_at(throw_target, throwing_range, throwing_force) + + user.visible_message(span_warning("[weapon] sends [user] flying back as it fires!"), \ + span_warning("[weapon] sends you flying back as it fires!")) diff --git a/monkestation/code/modules/blueshift/elements/manufacturer_examine.dm b/monkestation/code/modules/blueshift/elements/manufacturer_examine.dm new file mode 100644 index 000000000000..e7b77b2fee64 --- /dev/null +++ b/monkestation/code/modules/blueshift/elements/manufacturer_examine.dm @@ -0,0 +1,28 @@ +/// Element that will tell anyone who examines the parent what company made it +/datum/element/manufacturer_examine + element_flags = ELEMENT_BESPOKE + argument_hash_start_idx = 2 + /// String to use for the examine text, use the defines in code/__DEFINES/~skyrat_defines/manufacturer_strings.dm + var/company_string + +/datum/element/manufacturer_examine/Attach(atom/target, given_company_string) + . = ..() + + if(!istype(target)) // Just in case someone loses it and tries to put this on a datum + return ELEMENT_INCOMPATIBLE + if(!given_company_string) // If there's no given string then this element will do absolutely nothing, remove it + return ELEMENT_INCOMPATIBLE + + src.company_string = given_company_string + + RegisterSignal(target, COMSIG_ATOM_EXAMINE, PROC_REF(on_examine)) + +/datum/element/manufacturer_examine/Detach(datum/target) + . = ..() + UnregisterSignal(target, COMSIG_ATOM_EXAMINE) + +/// Sticks the string given to the element in Attach in the description of the attached target +/datum/element/manufacturer_examine/proc/on_examine(obj/item/source, mob/examiner, list/examine_list) + SIGNAL_HANDLER + + examine_list += "
[company_string]" diff --git a/monkestation/code/modules/blueshift/elements/projectile_drop.dm b/monkestation/code/modules/blueshift/elements/projectile_drop.dm new file mode 100644 index 000000000000..36e189d6c3ae --- /dev/null +++ b/monkestation/code/modules/blueshift/elements/projectile_drop.dm @@ -0,0 +1,36 @@ +/** + * A simple element that spawns an atom when the bullet hits an object or reaches the end of its range + * If the projectile has embedding and it can embed into the target, then it won't spawn the drop, + * since embedding the embed element already handles that. + */ +/datum/element/projectile_drop + element_flags = ELEMENT_BESPOKE + argument_hash_start_idx = 2 + var/drop_type + +/datum/element/projectile_drop/Attach(datum/target, drop_type) + . = ..() + if(!isprojectile(target)) + return ELEMENT_INCOMPATIBLE + src.drop_type = drop_type + RegisterSignal(target, COMSIG_PROJECTILE_RANGE_OUT, PROC_REF(spawn_drop)) + RegisterSignal(target, COMSIG_PROJECTILE_SELF_ON_HIT, PROC_REF(spawn_drop_if_not_embeddable)) + +/datum/element/projectile_drop/Detach(datum/source) + UnregisterSignal(source, list(COMSIG_PROJECTILE_RANGE_OUT, COMSIG_PROJECTILE_SELF_ON_HIT)) + return ..() + +/datum/element/projectile_drop/proc/spawn_drop(obj/projectile/source) + SIGNAL_HANDLER + var/turf/turf = get_turf(source) + var/atom/new_drop = new drop_type(turf) + SEND_SIGNAL(source, COMSIG_PROJECTILE_ON_SPAWN_DROP, new_drop) + //Just to be safe, knowing it won't be spawned multiple times. + Detach(source) + +/datum/element/projectile_drop/proc/spawn_drop_if_not_embeddable(obj/projectile/source, atom/movable/firer, atom/hit, angle, hit_zone) + SIGNAL_HANDLER + if(source.can_embed_into(hit)) + Detach(source) + return + spawn_drop(source) diff --git a/monkestation/code/modules/blueshift/elements/repacking.dm b/monkestation/code/modules/blueshift/elements/repacking.dm new file mode 100644 index 000000000000..258fe5a14110 --- /dev/null +++ b/monkestation/code/modules/blueshift/elements/repacking.dm @@ -0,0 +1,81 @@ +/// An element that allows objects to be right clicked and turned into another item after a delay +/datum/element/repackable + element_flags = ELEMENT_BESPOKE + argument_hash_start_idx = 2 + + /// The path to spawn when the repacking operation is complete + var/item_to_pack_into + /// How long will repacking the attachee take + var/repacking_time + /// Do we tell objects destroyed that we disassembled them? + var/disassemble_objects + ///are we a generic repack? + var/generic_repack + +/datum/element/repackable/Attach(datum/target, item_to_pack_into = /obj/item/flatpacked_machine, repacking_time = 1 SECONDS, disassemble_objects = TRUE, generic_repack = FALSE) + . = ..() + if(!isatom(target)) + return ELEMENT_INCOMPATIBLE + + if(generic_repack && !ispath(item_to_pack_into, /obj/item/flatpacked_machine/generic)) + return ELEMENT_INCOMPATIBLE + + src.item_to_pack_into = item_to_pack_into + src.repacking_time = repacking_time + src.disassemble_objects = disassemble_objects + src.generic_repack = generic_repack + + RegisterSignal(target, COMSIG_ATOM_EXAMINE, PROC_REF(examine)) + RegisterSignal(target, COMSIG_ATOM_ATTACK_HAND_SECONDARY, PROC_REF(on_right_click)) + RegisterSignal(target, COMSIG_ATOM_REQUESTING_CONTEXT_FROM_ITEM, PROC_REF(on_requesting_context_from_item)) + +/datum/element/repackable/Detach(datum/target) + . = ..() + UnregisterSignal(target, COMSIG_ATOM_EXAMINE) + UnregisterSignal(target, COMSIG_ATOM_ATTACK_HAND_SECONDARY) + UnregisterSignal(target, list(COMSIG_ATOM_ATTACKBY, COMSIG_ATOM_REQUESTING_CONTEXT_FROM_ITEM)) + +/datum/element/repackable/proc/examine(datum/source, mob/user, list/examine_list) + SIGNAL_HANDLER + + examine_list += span_notice("It can be repacked with right click.") + +/// Checks if the user can actually interact with the structures in question, then invokes the proc to make it repack +/datum/element/repackable/proc/on_right_click(atom/source, mob/user) + SIGNAL_HANDLER + + if(!user.can_perform_action(source, NEED_DEXTERITY)) + return + + INVOKE_ASYNC(src, PROC_REF(repack), source, user) + +/// Removes the element target and spawns a new one of whatever item_to_pack_into is +/datum/element/repackable/proc/repack(atom/source, mob/user) + source.balloon_alert_to_viewers("repacking...") + if(!do_after(user, 3 SECONDS, target = source)) + return + + playsound(source, 'sound/items/ratchet.ogg', 50, TRUE) + + if(generic_repack) + var/obj/item/flatpacked_machine/generic/new_pack = new item_to_pack_into(source.drop_location()) + new_pack.type_to_deploy = source.type + new_pack.after_set() + else + new item_to_pack_into(source.drop_location()) + + if(istype(source, /obj)) + var/obj/source_object = source + source_object.deconstruct(TRUE) + else + qdel(source) + +/// Adds screen context for hovering over the repackable items with your mouse +/datum/element/repackable/proc/on_requesting_context_from_item(atom/source, list/context, obj/item/held_item, mob/user) + SIGNAL_HANDLER + + if(isnull(held_item)) + context[SCREENTIP_CONTEXT_RMB] = "Repack" + . = CONTEXTUAL_SCREENTIP_SET + + return NONE diff --git a/monkestation/code/modules/blueshift/gags/gags.dm b/monkestation/code/modules/blueshift/gags/gags.dm new file mode 100644 index 000000000000..6245e4d54b69 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/gags.dm @@ -0,0 +1,1428 @@ +/* +* HEAD +*/ + +// BERETS +/datum/greyscale_config/beret + name = "Beret" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/beret.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/beret/beret.json' + +/datum/greyscale_config/beret/worn + name = "Beret (Worn)" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/beret/beret_worn.json' + +/datum/greyscale_config/beret_badge + name = "Badged Beret" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/beret.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/beret/beret_badge.json' + +/datum/greyscale_config/beret_badge/worn + name = "Badged Beret (Worn)" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/beret/beret_badge_worn.json' + +/datum/greyscale_config/beret_badge_fancy + name = "Beret With Fancy Badge" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/beret.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/beret/beret_badge_fancy.json' + +/datum/greyscale_config/beret_badge_fancy/worn + name = "Beret With Fancy Badge (Worn)" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/beret/beret_badge_fancy_worn.json' + + + +//COWBOY +/datum/greyscale_config/cowboy_wide + name = "Wide Brimmed Hat" + icon_file = 'monkestation/code/modules/blueshift/icons/obj/clothing/head/cowboy.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/head/cowboy/two_layer_hats.json' + +/datum/greyscale_config/cowboy_wide/worn + name = "Wide Brimmed Hat (Worn)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/head/cowboy.dmi' + +/datum/greyscale_config/cowboy_wide_feathered + name = "Wide Brimmed Feathered Hat" + icon_file = 'monkestation/code/modules/blueshift/icons/obj/clothing/head/cowboy.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/head/cowboy/three_layer_hats.json' + +/datum/greyscale_config/cowboy_wide_feathered/worn + name = "Wide Brimmed Feathered Hat (Worn)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/head/cowboy.dmi' + +/datum/greyscale_config/cowboy_flat + name = "Flat Brimmed Hat" + icon_file = 'monkestation/code/modules/blueshift/icons/obj/clothing/head/cowboy.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/head/cowboy/two_layer_hats.json' + +/datum/greyscale_config/cowboy_flat/worn + name = "Flat Brimmed Hat (Worn)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/head/cowboy.dmi' + +/datum/greyscale_config/cowboy_flat_cowl + name = "Flat Brimmed Hat with Cowl" + icon_file = 'monkestation/code/modules/blueshift/icons/obj/clothing/head/cowboy.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/head/cowboy/three_layer_hats.json' + +/datum/greyscale_config/cowboy_flat_cowl/worn + name = "Flat Brimmed Hat with Cowl (Worn)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/head/cowboy.dmi' + +/datum/greyscale_config/cowboy_cattleman + name = "Cattleman Hat" + icon_file = 'monkestation/code/modules/blueshift/icons/obj/clothing/head/cowboy.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/head/cowboy/two_layer_hats.json' + +/datum/greyscale_config/cowboy_cattleman/worn + name = "Cattleman Hat (Worn)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/head/cowboy.dmi' + +/datum/greyscale_config/cowboy_cattleman_wide + name = "Wide Brimmed Cattleman Hat" + icon_file = 'monkestation/code/modules/blueshift/icons/obj/clothing/head/cowboy.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/head/cowboy/two_layer_hats.json' + +/datum/greyscale_config/cowboy_cattleman_wide/worn + name = "Wide Brimmed Cattleman Hat (Worn)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/head/cowboy.dmi' + +//MUSHROOM CAP + +/datum/greyscale_config/mushcap + name = "Mushroom Cap" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/mushcap.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/mush_cap/mushcap.json' + +/datum/greyscale_config/mushcap/worn + name = "Mushroom Cap Worn" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/mush_cap/mushcap_worn.json' + +// FLATCAP + +/datum/greyscale_config/flatcap + name = "Flat Cap" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/hats.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/flatcap/flatcap.json' + +/datum/greyscale_config/flatcap/worn + name = "Flat Cap (Worn)" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/hats.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/flatcap/flatcap_worn.json' + +// FLOWER PIN + +/datum/greyscale_config/flowerpin + name = "Flower Pin" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/hats.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/flowerpin/flowerpin.json' + +/datum/greyscale_config/flowerpin/worn + name = "Flower Pin (Worn)" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/hats.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/flowerpin/flowerpin_worn.json' + +// Hood + +/datum/greyscale_config/standalone_hood + name = "Hood" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/head/head.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/head/hood/hood.json' + +/datum/greyscale_config/standalone_hood/worn + name = "Hood (Worn)" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/head/hood/hood_worn.json' + + +// CATEAR HEADPHONES + +/datum/greyscale_config/catear_headphone + name = "Cat-ear Headphones" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/head/catear_headphone.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/head/catear_headphone/catear_headphone.json' + +/datum/greyscale_config/catear_headphone/worn + name = "Cat-ear Headphones (Worn)" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/head/catear_headphone.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/head/catear_headphone/catear_headphone_worn.json' + +/datum/greyscale_config/catear_headphone_inhand_left + name = "Cat-ear Headphones (Inhand Left)" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/head/catear_headphone_inhand.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/head/catear_headphone/catear_headphone_worn_inhand_left.json' + +/datum/greyscale_config/catear_headphone_inhand_right + name = "Cat-ear Headphones (Inhand Right)" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/head/catear_headphone_inhand.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/head/catear_headphone/catear_headphone_worn_inhand_right.json' + +//BOWS +/datum/greyscale_config/large_bow + name = "Large Bow" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/bow.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/head/large_bow.json' + +/datum/greyscale_config/large_bow/worn + name = "Large Bow (Worn)" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/bow_worn.dmi' + +/datum/greyscale_config/back_bow + name = "Back Bow" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/bow.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/head/back_bow.json' + +/datum/greyscale_config/back_bow/worn + name = "Back Bow (Worn)" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/bow_worn.dmi' + +/datum/greyscale_config/sweet_bow + name = "Sweet Bow" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/bow.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/head/sweet_bow.json' + +/datum/greyscale_config/sweet_bow/worn + name = "Sweet Bow (Worn)" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/bow_worn.dmi' + +/datum/greyscale_config/small_bow + name = "Small Bow" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/bow.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/head/small_bow.json' + +/datum/greyscale_config/small_bow/worn + name = "Small Bow (Worn)" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/bow_worn.dmi' + +/* +* MASKS +*/ + +// CLOWN +/datum/greyscale_config/clown_mask + name = "Colourable Clown Mask" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/clown_mask.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/clown_mask/clown_mask.json' + +/datum/greyscale_config/clown_mask/worn + name = "Colourable Clown Mask (Worn)" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/clown_mask/clown_mask_worn.json' + +// VAPE +/datum/greyscale_config/vape/worn/muzzled + name = "Vape (Worn, Muzzled)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/mask.dmi' + +// RESPIRATOR +/datum/greyscale_config/respirator + name = "Colourable Respirator" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/masks.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/respirator/respirator.json' + +/datum/greyscale_config/respirator/worn + name = "Colourable Respirator (Worn)" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/respirator/respirator_worn.json' + +/datum/greyscale_config/respirator/worn/snouted + name = "Colourable Respirator (Worn) (Snouted)" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/masks_snout.dmi' + + +// STERILE +/datum/greyscale_config/sterile_mask + name = "Colourable Sterile Mask" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/masks.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/sterile_mask/sterile.json' + +/datum/greyscale_config/sterile_mask/worn + name = "Colourable Sterile Mask (Worn)" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/sterile_mask/sterile_worn.json' + +/datum/greyscale_config/sterile_mask/worn/snouted + name = "Colourable Sterile Mask (Worn) (Snouted)" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/masks_snout.dmi' + +// MASQUERADE MASKS +/datum/greyscale_config/masquerade_mask + name = "Masquerade Mask" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/mask/masquerade_mask.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/masquerade_mask/masquerade_mask.json' + +/datum/greyscale_config/masquerade_mask/worn + name = "Masquerade Mask (Worn)" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/mask/masquerade_mask_worn.dmi' + +/datum/greyscale_config/masquerade_mask/worn/snouted + name = "Masquerade Mask (Worn) (Snouted)" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/mask/masquerade_mask_worn_snouted.dmi' + +/* +* EYES +*/ + +// BLINDFOLD + +/datum/greyscale_config/blindfold + name = "Blind Personnel Blindfold" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/eyes.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/blindfold_eyes/blindfoldcolor.json' + +/datum/greyscale_config/blindfold/worn + name = "Blind Personnel Blindfold (Worn)" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/eyes_worn.dmi' + +/* +* NECK +*/ + +// RANGER PONCHO +/datum/greyscale_config/ranger_poncho + name = "Ranger Poncho" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/ranger_poncho.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/ranger_poncho/ranger_poncho.json' + +/datum/greyscale_config/ranger_poncho/worn + name = "Ranger Poncho Worn" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/ranger_poncho/ranger_poncho_worn.json' + + +// CLOAKS +/datum/greyscale_config/cloak + name = "Cloak" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/cloak.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/cloak/cloak.json' + +/datum/greyscale_config/cloak/worn + name = "Cloak (Worn)" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/cloak/cloak_worn.json' + +/datum/greyscale_config/cloak/veil + name = "Veil" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/cloak/veil.json' + +/datum/greyscale_config/cloak/veil/worn + name = "Veil (Worn)" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/cloak/veil_worn.json' + +/datum/greyscale_config/cloak/boat + name = "Boatcloak" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/cloak/boat.json' + +/datum/greyscale_config/cloak/boat/worn + name = "Boatcloak (Worn)" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/cloak/boat_worn.json' + +/datum/greyscale_config/cloak/shroud + name = "Shroud" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/cloak/shroud.json' + +/datum/greyscale_config/cloak/shroud/worn + name = "Shroud (Worn)" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/cloak/shroud_worn.json' + +// Mantle + +/datum/greyscale_config/mantle + name = "Mantle" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/neck/neck.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/neck/mantle/mantle.json' + +/datum/greyscale_config/mantle/worn + name = "Mantle (Worn)" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/neck/mantle/mantle_worn.json' + +//CAPES + +/datum/greyscale_config/robe_cape + name = "Robe Cape" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/cape.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/cloak/robe_cape.json' + +/datum/greyscale_config/robe_cape/worn + name = "Robe Cape (Worn)" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/cape_worn.dmi' + +/datum/greyscale_config/long_cape + name = "Long Cape" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/cape.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/cloak/long_cape.json' + +/datum/greyscale_config/long_cape/worn + name = "Long Cape (Worn)" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/cape_worn.dmi' + +/datum/greyscale_config/wide_cape + name = "Wide Cape" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/cape.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/cloak/wide_cape.json' + +/datum/greyscale_config/wide_cape/worn + name = "Wide Cape (Worn)" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/cape_worn.dmi' + +// COLLARS + +/datum/greyscale_config/collar + name = "Collar" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/collar.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/collar/bell.json' + +// Bell +/datum/greyscale_config/collar/bell + name = "Bell Collar" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/collar/bell.json' + +/datum/greyscale_config/collar/bell/worn + name = "Bell Collar (Worn)" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/collar/bell_worn.json' + +// Choker +/datum/greyscale_config/collar/choker + name = "Choker" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/collar/choker.json' + +/datum/greyscale_config/collar/choker/worn + name = "Choker (Worn)" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/collar/choker_worn.json' + +// Thin Choker +/datum/greyscale_config/collar/thinchoker + name = "Thin Choker" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/collar/thinchoker.json' + +/datum/greyscale_config/collar/thinchoker/worn + name = "Thin Choker (Worn)" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/collar/thinchoker_worn.json' + +// Cow +/datum/greyscale_config/collar/cow + name = "Cowbell Collar" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/collar/cow.json' + +/datum/greyscale_config/collar/cow/worn + name = "Cowbell Collar (Worn)" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/collar/cow_worn.json' + +// Cross +/datum/greyscale_config/collar/cross + name = "Cross Collar" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/collar/cross.json' + +/datum/greyscale_config/collar/cross/worn + name = "Cross Collar (Worn)" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/collar/cross_worn.json' + +// Holo +/datum/greyscale_config/collar/holo + name = "Holo Collar" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/collar/holo.json' + +/datum/greyscale_config/collar/holo/worn + name = "Holo Collar (Worn)" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/collar/holo_worn.json' + +// Leather +/datum/greyscale_config/collar/leather + name = "Leather Collar" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/collar/leather.json' + +/datum/greyscale_config/collar/leather/worn + name = "Leather Collar (Worn)" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/collar/leather_worn.json' + +// Pet +/datum/greyscale_config/collar/pet + name = "Pet Collar" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/collar/pet.json' + +/datum/greyscale_config/collar/pet/worn + name = "Pet Collar (Worn)" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/collar/pet_worn.json' + +// Spiked +/datum/greyscale_config/collar/spike + name = "Spiked Collar" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/collar/spike.json' + +/datum/greyscale_config/collar/spike/worn + name = "Spiked Collar (Worn)" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/collar/spike_worn.json' + +//FACE SCARF +/datum/greyscale_config/face_scarf + name = "Face Scarf" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/neck/face_scarf/face_scarf.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/neck/face_scarf.json' + +/datum/greyscale_config/face_scarf/worn + name = "Face Scarf (Worn)" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/neck/face_scarf/face_scarf_worn.dmi' + +/datum/greyscale_config/face_scarf/worn/muzzled + name = "Face Scarf (Worn, Muzzled)" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/neck/face_scarf/face_scarf_worn_muzzled.dmi' + +/* +* SUITS +*/ + +// Apron + +/datum/greyscale_config/apron + name = "Apron" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/suit/suit.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/suits/apron/apron.json' + +/datum/greyscale_config/apron/worn + name = "Apron (Worn)" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/suits/apron/apron_worn.json' + +//Flannel Shirt + +/datum/greyscale_config/flannelgags + name = "Flannel Shirt" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/suit.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/flannel/flannel.json' + +/datum/greyscale_config/flannelgags/worn + name = "Flannel Shirt (Worn)" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/suit.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/flannel/flannel_worn.json' + + +// ARMOR + +/datum/greyscale_config/heck_suit/worn/digi + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/suits/armor_digi.dmi' + +//Helmet pairs with the above suit +/datum/greyscale_config/heck_helmet/worn/snouted + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/head/helmet_muzzled.dmi' + +// Bathrobes + +/datum/greyscale_config/bathrobe + name = "Bathrobe" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/suit/suit.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/suits/bathrobe/bathrobe.json' + +/datum/greyscale_config/bathrobe/worn + name = "Bathrobe (Worn)" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/suits/bathrobe/bathrobe_worn.json' + +// FANCY SUITS +/datum/greyscale_config/fancy_suit + name = "Fancy Suit" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/fancy_suits.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/fancy_suits/fancy_suit.json' + +/datum/greyscale_config/fancy_suit/worn + name = "Fancy Suit (Worn)" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/fancy_suits/fancy_suit_worn.json' + +/datum/greyscale_config/recolorable_suit + name = "Formal Suit" + icon_file = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/suits.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/fancy_suits/recolorable_suit.json' + +/datum/greyscale_config/recolorable_suit/worn + name = "Formal Suit (Worn)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/suits.dmi' + +/datum/greyscale_config/recolorable_suit/worn/digi + name = "Formal Suit (Worn, Digi)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/suits_digi.dmi' + +/datum/greyscale_config/recolorable_suitskirt + name = "Formal Suitskirt" + icon_file = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/suits.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/fancy_suits/recolorable_suit.json' + +/datum/greyscale_config/recolorable_suitskirt/worn + name = "Formal Suitskirt (Worn)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/suits.dmi' + +/datum/greyscale_config/recolorable_suitskirt/worn/digi + name = "Formal Suitskirt (Worn, Digi)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/suits_digi.dmi' + +/datum/greyscale_config/fancysuit_casual + name = "Casual Fancysuit" + icon_file = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/suits.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/suits/fancysuit/fancysuit_bicol.json' + +/datum/greyscale_config/fancysuit_casual/worn + name = "Casual Fancysuit (Worn)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/suits.dmi' + +/datum/greyscale_config/fancysuit_casual/worn/digi + name = "Casual Fancysuit (Worn, Digi)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/suits_digi.dmi' + +/datum/greyscale_config/fancysuit_executive + name = "Executive Fancysuit" + icon_file = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/suits.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/suits/fancysuit/fancysuit_quadcol.json' + +/datum/greyscale_config/fancysuit_executive/worn + name = "Executive Fancysuit (Worn)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/suits.dmi' + +/datum/greyscale_config/fancysuit_executive/worn/digi + name = "Executive Fancysuit (Worn, Digi)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/suits_digi.dmi' + +// PENCILSKIRTS +/datum/greyscale_config/pencilskirt + name = "Pencilskirt" + icon_file = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/suits.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/suits/pencilskirt/pencilskirt.json' + +/datum/greyscale_config/pencilskirt/worn + name = "Pencilskirt (Worn)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/suits.dmi' + +/datum/greyscale_config/pencilskirt/worn/digi + name = "Pencilskirt (Worn, Digi)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/suits_digi.dmi' + +/datum/greyscale_config/pencilskirt_withshirt + name = "Pencilskirt + Shirt" + icon_file = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/suits.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/suits/pencilskirt/pencilskirt_bicol.json' + +/datum/greyscale_config/pencilskirt_withshirt/worn + name = "Pencilskirt + Shirt (Worn)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/suits.dmi' + +/datum/greyscale_config/pencilskirt_withshirt/worn/digi + name = "Pencilskirt + Shirt (Worn, Digi)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/suits_digi.dmi' + +/datum/greyscale_config/pencilskirt_checkers + name = "Checkered Pencilskirt" + icon_file = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/suits.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/suits/pencilskirt/pencilskirt_bicol.json' + +/datum/greyscale_config/pencilskirt_checkers/worn + name = "Checkered Pencilskirt (Worn)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/suits.dmi' + +/datum/greyscale_config/pencilskirt_checkers/worn/digi + name = "Checkered Pencilskirt (Worn, Digi)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/suits_digi.dmi' + +/datum/greyscale_config/pencilskirt_checkers_withshirt + name = "Checkered Pencilskirt + Shirt" + icon_file = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/suits.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/suits/pencilskirt/pencilskirt_tricol.json' + +/datum/greyscale_config/pencilskirt_checkers_withshirt/worn + name = "Checkered Pencilskirt + Shirt (Worn)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/suits.dmi' + +/datum/greyscale_config/pencilskirt_checkers_withshirt/worn/digi + name = "Checkered Pencilskirt + Shirt (Worn, Digi)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/suits_digi.dmi' + +/datum/greyscale_config/pencilskirt_withsuit + name = "Pencilskirt + Suit" + icon_file = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/suits.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/suits/pencilskirt/pencilskirt_quadcol.json' + +/datum/greyscale_config/pencilskirt_withsuit/worn + name = "Pencilskirt + Suit (Worn)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/suits.dmi' + +/datum/greyscale_config/pencilskirt_withsuit/worn/digi + name = "Pencilskirt + Suit (Worn, Digi)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/suits_digi.dmi' + +// HOODIES +/datum/greyscale_config/hoodie + name = "Hoodie" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/hoodie.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/hoodie/hoodie.json' + +/datum/greyscale_config/hoodie/worn + name = "Hoodie Worn" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/hoodie/hoodie_worn.json' + +/datum/greyscale_config/hoodie_trim + name = "Trimmed Hoodie" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/hoodie.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/hoodie/hoodie_trim.json' + +/datum/greyscale_config/hoodie_trim/worn + name = "Trimmed Hoodie Worn" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/hoodie/hoodie_trim_worn.json' + +/datum/greyscale_config/hoodie_branded + name = "Branded Hoodie" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/hoodie.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/hoodie/hoodie_branded.json' + +/datum/greyscale_config/hoodie_branded/worn + name = "Branded Hoodie Worn" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/hoodie/hoodie_branded_worn.json' + +// CARDIGAN + +/datum/greyscale_config/cardigan + name = "Cardigan" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/suit.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/cardigan/cardigan.json' + +/datum/greyscale_config/cardigan/worn + name = "Cardigan (Worn)" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/cardigan/cardigan_worn.json' + +// SWEATERS + +/datum/greyscale_config/cableknit_sweater + name = "Cableknit Sweater" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/sweaters.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/sweater/sweater.json' + +/datum/greyscale_config/cableknit_sweater/worn + name = "Cableknit Sweater (Worn)" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/sweater/sweater_worn.json' + +/datum/greyscale_config/warm_sweater + name = "Warm Sweater" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/warm_sweater.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/sweater/warm_sweater.json' + +/datum/greyscale_config/warm_sweater/worn + name = "Warm Sweater (Worn)" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/warm_sweater_worn.dmi' + +/datum/greyscale_config/heart_sweater + name = "Heart Sweater" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/warm_sweater.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/sweater/heart_sweater.json' + +/datum/greyscale_config/heart_sweater/worn + name = "Heart Sweater (Worn)" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/warm_sweater_worn.dmi' + +//Keyhole uses the same configs! +// URBAN COAT + +/datum/greyscale_config/urban_coat + name = "Urban Coat" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/urban_coat.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/urban_coat/urban_coat.json' + +/datum/greyscale_config/urban_coat/worn + name = "Urban Coat (Worn)" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/urban_coat/urban_coat_worn.json' + +// WINTER COAT + +/datum/greyscale_config/winter_coat + name = "Winter Coat" + icon_file = 'monkestation/code/modules/blueshift/icons/donator/obj/clothing/suits.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/winter_coat/winter_coat.json' + +/datum/greyscale_config/winter_coat_worn + name = "Winter Coat (Worn)" + icon_file = 'monkestation/code/modules/blueshift/icons/donator/mob/clothing/suit.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/winter_coat/winter_coat_worn.json' + +/datum/greyscale_config/winter_hood + name = "Winter Coat Hood" + icon_file = 'monkestation/code/modules/blueshift/icons/donator/obj/clothing/hats.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/winter_coat/winter_hood.json' + +/datum/greyscale_config/winter_hood/worn + name = "Winter Coat Hood (Worn)" + icon_file = 'monkestation/code/modules/blueshift/icons/donator/mob/clothing/head.dmi' + +/datum/greyscale_config/warm_coat + name = "Warm Coat" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/warm_coat.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/winter_coat/warm_coat.json' + +/datum/greyscale_config/warm_coat/worn + name = "Warm Coat (Worn)" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/warm_coat_worn.dmi' + +// LEATHER JACKET + +/datum/greyscale_config/leather_jacket + name = "Leather Jacket" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/leather_jacket.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/leather_jacket/leather_jacket.json' + +/datum/greyscale_config/leather_jacket/worn + name = "Leather Jacket (Worn)" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/leather_jacket/leather_jacket_worn.json' + +// DUSTER + +/datum/greyscale_config/duster + name = "Duster" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/duster.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/duster/duster.json' + +/datum/greyscale_config/duster/worn + name = "Duster (Worn)" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/duster/duster_worn.json' + +// PEACOAT + +/datum/greyscale_config/peacoat + name = "Peacoat" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/peacoat.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/peacoat/peacoat.json' + +/datum/greyscale_config/peacoat/worn + name = "Peacoat (Worn)" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/peacoat/peacoat_worn.json' + + +// VARSITY JACKET + +/datum/greyscale_config/varsity + name = "Varsity Jacket" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/suit/suit.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/suits/varsity/varsity.json' + +/datum/greyscale_config/varsity/worn + name = "Varsity Jacket (Worn)" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/suits/varsity/varsity_worn.json' + +//CROPTOP SWEATER + +/datum/greyscale_config/croptop + name = "Croptop Sweater" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/suits/jacket.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/suits/croptop/croptop.json' + +/datum/greyscale_config/croptop/worn + name = "Croptop Sweater (Worn)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/suits/jacket.dmi' + +// TAILORED JACKET + +/datum/greyscale_config/tailored_jacket + name = "Tailored Jacket" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/suit/suit.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/suits/tailored_jacket/tailored_jacket.json' + +/datum/greyscale_config/tailored_jacket/worn + name = "Tailored Jacket (Worn)" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/suits/tailored_jacket/tailored_jacket_worn.json' + +/datum/greyscale_config/tailored_short_jacket + name = "Tailored Short Jacket" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/suit/suit.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/suits/tailored_short_jacket/tailored_short_jacket.json' + +/datum/greyscale_config/tailored_short_jacket/worn + name = "Tailored Short Jacket (Worn)" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/suits/tailored_short_jacket/tailored_short_jacket_worn.json' + +// CROPPED JACKET + +/datum/greyscale_config/crop_jacket + name = "Tailored Jacket" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/crop_jacket.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/crop_jacket/crop_jacket.json' + +/datum/greyscale_config/crop_jacket/worn + name = "Tailored Jacket (Worn)" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/crop_jacket_worn.dmi' + +// SLEEVELESS CROPPED JACKET + +/datum/greyscale_config/sleeveless_crop_jacket + name = "Tailored Jacket" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/sleeveless_crop_jacket.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/sleeveless_crop_jacket/sleeveless_crop_jacket.json' + +/datum/greyscale_config/sleeveless_crop_jacket/worn + name = "Tailored Jacket (Worn)" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/sleeveless_crop_jacket_worn.dmi' + + +// PARADE JACKET +/datum/greyscale_config/replica_parade_jacket + name = "Replica Parade Jacket" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/suit/suit.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/suits/r_parade_jacket/r_parade_jacket.json' + +/datum/greyscale_config/replica_parade_jacket/worn + name = "Replica Parade Jacket (Worn)" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/suits/r_parade_jacket/r_parade_jacket_worn.json' + +/* +* UNDER +*/ + + +// JUMPSUITS + +/datum/greyscale_config/jumpsuit/worn/digi + name = "Jumpsuit (Worn, Digi)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/color_digi.dmi' + +/datum/greyscale_config/jumpsuit/prison/worn/digi + name = "Prison Jumpsuit (Worn, Digi)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/color_digi.dmi' + + + +// PANTS / SHORTS +//Note, these icons are now in master_files per TG's sorting. There's no reason to NOT have these pieces in master files now that they're sorted out. +//The rest will eventually join them - preferably with a cleaner method too instead of having to have unique configs for every single item's digi state. + +/datum/greyscale_config/slacks/worn/digi + name = "Slacks (Worn, Digi)" + icon_file = SHORTS_PANTS_SHIRTS_DIGIFILE + +/datum/greyscale_config/jeans/worn/digi + name = "Jeans (Worn, Digi)" + icon_file = SHORTS_PANTS_SHIRTS_DIGIFILE + +/datum/greyscale_config/shorts/worn/digi + name = "Shorts (Worn, Digi)" + icon_file = SHORTS_PANTS_SHIRTS_DIGIFILE + +/datum/greyscale_config/jeanshorts/worn/digi + name = "Jean Shorts (Worn, Digi)" + icon_file = SHORTS_PANTS_SHIRTS_DIGIFILE + +/datum/greyscale_config/shortershorts + name = "Shorter Shorts" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/shorts_pants.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/pants_shorts_skirts_dresses/shortershorts.json' + +/datum/greyscale_config/shortershorts/worn + name = "Shorter Shorts (Worn)" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/shorts_pants.dmi' + +/datum/greyscale_config/shortershorts/worn/digi + name = "Ripped Shorts (Worn, Digi)" + icon_file = SHORTS_PANTS_SHIRTS_DIGIFILE + +/datum/greyscale_config/shorts_ripped + name = "Ripped Shorts" + icon_file = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/shorts_pants_shirts.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/pants_shorts_skirts_dresses/shorts_ripped.json' + +/datum/greyscale_config/shorts_ripped/worn //TG will hopefully start having worn as a subtype, it means only needing 1 .json + name = "Ripped Shorts (Worn)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/shorts_pants_shirts.dmi' + +/datum/greyscale_config/shorts_ripped/worn/digi + name = "Ripped Shorts (Worn, Digi)" + icon_file = SHORTS_PANTS_SHIRTS_DIGIFILE + +/datum/greyscale_config/jeans_ripped + name = "Ripped Jeans" + icon_file = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/shorts_pants_shirts.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/pants_shorts_skirts_dresses/jeans_ripped.json' + +/datum/greyscale_config/jeans_ripped/worn + name = "Ripped Jeans (Worn)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/shorts_pants_shirts.dmi' + +/datum/greyscale_config/jeans_ripped/worn/digi + name = "Ripped Jeans (Worn, Digi)" + icon_file = SHORTS_PANTS_SHIRTS_DIGIFILE + +/datum/greyscale_config/yoga_pants + name = "Yoga Pants" + icon_file = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/shorts_pants_shirts.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/pants_shorts_skirts_dresses/yoga_pants.json' + +/datum/greyscale_config/yoga_pants/worn + name = "Yoga Pants (Worn)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/shorts_pants_shirts.dmi' + +/datum/greyscale_config/yoga_pants/worn/digi + name = "Yoga Pants (Worn, Digi)" + icon_file = SHORTS_PANTS_SHIRTS_DIGIFILE + +/datum/greyscale_config/camo_pants + name = "Camo Pants" + icon_file = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/shorts_pants_shirts.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/pants_shorts_skirts_dresses/camo_pants.json' + +/datum/greyscale_config/camo_pants/worn + name = "Camo Pants (Worn)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/shorts_pants_shirts.dmi' + +/datum/greyscale_config/camo_pants/worn/digi + name = "Camo Pants (Worn, Digi)" + icon_file = SHORTS_PANTS_SHIRTS_DIGIFILE + +// DRESSES / SKIRTS + +/datum/greyscale_config/plaidskirt/worn/digi + name = "Plaid Skirt (Worn, Digi)" + icon_file = SKIRTS_DRESSES_DIGIFILE + +/datum/greyscale_config/lone_skirt + name = "Skirt" + icon_file = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/skirts_dresses.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/pants_shorts_skirts_dresses/lone_skirt.json' + +/datum/greyscale_config/lone_skirt/worn + name = "Skirt (Worn)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/skirts_dresses.dmi' + +/datum/greyscale_config/turtleskirt_knit + name = "Cableknit Skirtleneck" + icon_file = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/skirts_dresses.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/pants_shorts_skirts_dresses/turtleskirt_knit.json' + +/datum/greyscale_config/turtleskirt_knit/worn + name = "Cableknit Skirtleneck (Worn)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/skirts_dresses.dmi' + +/datum/greyscale_config/jean_skirt + name = "Jean Skirt" + icon_file = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/skirts_dresses.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/pants_shorts_skirts_dresses/jean_skirt.json' + +/datum/greyscale_config/jean_skirt/worn + name = "Jean Skirt (Worn)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/skirts_dresses.dmi' + +/datum/greyscale_config/jean_skirt/worn/digi + name = "Jean Skirt (Worn, Digi)" + icon_file = SKIRTS_DRESSES_DIGIFILE + +/datum/greyscale_config/short_dress + name = "Short Dress" + icon_file = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/skirts_dresses.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/pants_shorts_skirts_dresses/short_dress.json' + +/datum/greyscale_config/short_dress/worn + name = "Short Dress (Worn)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/skirts_dresses.dmi' + +/datum/greyscale_config/strapless_dress + name = "Strapless Dress" + icon_file = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/skirts_dresses.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/pants_shorts_skirts_dresses/strapless_dress.json' + +/datum/greyscale_config/strapless_dress/worn + name = "Strapless Dress (Worn)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/skirts_dresses.dmi' + +/datum/greyscale_config/pentagram_dress + name = "Pentagram Strapped Dress" + icon_file = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/skirts_dresses.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/pants_shorts_skirts_dresses/pentagram_dress.json' + +/datum/greyscale_config/pentagram_dress/worn + name = "Pentagram Strapped Dress (Worn)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/skirts_dresses.dmi' + +/datum/greyscale_config/medium_skirt + name = "Medium Skirt" + icon_file = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/skirts_dresses.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/pants_shorts_skirts_dresses/medium_skirt.json' + +/datum/greyscale_config/medium_skirt/worn + name = "Medium Skirt (Worn)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/skirts_dresses.dmi' + +/datum/greyscale_config/long_skirt + name = "Long Skirt" + icon_file = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/skirts_dresses.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/pants_shorts_skirts_dresses/long_skirt.json' + +/datum/greyscale_config/long_skirt/worn + name = "Long Skirt (Worn)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/skirts_dresses.dmi' + +// KILT +// COSTUMES + +/datum/greyscale_config/buttondown_slacks/worn/digi + name = "Buttondown with Slacks (Worn, Digi)" + icon_file = SHORTS_PANTS_SHIRTS_DIGIFILE + +/datum/greyscale_config/buttondown_shorts/worn/digi + name = "Buttondown with Shorts (Worn, Digi)" + icon_file = SHORTS_PANTS_SHIRTS_DIGIFILE + +/datum/greyscale_config/football_suit/worn/digi + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/costume_digi.dmi' + +/datum/greyscale_config/qipao + name = "Qipao" + icon_file = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/costume.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/costumes/lunar_japanese.json' + +/datum/greyscale_config/qipao/worn + name = "Qipao (Worn)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/costume.dmi' + +/datum/greyscale_config/qipao/worn/digi + name = "Qipao (Worn, Digi)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/costume_digi.dmi' + +/datum/greyscale_config/cheongsam + name = "Cheongsam" + icon_file = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/costume.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/costumes/lunar_japanese_bicol.json' + +/datum/greyscale_config/cheongsam/worn + name = "Cheongsam (Worn)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/costume.dmi' + +/datum/greyscale_config/cheongsam/worn/digi + name = "Cheongsam (Worn, Digi)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/costume_digi.dmi' + +/datum/greyscale_config/qipao_customtrim + name = "Qipao" + icon_file = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/costume.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/costumes/lunar_japanese_bicol.json' + +/datum/greyscale_config/qipao_customtrim/worn + name = "Qipao (Worn)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/costume.dmi' + +/datum/greyscale_config/qipao_customtrim/worn/digi + name = "Qipao (Worn, Digi)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/costume_digi.dmi' + +/datum/greyscale_config/cheongsam_customtrim + name = "Cheongsam" + icon_file = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/costume.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/costumes/lunar_japanese_tricol.json' + +/datum/greyscale_config/cheongsam_customtrim/worn + name = "Cheongsam (Worn)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/costume.dmi' + +/datum/greyscale_config/cheongsam_customtrim/worn/digi + name = "Cheongsam (Worn, Digi)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/costume_digi.dmi' + +/datum/greyscale_config/yukata + name = "Yukata" + icon_file = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/costume.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/costumes/lunar_japanese_bicol.json' + +/datum/greyscale_config/yukata/worn + name = "Yukata (Worn)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/costume.dmi' + +/datum/greyscale_config/yukata/worn/digi + name = "Yukata (Worn, Digi)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/costume_digi.dmi' + +/datum/greyscale_config/kilt + name = "Kilt" + icon_file = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/shorts_pants_shirts.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/kilt/kilt.json' + +/datum/greyscale_config/kilt/worn + name = "Kilt (Worn)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/shorts_pants_shirts.dmi' + +/datum/greyscale_config/kilt/worn/digi + name = "Kilt (Worn, Digi)" + icon_file = SHORTS_PANTS_SHIRTS_DIGIFILE + +/datum/greyscale_config/buttondown_vicvest + name = "Buttondown with Double-breasted Vest" + icon_file = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/shorts_pants_shirts.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/costumes/buttondown_vicvest.json' + +/datum/greyscale_config/buttondown_vicvest/worn + name = "Buttondown with Double-breasted Vest (Worn)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/shorts_pants_shirts.dmi' + +/datum/greyscale_config/buttondown_vicvest/worn/digi + name = "Buttondown with Double-breasted Vest (Worn, Digi)" + icon_file = SHORTS_PANTS_SHIRTS_DIGIFILE + +/datum/greyscale_config/chrimbo + name = "christmas_male" + icon_file = 'monkestation/code/modules/blueshift/icons/obj/clothing/under/costume.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/costumes/chrimbo.json' + +/datum/greyscale_config/chrimbo/worn + name = "christmas_male (Worn)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/costume.dmi' + +/datum/greyscale_config/chrimbo/worn/digi + name = "christmas_male (Worn, Digi)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/costume_digi.dmi' + +//RELIGIOUS COSTUMES (MONK HABIT, ETC) +/datum/greyscale_config/monk_habit + name = "Monk Habit" + icon_file = 'monkestation/code/modules/blueshift/icons/obj/clothing/suits/chaplain.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/costumes/monk_habit.json' + +/datum/greyscale_config/monk_habit/worn + name = "Monk Habit (Worn)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/suits/chaplain.dmi' + +/datum/greyscale_config/monk_habit_hood + name = "Monk Habit Hood" + icon_file = 'monkestation/code/modules/blueshift/icons/obj/clothing/head/chaplain.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/costumes/monk_habit_hood.json' + +/datum/greyscale_config/monk_habit_hood/worn + name = "Monk Habit Hood (Worn)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/head/chaplain.dmi' + +/datum/greyscale_config/chappy_habit + name = "Habit" + icon_file = 'monkestation/code/modules/blueshift/icons/obj/clothing/suits/chaplain.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/costumes/chappy_habit.json' + +/datum/greyscale_config/chappy_habit/worn + name = "Habit (Worn)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/suits/chaplain.dmi' + +/datum/greyscale_config/nun_hood + name = "Nun Hood" + icon_file = 'monkestation/code/modules/blueshift/icons/obj/clothing/head/chaplain.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/costumes/monk_habit_hood.json' + +/datum/greyscale_config/nun_hood/worn + name = "Nun Hood (Worn)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/head/chaplain.dmi' + +/datum/greyscale_config/nun_veil + name = "Nun Veil" + icon_file = 'monkestation/code/modules/blueshift/icons/obj/clothing/head/chaplain.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/costumes/monk_habit_hood.json' + +/datum/greyscale_config/nun_veil/worn + name = "Nun Veil (Worn)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/head/chaplain.dmi' + +//GRAYSCALE MAID COSTUME + +/datum/greyscale_config/maid_neck_cover + name = "Maid Neck Cover" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/maid_costume.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/costumes/maid_neck_cover.json' + +/datum/greyscale_config/maid_neck_cover/worn + name = "Maid Neck Cover (Worn)" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/maid_costume_worn.dmi' + +/datum/greyscale_config/maid_arm_covers + name = "Maid Arm Covers" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/maid_costume.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/costumes/maid_arm_covers.json' + +/datum/greyscale_config/maid_arm_covers/worn + name = "Maid Arm Covers (Worn)" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/maid_costume_worn.dmi' + +/datum/greyscale_config/maid_costume + name = "Maid Costume" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/maid_costume.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/costumes/maid_costume.json' + +/datum/greyscale_config/maid_costume/worn + name = "Maid Costume (Worn)" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/maid_costume_worn.dmi' + +/datum/greyscale_config/maid_headband + name = "Maid Headband" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/maid_costume.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/costumes/maid_headband.json' + +/datum/greyscale_config/maid_headband/worn + name = "Maid Headband (Worn)" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/maid_costume_worn.dmi' + +/* +TREK +*/ + +/datum/greyscale_config/trek/worn/digi + name = "Trek Uniform (Worn, Digi)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/under/trek_digi.dmi' + +/* +* SHOES +*/ + +// SNEAKERS + +/datum/greyscale_config/sneakers/worn/digi + name = "Sneakers (Worn, Digi)" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/sneakers_digi.dmi' + +/datum/greyscale_config/sneakers_orange/worn/digi + name = "Orange Sneakers (Worn, Digi)" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/sneakers_digi.dmi' + +// Boots + +/datum/greyscale_config/boots + name = "Colorable Boots" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/shoes/shoes.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/shoes/boots/boots.json' + +/datum/greyscale_config/boots/worn + name = "Colorable Boots (Worn)" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/shoes/boots/boots_worn.json' + +/datum/greyscale_config/boots/worn/digi + icon_file = 'monkestation/code/modules/blueshift/gags/icons/shoes/shoes_digi.dmi' + +/datum/greyscale_config/boots/christmasboots + name = "christmas_boots" + icon_file = 'monkestation/code/modules/blueshift/icons/obj/clothing/shoes.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/shoes/boots/christmas_boots.json' + +/datum/greyscale_config/boots/christmasboots/worn + name = "christmas_boots (Worn)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/feet.dmi' + +/datum/greyscale_config/boots/christmasboots/worn/digi + name = "christmas_boots (Worn, Digi)" + icon_file = 'monkestation/code/modules/blueshift/icons/mob/clothing/feet_digi.dmi' + +// Laceups + +/datum/greyscale_config/laceup + name = "Colorable Laceups" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/shoes/shoes.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/shoes/laceups/laceups.json' + +/datum/greyscale_config/laceup/worn + name = "Colorable Laceups (Worn)" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/shoes/laceups/laceups_worn.json' + +/datum/greyscale_config/laceup/worn/digi + icon_file = 'monkestation/code/modules/blueshift/gags/icons/shoes/shoes_digi.dmi' + +// Sandals + +/datum/greyscale_config/sandals + name = "Colorable Sandals" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/shoes/shoes.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/shoes/sandals/sandals.json' + +/datum/greyscale_config/sandals/worn + name = "Colorable Sandals (Worn)" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/shoes/sandals/sandals_worn.json' + +/datum/greyscale_config/sandals/worn/digi + icon_file = 'monkestation/code/modules/blueshift/gags/icons/shoes/shoes_digi.dmi' + + +// WRAPS + +/datum/greyscale_config/clothwraps + name = "Cloth Wraps" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/shoes.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/wraps/wraps.json' + +/datum/greyscale_config/clothwraps/worn + name = "Cloth Wraps (Worn)" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/wraps/wraps_worn.json' + +/datum/greyscale_config/clothwraps/worn/digi + name = "Cloth Wraps (Worn, Digi)" + +/datum/greyscale_config/legwraps + name = "Leg Wraps" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/shoes.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/wraps/legwraps.json' + +/datum/greyscale_config/legwraps/worn + name = "Leg Wraps (Worn)" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/wraps/legwraps_worn.json' + +/datum/greyscale_config/legwraps/worn/digi + name = "Leg Wraps (Worn, Digi)" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/wraps/legwraps_worn_digi.json' + +/datum/greyscale_config/armwraps + name = "Cloth Arm Wraps" + icon_file = 'monkestation/code/modules/blueshift/icons/donator/obj/clothing/gloves.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/arm_wraps/arm_wraps.json' + +/datum/greyscale_config/armwraps/worn + name = "Cloth Arm Wraps (Worn)" + icon_file = 'monkestation/code/modules/blueshift/icons/donator/mob/clothing/hands.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/arm_wraps/arm_wraps_worn.json' + +// MISC SHOES + +/datum/greyscale_config/heels + name = "High Heels" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/heels.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/shoes/heels/heels.json' + +/datum/greyscale_config/heels/worn + name = "High Heels (Worn)" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/shoes/heels/heels_worn.json' + +/datum/greyscale_config/heels/worn/digi + name = "High Heels (Worn, Digi)" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/shoes/heels/heels_worn_digi.json' + +/datum/greyscale_config/fancyheels + name = "Fancy Heels" + icon_file = 'monkestation/code/modules/blueshift/gags/icons/fancyheels.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/shoes/fancyheels/fancyheels.json' + +/datum/greyscale_config/fancyheels/worn + name = "Fancy Heels (Worn)" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/shoes/fancyheels/fancyheels_worn.json' + +/datum/greyscale_config/fancyheels/worn/digi + name = "Fancy Heels (Worn, Digi)" + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/shoes/fancyheels/fancyheels_worn_digi.json' + +/datum/greyscale_config/cin_surplus_helmet + name = "CIN Surplus Helmet" + icon_file = 'monkestation/code/modules/blueshift/icons/surplus_armor/surplus_armor.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/nri_surplus_equipment/helmet.json' + +/datum/greyscale_config/cin_surplus_helmet/object + name = "CIN Surplus Helmet (OBJ)" + icon_file = 'monkestation/code/modules/blueshift/icons/surplus_armor/surplus_armor_object.dmi' + +// Undersuit +/datum/greyscale_config/cin_surplus_undersuit + name = "CIN Surplus Undersuit" + icon_file = 'monkestation/code/modules/blueshift/icons/surplus_armor/surplus_armor.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/nri_surplus_equipment/undersuit.json' + +/datum/greyscale_config/cin_surplus_undersuit/object + name = "CIN Surplus Undersuit (OBJ)" + icon_file = 'monkestation/code/modules/blueshift/icons/surplus_armor/surplus_armor_object.dmi' + +/datum/greyscale_config/cin_surplus_undersuit/digi + icon_file = 'monkestation/code/modules/blueshift/icons/surplus_armor/surplus_armor_digi.dmi' + +// Backpack +/datum/greyscale_config/cin_surplus_backpack + name = "CIN Surplus Backpack" + icon_file = 'monkestation/code/modules/blueshift/icons/surplus_armor/surplus_armor.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/nri_surplus_equipment/backpack.json' + +/datum/greyscale_config/cin_surplus_backpack/object + name = "CIN Surplus Backpack (OBJ)" + icon_file = 'monkestation/code/modules/blueshift/icons/surplus_armor/surplus_armor_object.dmi' + +// Chestrig +/datum/greyscale_config/cin_surplus_chestrig + name = "CIN Surplus Chestrig" + icon_file = 'monkestation/code/modules/blueshift/icons/surplus_armor/surplus_armor.dmi' + json_config = 'monkestation/code/modules/blueshift/gags/json_configs/nri_surplus_equipment/chestrig.json' + +/datum/greyscale_config/cin_surplus_chestrig/object + name = "CIN Surplus Chestrig (OBJ)" + icon_file = 'monkestation/code/modules/blueshift/icons/surplus_armor/surplus_armor_object.dmi' diff --git a/monkestation/code/modules/blueshift/gags/icons/beret.dmi b/monkestation/code/modules/blueshift/gags/icons/beret.dmi new file mode 100644 index 000000000000..4b5da5816745 Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/beret.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/bow.dmi b/monkestation/code/modules/blueshift/gags/icons/bow.dmi new file mode 100644 index 000000000000..329487363166 Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/bow.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/bow_worn.dmi b/monkestation/code/modules/blueshift/gags/icons/bow_worn.dmi new file mode 100644 index 000000000000..bd0bb92ad9af Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/bow_worn.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/cape.dmi b/monkestation/code/modules/blueshift/gags/icons/cape.dmi new file mode 100644 index 000000000000..84d7b49d912d Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/cape.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/cape_worn.dmi b/monkestation/code/modules/blueshift/gags/icons/cape_worn.dmi new file mode 100644 index 000000000000..d6fe1215057a Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/cape_worn.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/cloak.dmi b/monkestation/code/modules/blueshift/gags/icons/cloak.dmi new file mode 100644 index 000000000000..9f7b61464ca1 Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/cloak.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/clown_mask.dmi b/monkestation/code/modules/blueshift/gags/icons/clown_mask.dmi new file mode 100644 index 000000000000..683b4fb9d7b0 Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/clown_mask.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/collar.dmi b/monkestation/code/modules/blueshift/gags/icons/collar.dmi new file mode 100644 index 000000000000..011280e8164e Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/collar.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/crop_jacket.dmi b/monkestation/code/modules/blueshift/gags/icons/crop_jacket.dmi new file mode 100644 index 000000000000..e187c367f507 Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/crop_jacket.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/crop_jacket_worn.dmi b/monkestation/code/modules/blueshift/gags/icons/crop_jacket_worn.dmi new file mode 100644 index 000000000000..b9caabd62999 Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/crop_jacket_worn.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/dressteshari.dmi b/monkestation/code/modules/blueshift/gags/icons/dressteshari.dmi new file mode 100644 index 000000000000..96f9df43a319 Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/dressteshari.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/duster.dmi b/monkestation/code/modules/blueshift/gags/icons/duster.dmi new file mode 100644 index 000000000000..6c4c2079cf67 Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/duster.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/eyes.dmi b/monkestation/code/modules/blueshift/gags/icons/eyes.dmi new file mode 100644 index 000000000000..38ac19e4f4ec Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/eyes.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/eyes_worn.dmi b/monkestation/code/modules/blueshift/gags/icons/eyes_worn.dmi new file mode 100644 index 000000000000..665cc96a6a29 Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/eyes_worn.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/fancy_suits.dmi b/monkestation/code/modules/blueshift/gags/icons/fancy_suits.dmi new file mode 100644 index 000000000000..0bbe59f4ba9f Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/fancy_suits.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/fancyheels.dmi b/monkestation/code/modules/blueshift/gags/icons/fancyheels.dmi new file mode 100644 index 000000000000..34f62b1fd8c0 Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/fancyheels.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/hats.dmi b/monkestation/code/modules/blueshift/gags/icons/hats.dmi new file mode 100644 index 000000000000..cd6a4c5e41a4 Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/hats.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/hawaiianshirt.dmi b/monkestation/code/modules/blueshift/gags/icons/hawaiianshirt.dmi new file mode 100644 index 000000000000..819af480901b Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/hawaiianshirt.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/head/catear_headphone.dmi b/monkestation/code/modules/blueshift/gags/icons/head/catear_headphone.dmi new file mode 100644 index 000000000000..5b052b3b6e37 Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/head/catear_headphone.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/head/catear_headphone_inhand.dmi b/monkestation/code/modules/blueshift/gags/icons/head/catear_headphone_inhand.dmi new file mode 100644 index 000000000000..9c560a967682 Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/head/catear_headphone_inhand.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/head/head.dmi b/monkestation/code/modules/blueshift/gags/icons/head/head.dmi new file mode 100644 index 000000000000..00f03b6f3079 Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/head/head.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/heels.dmi b/monkestation/code/modules/blueshift/gags/icons/heels.dmi new file mode 100644 index 000000000000..2b643376abd1 Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/heels.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/hoodie.dmi b/monkestation/code/modules/blueshift/gags/icons/hoodie.dmi new file mode 100644 index 000000000000..779120b46583 Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/hoodie.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/id_card.dmi b/monkestation/code/modules/blueshift/gags/icons/id_card.dmi new file mode 100644 index 000000000000..c7f9842cd0b7 Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/id_card.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/kilt.dmi b/monkestation/code/modules/blueshift/gags/icons/kilt.dmi new file mode 100644 index 000000000000..5d28fbc54848 Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/kilt.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/leather_jacket.dmi b/monkestation/code/modules/blueshift/gags/icons/leather_jacket.dmi new file mode 100644 index 000000000000..eb5f4c9bb5d2 Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/leather_jacket.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/maid_costume.dmi b/monkestation/code/modules/blueshift/gags/icons/maid_costume.dmi new file mode 100644 index 000000000000..61e3abcf91fb Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/maid_costume.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/maid_costume_worn.dmi b/monkestation/code/modules/blueshift/gags/icons/maid_costume_worn.dmi new file mode 100644 index 000000000000..96434a04eb2d Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/maid_costume_worn.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/mask/masquerade_mask.dmi b/monkestation/code/modules/blueshift/gags/icons/mask/masquerade_mask.dmi new file mode 100644 index 000000000000..6d80601a2be2 Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/mask/masquerade_mask.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/mask/masquerade_mask_worn.dmi b/monkestation/code/modules/blueshift/gags/icons/mask/masquerade_mask_worn.dmi new file mode 100644 index 000000000000..a080bb7d2e73 Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/mask/masquerade_mask_worn.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/mask/masquerade_mask_worn_snouted.dmi b/monkestation/code/modules/blueshift/gags/icons/mask/masquerade_mask_worn_snouted.dmi new file mode 100644 index 000000000000..39076d1e30d7 Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/mask/masquerade_mask_worn_snouted.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/masks.dmi b/monkestation/code/modules/blueshift/gags/icons/masks.dmi new file mode 100644 index 000000000000..fb854d1c7853 Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/masks.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/masks_snout.dmi b/monkestation/code/modules/blueshift/gags/icons/masks_snout.dmi new file mode 100644 index 000000000000..50d92cf9961c Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/masks_snout.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/mushcap.dmi b/monkestation/code/modules/blueshift/gags/icons/mushcap.dmi new file mode 100644 index 000000000000..2bf93949fba4 Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/mushcap.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/neck/face_scarf/face_scarf.dmi b/monkestation/code/modules/blueshift/gags/icons/neck/face_scarf/face_scarf.dmi new file mode 100644 index 000000000000..ee985d130130 Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/neck/face_scarf/face_scarf.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/neck/face_scarf/face_scarf_worn.dmi b/monkestation/code/modules/blueshift/gags/icons/neck/face_scarf/face_scarf_worn.dmi new file mode 100644 index 000000000000..1d28e41a4dd6 Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/neck/face_scarf/face_scarf_worn.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/neck/face_scarf/face_scarf_worn_muzzled.dmi b/monkestation/code/modules/blueshift/gags/icons/neck/face_scarf/face_scarf_worn_muzzled.dmi new file mode 100644 index 000000000000..60d2f63b9789 Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/neck/face_scarf/face_scarf_worn_muzzled.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/neck/neck.dmi b/monkestation/code/modules/blueshift/gags/icons/neck/neck.dmi new file mode 100644 index 000000000000..743365e9ec2e Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/neck/neck.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/peacoat.dmi b/monkestation/code/modules/blueshift/gags/icons/peacoat.dmi new file mode 100644 index 000000000000..22a2b31bf3ca Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/peacoat.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/ranger_poncho.dmi b/monkestation/code/modules/blueshift/gags/icons/ranger_poncho.dmi new file mode 100644 index 000000000000..7650b1974d4d Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/ranger_poncho.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/ranger_poncho_teshari.dmi b/monkestation/code/modules/blueshift/gags/icons/ranger_poncho_teshari.dmi new file mode 100644 index 000000000000..bb6155f256bf Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/ranger_poncho_teshari.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/shoes.dmi b/monkestation/code/modules/blueshift/gags/icons/shoes.dmi new file mode 100644 index 000000000000..243f4ff5ec44 Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/shoes.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/shoes/shoes.dmi b/monkestation/code/modules/blueshift/gags/icons/shoes/shoes.dmi new file mode 100644 index 000000000000..c47269d7da6f Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/shoes/shoes.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/shoes/shoes_digi.dmi b/monkestation/code/modules/blueshift/gags/icons/shoes/shoes_digi.dmi new file mode 100644 index 000000000000..c064d85ed7cf Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/shoes/shoes_digi.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/shorts_pants.dmi b/monkestation/code/modules/blueshift/gags/icons/shorts_pants.dmi new file mode 100644 index 000000000000..97a799c0f0c3 Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/shorts_pants.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/sleeveless_crop_jacket.dmi b/monkestation/code/modules/blueshift/gags/icons/sleeveless_crop_jacket.dmi new file mode 100644 index 000000000000..5323fff47344 Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/sleeveless_crop_jacket.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/sleeveless_crop_jacket_worn.dmi b/monkestation/code/modules/blueshift/gags/icons/sleeveless_crop_jacket_worn.dmi new file mode 100644 index 000000000000..8207d2e190c7 Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/sleeveless_crop_jacket_worn.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/sneakers_digi.dmi b/monkestation/code/modules/blueshift/gags/icons/sneakers_digi.dmi new file mode 100644 index 000000000000..1a612ffdc924 Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/sneakers_digi.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/sneakers_teshari.dmi b/monkestation/code/modules/blueshift/gags/icons/sneakers_teshari.dmi new file mode 100644 index 000000000000..bfc2c8b6c9ca Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/sneakers_teshari.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/sneakers_vox.dmi b/monkestation/code/modules/blueshift/gags/icons/sneakers_vox.dmi new file mode 100644 index 000000000000..bdcb4f1138c1 Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/sneakers_vox.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/suit.dmi b/monkestation/code/modules/blueshift/gags/icons/suit.dmi new file mode 100644 index 000000000000..5c380b2bab09 Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/suit.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/suit/suit.dmi b/monkestation/code/modules/blueshift/gags/icons/suit/suit.dmi new file mode 100644 index 000000000000..bb1f02fa4534 Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/suit/suit.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/suit/suit_digi.dmi b/monkestation/code/modules/blueshift/gags/icons/suit/suit_digi.dmi new file mode 100644 index 000000000000..7f31e8b1006d Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/suit/suit_digi.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/sweaters.dmi b/monkestation/code/modules/blueshift/gags/icons/sweaters.dmi new file mode 100644 index 000000000000..f08b935ef761 Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/sweaters.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/urban_coat.dmi b/monkestation/code/modules/blueshift/gags/icons/urban_coat.dmi new file mode 100644 index 000000000000..27771d7b620d Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/urban_coat.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/warm_coat.dmi b/monkestation/code/modules/blueshift/gags/icons/warm_coat.dmi new file mode 100644 index 000000000000..147ba6ec2146 Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/warm_coat.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/warm_coat_worn.dmi b/monkestation/code/modules/blueshift/gags/icons/warm_coat_worn.dmi new file mode 100644 index 000000000000..98bcc97ebe0f Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/warm_coat_worn.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/warm_sweater.dmi b/monkestation/code/modules/blueshift/gags/icons/warm_sweater.dmi new file mode 100644 index 000000000000..f3928a888bda Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/warm_sweater.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/icons/warm_sweater_worn.dmi b/monkestation/code/modules/blueshift/gags/icons/warm_sweater_worn.dmi new file mode 100644 index 000000000000..9173c74a3036 Binary files /dev/null and b/monkestation/code/modules/blueshift/gags/icons/warm_sweater_worn.dmi differ diff --git a/monkestation/code/modules/blueshift/gags/json_configs/arm_wraps/arm_wraps.json b/monkestation/code/modules/blueshift/gags/json_configs/arm_wraps/arm_wraps.json new file mode 100644 index 000000000000..cfe620714a37 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/arm_wraps/arm_wraps.json @@ -0,0 +1,10 @@ +{ + "arm_wraps": [ + { + "type": "icon_state", + "icon_state": "arm_wraps", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/arm_wraps/arm_wraps_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/arm_wraps/arm_wraps_worn.json new file mode 100644 index 000000000000..cfe620714a37 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/arm_wraps/arm_wraps_worn.json @@ -0,0 +1,10 @@ +{ + "arm_wraps": [ + { + "type": "icon_state", + "icon_state": "arm_wraps", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/beret/beret.json b/monkestation/code/modules/blueshift/gags/json_configs/beret/beret.json new file mode 100644 index 000000000000..f7ee848d2646 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/beret/beret.json @@ -0,0 +1,18 @@ +{ + "beret": [ + { + "type": "icon_state", + "icon_state": "beret", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ], + "beret_flat": [ + { + "type": "icon_state", + "icon_state": "beret_flat", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/beret/beret_badge.json b/monkestation/code/modules/blueshift/gags/json_configs/beret/beret_badge.json new file mode 100644 index 000000000000..193c46257061 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/beret/beret_badge.json @@ -0,0 +1,72 @@ +{ + "beret_badge": [ + { + "type": "icon_state", + "icon_state": "beret", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "badge", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ], + "beret_badge_bolt": [ + { + "type": "icon_state", + "icon_state": "beret", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "badge_fancy_twist_second", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ], + "beret_badge_med": [ + { + "type": "icon_state", + "icon_state": "beret", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "badge_med", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ], + "beret_badge_engi": [ + { + "type": "icon_state", + "icon_state": "beret", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "badge_engi", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ], + "beret_badge_police": [ + { + "type": "icon_state", + "icon_state": "beret", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "badge_police", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/beret/beret_badge_fancy.json b/monkestation/code/modules/blueshift/gags/json_configs/beret/beret_badge_fancy.json new file mode 100644 index 000000000000..0fafdc77714d --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/beret/beret_badge_fancy.json @@ -0,0 +1,62 @@ +{ + "beret_badge_fancy": [ + { + "type": "icon_state", + "icon_state": "beret", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "badge_fancy_first", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "badge_fancy_second", + "blend_mode": "overlay", + "color_ids": [ 3 ] + } + ], + "beret_badge_fancy_diagonal": [ + { + "type": "icon_state", + "icon_state": "beret", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "badge_fancy_diagonal_first", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "badge_fancy_diagonal_second", + "blend_mode": "overlay", + "color_ids": [ 3 ] + } + ], + "beret_badge_fancy_twist": [ + { + "type": "icon_state", + "icon_state": "beret", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "badge_fancy_twist_first", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "badge_fancy_twist_second", + "blend_mode": "overlay", + "color_ids": [ 3 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/beret/beret_badge_fancy_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/beret/beret_badge_fancy_worn.json new file mode 100644 index 000000000000..11db050e2075 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/beret/beret_badge_fancy_worn.json @@ -0,0 +1,60 @@ +{ + "beret_badge_fancy": [ + { + "type": "icon_state", + "icon_state": "beret_worn", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "badge_fancy_first_worn", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "badge_fancy_second_worn", + "blend_mode": "overlay", + "color_ids": [ 3 ] + } + ],"beret_badge_fancy_diagonal": [ + { + "type": "icon_state", + "icon_state": "beret_worn", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "badge_fancy_first_worn", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "badge_fancy_second_worn", + "blend_mode": "overlay", + "color_ids": [ 3 ] + } + ],"beret_badge_fancy_twist": [ + { + "type": "icon_state", + "icon_state": "beret_worn", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "badge_fancy_first_worn", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "badge_fancy_second_worn", + "blend_mode": "overlay", + "color_ids": [ 3 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/beret/beret_badge_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/beret/beret_badge_worn.json new file mode 100644 index 000000000000..19578536e5d8 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/beret/beret_badge_worn.json @@ -0,0 +1,72 @@ +{ + "beret_badge": [ + { + "type": "icon_state", + "icon_state": "beret_worn", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "badge_worn", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ], + "beret_badge_bolt": [ + { + "type": "icon_state", + "icon_state": "beret_worn", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "badge_worn", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ], + "beret_badge_med": [ + { + "type": "icon_state", + "icon_state": "beret_worn", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "badge_worn", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ], + "beret_badge_engi": [ + { + "type": "icon_state", + "icon_state": "beret_worn", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "badge_worn", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ], + "beret_badge_police": [ + { + "type": "icon_state", + "icon_state": "beret_worn", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "badge_worn", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/beret/beret_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/beret/beret_worn.json new file mode 100644 index 000000000000..8509136e53a3 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/beret/beret_worn.json @@ -0,0 +1,18 @@ +{ + "beret": [ + { + "type": "icon_state", + "icon_state": "beret_worn", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ], + "beret_flat": [ + { + "type": "icon_state", + "icon_state": "beret_worn", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/blindfold_eyes/blindfoldcolor.json b/monkestation/code/modules/blueshift/gags/json_configs/blindfold_eyes/blindfoldcolor.json new file mode 100644 index 000000000000..ee1a50ea167d --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/blindfold_eyes/blindfoldcolor.json @@ -0,0 +1,10 @@ +{ + "blindfoldcolor": [ + { + "type": "icon_state", + "icon_state": "blindfoldcolor", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/cardigan/cardigan.json b/monkestation/code/modules/blueshift/gags/json_configs/cardigan/cardigan.json new file mode 100644 index 000000000000..2a39e2dd6671 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/cardigan/cardigan.json @@ -0,0 +1,18 @@ +{ + "cardigan": [ + { + "type": "icon_state", + "icon_state": "cardigan_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ], + "cardigan_t": [ + { + "type": "icon_state", + "icon_state": "cardigan_obj_t", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/cardigan/cardigan_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/cardigan/cardigan_worn.json new file mode 100644 index 000000000000..ee8b8ebaed10 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/cardigan/cardigan_worn.json @@ -0,0 +1,18 @@ +{ + "cardigan": [ + { + "type": "icon_state", + "icon_state": "cardigan_mob", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ], + "cardigan_t": [ + { + "type": "icon_state", + "icon_state": "cardigan_mob_t", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/cloak/boat.json b/monkestation/code/modules/blueshift/gags/json_configs/cloak/boat.json new file mode 100644 index 000000000000..bd36d48c9df5 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/cloak/boat.json @@ -0,0 +1,22 @@ +{ + "gags_boat": [ + { + "type": "icon_state", + "icon_state": "boat_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "boat_pattern_obj", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "boat_trim_obj", + "blend_mode": "overlay", + "color_ids": [ 3 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/cloak/boat_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/cloak/boat_worn.json new file mode 100644 index 000000000000..f7f1fbdd007e --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/cloak/boat_worn.json @@ -0,0 +1,22 @@ +{ + "gags_boat": [ + { + "type": "icon_state", + "icon_state": "boat_mob", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "boat_pattern_mob", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "boat_trim_mob", + "blend_mode": "overlay", + "color_ids": [ 3 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/cloak/cloak.json b/monkestation/code/modules/blueshift/gags/json_configs/cloak/cloak.json new file mode 100644 index 000000000000..c5801b413cde --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/cloak/cloak.json @@ -0,0 +1,22 @@ +{ + "gags_cloak": [ + { + "type": "icon_state", + "icon_state": "cloak_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "cloak_pattern_obj", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "cloak_trim_obj", + "blend_mode": "overlay", + "color_ids": [ 3 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/cloak/cloak_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/cloak/cloak_worn.json new file mode 100644 index 000000000000..ad615c69bfa8 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/cloak/cloak_worn.json @@ -0,0 +1,22 @@ +{ + "gags_cloak": [ + { + "type": "icon_state", + "icon_state": "cloak_mob", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "cloak_pattern_mob", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "cloak_trim_mob", + "blend_mode": "overlay", + "color_ids": [ 3 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/cloak/long_cape.json b/monkestation/code/modules/blueshift/gags/json_configs/cloak/long_cape.json new file mode 100644 index 000000000000..b931ef9368e4 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/cloak/long_cape.json @@ -0,0 +1,56 @@ +{ + "long_cape": [ + { + "type": "icon_state", + "icon_state": "long_cape", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "long_cape_top", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "long_cape_trim", + "blend_mode": "overlay", + "color_ids": [ 3 ] + }, + { + "type": "icon_state", + "icon_state": "long_cape_side", + "blend_mode": "overlay", + "color_ids": [ 4 ] + } + + ], + "long_cape_t": [ + { + "type": "icon_state", + "icon_state": "long_cape_t", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "long_cape_top", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "long_cape_trim_t", + "blend_mode": "overlay", + "color_ids": [ 3 ] + }, + { + "type": "icon_state", + "icon_state": "long_cape_side", + "blend_mode": "overlay", + "color_ids": [ 4 ] + } + + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/cloak/robe_cape.json b/monkestation/code/modules/blueshift/gags/json_configs/cloak/robe_cape.json new file mode 100644 index 000000000000..c8d015889f9f --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/cloak/robe_cape.json @@ -0,0 +1,10 @@ +{ + "robe_cape": [ + { + "type": "icon_state", + "icon_state": "robe_cape", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/cloak/shroud.json b/monkestation/code/modules/blueshift/gags/json_configs/cloak/shroud.json new file mode 100644 index 000000000000..222c5d133bdb --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/cloak/shroud.json @@ -0,0 +1,22 @@ +{ + "gags_shroud": [ + { + "type": "icon_state", + "icon_state": "shroud_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "shroud_pattern_obj", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "shroud_trim_obj", + "blend_mode": "overlay", + "color_ids": [ 3 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/cloak/shroud_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/cloak/shroud_worn.json new file mode 100644 index 000000000000..ebd8ab86d70f --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/cloak/shroud_worn.json @@ -0,0 +1,22 @@ +{ + "gags_shroud": [ + { + "type": "icon_state", + "icon_state": "shroud_mob", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "shroud_pattern_mob", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "shroud_trim_mob", + "blend_mode": "overlay", + "color_ids": [ 3 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/cloak/veil.json b/monkestation/code/modules/blueshift/gags/json_configs/cloak/veil.json new file mode 100644 index 000000000000..87da07ffe9d5 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/cloak/veil.json @@ -0,0 +1,22 @@ +{ + "gags_veil": [ + { + "type": "icon_state", + "icon_state": "veil_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "veil_pattern_obj", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "veil_trim_obj", + "blend_mode": "overlay", + "color_ids": [ 3 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/cloak/veil_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/cloak/veil_worn.json new file mode 100644 index 000000000000..48ecc28aa122 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/cloak/veil_worn.json @@ -0,0 +1,22 @@ +{ + "gags_veil": [ + { + "type": "icon_state", + "icon_state": "veil_mob", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "veil_pattern_mob", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "veil_trim_mob", + "blend_mode": "overlay", + "color_ids": [ 3 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/cloak/wide_cape.json b/monkestation/code/modules/blueshift/gags/json_configs/cloak/wide_cape.json new file mode 100644 index 000000000000..6e14585d207f --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/cloak/wide_cape.json @@ -0,0 +1,22 @@ +{ + "wide_cape": [ + { + "type": "icon_state", + "icon_state": "wide_cape", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "wide_cape_top", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "wide_cape_trim", + "blend_mode": "overlay", + "color_ids": [ 3 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/clown_mask/clown_mask.json b/monkestation/code/modules/blueshift/gags/json_configs/clown_mask/clown_mask.json new file mode 100644 index 000000000000..b53e1a072df3 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/clown_mask/clown_mask.json @@ -0,0 +1,28 @@ +{ + "gags_mask": [ + { + "type": "icon_state", + "icon_state": "mask_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "hair_obj", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "features_obj", + "blend_mode": "overlay", + "color_ids": [ 3 ] + }, + { + "type": "icon_state", + "icon_state": "eyes_obj", + "blend_mode": "overlay", + "color_ids": [ 4 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/clown_mask/clown_mask_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/clown_mask/clown_mask_worn.json new file mode 100644 index 000000000000..80bf4b835ccf --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/clown_mask/clown_mask_worn.json @@ -0,0 +1,28 @@ +{ + "gags_mask": [ + { + "type": "icon_state", + "icon_state": "mask_mob", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "hair_mob", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "features_mob", + "blend_mode": "overlay", + "color_ids": [ 3 ] + }, + { + "type": "icon_state", + "icon_state": "eyes_mob", + "blend_mode": "overlay", + "color_ids": [ 4 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/collar/bell.json b/monkestation/code/modules/blueshift/gags/json_configs/collar/bell.json new file mode 100644 index 000000000000..22c973072fd1 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/collar/bell.json @@ -0,0 +1,16 @@ +{ + "bell": [ + { + "type": "icon_state", + "icon_state": "collar_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "bell_tag_obj", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/collar/bell_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/collar/bell_worn.json new file mode 100644 index 000000000000..bd951dfcd28a --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/collar/bell_worn.json @@ -0,0 +1,16 @@ +{ + "bell": [ + { + "type": "icon_state", + "icon_state": "bell_mob", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "bell_tag_mob", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/collar/choker.json b/monkestation/code/modules/blueshift/gags/json_configs/collar/choker.json new file mode 100644 index 000000000000..711f6e62213f --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/collar/choker.json @@ -0,0 +1,10 @@ +{ + "choker": [ + { + "type": "icon_state", + "icon_state": "choker_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/collar/choker_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/collar/choker_worn.json new file mode 100644 index 000000000000..5a54d5e06a13 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/collar/choker_worn.json @@ -0,0 +1,10 @@ +{ + "choker": [ + { + "type": "icon_state", + "icon_state": "choker_mob", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/collar/cow.json b/monkestation/code/modules/blueshift/gags/json_configs/collar/cow.json new file mode 100644 index 000000000000..89ec7c3038d5 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/collar/cow.json @@ -0,0 +1,16 @@ +{ + "cow": [ + { + "type": "icon_state", + "icon_state": "collar_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "cow_tag_obj", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/collar/cow_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/collar/cow_worn.json new file mode 100644 index 000000000000..d3d88b49ad44 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/collar/cow_worn.json @@ -0,0 +1,16 @@ +{ + "cow": [ + { + "type": "icon_state", + "icon_state": "cow_mob", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "cow_tag_mob", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/collar/cross.json b/monkestation/code/modules/blueshift/gags/json_configs/collar/cross.json new file mode 100644 index 000000000000..6266dc477419 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/collar/cross.json @@ -0,0 +1,16 @@ +{ + "cross": [ + { + "type": "icon_state", + "icon_state": "collar_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "cross_tag_obj", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/collar/cross_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/collar/cross_worn.json new file mode 100644 index 000000000000..26b6c7147639 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/collar/cross_worn.json @@ -0,0 +1,16 @@ +{ + "cross": [ + { + "type": "icon_state", + "icon_state": "cross_mob", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "cross_tag_mob", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/collar/holo.json b/monkestation/code/modules/blueshift/gags/json_configs/collar/holo.json new file mode 100644 index 000000000000..4747f1fec2ce --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/collar/holo.json @@ -0,0 +1,16 @@ +{ + "holo": [ + { + "type": "icon_state", + "icon_state": "collar_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "holo_tag_obj", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/collar/holo_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/collar/holo_worn.json new file mode 100644 index 000000000000..7af595b1dc16 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/collar/holo_worn.json @@ -0,0 +1,16 @@ +{ + "holo": [ + { + "type": "icon_state", + "icon_state": "holo_mob", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "holo_tag_mob", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/collar/leather.json b/monkestation/code/modules/blueshift/gags/json_configs/collar/leather.json new file mode 100644 index 000000000000..cea6800b3d69 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/collar/leather.json @@ -0,0 +1,22 @@ +{ + "leather": [ + { + "type": "icon_state", + "icon_state": "leather_collar_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "leather_stripe_obj", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "leather_tag_obj", + "blend_mode": "overlay", + "color_ids": [ 3 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/collar/leather_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/collar/leather_worn.json new file mode 100644 index 000000000000..5018b2a41b3a --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/collar/leather_worn.json @@ -0,0 +1,22 @@ +{ + "leather": [ + { + "type": "icon_state", + "icon_state": "leather_collar_mob", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "leather_stripe_mob", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "leather_tag_mob", + "blend_mode": "overlay", + "color_ids": [ 3 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/collar/pet.json b/monkestation/code/modules/blueshift/gags/json_configs/collar/pet.json new file mode 100644 index 000000000000..4c8668538b74 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/collar/pet.json @@ -0,0 +1,16 @@ +{ + "pet": [ + { + "type": "icon_state", + "icon_state": "pet_collar_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "pet_tag_obj", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/collar/pet_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/collar/pet_worn.json new file mode 100644 index 000000000000..2e068eecf2bf --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/collar/pet_worn.json @@ -0,0 +1,16 @@ +{ + "pet": [ + { + "type": "icon_state", + "icon_state": "pet_collar_mob", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "pet_tag_mob", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/collar/spike.json b/monkestation/code/modules/blueshift/gags/json_configs/collar/spike.json new file mode 100644 index 000000000000..09fc177ce491 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/collar/spike.json @@ -0,0 +1,16 @@ +{ + "spike": [ + { + "type": "icon_state", + "icon_state": "spike_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "spike_tag_obj", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/collar/spike_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/collar/spike_worn.json new file mode 100644 index 000000000000..19a8a32a6a94 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/collar/spike_worn.json @@ -0,0 +1,16 @@ +{ + "spike": [ + { + "type": "icon_state", + "icon_state": "spike_mob", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "spike_tag_mob", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/collar/thinchoker.json b/monkestation/code/modules/blueshift/gags/json_configs/collar/thinchoker.json new file mode 100644 index 000000000000..9e7776e7813a --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/collar/thinchoker.json @@ -0,0 +1,10 @@ +{ + "thinchoker": [ + { + "type": "icon_state", + "icon_state": "thinchoker_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/collar/thinchoker_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/collar/thinchoker_worn.json new file mode 100644 index 000000000000..ef7740874964 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/collar/thinchoker_worn.json @@ -0,0 +1,10 @@ +{ + "thinchoker": [ + { + "type": "icon_state", + "icon_state": "thinchoker_mob", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/costumes/buttondown_vicvest.json b/monkestation/code/modules/blueshift/gags/json_configs/costumes/buttondown_vicvest.json new file mode 100644 index 000000000000..071643bff81f --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/costumes/buttondown_vicvest.json @@ -0,0 +1,28 @@ +{ + "buttondown_vicvest": [ + { + "type": "icon_state", + "icon_state": "buttondown", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "slacks", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "vicvest", + "blend_mode": "overlay", + "color_ids": [ 3 ] + }, + { + "type": "icon_state", + "icon_state": "vicvest_buttons", + "blend_mode": "overlay", + "color_ids": [ 4 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/costumes/chappy_habit.json b/monkestation/code/modules/blueshift/gags/json_configs/costumes/chappy_habit.json new file mode 100644 index 000000000000..22f31ab093ff --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/costumes/chappy_habit.json @@ -0,0 +1,22 @@ +{ + "habit": [ + { + "type": "icon_state", + "icon_state": "habit_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "habit_frill", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "habit_belt", + "blend_mode": "overlay", + "color_ids": [ 3 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/costumes/chrimbo.json b/monkestation/code/modules/blueshift/gags/json_configs/costumes/chrimbo.json new file mode 100644 index 000000000000..046dac4fabe2 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/costumes/chrimbo.json @@ -0,0 +1,41 @@ +{ + "christmas_male": [ + { + "type": "icon_state", + "icon_state": "christmas_male_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "christmas_male_trim", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "christmas_male_belt", + "blend_mode": "overlay" + } + ], + + "christmas_female": [ + { + "type": "icon_state", + "icon_state": "christmas_female_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "christmas_female_trim", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "christmas_female_belt", + "blend_mode": "overlay" + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/costumes/lunar_japanese.json b/monkestation/code/modules/blueshift/gags/json_configs/costumes/lunar_japanese.json new file mode 100644 index 000000000000..0137727ec042 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/costumes/lunar_japanese.json @@ -0,0 +1,15 @@ +{ + "qipao": [ + { + "type": "icon_state", + "icon_state": "qipao_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "qipao_trim", + "blend_mode": "overlay" + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/costumes/lunar_japanese_bicol.json b/monkestation/code/modules/blueshift/gags/json_configs/costumes/lunar_japanese_bicol.json new file mode 100644 index 000000000000..cf6c19cf7709 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/costumes/lunar_japanese_bicol.json @@ -0,0 +1,49 @@ +{ + "qipao": [ + { + "type": "icon_state", + "icon_state": "qipao_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "qipao_trim_recolorable", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ], + "yukata": [ + { + "type": "icon_state", + "icon_state": "yukata_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "yukata_sash", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ], + "cheongsam": [ + { + "type": "icon_state", + "icon_state": "cheongsam_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "cheongsam_trim", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "cheongsam_pants", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/costumes/lunar_japanese_tricol.json b/monkestation/code/modules/blueshift/gags/json_configs/costumes/lunar_japanese_tricol.json new file mode 100644 index 000000000000..450a1a7c2339 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/costumes/lunar_japanese_tricol.json @@ -0,0 +1,22 @@ +{ + "cheongsam": [ + { + "type": "icon_state", + "icon_state": "cheongsam_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "cheongsam_trim_recolorable", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "cheongsam_pants", + "blend_mode": "overlay", + "color_ids": [ 3 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/costumes/maid_arm_covers.json b/monkestation/code/modules/blueshift/gags/json_configs/costumes/maid_arm_covers.json new file mode 100644 index 000000000000..5d7320becb78 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/costumes/maid_arm_covers.json @@ -0,0 +1,16 @@ +{ + "maid_arm_covers": [ + { + "type": "icon_state", + "icon_state": "maid_arm_covers", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "maid_arm_covers_trim", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/costumes/maid_costume.json b/monkestation/code/modules/blueshift/gags/json_configs/costumes/maid_costume.json new file mode 100644 index 000000000000..b24c236a25b1 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/costumes/maid_costume.json @@ -0,0 +1,16 @@ +{ + "maid_costume": [ + { + "type": "icon_state", + "icon_state": "maid_costume", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "maid_costume_trim", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/costumes/maid_headband.json b/monkestation/code/modules/blueshift/gags/json_configs/costumes/maid_headband.json new file mode 100644 index 000000000000..84d4c120ef68 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/costumes/maid_headband.json @@ -0,0 +1,10 @@ +{ + "maid_headband": [ + { + "type": "icon_state", + "icon_state": "maid_headband", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/costumes/maid_neck_cover.json b/monkestation/code/modules/blueshift/gags/json_configs/costumes/maid_neck_cover.json new file mode 100644 index 000000000000..5e21c138ec1c --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/costumes/maid_neck_cover.json @@ -0,0 +1,16 @@ +{ + "maid_neck_cover": [ + { + "type": "icon_state", + "icon_state": "maid_neck_cover", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "maid_neck_cover_trim", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/costumes/monk_habit.json b/monkestation/code/modules/blueshift/gags/json_configs/costumes/monk_habit.json new file mode 100644 index 000000000000..15c6e4ea2a35 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/costumes/monk_habit.json @@ -0,0 +1,30 @@ +{ + "monkfrock": [ + { + "type": "icon_state", + "icon_state": "monkfrock_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "monkfrock_belt", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ], + "monkfrock_t": [ + { + "type": "icon_state", + "icon_state": "monkfrock_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "monkfrock_belt", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/costumes/monk_habit_hood.json b/monkestation/code/modules/blueshift/gags/json_configs/costumes/monk_habit_hood.json new file mode 100644 index 000000000000..fe1cd238fb85 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/costumes/monk_habit_hood.json @@ -0,0 +1,44 @@ +{ + "monkhood": [ + { + "type": "icon_state", + "icon_state": "monkhood_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "monkhood_belt", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ], + "nun_hood": [ + { + "type": "icon_state", + "icon_state": "nun_hood_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "nun_hood_frills", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ], + "nun_hood_alt": [ + { + "type": "icon_state", + "icon_state": "nun_hood_alt_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "nun_hood_alt_frills", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/crop_jacket/crop_jacket.json b/monkestation/code/modules/blueshift/gags/json_configs/crop_jacket/crop_jacket.json new file mode 100644 index 000000000000..9cd4f3a8996f --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/crop_jacket/crop_jacket.json @@ -0,0 +1,42 @@ +{ + "crop_jacket": [ + { + "type": "icon_state", + "icon_state": "crop_jacket", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "crop_jacket_collar", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "crop_jacket_sleeve", + "blend_mode": "overlay", + "color_ids": [ 3 ] + } + ], + "crop_jacket_t": [ + { + "type": "icon_state", + "icon_state": "crop_jacket", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "crop_jacket_collar", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "crop_jacket_sleeve_short", + "blend_mode": "overlay", + "color_ids": [ 3 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/duster/duster.json b/monkestation/code/modules/blueshift/gags/json_configs/duster/duster.json new file mode 100644 index 000000000000..7d5f91ea857f --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/duster/duster.json @@ -0,0 +1,10 @@ +{ + "duster": [ + { + "type": "icon_state", + "icon_state": "duster_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/duster/duster_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/duster/duster_worn.json new file mode 100644 index 000000000000..a41ae956fd4f --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/duster/duster_worn.json @@ -0,0 +1,10 @@ +{ + "duster": [ + { + "type": "icon_state", + "icon_state": "duster_mob", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/fancy_suits/fancy_suit.json b/monkestation/code/modules/blueshift/gags/json_configs/fancy_suits/fancy_suit.json new file mode 100644 index 000000000000..190c44456eae --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/fancy_suits/fancy_suit.json @@ -0,0 +1,22 @@ +{ + "fancy_suit": [ + { + "type": "icon_state", + "icon_state": "fancy_suit", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "fancy_suit_undershirt", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "fancy_suit_buttons", + "blend_mode": "overlay", + "color_ids": [ 3 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/fancy_suits/fancy_suit_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/fancy_suits/fancy_suit_worn.json new file mode 100644 index 000000000000..c6e023f6d8c1 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/fancy_suits/fancy_suit_worn.json @@ -0,0 +1,22 @@ +{ + "fancy_suit": [ + { + "type": "icon_state", + "icon_state": "fancy_suit_worn", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "fancy_suit_undershirt_worn", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "fancy_suit_buttons_worn", + "blend_mode": "overlay", + "color_ids": [ 3 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/fancy_suits/recolorable_suit.json b/monkestation/code/modules/blueshift/gags/json_configs/fancy_suits/recolorable_suit.json new file mode 100644 index 000000000000..1725e7c27f52 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/fancy_suits/recolorable_suit.json @@ -0,0 +1,54 @@ +{ + "recolorable_suit": [ + { + "type": "icon_state", + "icon_state": "part_slacks", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "part_shirt", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "part_vest", + "blend_mode": "overlay", + "color_ids": [ 3 ] + }, + { + "type": "icon_state", + "icon_state": "part_buttons", + "blend_mode": "overlay", + "color_ids": [ 4 ] + } + ], + "recolorable_suitskirt" : [ + { + "type": "icon_state", + "icon_state": "part_skirt", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "part_shirt", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "part_vest", + "blend_mode": "overlay", + "color_ids": [ 3 ] + }, + { + "type": "icon_state", + "icon_state": "part_buttons", + "blend_mode": "overlay", + "color_ids": [ 4 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/flannel/flannel.json b/monkestation/code/modules/blueshift/gags/json_configs/flannel/flannel.json new file mode 100644 index 000000000000..62d09bbe9f6d --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/flannel/flannel.json @@ -0,0 +1,18 @@ +{ + "flannelgags": [ + { + "type": "icon_state", + "icon_state": "flannel_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ], + "flannelgags_t": [ + { + "type": "icon_state", + "icon_state": "flannel_obj_t", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/flannel/flannel_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/flannel/flannel_worn.json new file mode 100644 index 000000000000..04b4530ff8e8 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/flannel/flannel_worn.json @@ -0,0 +1,18 @@ +{ + "flannelgags": [ + { + "type": "icon_state", + "icon_state": "flannel_mob", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ], + "flannelgags_t": [ + { + "type": "icon_state", + "icon_state": "flannel_mob_t", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/flatcap/flatcap.json b/monkestation/code/modules/blueshift/gags/json_configs/flatcap/flatcap.json new file mode 100644 index 000000000000..758731a5a852 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/flatcap/flatcap.json @@ -0,0 +1,10 @@ +{ + "flatcap": [ + { + "type": "icon_state", + "icon_state": "flatcap_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/flatcap/flatcap_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/flatcap/flatcap_worn.json new file mode 100644 index 000000000000..56c3467673e7 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/flatcap/flatcap_worn.json @@ -0,0 +1,10 @@ +{ + "flatcap": [ + { + "type": "icon_state", + "icon_state": "flatcap_mob", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/flowerpin/flowerpin.json b/monkestation/code/modules/blueshift/gags/json_configs/flowerpin/flowerpin.json new file mode 100644 index 000000000000..c891b726a212 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/flowerpin/flowerpin.json @@ -0,0 +1,10 @@ +{ + "flowerpin": [ + { + "type": "icon_state", + "icon_state": "flowerpin_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/flowerpin/flowerpin_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/flowerpin/flowerpin_worn.json new file mode 100644 index 000000000000..47aa98f431e2 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/flowerpin/flowerpin_worn.json @@ -0,0 +1,10 @@ +{ + "flowerpin": [ + { + "type": "icon_state", + "icon_state": "flowerpin_mob", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/head/back_bow.json b/monkestation/code/modules/blueshift/gags/json_configs/head/back_bow.json new file mode 100644 index 000000000000..b2e5f1f82cb0 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/head/back_bow.json @@ -0,0 +1,10 @@ +{ + "back_bow": [ + { + "type": "icon_state", + "icon_state": "back_bow", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/head/catear_headphone/catear_headphone.json b/monkestation/code/modules/blueshift/gags/json_configs/head/catear_headphone/catear_headphone.json new file mode 100644 index 000000000000..b93f28735a44 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/head/catear_headphone/catear_headphone.json @@ -0,0 +1,58 @@ +{ + "catear_headphone": [ + { + "type": "icon_state", + "icon_state": "catearphones_obj_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "catearphones_obj_lights", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ], + "catear_headphone_on": [ + { + "type": "icon_state", + "icon_state": "catearphones_obj_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "catearphones_obj_lights", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ], + "catear_headphone_tail": [ + { + "type": "icon_state", + "icon_state": "catearphones_obj_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "catearphones_obj_lights", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ], + "catear_headphone_tail_on": [ + { + "type": "icon_state", + "icon_state": "catearphones_obj_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "catearphones_obj_lights", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/head/catear_headphone/catear_headphone_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/head/catear_headphone/catear_headphone_worn.json new file mode 100644 index 000000000000..21dddc567c18 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/head/catear_headphone/catear_headphone_worn.json @@ -0,0 +1,71 @@ +{ + "catear_headphone": [ + { + "type": "icon_state", + "icon_state": "catearphones_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "catearphones_off", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ], + "catear_headphone_on":[ + { + "type": "icon_state", + "icon_state": "catearphones_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "catearphones_on", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + + ], + "catear_headphone_tail": [ + { + "type": "icon_state", + "icon_state": "catearphones_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "catearphones_off", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "catearphones_tail_on", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ], + "catear_headphone_tail_on": [ + { + "type": "icon_state", + "icon_state": "catearphones_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "catearphones_on", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "catearphones_tail_on", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/head/catear_headphone/catear_headphone_worn_inhand_left.json b/monkestation/code/modules/blueshift/gags/json_configs/head/catear_headphone/catear_headphone_worn_inhand_left.json new file mode 100644 index 000000000000..30fa217c40de --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/head/catear_headphone/catear_headphone_worn_inhand_left.json @@ -0,0 +1,31 @@ +{ + "catear_headphone": [ + { + "type": "icon_state", + "icon_state": "catear_headphones_left", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "catear_headphones_left_color", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ], + "catear_headphone_on":[ + { + "type": "icon_state", + "icon_state": "catear_headphones_left", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "catear_headphones_left_color", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/head/catear_headphone/catear_headphone_worn_inhand_right.json b/monkestation/code/modules/blueshift/gags/json_configs/head/catear_headphone/catear_headphone_worn_inhand_right.json new file mode 100644 index 000000000000..e0381aa521fb --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/head/catear_headphone/catear_headphone_worn_inhand_right.json @@ -0,0 +1,31 @@ +{ + "catear_headphone": [ + { + "type": "icon_state", + "icon_state": "catear_headphones_right", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "catear_headphones_right_color", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ], + "catear_headphone_on":[ + { + "type": "icon_state", + "icon_state": "catear_headphones_right", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "catear_headphones_right_color", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/head/cowboy/three_layer_hats.json b/monkestation/code/modules/blueshift/gags/json_configs/head/cowboy/three_layer_hats.json new file mode 100644 index 000000000000..0e033417d246 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/head/cowboy/three_layer_hats.json @@ -0,0 +1,42 @@ +{ + "widebrim_feathered": [ + { + "type": "icon_state", + "icon_state": "widebrim_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "widebrim_strip", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "feather", + "blend_mode": "overlay", + "color_ids": [ 3 ] + } + ], + "flatbrim_cowl": [ + { + "type": "icon_state", + "icon_state": "cowboy_cowl", + "blend_mode": "overlay", + "color_ids": [ 3 ] + }, + { + "type": "icon_state", + "icon_state": "flatbrim_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "flatbrim_strip", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/head/cowboy/two_layer_hats.json b/monkestation/code/modules/blueshift/gags/json_configs/head/cowboy/two_layer_hats.json new file mode 100644 index 000000000000..f659c7c04a10 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/head/cowboy/two_layer_hats.json @@ -0,0 +1,58 @@ +{ + "widebrim": [ + { + "type": "icon_state", + "icon_state": "widebrim_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "widebrim_strip", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ], + "flatbrim": [ + { + "type": "icon_state", + "icon_state": "flatbrim_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "flatbrim_strip", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ], + "cattleman": [ + { + "type": "icon_state", + "icon_state": "cattleman_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "cattleman_strip", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ], + "cattleman_wide": [ + { + "type": "icon_state", + "icon_state": "cattleman_wide_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "cattleman_wide_strip", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/head/hood/hood.json b/monkestation/code/modules/blueshift/gags/json_configs/head/hood/hood.json new file mode 100644 index 000000000000..88d73ba8a388 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/head/hood/hood.json @@ -0,0 +1,16 @@ +{ + "hood": [ + { + "type": "icon_state", + "icon_state": "hood_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "hood_neck_obj", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/head/hood/hood_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/head/hood/hood_worn.json new file mode 100644 index 000000000000..a3de1fed01f0 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/head/hood/hood_worn.json @@ -0,0 +1,16 @@ +{ + "hood": [ + { + "type": "icon_state", + "icon_state": "hood", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "hood_neck", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/head/large_bow.json b/monkestation/code/modules/blueshift/gags/json_configs/head/large_bow.json new file mode 100644 index 000000000000..aa5292b71a95 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/head/large_bow.json @@ -0,0 +1,10 @@ +{ + "large_bow": [ + { + "type": "icon_state", + "icon_state": "large_bow", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/head/small_bow.json b/monkestation/code/modules/blueshift/gags/json_configs/head/small_bow.json new file mode 100644 index 000000000000..8aa0d37a192b --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/head/small_bow.json @@ -0,0 +1,18 @@ +{ + "small_bow": [ + { + "type": "icon_state", + "icon_state": "small_bow", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ], + "small_bow_t": [ + { + "type": "icon_state", + "icon_state": "small_bow_t", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/head/sweet_bow.json b/monkestation/code/modules/blueshift/gags/json_configs/head/sweet_bow.json new file mode 100644 index 000000000000..5cb25c29e8df --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/head/sweet_bow.json @@ -0,0 +1,10 @@ +{ + "sweet_bow": [ + { + "type": "icon_state", + "icon_state": "sweet_bow", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/hoodie/hoodie.json b/monkestation/code/modules/blueshift/gags/json_configs/hoodie/hoodie.json new file mode 100644 index 000000000000..2317c31ba006 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/hoodie/hoodie.json @@ -0,0 +1,18 @@ +{ + "hoodie": [ + { + "type": "icon_state", + "icon_state": "hoodie_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ], + "hoodie_t": [ + { + "type": "icon_state", + "icon_state": "hoodie_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/hoodie/hoodie_branded.json b/monkestation/code/modules/blueshift/gags/json_configs/hoodie/hoodie_branded.json new file mode 100644 index 000000000000..b4e7afa6810f --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/hoodie/hoodie_branded.json @@ -0,0 +1,134 @@ +{ + "hoodie_NT": [ + { + "type": "icon_state", + "icon_state": "hoodie_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "trim_obj", + "blend_mode": "overlay" + } + ], + "hoodie_NT_t": [ + { + "type": "icon_state", + "icon_state": "hoodie_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "trim_obj", + "blend_mode": "overlay" + } + ], + "hoodie_NRTI": [ + { + "type": "icon_state", + "icon_state": "hoodie_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "trim_alt_obj", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ], + "hoodie_NRTI_t": [ + { + "type": "icon_state", + "icon_state": "hoodie_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "trim_alt_obj", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ], + "hoodie_MU": [ + { + "type": "icon_state", + "icon_state": "hoodie_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "mu_logo_obj", + "blend_mode": "overlay" + } + ], + "hoodie_MU_t": [ + { + "type": "icon_state", + "icon_state": "hoodie_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "mu_logo_obj", + "blend_mode": "overlay" + } + ], + "hoodie_CTI": [ + { + "type": "icon_state", + "icon_state": "hoodie_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "cti_logo_obj", + "blend_mode": "overlay" + } + ], + "hoodie_CTI_t": [ + { + "type": "icon_state", + "icon_state": "hoodie_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "cti_logo_obj", + "blend_mode": "overlay" + } + ], + "hoodie_SMW": [ + { + "type": "icon_state", + "icon_state": "hoodie_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "smw_logo_obj", + "blend_mode": "overlay" + } + ], + "hoodie_SMW_t": [ + { + "type": "icon_state", + "icon_state": "hoodie_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "smw_logo_obj", + "blend_mode": "overlay" + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/hoodie/hoodie_branded_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/hoodie/hoodie_branded_worn.json new file mode 100644 index 000000000000..d416bf96b1e4 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/hoodie/hoodie_branded_worn.json @@ -0,0 +1,154 @@ +{ + "hoodie_NT": [ + { + "type": "icon_state", + "icon_state": "hoodie", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "trim", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "nt_logo", + "blend_mode": "overlay" + } + ], + "hoodie_NT_t": [ + { + "type": "icon_state", + "icon_state": "hoodie_t", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "trim_t", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "nt_logo_t", + "blend_mode": "overlay" + } + ], + "hoodie_NRTI": [ + { + "type": "icon_state", + "icon_state": "hoodie", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "trim_alt", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "nrti_logo", + "blend_mode": "overlay" + } + ], + "hoodie_NRTI_t": [ + { + "type": "icon_state", + "icon_state": "hoodie_t", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "trim_alt_t", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "nrti_logo_t", + "blend_mode": "overlay" + } + ], + "hoodie_MU": [ + { + "type": "icon_state", + "icon_state": "hoodie", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "mu_logo", + "blend_mode": "overlay" + } + ], + "hoodie_MU_t": [ + { + "type": "icon_state", + "icon_state": "hoodie_t", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "mu_logo_t", + "blend_mode": "overlay" + } + ], + "hoodie_CTI": [ + { + "type": "icon_state", + "icon_state": "hoodie", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "cti_logo", + "blend_mode": "overlay" + } + ], + "hoodie_CTI_t": [ + { + "type": "icon_state", + "icon_state": "hoodie_t", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "cti_logo_t", + "blend_mode": "overlay" + } + ], + "hoodie_SMW": [ + { + "type": "icon_state", + "icon_state": "hoodie", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "smw_logo", + "blend_mode": "overlay" + } + ], + "hoodie_SMW_t": [ + { + "type": "icon_state", + "icon_state": "hoodie_t", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "smw_logo_t", + "blend_mode": "overlay" + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/hoodie/hoodie_trim.json b/monkestation/code/modules/blueshift/gags/json_configs/hoodie/hoodie_trim.json new file mode 100644 index 000000000000..fb6613d855d5 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/hoodie/hoodie_trim.json @@ -0,0 +1,58 @@ +{ + "hoodie_trim": [ + { + "type": "icon_state", + "icon_state": "hoodie_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "trim_obj", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ], + "hoodie_trim_t": [ + { + "type": "icon_state", + "icon_state": "hoodie_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "trim_obj", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ], + "hoodie_trim_alt": [ + { + "type": "icon_state", + "icon_state": "hoodie_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "trim_alt_obj", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ], + "hoodie_trim_alt_t": [ + { + "type": "icon_state", + "icon_state": "hoodie_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "trim_alt_obj", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/hoodie/hoodie_trim_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/hoodie/hoodie_trim_worn.json new file mode 100644 index 000000000000..236a62a2cdfb --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/hoodie/hoodie_trim_worn.json @@ -0,0 +1,58 @@ +{ + "hoodie_trim": [ + { + "type": "icon_state", + "icon_state": "hoodie", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "trim", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ], + "hoodie_trim_t": [ + { + "type": "icon_state", + "icon_state": "hoodie_t", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "trim_t", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ], + "hoodie_trim_alt": [ + { + "type": "icon_state", + "icon_state": "hoodie", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "trim_alt", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ], + "hoodie_trim_alt_t": [ + { + "type": "icon_state", + "icon_state": "hoodie_t", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "trim_alt_t", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/hoodie/hoodie_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/hoodie/hoodie_worn.json new file mode 100644 index 000000000000..4122bdd059da --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/hoodie/hoodie_worn.json @@ -0,0 +1,18 @@ +{ + "hoodie": [ + { + "type": "icon_state", + "icon_state": "hoodie", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ], + "hoodie_t": [ + { + "type": "icon_state", + "icon_state": "hoodie_t", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/items/hypokit.json b/monkestation/code/modules/blueshift/gags/json_configs/items/hypokit.json new file mode 100644 index 000000000000..efe26705b172 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/items/hypokit.json @@ -0,0 +1,41 @@ +{ + "custom-mini": [ + { + "type": "icon_state", + "icon_state": "standard-box", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "standard-face", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ], + "deluxe-custom-mini": [ + { + "type": "icon_state", + "icon_state": "deluxe-box-normal", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "deluxe-face", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ], + "tactical-custom-mini": [ + { + "type": "icon_state", + "icon_state": "deluxe-box-tactical", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "deluxe-face", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/items/hypospray.json b/monkestation/code/modules/blueshift/gags/json_configs/items/hypospray.json new file mode 100644 index 000000000000..55c5c71c3bb7 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/items/hypospray.json @@ -0,0 +1,78 @@ +{ + "hypo2_normal": [ + { + "type": "icon_state", + "icon_state": "hypo2_normal", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "hypo2_accent1", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "hypo2_accent2", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ], + "hypo2_deluxe": [ + { + "type": "icon_state", + "icon_state": "hypo2_deluxe", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "hypo2_accent1", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "hypo2_accent2", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ], + "hypo2_cmo": [ + { + "type": "icon_state", + "icon_state": "hypo2_cmo", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "hypo2_accent1", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "hypo2_accent2", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ], + "hypo2_tactical": [ + { + "type": "icon_state", + "icon_state": "hypo2_tactical", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "hypo2_accent1", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "hypo2_accent2", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/items/hypovial.json b/monkestation/code/modules/blueshift/gags/json_configs/items/hypovial.json new file mode 100644 index 000000000000..99492b822e2a --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/items/hypovial.json @@ -0,0 +1,28 @@ +{ + "hypovial": [ + { + "type": "icon_state", + "icon_state": "hypovial-glass", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "hypovial-body", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ], + "hypoviallarge": [ + { + "type": "icon_state", + "icon_state": "hypoviallarge-glass", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "hypoviallarge-body", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/items/id_card.json b/monkestation/code/modules/blueshift/gags/json_configs/items/id_card.json new file mode 100644 index 000000000000..54a714fee94a --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/items/id_card.json @@ -0,0 +1,22 @@ +{ + "id_card": [ + { + "type": "icon_state", + "icon_state": "card", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "trim", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "strip", + "blend_mode": "overlay", + "color_ids": [ 3 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/jumpsuit/jumpsuit_prison_worn_monkey.json b/monkestation/code/modules/blueshift/gags/json_configs/jumpsuit/jumpsuit_prison_worn_monkey.json new file mode 100644 index 000000000000..ad73ea084eac --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/jumpsuit/jumpsuit_prison_worn_monkey.json @@ -0,0 +1,28 @@ +{ + "jumpsuit": [ + { + "type": "icon_state", + "icon_state": "jumpsuit", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "jumpsuit_prison", + "blend_mode": "overlay" + } + ], + "jumpsuit_d" : [ + { + "type": "icon_state", + "icon_state": "jumpsuit_d", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "jumpsuit_d_prison", + "blend_mode": "overlay" + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/jumpsuit/jumpsuit_worn_monkey.json b/monkestation/code/modules/blueshift/gags/json_configs/jumpsuit/jumpsuit_worn_monkey.json new file mode 100644 index 000000000000..2198116fbbda --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/jumpsuit/jumpsuit_worn_monkey.json @@ -0,0 +1,28 @@ +{ + "jumpsuit": [ + { + "type": "icon_state", + "icon_state": "jumpsuit", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "jumpsuit_accessories", + "blend_mode": "overlay" + } + ], + "jumpsuit_d" : [ + { + "type": "icon_state", + "icon_state": "jumpsuit_d", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "jumpsuit_accessories", + "blend_mode": "overlay" + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/kilt/kilt.json b/monkestation/code/modules/blueshift/gags/json_configs/kilt/kilt.json new file mode 100644 index 000000000000..a7b629cd6445 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/kilt/kilt.json @@ -0,0 +1,27 @@ +{ + "kilt": [ + { + "type": "icon_state", + "icon_state": "collared", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "kilt_fabric", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "kilt_sash", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "kilt_metal", + "blend_mode": "overlay", + "color_ids": [ 3 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/leather_jacket/leather_jacket.json b/monkestation/code/modules/blueshift/gags/json_configs/leather_jacket/leather_jacket.json new file mode 100644 index 000000000000..afa7dc66f021 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/leather_jacket/leather_jacket.json @@ -0,0 +1,10 @@ +{ + "leather_jacket": [ + { + "type": "icon_state", + "icon_state": "jacket_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/leather_jacket/leather_jacket_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/leather_jacket/leather_jacket_worn.json new file mode 100644 index 000000000000..476d8c2b5602 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/leather_jacket/leather_jacket_worn.json @@ -0,0 +1,10 @@ +{ + "leather_jacket": [ + { + "type": "icon_state", + "icon_state": "jacket_mob", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/masquerade_mask/masquerade_mask.json b/monkestation/code/modules/blueshift/gags/json_configs/masquerade_mask/masquerade_mask.json new file mode 100644 index 000000000000..0bbac3ac8329 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/masquerade_mask/masquerade_mask.json @@ -0,0 +1,58 @@ +{ + "maskerade": [ + { + "type": "icon_state", + "icon_state": "mask", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ], + "maskerade_two_colors": [ + { + "type": "icon_state", + "icon_state": "mask_left", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "mask_right", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ], + "maskerade_feather": [ + { + "type": "icon_state", + "icon_state": "mask", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "mask_feather", + "blend_mode": "overlay", + "color_ids": [ 3 ] + } + ], + "maskerade_two_colors_feather": [ + { + "type": "icon_state", + "icon_state": "mask_left", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "mask_right", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "mask_feather", + "blend_mode": "overlay", + "color_ids": [ 3 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/mush_cap/mushcap.json b/monkestation/code/modules/blueshift/gags/json_configs/mush_cap/mushcap.json new file mode 100644 index 000000000000..5ca5a3e6fe29 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/mush_cap/mushcap.json @@ -0,0 +1,16 @@ +{ + "mush_cap": [ + { + "type": "icon_state", + "icon_state": "mush_cap", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "mush_face", + "blend_mode": "overlay", + "color_ids": [] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/mush_cap/mushcap_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/mush_cap/mushcap_worn.json new file mode 100644 index 000000000000..9236835d3cac --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/mush_cap/mushcap_worn.json @@ -0,0 +1,16 @@ +{ + "mush_cap": [ + { + "type": "icon_state", + "icon_state": "mush_cap_worn", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "mush_face_worn", + "blend_mode": "overlay", + "color_ids": [] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/neck/face_scarf.json b/monkestation/code/modules/blueshift/gags/json_configs/neck/face_scarf.json new file mode 100644 index 000000000000..7d8628a30972 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/neck/face_scarf.json @@ -0,0 +1,18 @@ +{ + "face_scarf": [ + { + "type": "icon_state", + "icon_state": "face_scarf", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ], + "face_scarf_t": [ + { + "type": "icon_state", + "icon_state": "face_scarf_t", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/neck/mantle/mantle.json b/monkestation/code/modules/blueshift/gags/json_configs/neck/mantle/mantle.json new file mode 100644 index 000000000000..91cb8d27b27f --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/neck/mantle/mantle.json @@ -0,0 +1,10 @@ +{ + "mantle": [ + { + "type": "icon_state", + "icon_state": "mantle_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/neck/mantle/mantle_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/neck/mantle/mantle_worn.json new file mode 100644 index 000000000000..4ec7a9dfcf48 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/neck/mantle/mantle_worn.json @@ -0,0 +1,10 @@ +{ + "mantle": [ + { + "type": "icon_state", + "icon_state": "mantle", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/nri_surplus_equipment/backpack.json b/monkestation/code/modules/blueshift/gags/json_configs/nri_surplus_equipment/backpack.json new file mode 100644 index 000000000000..e25bf8881eb6 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/nri_surplus_equipment/backpack.json @@ -0,0 +1,10 @@ +{ + "backpack": [ + { + "type": "icon_state", + "icon_state": "backpack", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/nri_surplus_equipment/chestrig.json b/monkestation/code/modules/blueshift/gags/json_configs/nri_surplus_equipment/chestrig.json new file mode 100644 index 000000000000..19a645460a8c --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/nri_surplus_equipment/chestrig.json @@ -0,0 +1,10 @@ +{ + "chestrig": [ + { + "type": "icon_state", + "icon_state": "chestrig", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/nri_surplus_equipment/helmet.json b/monkestation/code/modules/blueshift/gags/json_configs/nri_surplus_equipment/helmet.json new file mode 100644 index 000000000000..baf7701ed9f8 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/nri_surplus_equipment/helmet.json @@ -0,0 +1,74 @@ +{ + "helmet_plain": [ + { + "type": "icon_state", + "icon_state": "helmet_underlay", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "helmet_greyscale", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ], + "helmet_strap": [ + { + "type": "icon_state", + "icon_state": "helmet_underlay", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "helmet_greyscale", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "helmet_strap", + "blend_mode": "overlay" + } + ], + "helmet_glass": [ + { + "type": "icon_state", + "icon_state": "helmet_underlay", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "helmet_greyscale", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "helmet_glass", + "blend_mode": "overlay" + } + ], + "helmet_both": [ + { + "type": "icon_state", + "icon_state": "helmet_underlay", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "helmet_greyscale", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "helmet_strap", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "helmet_glass", + "blend_mode": "overlay" + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/nri_surplus_equipment/undersuit.json b/monkestation/code/modules/blueshift/gags/json_configs/nri_surplus_equipment/undersuit.json new file mode 100644 index 000000000000..261ef5890417 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/nri_surplus_equipment/undersuit.json @@ -0,0 +1,22 @@ +{ + "undersuit_greyscale": [ + { + "type": "icon_state", + "icon_state": "undersuit_greyscale", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "undersuit_greyscale_top", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "undersuit_greyscale_top_mid", + "blend_mode": "overlay", + "color_ids": [ 3 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/pants_shorts_skirts_dresses/camo_pants.json b/monkestation/code/modules/blueshift/gags/json_configs/pants_shorts_skirts_dresses/camo_pants.json new file mode 100644 index 000000000000..e2bb7457b658 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/pants_shorts_skirts_dresses/camo_pants.json @@ -0,0 +1,27 @@ +{ + "camopants": [ + { + "type": "icon_state", + "icon_state": "camopants_camo1", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "camopants_camo2", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "camopants_camo3", + "blend_mode": "overlay", + "color_ids": [ 3 ] + }, + { + "type": "icon_state", + "icon_state": "camopants_buckle", + "blend_mode": "overlay" + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/pants_shorts_skirts_dresses/jean_skirt.json b/monkestation/code/modules/blueshift/gags/json_configs/pants_shorts_skirts_dresses/jean_skirt.json new file mode 100644 index 000000000000..7114b2fca1a1 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/pants_shorts_skirts_dresses/jean_skirt.json @@ -0,0 +1,22 @@ +{ + "jean_skirt": [ + { + "type": "icon_state", + "icon_state": "skirt_buckle", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "skirt_belt", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "jean_skirt_base", + "blend_mode": "overlay", + "color_ids": [ 3 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/pants_shorts_skirts_dresses/jeans_ripped.json b/monkestation/code/modules/blueshift/gags/json_configs/pants_shorts_skirts_dresses/jeans_ripped.json new file mode 100644 index 000000000000..51c69bc31dfb --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/pants_shorts_skirts_dresses/jeans_ripped.json @@ -0,0 +1,22 @@ +{ + "jeans_ripped": [ + { + "type": "icon_state", + "icon_state": "buckle", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "belt", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "ripped_jeans_base", + "blend_mode": "overlay", + "color_ids": [ 3 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/pants_shorts_skirts_dresses/lone_skirt.json b/monkestation/code/modules/blueshift/gags/json_configs/pants_shorts_skirts_dresses/lone_skirt.json new file mode 100644 index 000000000000..808f8feac0c7 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/pants_shorts_skirts_dresses/lone_skirt.json @@ -0,0 +1,10 @@ +{ + "lone_skirt": [ + { + "type": "icon_state", + "icon_state": "lone_skirt_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/pants_shorts_skirts_dresses/long_skirt.json b/monkestation/code/modules/blueshift/gags/json_configs/pants_shorts_skirts_dresses/long_skirt.json new file mode 100644 index 000000000000..19181dc1a276 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/pants_shorts_skirts_dresses/long_skirt.json @@ -0,0 +1,10 @@ +{ + "long_skirt": [ + { + "type": "icon_state", + "icon_state": "long_skirt", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/pants_shorts_skirts_dresses/medium_skirt.json b/monkestation/code/modules/blueshift/gags/json_configs/pants_shorts_skirts_dresses/medium_skirt.json new file mode 100644 index 000000000000..c2fc37c937ca --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/pants_shorts_skirts_dresses/medium_skirt.json @@ -0,0 +1,10 @@ +{ + "medium_skirt": [ + { + "type": "icon_state", + "icon_state": "medium_skirt", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/pants_shorts_skirts_dresses/pentagram_dress.json b/monkestation/code/modules/blueshift/gags/json_configs/pants_shorts_skirts_dresses/pentagram_dress.json new file mode 100644 index 000000000000..f14d360f8226 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/pants_shorts_skirts_dresses/pentagram_dress.json @@ -0,0 +1,10 @@ +{ + "dress_pentagram": [ + { + "type": "icon_state", + "icon_state": "penta_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/pants_shorts_skirts_dresses/short_dress.json b/monkestation/code/modules/blueshift/gags/json_configs/pants_shorts_skirts_dresses/short_dress.json new file mode 100644 index 000000000000..4a04f9707878 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/pants_shorts_skirts_dresses/short_dress.json @@ -0,0 +1,16 @@ +{ + "short_dress": [ + { + "type": "icon_state", + "icon_state": "short_dress_belt", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "short_dress_base", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/pants_shorts_skirts_dresses/shortershorts.json b/monkestation/code/modules/blueshift/gags/json_configs/pants_shorts_skirts_dresses/shortershorts.json new file mode 100644 index 000000000000..0058e310800e --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/pants_shorts_skirts_dresses/shortershorts.json @@ -0,0 +1,22 @@ +{ + "shortershorts": [ + { + "type": "icon_state", + "icon_state": "buckle", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "belt", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "shortershorts", + "blend_mode": "overlay", + "color_ids": [ 3 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/pants_shorts_skirts_dresses/shorts_ripped.json b/monkestation/code/modules/blueshift/gags/json_configs/pants_shorts_skirts_dresses/shorts_ripped.json new file mode 100644 index 000000000000..56a4a6858c38 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/pants_shorts_skirts_dresses/shorts_ripped.json @@ -0,0 +1,27 @@ +{ + "shorts_ripped": [ + { + "type": "icon_state", + "icon_state": "buckle", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "belt", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "ripped_shorts_base", + "blend_mode": "overlay", + "color_ids": [ 3 ] + }, + { + "type": "icon_state", + "icon_state": "ripped_shorts_fray", + "blend_mode": "overlay" + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/pants_shorts_skirts_dresses/strapless_dress.json b/monkestation/code/modules/blueshift/gags/json_configs/pants_shorts_skirts_dresses/strapless_dress.json new file mode 100644 index 000000000000..a8f8c3257305 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/pants_shorts_skirts_dresses/strapless_dress.json @@ -0,0 +1,16 @@ +{ + "dress_strapless": [ + { + "type": "icon_state", + "icon_state": "strapless_belt", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "strapless_base", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/pants_shorts_skirts_dresses/turtleskirt_knit.json b/monkestation/code/modules/blueshift/gags/json_configs/pants_shorts_skirts_dresses/turtleskirt_knit.json new file mode 100644 index 000000000000..6e27594987b8 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/pants_shorts_skirts_dresses/turtleskirt_knit.json @@ -0,0 +1,31 @@ +{ + "turtleskirt_knit": [ + { + "type": "icon_state", + "icon_state": "cableknit_top", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "turtleskirt_base", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ], + + "turtleskirt_knit_d": [ + { + "type": "icon_state", + "icon_state": "cableknit_top_d", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "turtleskirt_base", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/pants_shorts_skirts_dresses/yoga_pants.json b/monkestation/code/modules/blueshift/gags/json_configs/pants_shorts_skirts_dresses/yoga_pants.json new file mode 100644 index 000000000000..22ac9e160ab0 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/pants_shorts_skirts_dresses/yoga_pants.json @@ -0,0 +1,10 @@ +{ + "yoga_pants": [ + { + "type": "icon_state", + "icon_state": "yoga_pants_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/peacoat/peacoat.json b/monkestation/code/modules/blueshift/gags/json_configs/peacoat/peacoat.json new file mode 100644 index 000000000000..f81a8c4be743 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/peacoat/peacoat.json @@ -0,0 +1,10 @@ +{ + "peacoat": [ + { + "type": "icon_state", + "icon_state": "peacoat_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/peacoat/peacoat_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/peacoat/peacoat_worn.json new file mode 100644 index 000000000000..c603119cf9a5 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/peacoat/peacoat_worn.json @@ -0,0 +1,18 @@ +{ + "peacoat": [ + { + "type": "icon_state", + "icon_state": "peacoat_mob", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ], + "peacoat_t": [ + { + "type": "icon_state", + "icon_state": "peacoat_mob_t", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/primitive_catgirl_clothing/armwraps.json b/monkestation/code/modules/blueshift/gags/json_configs/primitive_catgirl_clothing/armwraps.json new file mode 100644 index 000000000000..09996651c19d --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/primitive_catgirl_clothing/armwraps.json @@ -0,0 +1,10 @@ +{ + "armwraps": [ + { + "type": "icon_state", + "icon_state": "armwraps_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/primitive_catgirl_clothing/armwraps_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/primitive_catgirl_clothing/armwraps_worn.json new file mode 100644 index 000000000000..657fb8160d3b --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/primitive_catgirl_clothing/armwraps_worn.json @@ -0,0 +1,10 @@ +{ + "armwraps": [ + { + "type": "icon_state", + "icon_state": "armwraps", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/primitive_catgirl_clothing/body_wraps.json b/monkestation/code/modules/blueshift/gags/json_configs/primitive_catgirl_clothing/body_wraps.json new file mode 100644 index 000000000000..4b212cd5f0c3 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/primitive_catgirl_clothing/body_wraps.json @@ -0,0 +1,16 @@ +{ + "wraps": [ + { + "type": "icon_state", + "icon_state": "wraps_under_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "wraps_over_obj", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/primitive_catgirl_clothing/body_wraps_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/primitive_catgirl_clothing/body_wraps_worn.json new file mode 100644 index 000000000000..dd5c9eac4a36 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/primitive_catgirl_clothing/body_wraps_worn.json @@ -0,0 +1,16 @@ +{ + "wraps": [ + { + "type": "icon_state", + "icon_state": "wraps_under", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "wraps_over", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/primitive_catgirl_clothing/boots.json b/monkestation/code/modules/blueshift/gags/json_configs/primitive_catgirl_clothing/boots.json new file mode 100644 index 000000000000..35b58b8d76c6 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/primitive_catgirl_clothing/boots.json @@ -0,0 +1,16 @@ +{ + "boots": [ + { + "type": "icon_state", + "icon_state": "boots_under_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "boots_cover_obj", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/primitive_catgirl_clothing/boots_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/primitive_catgirl_clothing/boots_worn.json new file mode 100644 index 000000000000..c211d8e9a6f7 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/primitive_catgirl_clothing/boots_worn.json @@ -0,0 +1,16 @@ +{ + "boots": [ + { + "type": "icon_state", + "icon_state": "boots_under", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "boots_cover", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/primitive_catgirl_clothing/coat.json b/monkestation/code/modules/blueshift/gags/json_configs/primitive_catgirl_clothing/coat.json new file mode 100644 index 000000000000..7fa17c69efde --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/primitive_catgirl_clothing/coat.json @@ -0,0 +1,16 @@ +{ + "coat": [ + { + "type": "icon_state", + "icon_state": "coat_body_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "coat_fluff_obj", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/primitive_catgirl_clothing/coat_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/primitive_catgirl_clothing/coat_worn.json new file mode 100644 index 000000000000..d137985c5f34 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/primitive_catgirl_clothing/coat_worn.json @@ -0,0 +1,16 @@ +{ + "coat": [ + { + "type": "icon_state", + "icon_state": "coat_body", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "coat_fluff", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/primitive_catgirl_clothing/ferroniere.json b/monkestation/code/modules/blueshift/gags/json_configs/primitive_catgirl_clothing/ferroniere.json new file mode 100644 index 000000000000..24235978b872 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/primitive_catgirl_clothing/ferroniere.json @@ -0,0 +1,16 @@ +{ + "ferroniere": [ + { + "type": "icon_state", + "icon_state": "ferroniere_base_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "ferroniere_gem_obj", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/primitive_catgirl_clothing/ferroniere_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/primitive_catgirl_clothing/ferroniere_worn.json new file mode 100644 index 000000000000..3865a249892b --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/primitive_catgirl_clothing/ferroniere_worn.json @@ -0,0 +1,16 @@ +{ + "ferroniere": [ + { + "type": "icon_state", + "icon_state": "ferroniere_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "ferroniere_gem", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/primitive_catgirl_clothing/gaiter.json b/monkestation/code/modules/blueshift/gags/json_configs/primitive_catgirl_clothing/gaiter.json new file mode 100644 index 000000000000..564f4853627e --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/primitive_catgirl_clothing/gaiter.json @@ -0,0 +1,18 @@ +{ + "gaiter": [ + { + "type": "icon_state", + "icon_state": "gaiter_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ], + "gaiter_up": [ + { + "type": "icon_state", + "icon_state": "gaiter_obj_up", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/primitive_catgirl_clothing/gaiter_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/primitive_catgirl_clothing/gaiter_worn.json new file mode 100644 index 000000000000..bd1142f30837 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/primitive_catgirl_clothing/gaiter_worn.json @@ -0,0 +1,18 @@ +{ + "gaiter": [ + { + "type": "icon_state", + "icon_state": "gaiter", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ], + "gaiter_up": [ + { + "type": "icon_state", + "icon_state": "gaiter_up", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/primitive_catgirl_clothing/gauntlets.json b/monkestation/code/modules/blueshift/gags/json_configs/primitive_catgirl_clothing/gauntlets.json new file mode 100644 index 000000000000..31ef0b2a1b92 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/primitive_catgirl_clothing/gauntlets.json @@ -0,0 +1,16 @@ +{ + "gauntlets": [ + { + "type": "icon_state", + "icon_state": "gauntlets_obj", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "armwraps_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/primitive_catgirl_clothing/gauntlets_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/primitive_catgirl_clothing/gauntlets_worn.json new file mode 100644 index 000000000000..9feedd350c67 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/primitive_catgirl_clothing/gauntlets_worn.json @@ -0,0 +1,16 @@ +{ + "gauntlets": [ + { + "type": "icon_state", + "icon_state": "armwraps", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "gauntlets", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/primitive_catgirl_clothing/tailored_dress.json b/monkestation/code/modules/blueshift/gags/json_configs/primitive_catgirl_clothing/tailored_dress.json new file mode 100644 index 000000000000..98a097909d11 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/primitive_catgirl_clothing/tailored_dress.json @@ -0,0 +1,16 @@ +{ + "tailored_dress": [ + { + "type": "icon_state", + "icon_state": "tailored_dress_base_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "tailored_dress_laces_obj", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/primitive_catgirl_clothing/tailored_dress_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/primitive_catgirl_clothing/tailored_dress_worn.json new file mode 100644 index 000000000000..2a970e9f1b50 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/primitive_catgirl_clothing/tailored_dress_worn.json @@ -0,0 +1,16 @@ +{ + "tailored_dress": [ + { + "type": "icon_state", + "icon_state": "tailored_dress_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "tailored_dress_laces", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/primitive_catgirl_clothing/tunic.json b/monkestation/code/modules/blueshift/gags/json_configs/primitive_catgirl_clothing/tunic.json new file mode 100644 index 000000000000..170c172c4655 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/primitive_catgirl_clothing/tunic.json @@ -0,0 +1,22 @@ +{ + "tunic": [ + { + "type": "icon_state", + "icon_state": "tunic_white_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "tunic_dark_obj", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "tunic_belt_obj", + "blend_mode": "overlay", + "color_ids": [ 3 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/primitive_catgirl_clothing/tunic_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/primitive_catgirl_clothing/tunic_worn.json new file mode 100644 index 000000000000..edfdda453565 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/primitive_catgirl_clothing/tunic_worn.json @@ -0,0 +1,22 @@ +{ + "tunic": [ + { + "type": "icon_state", + "icon_state": "tunic_white", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "tunic_dark", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "tunic_belt", + "blend_mode": "overlay", + "color_ids": [ 3 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/ranger_poncho/ranger_poncho.json b/monkestation/code/modules/blueshift/gags/json_configs/ranger_poncho/ranger_poncho.json new file mode 100644 index 000000000000..9dcd4115e078 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/ranger_poncho/ranger_poncho.json @@ -0,0 +1,30 @@ +{ + "ranger_poncho": [ + { + "type": "icon_state", + "icon_state": "ranger_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "trim_obj", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ], + "ranger_poncho_t": [ + { + "type": "icon_state", + "icon_state": "ranger_obj_t", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "trim_obj_t", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/ranger_poncho/ranger_poncho_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/ranger_poncho/ranger_poncho_worn.json new file mode 100644 index 000000000000..f35c691008fc --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/ranger_poncho/ranger_poncho_worn.json @@ -0,0 +1,30 @@ +{ + "ranger_poncho": [ + { + "type": "icon_state", + "icon_state": "ranger", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "trim", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ], + "ranger_poncho_t": [ + { + "type": "icon_state", + "icon_state": "ranger_t", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "trim_t", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/respirator/respirator.json b/monkestation/code/modules/blueshift/gags/json_configs/respirator/respirator.json new file mode 100644 index 000000000000..321979ba0cbc --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/respirator/respirator.json @@ -0,0 +1,10 @@ +{ + "respirator": [ + { + "type": "icon_state", + "icon_state": "respirator_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/respirator/respirator_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/respirator/respirator_worn.json new file mode 100644 index 000000000000..91480384f482 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/respirator/respirator_worn.json @@ -0,0 +1,10 @@ +{ + "respirator": [ + { + "type": "icon_state", + "icon_state": "respirator", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/shoes/boots/boots.json b/monkestation/code/modules/blueshift/gags/json_configs/shoes/boots/boots.json new file mode 100644 index 000000000000..70bdf50d9b12 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/shoes/boots/boots.json @@ -0,0 +1,10 @@ +{ + "boots": [ + { + "type": "icon_state", + "icon_state": "boots_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/shoes/boots/boots_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/shoes/boots/boots_worn.json new file mode 100644 index 000000000000..6cac4b9a065f --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/shoes/boots/boots_worn.json @@ -0,0 +1,10 @@ +{ + "boots": [ + { + "type": "icon_state", + "icon_state": "boots", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/shoes/boots/christmas_boots.json b/monkestation/code/modules/blueshift/gags/json_configs/shoes/boots/christmas_boots.json new file mode 100644 index 000000000000..85c261d4fb49 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/shoes/boots/christmas_boots.json @@ -0,0 +1,16 @@ +{ + "christmas_boots": [ + { + "type": "icon_state", + "icon_state": "christmas_boots_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "christmas_boots_trim", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/shoes/fancyheels/fancyheels.json b/monkestation/code/modules/blueshift/gags/json_configs/shoes/fancyheels/fancyheels.json new file mode 100644 index 000000000000..768c0eb744d6 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/shoes/fancyheels/fancyheels.json @@ -0,0 +1,15 @@ +{ + "fancyheels": [ + { + "type": "icon_state", + "icon_state": "fancyheels_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "fancyheels_obj_insole", + "blend_mode": "overlay" + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/shoes/fancyheels/fancyheels_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/shoes/fancyheels/fancyheels_worn.json new file mode 100644 index 000000000000..9d30a56b2f38 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/shoes/fancyheels/fancyheels_worn.json @@ -0,0 +1,10 @@ +{ + "fancyheels": [ + { + "type": "icon_state", + "icon_state": "fancyheels_mob", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/shoes/fancyheels/fancyheels_worn_digi.json b/monkestation/code/modules/blueshift/gags/json_configs/shoes/fancyheels/fancyheels_worn_digi.json new file mode 100644 index 000000000000..c63a28721d0a --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/shoes/fancyheels/fancyheels_worn_digi.json @@ -0,0 +1,10 @@ +{ + "fancyheels": [ + { + "type": "icon_state", + "icon_state": "fancyheels_mob_digi", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/shoes/heels/heels.json b/monkestation/code/modules/blueshift/gags/json_configs/shoes/heels/heels.json new file mode 100644 index 000000000000..af8bd47200f6 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/shoes/heels/heels.json @@ -0,0 +1,10 @@ +{ + "heels": [ + { + "type": "icon_state", + "icon_state": "heels_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/shoes/heels/heels_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/shoes/heels/heels_worn.json new file mode 100644 index 000000000000..ab7a0a648f33 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/shoes/heels/heels_worn.json @@ -0,0 +1,10 @@ +{ + "heels": [ + { + "type": "icon_state", + "icon_state": "heels_mob", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/shoes/heels/heels_worn_digi.json b/monkestation/code/modules/blueshift/gags/json_configs/shoes/heels/heels_worn_digi.json new file mode 100644 index 000000000000..f89a1d685fea --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/shoes/heels/heels_worn_digi.json @@ -0,0 +1,10 @@ +{ + "heels": [ + { + "type": "icon_state", + "icon_state": "heels_mob_digi", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/shoes/laceups/laceups.json b/monkestation/code/modules/blueshift/gags/json_configs/shoes/laceups/laceups.json new file mode 100644 index 000000000000..d83542771b56 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/shoes/laceups/laceups.json @@ -0,0 +1,10 @@ +{ + "laceups": [ + { + "type": "icon_state", + "icon_state": "laceups_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/shoes/laceups/laceups_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/shoes/laceups/laceups_worn.json new file mode 100644 index 000000000000..5a3a6a4a8f09 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/shoes/laceups/laceups_worn.json @@ -0,0 +1,10 @@ +{ + "laceups": [ + { + "type": "icon_state", + "icon_state": "laceups", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/shoes/sandals/sandals.json b/monkestation/code/modules/blueshift/gags/json_configs/shoes/sandals/sandals.json new file mode 100644 index 000000000000..73083be765c3 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/shoes/sandals/sandals.json @@ -0,0 +1,10 @@ +{ + "sandals": [ + { + "type": "icon_state", + "icon_state": "sandals_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/shoes/sandals/sandals_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/shoes/sandals/sandals_worn.json new file mode 100644 index 000000000000..ab92a59b3ee7 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/shoes/sandals/sandals_worn.json @@ -0,0 +1,10 @@ +{ + "sandals": [ + { + "type": "icon_state", + "icon_state": "sandals", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/sleeveless_crop_jacket/sleeveless_crop_jacket.json b/monkestation/code/modules/blueshift/gags/json_configs/sleeveless_crop_jacket/sleeveless_crop_jacket.json new file mode 100644 index 000000000000..d2e138e08b30 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/sleeveless_crop_jacket/sleeveless_crop_jacket.json @@ -0,0 +1,16 @@ +{ + "crop_jacket": [ + { + "type": "icon_state", + "icon_state": "sleeveless_crop_jacket", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "sleeveless_crop_jacket_collar", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/sterile_mask/sterile.json b/monkestation/code/modules/blueshift/gags/json_configs/sterile_mask/sterile.json new file mode 100644 index 000000000000..ea465613f8bc --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/sterile_mask/sterile.json @@ -0,0 +1,18 @@ +{ + "sterile": [ + { + "type": "icon_state", + "icon_state": "sterile_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ], + "sterile_up": [ + { + "type": "icon_state", + "icon_state": "sterile_obj_up", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/sterile_mask/sterile_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/sterile_mask/sterile_worn.json new file mode 100644 index 000000000000..38d0b55fd159 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/sterile_mask/sterile_worn.json @@ -0,0 +1,18 @@ +{ + "sterile": [ + { + "type": "icon_state", + "icon_state": "sterile", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ], + "sterile_up": [ + { + "type": "icon_state", + "icon_state": "sterile_up", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/suits/apron/apron.json b/monkestation/code/modules/blueshift/gags/json_configs/suits/apron/apron.json new file mode 100644 index 000000000000..b64e39ee98a1 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/suits/apron/apron.json @@ -0,0 +1,10 @@ +{ + "apron": [ + { + "type": "icon_state", + "icon_state": "apron_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/suits/apron/apron_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/suits/apron/apron_worn.json new file mode 100644 index 000000000000..90d1d79b4ef5 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/suits/apron/apron_worn.json @@ -0,0 +1,10 @@ +{ + "apron": [ + { + "type": "icon_state", + "icon_state": "apron", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/suits/bathrobe/bathrobe.json b/monkestation/code/modules/blueshift/gags/json_configs/suits/bathrobe/bathrobe.json new file mode 100644 index 000000000000..0ec97f7cbdd6 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/suits/bathrobe/bathrobe.json @@ -0,0 +1,10 @@ +{ + "robes": [ + { + "type": "icon_state", + "icon_state": "robes_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/suits/bathrobe/bathrobe_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/suits/bathrobe/bathrobe_worn.json new file mode 100644 index 000000000000..7c9ace0d69a5 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/suits/bathrobe/bathrobe_worn.json @@ -0,0 +1,10 @@ +{ + "robes": [ + { + "type": "icon_state", + "icon_state": "robes", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/suits/croptop/croptop.json b/monkestation/code/modules/blueshift/gags/json_configs/suits/croptop/croptop.json new file mode 100644 index 000000000000..2fd05c399e14 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/suits/croptop/croptop.json @@ -0,0 +1,10 @@ +{ + "croptop": [ + { + "type": "icon_state", + "icon_state": "croptop", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/suits/fancysuit/fancysuit_bicol.json b/monkestation/code/modules/blueshift/gags/json_configs/suits/fancysuit/fancysuit_bicol.json new file mode 100644 index 000000000000..bdea62faa16e --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/suits/fancysuit/fancysuit_bicol.json @@ -0,0 +1,21 @@ +{ + "fancysuit_casual": [ + { + "type": "icon_state", + "icon_state": "part_slacks", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "pencilskirt_belt", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "pencilskirt_shirt", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/suits/fancysuit/fancysuit_quadcol.json b/monkestation/code/modules/blueshift/gags/json_configs/suits/fancysuit/fancysuit_quadcol.json new file mode 100644 index 000000000000..2e9c71ff594a --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/suits/fancysuit/fancysuit_quadcol.json @@ -0,0 +1,33 @@ +{ + "fancysuit_executive": [ + { + "type": "icon_state", + "icon_state": "part_slacks", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "pencilskirt_belt", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "pencilskirt_suit_base", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "pencilskirt_suit_under", + "blend_mode": "overlay", + "color_ids": [ 3 ] + }, + { + "type": "icon_state", + "icon_state": "pencilskirt_suit_tie", + "blend_mode": "overlay", + "color_ids": [ 4 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/suits/pencilskirt/pencilskirt.json b/monkestation/code/modules/blueshift/gags/json_configs/suits/pencilskirt/pencilskirt.json new file mode 100644 index 000000000000..23f0bbcb9f60 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/suits/pencilskirt/pencilskirt.json @@ -0,0 +1,15 @@ +{ + "pencilskirt": [ + { + "type": "icon_state", + "icon_state": "pencilskirt_belt", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "pencilskirt_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/suits/pencilskirt/pencilskirt_bicol.json b/monkestation/code/modules/blueshift/gags/json_configs/suits/pencilskirt/pencilskirt_bicol.json new file mode 100644 index 000000000000..99072525ab54 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/suits/pencilskirt/pencilskirt_bicol.json @@ -0,0 +1,40 @@ +{ + "pencilskirt_checkers": [ + { + "type": "icon_state", + "icon_state": "pencilskirt_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "pencilskirt_belt", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "pencilskirt_checkers", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ], + "pencilskirt_shirt": [ + { + "type": "icon_state", + "icon_state": "pencilskirt_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "pencilskirt_belt", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "pencilskirt_shirt", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/suits/pencilskirt/pencilskirt_quadcol.json b/monkestation/code/modules/blueshift/gags/json_configs/suits/pencilskirt/pencilskirt_quadcol.json new file mode 100644 index 000000000000..8ebb891af02d --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/suits/pencilskirt/pencilskirt_quadcol.json @@ -0,0 +1,33 @@ +{ + "pencilskirt_suit": [ + { + "type": "icon_state", + "icon_state": "pencilskirt_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "pencilskirt_belt", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "pencilskirt_suit_base", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "pencilskirt_suit_under", + "blend_mode": "overlay", + "color_ids": [ 3 ] + }, + { + "type": "icon_state", + "icon_state": "pencilskirt_suit_tie", + "blend_mode": "overlay", + "color_ids": [ 4 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/suits/pencilskirt/pencilskirt_tricol.json b/monkestation/code/modules/blueshift/gags/json_configs/suits/pencilskirt/pencilskirt_tricol.json new file mode 100644 index 000000000000..b555d4535894 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/suits/pencilskirt/pencilskirt_tricol.json @@ -0,0 +1,27 @@ +{ + "pencilskirt_checkers_shirt": [ + { + "type": "icon_state", + "icon_state": "pencilskirt_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "pencilskirt_checkers", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "pencilskirt_belt", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "pencilskirt_shirt", + "blend_mode": "overlay", + "color_ids": [ 3 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/suits/r_parade_jacket/r_parade_jacket.json b/monkestation/code/modules/blueshift/gags/json_configs/suits/r_parade_jacket/r_parade_jacket.json new file mode 100644 index 000000000000..197995b0b4c8 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/suits/r_parade_jacket/r_parade_jacket.json @@ -0,0 +1,30 @@ +{ + "r_parade_jacket": [ + { + "type": "icon_state", + "icon_state": "r_parade_jacket_obj_flair", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "r_parade_jacket_obj_base", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ], + "r_parade_jacket_t": [ + { + "type": "icon_state", + "icon_state": "r_parade_jacket_obj_flair_t", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "r_parade_jacket_obj_base_t", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/suits/r_parade_jacket/r_parade_jacket_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/suits/r_parade_jacket/r_parade_jacket_worn.json new file mode 100644 index 000000000000..95823c9a1ff4 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/suits/r_parade_jacket/r_parade_jacket_worn.json @@ -0,0 +1,30 @@ +{ + "r_parade_jacket": [ + { + "type": "icon_state", + "icon_state": "r_parade_jacket_flair", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "r_parade_jacket_base", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ], + "r_parade_jacket_t": [ + { + "type": "icon_state", + "icon_state": "r_parade_jacket_flair_t", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "r_parade_jacket_base_t", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/suits/tailored_jacket/tailored_jacket.json b/monkestation/code/modules/blueshift/gags/json_configs/suits/tailored_jacket/tailored_jacket.json new file mode 100644 index 000000000000..7c39c9c0c870 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/suits/tailored_jacket/tailored_jacket.json @@ -0,0 +1,114 @@ +{ + "tailored_jacket": [ + { + "type": "icon_state", + "icon_state": "longcoat_base_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_longsleeves", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_collar", + "blend_mode": "overlay", + "color_ids": [ 3 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_neckfluff_obj", + "blend_mode": "overlay", + "color_ids": [ 4 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_hem_obj", + "blend_mode": "overlay", + "color_ids": [ 5 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_sidelines", + "blend_mode": "overlay", + "color_ids": [ 6 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_shoulders", + "blend_mode": "overlay", + "color_ids": [ 7 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_trim", + "blend_mode": "overlay", + "color_ids": [ 8 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_armstripes_long", + "blend_mode": "overlay", + "color_ids": [ 9 ] + } + ], + "tailored_jacket_t": [ + { + "type": "icon_state", + "icon_state": "longcoat_base_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_shortsleeves", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_collar", + "blend_mode": "overlay", + "color_ids": [ 3 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_neckfluff_obj", + "blend_mode": "overlay", + "color_ids": [ 4 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_hem_obj", + "blend_mode": "overlay", + "color_ids": [ 5 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_sidelines", + "blend_mode": "overlay", + "color_ids": [ 6 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_shoulders", + "blend_mode": "overlay", + "color_ids": [ 7 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_trim", + "blend_mode": "overlay", + "color_ids": [ 8 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_armstripes_short", + "blend_mode": "overlay", + "color_ids": [ 9 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/suits/tailored_jacket/tailored_jacket_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/suits/tailored_jacket/tailored_jacket_worn.json new file mode 100644 index 000000000000..d6a3e96e0030 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/suits/tailored_jacket/tailored_jacket_worn.json @@ -0,0 +1,114 @@ +{ + "tailored_jacket": [ + { + "type": "icon_state", + "icon_state": "longcoat_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_longsleeves", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_collar", + "blend_mode": "overlay", + "color_ids": [ 3 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_neckfluff", + "blend_mode": "overlay", + "color_ids": [ 4 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_hem", + "blend_mode": "overlay", + "color_ids": [ 5 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_sidelines", + "blend_mode": "overlay", + "color_ids": [ 6 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_shoulders", + "blend_mode": "overlay", + "color_ids": [ 7 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_trim", + "blend_mode": "overlay", + "color_ids": [ 8 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_armstripes_long", + "blend_mode": "overlay", + "color_ids": [ 9 ] + } + ], + "tailored_jacket_t": [ + { + "type": "icon_state", + "icon_state": "longcoat_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_shortsleeves", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_collar", + "blend_mode": "overlay", + "color_ids": [ 3 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_neckfluff", + "blend_mode": "overlay", + "color_ids": [ 4 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_hem", + "blend_mode": "overlay", + "color_ids": [ 5 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_sidelines", + "blend_mode": "overlay", + "color_ids": [ 6 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_shoulders", + "blend_mode": "overlay", + "color_ids": [ 7 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_trim", + "blend_mode": "overlay", + "color_ids": [ 8 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_armstripes_short", + "blend_mode": "overlay", + "color_ids": [ 9 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/suits/tailored_short_jacket/tailored_short_jacket.json b/monkestation/code/modules/blueshift/gags/json_configs/suits/tailored_short_jacket/tailored_short_jacket.json new file mode 100644 index 000000000000..5828e14317e8 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/suits/tailored_short_jacket/tailored_short_jacket.json @@ -0,0 +1,102 @@ +{ + "tailored_jacket": [ + { + "type": "icon_state", + "icon_state": "longcoat_base_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_longsleeves", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_collar", + "blend_mode": "overlay", + "color_ids": [ 3 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_neckfluff_obj", + "blend_mode": "overlay", + "color_ids": [ 4 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_sidelines", + "blend_mode": "overlay", + "color_ids": [ 5 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_shoulders", + "blend_mode": "overlay", + "color_ids": [ 6 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_trim", + "blend_mode": "overlay", + "color_ids": [ 7 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_armstripes_long", + "blend_mode": "overlay", + "color_ids": [ 8 ] + } + ], + "tailored_jacket_t": [ + { + "type": "icon_state", + "icon_state": "longcoat_base_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_shortsleeves", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_collar", + "blend_mode": "overlay", + "color_ids": [ 3 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_neckfluff_obj", + "blend_mode": "overlay", + "color_ids": [ 4 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_sidelines", + "blend_mode": "overlay", + "color_ids": [ 5 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_shoulders", + "blend_mode": "overlay", + "color_ids": [ 6 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_trim", + "blend_mode": "overlay", + "color_ids": [ 7 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_armstripes_short", + "blend_mode": "overlay", + "color_ids": [ 8 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/suits/tailored_short_jacket/tailored_short_jacket_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/suits/tailored_short_jacket/tailored_short_jacket_worn.json new file mode 100644 index 000000000000..d80a02109c30 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/suits/tailored_short_jacket/tailored_short_jacket_worn.json @@ -0,0 +1,102 @@ +{ + "tailored_jacket": [ + { + "type": "icon_state", + "icon_state": "longcoat_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_longsleeves", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_collar", + "blend_mode": "overlay", + "color_ids": [ 3 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_neckfluff", + "blend_mode": "overlay", + "color_ids": [ 4 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_sidelines", + "blend_mode": "overlay", + "color_ids": [ 5 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_shoulders", + "blend_mode": "overlay", + "color_ids": [ 6 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_trim", + "blend_mode": "overlay", + "color_ids": [ 7 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_armstripes_long", + "blend_mode": "overlay", + "color_ids": [ 8 ] + } + ], + "tailored_jacket_t": [ + { + "type": "icon_state", + "icon_state": "longcoat_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_shortsleeves", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_collar", + "blend_mode": "overlay", + "color_ids": [ 3 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_neckfluff", + "blend_mode": "overlay", + "color_ids": [ 4 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_sidelines", + "blend_mode": "overlay", + "color_ids": [ 5 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_shoulders", + "blend_mode": "overlay", + "color_ids": [ 6 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_trim", + "blend_mode": "overlay", + "color_ids": [ 7 ] + }, + { + "type": "icon_state", + "icon_state": "longcoat_armstripes_short", + "blend_mode": "overlay", + "color_ids": [ 8 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/suits/varsity/varsity.json b/monkestation/code/modules/blueshift/gags/json_configs/suits/varsity/varsity.json new file mode 100644 index 000000000000..e1ee1db63238 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/suits/varsity/varsity.json @@ -0,0 +1,22 @@ +{ + "varsity_jacket": [ + { + "type": "icon_state", + "icon_state": "jacket_base_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "jacket_sleeves_obj", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "jacket_fabric_obj", + "blend_mode": "overlay", + "color_ids": [ 3 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/suits/varsity/varsity_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/suits/varsity/varsity_worn.json new file mode 100644 index 000000000000..4e26b7cf2620 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/suits/varsity/varsity_worn.json @@ -0,0 +1,22 @@ +{ + "varsity_jacket": [ + { + "type": "icon_state", + "icon_state": "jacket_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "jacket_sleeves", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "jacket_fabric", + "blend_mode": "overlay", + "color_ids": [ 3 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/sweater/heart_sweater.json b/monkestation/code/modules/blueshift/gags/json_configs/sweater/heart_sweater.json new file mode 100644 index 000000000000..52bc271978a6 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/sweater/heart_sweater.json @@ -0,0 +1,16 @@ +{ + "heart_sweater": [ + { + "type": "icon_state", + "icon_state": "warm_sweater", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "warm_sweater_heart", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/sweater/sweater.json b/monkestation/code/modules/blueshift/gags/json_configs/sweater/sweater.json new file mode 100644 index 000000000000..8d1ec18a0986 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/sweater/sweater.json @@ -0,0 +1,18 @@ +{ + "cableknit_sweater": [ + { + "type": "icon_state", + "icon_state": "cableknit_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ], + "keyhole_sweater": [ + { + "type": "icon_state", + "icon_state": "keyhole_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/sweater/sweater_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/sweater/sweater_worn.json new file mode 100644 index 000000000000..80e9e6fd2ecc --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/sweater/sweater_worn.json @@ -0,0 +1,34 @@ +{ + "cableknit_sweater": [ + { + "type": "icon_state", + "icon_state": "cableknit_mob", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ], + "cableknit_sweater_d": [ + { + "type": "icon_state", + "icon_state": "cableknit_mob_d", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ], + "keyhole_sweater": [ + { + "type": "icon_state", + "icon_state": "keyhole_mob", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ], + "keyhole_sweater_d": [ + { + "type": "icon_state", + "icon_state": "keyhole_mob_d", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/sweater/warm_sweater.json b/monkestation/code/modules/blueshift/gags/json_configs/sweater/warm_sweater.json new file mode 100644 index 000000000000..07a2119fc022 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/sweater/warm_sweater.json @@ -0,0 +1,10 @@ +{ + "warm_sweater": [ + { + "type": "icon_state", + "icon_state": "warm_sweater", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/teshari_fallbacks/armor.json b/monkestation/code/modules/blueshift/gags/json_configs/teshari_fallbacks/armor.json new file mode 100644 index 000000000000..1c3a4fa510a6 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/teshari_fallbacks/armor.json @@ -0,0 +1,10 @@ +{ + "": [ + { + "type": "icon_state", + "icon_state": "armor", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/teshari_fallbacks/backpack.json b/monkestation/code/modules/blueshift/gags/json_configs/teshari_fallbacks/backpack.json new file mode 100644 index 000000000000..5297e1991de3 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/teshari_fallbacks/backpack.json @@ -0,0 +1,10 @@ +{ + "": [ + { + "type": "icon_state", + "icon_state": "backpack", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/teshari_fallbacks/cloak.json b/monkestation/code/modules/blueshift/gags/json_configs/teshari_fallbacks/cloak.json new file mode 100644 index 000000000000..eca4ce58b99d --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/teshari_fallbacks/cloak.json @@ -0,0 +1,16 @@ +{ + "": [ + { + "type": "icon_state", + "icon_state": "cloak0", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "cloak1", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/teshari_fallbacks/coat.json b/monkestation/code/modules/blueshift/gags/json_configs/teshari_fallbacks/coat.json new file mode 100644 index 000000000000..3894f89c1533 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/teshari_fallbacks/coat.json @@ -0,0 +1,10 @@ +{ + "": [ + { + "type": "icon_state", + "icon_state": "coat", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/teshari_fallbacks/glasses.json b/monkestation/code/modules/blueshift/gags/json_configs/teshari_fallbacks/glasses.json new file mode 100644 index 000000000000..42ffcabca5ca --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/teshari_fallbacks/glasses.json @@ -0,0 +1,16 @@ +{ + "": [ + { + "type": "icon_state", + "icon_state": "glasses0", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "glasses1", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/teshari_fallbacks/gloves.json b/monkestation/code/modules/blueshift/gags/json_configs/teshari_fallbacks/gloves.json new file mode 100644 index 000000000000..b122076b2c83 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/teshari_fallbacks/gloves.json @@ -0,0 +1,10 @@ +{ + "": [ + { + "type": "icon_state", + "icon_state": "gloves", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/teshari_fallbacks/hardsuit.json b/monkestation/code/modules/blueshift/gags/json_configs/teshari_fallbacks/hardsuit.json new file mode 100644 index 000000000000..5d436cef4c91 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/teshari_fallbacks/hardsuit.json @@ -0,0 +1,22 @@ +{ + "": [ + { + "type": "icon_state", + "icon_state": "hardsuit0", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "hardsuit1", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "hardsuit2", + "blend_mode": "overlay", + "color_ids": [ 3 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/teshari_fallbacks/modcontrol.json b/monkestation/code/modules/blueshift/gags/json_configs/teshari_fallbacks/modcontrol.json new file mode 100644 index 000000000000..34d155eb00e0 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/teshari_fallbacks/modcontrol.json @@ -0,0 +1,10 @@ +{ + "": [ + { + "type": "icon_state", + "icon_state": "mod-control", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/teshari_fallbacks/scarf.json b/monkestation/code/modules/blueshift/gags/json_configs/teshari_fallbacks/scarf.json new file mode 100644 index 000000000000..d8ab8ed78899 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/teshari_fallbacks/scarf.json @@ -0,0 +1,10 @@ +{ + "": [ + { + "type": "icon_state", + "icon_state": "scarf", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/teshari_fallbacks/shoes.json b/monkestation/code/modules/blueshift/gags/json_configs/teshari_fallbacks/shoes.json new file mode 100644 index 000000000000..ea9dec28fc94 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/teshari_fallbacks/shoes.json @@ -0,0 +1,10 @@ +{ + "": [ + { + "type": "icon_state", + "icon_state": "shoes", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/teshari_fallbacks/spacesuit.json b/monkestation/code/modules/blueshift/gags/json_configs/teshari_fallbacks/spacesuit.json new file mode 100644 index 000000000000..d69504a46528 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/teshari_fallbacks/spacesuit.json @@ -0,0 +1,10 @@ +{ + "": [ + { + "type": "icon_state", + "icon_state": "spacesuit", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/teshari_fallbacks/tie.json b/monkestation/code/modules/blueshift/gags/json_configs/teshari_fallbacks/tie.json new file mode 100644 index 000000000000..7ca3e6ba8423 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/teshari_fallbacks/tie.json @@ -0,0 +1,10 @@ +{ + "": [ + { + "type": "icon_state", + "icon_state": "tie", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/teshari_fallbacks/under.json b/monkestation/code/modules/blueshift/gags/json_configs/teshari_fallbacks/under.json new file mode 100644 index 000000000000..b0fb85d4e9fb --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/teshari_fallbacks/under.json @@ -0,0 +1,22 @@ +{ + "": [ + { + "type": "icon_state", + "icon_state": "under0", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "under1", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "under2", + "blend_mode": "overlay", + "color_ids": [ 3 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/teshari_fallbacks/under_skirt.json b/monkestation/code/modules/blueshift/gags/json_configs/teshari_fallbacks/under_skirt.json new file mode 100644 index 000000000000..e840e2f014b1 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/teshari_fallbacks/under_skirt.json @@ -0,0 +1,22 @@ +{ + "": [ + { + "type": "icon_state", + "icon_state": "under_skirt0", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "under_skirt1", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "under_skirt2", + "blend_mode": "overlay", + "color_ids": [ 3 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/urban_coat/urban_coat.json b/monkestation/code/modules/blueshift/gags/json_configs/urban_coat/urban_coat.json new file mode 100644 index 000000000000..72cd4957ad1d --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/urban_coat/urban_coat.json @@ -0,0 +1,22 @@ +{ + "urban_coat": [ + { + "type": "icon_state", + "icon_state": "coat_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "trim_obj", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "neck_obj", + "blend_mode": "overlay", + "color_ids": [ 3 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/urban_coat/urban_coat_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/urban_coat/urban_coat_worn.json new file mode 100644 index 000000000000..f5a95addd84e --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/urban_coat/urban_coat_worn.json @@ -0,0 +1,22 @@ +{ + "urban_coat": [ + { + "type": "icon_state", + "icon_state": "coat_mob", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "trim_mob", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "neck_mob", + "blend_mode": "overlay", + "color_ids": [ 3 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/wargame_holoprojector/projector.json b/monkestation/code/modules/blueshift/gags/json_configs/wargame_holoprojector/projector.json new file mode 100644 index 000000000000..a1f8caa3b15a --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/wargame_holoprojector/projector.json @@ -0,0 +1,15 @@ +{ + "": [ + { + "type": "icon_state", + "icon_state": "projector_screen", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "projector", + "blend_mode": "overlay" + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/winter_coat/warm_coat.json b/monkestation/code/modules/blueshift/gags/json_configs/winter_coat/warm_coat.json new file mode 100644 index 000000000000..039254707b4b --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/winter_coat/warm_coat.json @@ -0,0 +1,16 @@ +{ + "warm_coat": [ + { + "type": "icon_state", + "icon_state": "warm_coat", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "warm_coat_trim", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/winter_coat/winter_coat.json b/monkestation/code/modules/blueshift/gags/json_configs/winter_coat/winter_coat.json new file mode 100644 index 000000000000..d42d7d2353af --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/winter_coat/winter_coat.json @@ -0,0 +1,42 @@ +{ + "winter_coat": [ + { + "type": "icon_state", + "icon_state": "winter_coat_body", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "winter_coat_trim", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "winter_coat_detail", + "blend_mode": "overlay", + "color_ids": [ 3 ] + } + ], + "winter_coat_t": [ + { + "type": "icon_state", + "icon_state": "winter_coat_body_t", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "winter_coat_trim_t", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "winter_coat_detail", + "blend_mode": "overlay", + "color_ids": [ 3 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/winter_coat/winter_coat_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/winter_coat/winter_coat_worn.json new file mode 100644 index 000000000000..958020bc231d --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/winter_coat/winter_coat_worn.json @@ -0,0 +1,42 @@ +{ + "winter_coat": [ + { + "type": "icon_state", + "icon_state": "winter_coat_body", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "winter_coat_trim", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "winter_coat_detail", + "blend_mode": "overlay", + "color_ids": [ 3 ] + } + ], + "winter_coat_t": [ + { + "type": "icon_state", + "icon_state": "winter_coat_body_t", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "winter_coat_trim_t", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "winter_coat_detail_t", + "blend_mode": "overlay", + "color_ids": [ 3 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/winter_coat/winter_hood.json b/monkestation/code/modules/blueshift/gags/json_configs/winter_coat/winter_hood.json new file mode 100644 index 000000000000..99a92908a29e --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/winter_coat/winter_hood.json @@ -0,0 +1,16 @@ +{ + "hood_winter": [ + { + "type": "icon_state", + "icon_state": "winter_hood_body", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "winter_hood_trim", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/wraps/legwraps.json b/monkestation/code/modules/blueshift/gags/json_configs/wraps/legwraps.json new file mode 100644 index 000000000000..0e605054f908 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/wraps/legwraps.json @@ -0,0 +1,10 @@ +{ + "legwrap": [ + { + "type": "icon_state", + "icon_state": "legwrap_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/wraps/legwraps_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/wraps/legwraps_worn.json new file mode 100644 index 000000000000..8ddd9e1dc3b1 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/wraps/legwraps_worn.json @@ -0,0 +1,10 @@ +{ + "legwrap": [ + { + "type": "icon_state", + "icon_state": "legwrap_mob", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/wraps/legwraps_worn_digi.json b/monkestation/code/modules/blueshift/gags/json_configs/wraps/legwraps_worn_digi.json new file mode 100644 index 000000000000..833a458c8539 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/wraps/legwraps_worn_digi.json @@ -0,0 +1,10 @@ +{ + "legwrap": [ + { + "type": "icon_state", + "icon_state": "legwrap_mob_digi", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/wraps/wraps.json b/monkestation/code/modules/blueshift/gags/json_configs/wraps/wraps.json new file mode 100644 index 000000000000..c708d9526f73 --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/wraps/wraps.json @@ -0,0 +1,10 @@ +{ + "clothwrap": [ + { + "type": "icon_state", + "icon_state": "wrap_obj", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/gags/json_configs/wraps/wraps_worn.json b/monkestation/code/modules/blueshift/gags/json_configs/wraps/wraps_worn.json new file mode 100644 index 000000000000..34977271ab2c --- /dev/null +++ b/monkestation/code/modules/blueshift/gags/json_configs/wraps/wraps_worn.json @@ -0,0 +1,16 @@ +{ + "clothwrap": [ + { + "type": "icon_state", + "icon_state": "wrap_mob", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "wrap_mob_digi", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/monkestation/code/modules/blueshift/helpers/request_consoles.dm b/monkestation/code/modules/blueshift/helpers/request_consoles.dm new file mode 100644 index 000000000000..152404d29675 --- /dev/null +++ b/monkestation/code/modules/blueshift/helpers/request_consoles.dm @@ -0,0 +1,61 @@ +//requests console helpers +/obj/effect/mapping_helpers/requests_console + desc = "You shouldn't see this. Report it please." + late = TRUE + +/obj/effect/mapping_helpers/requests_console/Initialize(mapload) + . = ..() + if(!mapload) + log_mapping("[src] spawned outside of mapload!") + return INITIALIZE_HINT_QDEL + + return INITIALIZE_HINT_LATELOAD + +/obj/effect/mapping_helpers/requests_console/LateInitialize() + var/obj/machinery/airalarm/target = locate(/obj/machinery/requests_console) in loc + if(isnull(target)) + var/area/target_area = get_area(target) + log_mapping("[src] failed to find a requests console at [AREACOORD(src)] ([target_area.type]).") + else + payload(target) + + qdel(src) + +/// Fills out the request console's variables +/obj/effect/mapping_helpers/requests_console/proc/payload(obj/machinery/requests_console/console) + return + +/obj/effect/mapping_helpers/requests_console/announcement + name = "request console announcement helper" + icon_state = "requests_console_announcement_helper" + +/obj/effect/mapping_helpers/requests_console/announcement/payload(obj/machinery/requests_console/console) + console.can_send_announcements = TRUE + +/obj/effect/mapping_helpers/requests_console/assistance + name = "request console assistance requestable helper" + icon_state = "requests_console_assistance_helper" + +/obj/effect/mapping_helpers/requests_console/assistance/payload(obj/machinery/requests_console/console) + GLOB.req_console_assistance |= console.department + +/obj/effect/mapping_helpers/requests_console/supplies + name = "request console supplies requestable helper" + icon_state = "requests_console_supplies_helper" + +/obj/effect/mapping_helpers/requests_console/supplies/payload(obj/machinery/requests_console/console) + GLOB.req_console_supplies |= console.department + +/obj/effect/mapping_helpers/requests_console/information + name = "request console information relayable helper" + icon_state = "requests_console_information_helper" + +/obj/effect/mapping_helpers/requests_console/information/payload(obj/machinery/requests_console/console) + GLOB.req_console_information |= console.department + +/obj/effect/mapping_helpers/requests_console/ore_update + name = "request console ore update helper" + icon_state = "requests_console_ore_update_helper" + +/obj/effect/mapping_helpers/requests_console/ore_update/payload(obj/machinery/requests_console/console) + console.receive_ore_updates = TRUE diff --git a/monkestation/code/modules/blueshift/icons/alien.dmi b/monkestation/code/modules/blueshift/icons/alien.dmi new file mode 100644 index 000000000000..16dcaf425de3 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/alien.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/ammo.dmi b/monkestation/code/modules/blueshift/icons/ammo.dmi new file mode 100644 index 000000000000..77460d0fcac5 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/ammo.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/ammo_workbench.dmi b/monkestation/code/modules/blueshift/icons/ammo_workbench.dmi new file mode 100644 index 000000000000..05eacaa2df2a Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/ammo_workbench.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/areas/areas_station.dmi b/monkestation/code/modules/blueshift/icons/areas/areas_station.dmi new file mode 100644 index 000000000000..8bc5604a305b Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/areas/areas_station.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/armaments.dmi b/monkestation/code/modules/blueshift/icons/armaments.dmi new file mode 100644 index 000000000000..3e5173075f08 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/armaments.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/armor.dmi b/monkestation/code/modules/blueshift/icons/armor.dmi new file mode 100644 index 000000000000..fe291dd60416 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/armor.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/ash_ritual.dmi b/monkestation/code/modules/blueshift/icons/ash_ritual.dmi new file mode 100644 index 000000000000..cfbcae210678 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/ash_ritual.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/ashwalker_clothing.dmi b/monkestation/code/modules/blueshift/icons/ashwalker_clothing.dmi new file mode 100644 index 000000000000..24328af858be Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/ashwalker_clothing.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/ashwalker_clothing_left.dmi b/monkestation/code/modules/blueshift/icons/ashwalker_clothing_left.dmi new file mode 100644 index 000000000000..d57a437da263 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/ashwalker_clothing_left.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/ashwalker_clothing_mob.dmi b/monkestation/code/modules/blueshift/icons/ashwalker_clothing_mob.dmi new file mode 100644 index 000000000000..67a5b9c86c7f Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/ashwalker_clothing_mob.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/ashwalker_clothing_right.dmi b/monkestation/code/modules/blueshift/icons/ashwalker_clothing_right.dmi new file mode 100644 index 000000000000..5e7f4193f29e Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/ashwalker_clothing_right.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/ashwalker_tools.dmi b/monkestation/code/modules/blueshift/icons/ashwalker_tools.dmi new file mode 100644 index 000000000000..4d0dd9382cc7 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/ashwalker_tools.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/backpack.dmi b/monkestation/code/modules/blueshift/icons/backpack.dmi new file mode 100644 index 000000000000..28436c4766b6 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/backpack.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/big_xenos.dmi b/monkestation/code/modules/blueshift/icons/big_xenos.dmi new file mode 100644 index 000000000000..2f1c5bb00228 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/big_xenos.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/biogenerator.dmi b/monkestation/code/modules/blueshift/icons/biogenerator.dmi new file mode 100644 index 000000000000..5fd87ee0ace0 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/biogenerator.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/bonesaw.dmi b/monkestation/code/modules/blueshift/icons/bonesaw.dmi new file mode 100644 index 000000000000..f27ace0c2755 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/bonesaw.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/bonesaw_l.dmi b/monkestation/code/modules/blueshift/icons/bonesaw_l.dmi new file mode 100644 index 000000000000..2b3eeacea4f6 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/bonesaw_l.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/bonesaw_r.dmi b/monkestation/code/modules/blueshift/icons/bonesaw_r.dmi new file mode 100644 index 000000000000..dd0cec8e1c58 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/bonesaw_r.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/bowie.dmi b/monkestation/code/modules/blueshift/icons/bowie.dmi new file mode 100644 index 000000000000..8b7f96b5f4e6 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/bowie.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/bowie_lefthand.dmi b/monkestation/code/modules/blueshift/icons/bowie_lefthand.dmi new file mode 100644 index 000000000000..1e5ef81c9886 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/bowie_lefthand.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/bowie_righthand.dmi b/monkestation/code/modules/blueshift/icons/bowie_righthand.dmi new file mode 100644 index 000000000000..04d604408dbc Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/bowie_righthand.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/bowiepocket.dmi b/monkestation/code/modules/blueshift/icons/bowiepocket.dmi new file mode 100644 index 000000000000..57a8993133b6 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/bowiepocket.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/cargo.dmi b/monkestation/code/modules/blueshift/icons/cargo.dmi new file mode 100644 index 000000000000..37d3ec348e6c Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/cargo.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/cell.dmi b/monkestation/code/modules/blueshift/icons/cell.dmi new file mode 100644 index 000000000000..706f5b4b3b50 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/cell.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/cell_charger.dmi b/monkestation/code/modules/blueshift/icons/cell_charger.dmi new file mode 100644 index 000000000000..16ec75ba35cd Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/cell_charger.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/chair.dmi b/monkestation/code/modules/blueshift/icons/chair.dmi new file mode 100644 index 000000000000..8f768bda96ac Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/chair.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/chat.dmi b/monkestation/code/modules/blueshift/icons/chat.dmi new file mode 100644 index 000000000000..9cf9ff72bf50 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/chat.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/chemistry_machines.dmi b/monkestation/code/modules/blueshift/icons/chemistry_machines.dmi new file mode 100644 index 000000000000..96126d26101e Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/chemistry_machines.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/cloaks.dmi b/monkestation/code/modules/blueshift/icons/cloaks.dmi new file mode 100644 index 000000000000..088bd7f809db Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/cloaks.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/closet.dmi b/monkestation/code/modules/blueshift/icons/closet.dmi new file mode 100644 index 000000000000..66852c7d3d14 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/closet.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/clothes/clothing.dmi b/monkestation/code/modules/blueshift/icons/clothes/clothing.dmi new file mode 100644 index 000000000000..bb4d9cec962b Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/clothes/clothing.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/clothes/clothing_worn.dmi b/monkestation/code/modules/blueshift/icons/clothes/clothing_worn.dmi new file mode 100644 index 000000000000..fa2320944460 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/clothes/clothing_worn.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/clothes/clothing_worn_digi.dmi b/monkestation/code/modules/blueshift/icons/clothes/clothing_worn_digi.dmi new file mode 100644 index 000000000000..cb954472b24c Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/clothes/clothing_worn_digi.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/clothes/clothing_worn_teshari.dmi b/monkestation/code/modules/blueshift/icons/clothes/clothing_worn_teshari.dmi new file mode 100644 index 000000000000..da167942a77f Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/clothes/clothing_worn_teshari.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/colonies/biogenerator.dmi b/monkestation/code/modules/blueshift/icons/colonies/biogenerator.dmi new file mode 100644 index 000000000000..98ead8bd6bcf Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/colonies/biogenerator.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/colonies/clothing.dmi b/monkestation/code/modules/blueshift/icons/colonies/clothing.dmi new file mode 100644 index 000000000000..87b63178b5d3 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/colonies/clothing.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/colonies/clothing_digi.dmi b/monkestation/code/modules/blueshift/icons/colonies/clothing_digi.dmi new file mode 100644 index 000000000000..baec8fc7b5dd Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/colonies/clothing_digi.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/colonies/clothing_worn.dmi b/monkestation/code/modules/blueshift/icons/colonies/clothing_worn.dmi new file mode 100644 index 000000000000..35b4f4b497c4 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/colonies/clothing_worn.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/colonies/medicine.dmi b/monkestation/code/modules/blueshift/icons/colonies/medicine.dmi new file mode 100644 index 000000000000..38cbffbcf130 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/colonies/medicine.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/colonies/pouch.dmi b/monkestation/code/modules/blueshift/icons/colonies/pouch.dmi new file mode 100644 index 000000000000..9756206d0dff Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/colonies/pouch.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/colonies/rationpack.dmi b/monkestation/code/modules/blueshift/icons/colonies/rationpack.dmi new file mode 100644 index 000000000000..c0422ef3ca07 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/colonies/rationpack.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/computer.dmi b/monkestation/code/modules/blueshift/icons/computer.dmi new file mode 100644 index 000000000000..189ac9d9501c Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/computer.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/cooking_structures.dmi b/monkestation/code/modules/blueshift/icons/cooking_structures.dmi new file mode 100644 index 000000000000..296899c42af5 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/cooking_structures.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/cookware.dmi b/monkestation/code/modules/blueshift/icons/cookware.dmi new file mode 100644 index 000000000000..0ed9501bfb55 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/cookware.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/cowboyobh.dmi b/monkestation/code/modules/blueshift/icons/cowboyobh.dmi new file mode 100644 index 000000000000..cfaf215b1d2f Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/cowboyobh.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/deforest/inhands/cases_lefthand.dmi b/monkestation/code/modules/blueshift/icons/deforest/inhands/cases_lefthand.dmi new file mode 100644 index 000000000000..c53eab3ba9d7 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/deforest/inhands/cases_lefthand.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/deforest/inhands/cases_righthand.dmi b/monkestation/code/modules/blueshift/icons/deforest/inhands/cases_righthand.dmi new file mode 100644 index 000000000000..c5a2099e96b2 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/deforest/inhands/cases_righthand.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/deforest/injectors.dmi b/monkestation/code/modules/blueshift/icons/deforest/injectors.dmi new file mode 100644 index 000000000000..8ee669c0bc6b Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/deforest/injectors.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/deforest/medstation.dmi b/monkestation/code/modules/blueshift/icons/deforest/medstation.dmi new file mode 100644 index 000000000000..2de94bc420a8 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/deforest/medstation.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/deforest/stack_items.dmi b/monkestation/code/modules/blueshift/icons/deforest/stack_items.dmi new file mode 100644 index 000000000000..c9e82f1375f7 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/deforest/stack_items.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/deforest/storage.dmi b/monkestation/code/modules/blueshift/icons/deforest/storage.dmi new file mode 100644 index 000000000000..db9af62183a5 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/deforest/storage.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/deforest/telegraph_96x96.dmi b/monkestation/code/modules/blueshift/icons/deforest/telegraph_96x96.dmi new file mode 100644 index 000000000000..8596bce378d8 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/deforest/telegraph_96x96.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/deforest/vendor.dmi b/monkestation/code/modules/blueshift/icons/deforest/vendor.dmi new file mode 100644 index 000000000000..906191c451b3 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/deforest/vendor.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/deforest/worn/worn.dmi b/monkestation/code/modules/blueshift/icons/deforest/worn/worn.dmi new file mode 100644 index 000000000000..3705fdb63f4f Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/deforest/worn/worn.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/deforest/worn/worn_teshari.dmi b/monkestation/code/modules/blueshift/icons/deforest/worn/worn_teshari.dmi new file mode 100644 index 000000000000..9dc17287bda1 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/deforest/worn/worn_teshari.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/donator/donator_chat_icon.dmi b/monkestation/code/modules/blueshift/icons/donator/donator_chat_icon.dmi new file mode 100644 index 000000000000..0f85f592991e Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/donator/donator_chat_icon.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/donator/mob/clothing/belt.dmi b/monkestation/code/modules/blueshift/icons/donator/mob/clothing/belt.dmi new file mode 100644 index 000000000000..f81ae5a0d227 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/donator/mob/clothing/belt.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/donator/mob/clothing/custom_w.dmi b/monkestation/code/modules/blueshift/icons/donator/mob/clothing/custom_w.dmi new file mode 100644 index 000000000000..1e99b505709e Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/donator/mob/clothing/custom_w.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/donator/mob/clothing/eyes.dmi b/monkestation/code/modules/blueshift/icons/donator/mob/clothing/eyes.dmi new file mode 100644 index 000000000000..62369f40a4ef Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/donator/mob/clothing/eyes.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/donator/mob/clothing/feet.dmi b/monkestation/code/modules/blueshift/icons/donator/mob/clothing/feet.dmi new file mode 100644 index 000000000000..25b943101c0f Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/donator/mob/clothing/feet.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/donator/mob/clothing/hands.dmi b/monkestation/code/modules/blueshift/icons/donator/mob/clothing/hands.dmi new file mode 100644 index 000000000000..93cadcbdbdba Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/donator/mob/clothing/hands.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/donator/mob/clothing/head.dmi b/monkestation/code/modules/blueshift/icons/donator/mob/clothing/head.dmi new file mode 100644 index 000000000000..b0b2b2695efc Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/donator/mob/clothing/head.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/donator/mob/clothing/head_muzzled.dmi b/monkestation/code/modules/blueshift/icons/donator/mob/clothing/head_muzzled.dmi new file mode 100644 index 000000000000..8e88bd397456 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/donator/mob/clothing/head_muzzled.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/donator/mob/clothing/head_teshari.dmi b/monkestation/code/modules/blueshift/icons/donator/mob/clothing/head_teshari.dmi new file mode 100644 index 000000000000..da5a736aabe5 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/donator/mob/clothing/head_teshari.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/donator/mob/clothing/large-worn-icons/32x64/head.dmi b/monkestation/code/modules/blueshift/icons/donator/mob/clothing/large-worn-icons/32x64/head.dmi new file mode 100644 index 000000000000..b09b411bde94 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/donator/mob/clothing/large-worn-icons/32x64/head.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/donator/mob/clothing/mask.dmi b/monkestation/code/modules/blueshift/icons/donator/mob/clothing/mask.dmi new file mode 100644 index 000000000000..bb12caacd5e5 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/donator/mob/clothing/mask.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/donator/mob/clothing/mask_vox.dmi b/monkestation/code/modules/blueshift/icons/donator/mob/clothing/mask_vox.dmi new file mode 100644 index 000000000000..f466bf415f2c Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/donator/mob/clothing/mask_vox.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/donator/mob/clothing/modsuit.dmi b/monkestation/code/modules/blueshift/icons/donator/mob/clothing/modsuit.dmi new file mode 100644 index 000000000000..00770e4ed90d Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/donator/mob/clothing/modsuit.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/donator/mob/clothing/neck.dmi b/monkestation/code/modules/blueshift/icons/donator/mob/clothing/neck.dmi new file mode 100644 index 000000000000..3654bf37c0bc Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/donator/mob/clothing/neck.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/donator/mob/clothing/suit.dmi b/monkestation/code/modules/blueshift/icons/donator/mob/clothing/suit.dmi new file mode 100644 index 000000000000..769d417f7ffa Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/donator/mob/clothing/suit.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/donator/mob/clothing/suit_digi.dmi b/monkestation/code/modules/blueshift/icons/donator/mob/clothing/suit_digi.dmi new file mode 100644 index 000000000000..3d5df05de180 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/donator/mob/clothing/suit_digi.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/donator/mob/clothing/uniform.dmi b/monkestation/code/modules/blueshift/icons/donator/mob/clothing/uniform.dmi new file mode 100644 index 000000000000..044118acba97 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/donator/mob/clothing/uniform.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/donator/mob/clothing/uniform_digi.dmi b/monkestation/code/modules/blueshift/icons/donator/mob/clothing/uniform_digi.dmi new file mode 100644 index 000000000000..7d967cc71af3 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/donator/mob/clothing/uniform_digi.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/donator/mob/inhands/donator_left.dmi b/monkestation/code/modules/blueshift/icons/donator/mob/inhands/donator_left.dmi new file mode 100644 index 000000000000..71137b493e4c Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/donator/mob/inhands/donator_left.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/donator/mob/inhands/donator_right.dmi b/monkestation/code/modules/blueshift/icons/donator/mob/inhands/donator_right.dmi new file mode 100644 index 000000000000..79db14e39041 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/donator/mob/inhands/donator_right.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/donator/obj/clothing/belts.dmi b/monkestation/code/modules/blueshift/icons/donator/obj/clothing/belts.dmi new file mode 100644 index 000000000000..d9f44b49b7e8 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/donator/obj/clothing/belts.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/donator/obj/clothing/cloaks.dmi b/monkestation/code/modules/blueshift/icons/donator/obj/clothing/cloaks.dmi new file mode 100644 index 000000000000..99a43df72476 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/donator/obj/clothing/cloaks.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/donator/obj/clothing/glasses.dmi b/monkestation/code/modules/blueshift/icons/donator/obj/clothing/glasses.dmi new file mode 100644 index 000000000000..6a24d103c9c5 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/donator/obj/clothing/glasses.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/donator/obj/clothing/gloves.dmi b/monkestation/code/modules/blueshift/icons/donator/obj/clothing/gloves.dmi new file mode 100644 index 000000000000..62bfc6d54333 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/donator/obj/clothing/gloves.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/donator/obj/clothing/hats.dmi b/monkestation/code/modules/blueshift/icons/donator/obj/clothing/hats.dmi new file mode 100644 index 000000000000..d4725530e286 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/donator/obj/clothing/hats.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/donator/obj/clothing/masks.dmi b/monkestation/code/modules/blueshift/icons/donator/obj/clothing/masks.dmi new file mode 100644 index 000000000000..8fcd9be927b0 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/donator/obj/clothing/masks.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/donator/obj/clothing/modsuit.dmi b/monkestation/code/modules/blueshift/icons/donator/obj/clothing/modsuit.dmi new file mode 100644 index 000000000000..9b69c330c54b Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/donator/obj/clothing/modsuit.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/donator/obj/clothing/necklaces.dmi b/monkestation/code/modules/blueshift/icons/donator/obj/clothing/necklaces.dmi new file mode 100644 index 000000000000..be8479301390 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/donator/obj/clothing/necklaces.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/donator/obj/clothing/shoes.dmi b/monkestation/code/modules/blueshift/icons/donator/obj/clothing/shoes.dmi new file mode 100644 index 000000000000..9da8dd3caa30 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/donator/obj/clothing/shoes.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/donator/obj/clothing/suits.dmi b/monkestation/code/modules/blueshift/icons/donator/obj/clothing/suits.dmi new file mode 100644 index 000000000000..7851aa5d3d83 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/donator/obj/clothing/suits.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/donator/obj/clothing/uniform.dmi b/monkestation/code/modules/blueshift/icons/donator/obj/clothing/uniform.dmi new file mode 100644 index 000000000000..2e0eb6fd0d1f Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/donator/obj/clothing/uniform.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/donator/obj/custom.dmi b/monkestation/code/modules/blueshift/icons/donator/obj/custom.dmi new file mode 100644 index 000000000000..b086288197be Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/donator/obj/custom.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/donator/obj/kits.dmi b/monkestation/code/modules/blueshift/icons/donator/obj/kits.dmi new file mode 100644 index 000000000000..daa626d63dc4 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/donator/obj/kits.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/doors/airlock.dmi b/monkestation/code/modules/blueshift/icons/doors/airlock.dmi new file mode 100644 index 000000000000..a5afd63d419d Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/doors/airlock.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/doors/airlock_manual.dmi b/monkestation/code/modules/blueshift/icons/doors/airlock_manual.dmi new file mode 100644 index 000000000000..3ced7b3a1635 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/doors/airlock_manual.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/doors/overlays.dmi b/monkestation/code/modules/blueshift/icons/doors/overlays.dmi new file mode 100644 index 000000000000..4a039a486a66 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/doors/overlays.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/doors/packed.dmi b/monkestation/code/modules/blueshift/icons/doors/packed.dmi new file mode 100644 index 000000000000..118709bb772b Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/doors/packed.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/doors/shutter.dmi b/monkestation/code/modules/blueshift/icons/doors/shutter.dmi new file mode 100644 index 000000000000..f3ab4f661bdb Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/doors/shutter.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/dryer.dmi b/monkestation/code/modules/blueshift/icons/dryer.dmi new file mode 100644 index 000000000000..ab02432a8b04 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/dryer.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/effects.dmi b/monkestation/code/modules/blueshift/icons/effects.dmi new file mode 100644 index 000000000000..5326b20b6366 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/effects.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/erokez.dmi b/monkestation/code/modules/blueshift/icons/erokez.dmi new file mode 100644 index 000000000000..cf506bb3be24 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/erokez.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/evac_shuttle.dmi b/monkestation/code/modules/blueshift/icons/evac_shuttle.dmi new file mode 100644 index 000000000000..a428055aa637 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/evac_shuttle.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/exp_crate.dmi b/monkestation/code/modules/blueshift/icons/exp_crate.dmi new file mode 100644 index 000000000000..214ec536653b Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/exp_crate.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/exploration_floor.dmi b/monkestation/code/modules/blueshift/icons/exploration_floor.dmi new file mode 100644 index 000000000000..8a487ad124a7 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/exploration_floor.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/feet.dmi b/monkestation/code/modules/blueshift/icons/feet.dmi new file mode 100644 index 000000000000..d743be0a0fc1 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/feet.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/feet_digi.dmi b/monkestation/code/modules/blueshift/icons/feet_digi.dmi new file mode 100644 index 000000000000..39f6aae9cfff Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/feet_digi.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/flipped_tables.dmi b/monkestation/code/modules/blueshift/icons/flipped_tables.dmi new file mode 100644 index 000000000000..d2047ae3d395 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/flipped_tables.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/floors.dmi b/monkestation/code/modules/blueshift/icons/floors.dmi new file mode 100644 index 000000000000..b7ac018b8b38 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/floors.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/food_containers.dmi b/monkestation/code/modules/blueshift/icons/food_containers.dmi new file mode 100644 index 000000000000..70bc6082b7ad Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/food_containers.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/foodricator.dmi b/monkestation/code/modules/blueshift/icons/foodricator.dmi new file mode 100644 index 000000000000..d54728eb58aa Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/foodricator.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/forge_items.dmi b/monkestation/code/modules/blueshift/icons/forge_items.dmi new file mode 100644 index 000000000000..b6730266b220 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/forge_items.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/forge_structures.dmi b/monkestation/code/modules/blueshift/icons/forge_structures.dmi new file mode 100644 index 000000000000..f0380cf8bbe2 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/forge_structures.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/g250.dmi b/monkestation/code/modules/blueshift/icons/g250.dmi new file mode 100644 index 000000000000..283184ebc504 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/g250.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/gloves.dmi b/monkestation/code/modules/blueshift/icons/gloves.dmi new file mode 100644 index 000000000000..38e4afe1b6c8 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/gloves.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/goofsec/belt_worn.dmi b/monkestation/code/modules/blueshift/icons/goofsec/belt_worn.dmi new file mode 100644 index 000000000000..0abb67fc902c Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/goofsec/belt_worn.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/goofsec/belts.dmi b/monkestation/code/modules/blueshift/icons/goofsec/belts.dmi new file mode 100644 index 000000000000..67074b57b7b8 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/goofsec/belts.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/goofsec/departmental_batons.dmi b/monkestation/code/modules/blueshift/icons/goofsec/departmental_batons.dmi new file mode 100644 index 000000000000..35e05f9bf922 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/goofsec/departmental_batons.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/goofsec/gun_sprites.dmi b/monkestation/code/modules/blueshift/icons/goofsec/gun_sprites.dmi new file mode 100644 index 000000000000..0a7420c18840 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/goofsec/gun_sprites.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/goofsec/reporter.dmi b/monkestation/code/modules/blueshift/icons/goofsec/reporter.dmi new file mode 100644 index 000000000000..dd53d9ff881b Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/goofsec/reporter.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/goofsec/uniforms.dmi b/monkestation/code/modules/blueshift/icons/goofsec/uniforms.dmi new file mode 100644 index 000000000000..82b6c313b733 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/goofsec/uniforms.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/goofsec/uniforms_worn.dmi b/monkestation/code/modules/blueshift/icons/goofsec/uniforms_worn.dmi new file mode 100644 index 000000000000..5e3700a1505c Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/goofsec/uniforms_worn.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/goofsec/uniforms_worn_digi.dmi b/monkestation/code/modules/blueshift/icons/goofsec/uniforms_worn_digi.dmi new file mode 100644 index 000000000000..934a079713ae Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/goofsec/uniforms_worn_digi.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/gps_beacon.dmi b/monkestation/code/modules/blueshift/icons/gps_beacon.dmi new file mode 100644 index 000000000000..62c9cc11fa4f Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/gps_beacon.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/growing.dmi b/monkestation/code/modules/blueshift/icons/growing.dmi new file mode 100644 index 000000000000..4bab24c4fc37 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/growing.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/hairbrush.dmi b/monkestation/code/modules/blueshift/icons/hairbrush.dmi new file mode 100644 index 000000000000..04ac93a3a11b Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/hairbrush.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/hands.dmi b/monkestation/code/modules/blueshift/icons/hands.dmi new file mode 100644 index 000000000000..57aa21bcf39e Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/hands.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/harvest.dmi b/monkestation/code/modules/blueshift/icons/harvest.dmi new file mode 100644 index 000000000000..1bdf1e3ea825 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/harvest.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/hats.dmi b/monkestation/code/modules/blueshift/icons/hats.dmi new file mode 100644 index 000000000000..48b4f872d714 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/hats.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/head.dmi b/monkestation/code/modules/blueshift/icons/head.dmi new file mode 100644 index 000000000000..0ba6a4fd6e20 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/head.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/hud_goggles.dmi b/monkestation/code/modules/blueshift/icons/hud_goggles.dmi new file mode 100644 index 000000000000..c4121b3b3b7d Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/hud_goggles.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/hud_goggles_worn.dmi b/monkestation/code/modules/blueshift/icons/hud_goggles_worn.dmi new file mode 100644 index 000000000000..8e1e815ce056 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/hud_goggles_worn.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/import_crate.dmi b/monkestation/code/modules/blueshift/icons/import_crate.dmi new file mode 100644 index 000000000000..e79cc05ec7ec Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/import_crate.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/inhand_left.dmi b/monkestation/code/modules/blueshift/icons/inhand_left.dmi new file mode 100644 index 000000000000..f229f605918d Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/inhand_left.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/inhand_right.dmi b/monkestation/code/modules/blueshift/icons/inhand_right.dmi new file mode 100644 index 000000000000..d021f4ea64da Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/inhand_right.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/items.dmi b/monkestation/code/modules/blueshift/icons/items.dmi new file mode 100644 index 000000000000..908f28fdc6f6 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/items.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/jungleflora.dmi b/monkestation/code/modules/blueshift/icons/jungleflora.dmi new file mode 100644 index 000000000000..b114244b83c4 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/jungleflora.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/kitchen_stuff/griddle.dmi b/monkestation/code/modules/blueshift/icons/kitchen_stuff/griddle.dmi new file mode 100644 index 000000000000..46cde00af674 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/kitchen_stuff/griddle.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/kitchen_stuff/microwave.dmi b/monkestation/code/modules/blueshift/icons/kitchen_stuff/microwave.dmi new file mode 100644 index 000000000000..00979f05eb49 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/kitchen_stuff/microwave.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/kitchen_stuff/range.dmi b/monkestation/code/modules/blueshift/icons/kitchen_stuff/range.dmi new file mode 100644 index 000000000000..1e6ed4cfa73c Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/kitchen_stuff/range.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/language.dmi b/monkestation/code/modules/blueshift/icons/language.dmi new file mode 100644 index 000000000000..5ece55bc6f3a Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/language.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/lighting.dmi b/monkestation/code/modules/blueshift/icons/lighting.dmi new file mode 100644 index 000000000000..b30231de6b7f Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/lighting.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/machinery/automatic_respawner.dmi b/monkestation/code/modules/blueshift/icons/machinery/automatic_respawner.dmi new file mode 100644 index 000000000000..ccb514dc1a4a Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/machinery/automatic_respawner.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/machinery/gps_computer.dmi b/monkestation/code/modules/blueshift/icons/machinery/gps_computer.dmi new file mode 100644 index 000000000000..840f6b2fdf29 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/machinery/gps_computer.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/machines.dmi b/monkestation/code/modules/blueshift/icons/machines.dmi new file mode 100644 index 000000000000..389432e376e4 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/machines.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mask.dmi b/monkestation/code/modules/blueshift/icons/mask.dmi new file mode 100644 index 000000000000..3f2f26921262 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mask.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/millstone.dmi b/monkestation/code/modules/blueshift/icons/millstone.dmi new file mode 100644 index 000000000000..ba7d14985cb3 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/millstone.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mining.dmi b/monkestation/code/modules/blueshift/icons/mining.dmi new file mode 100644 index 000000000000..94f7728a81f7 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mining.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mining_labor.dmi b/monkestation/code/modules/blueshift/icons/mining_labor.dmi new file mode 100644 index 000000000000..a3d9eecd6919 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mining_labor.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mining_large.dmi b/monkestation/code/modules/blueshift/icons/mining_large.dmi new file mode 100644 index 000000000000..b32cf4c0351f Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mining_large.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/misc/bulletdrive.dmi b/monkestation/code/modules/blueshift/icons/misc/bulletdrive.dmi new file mode 100644 index 000000000000..2bea3ddaad7f Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/misc/bulletdrive.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/misc_tools.dmi b/monkestation/code/modules/blueshift/icons/misc_tools.dmi new file mode 100644 index 000000000000..a619ff2e36c7 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/misc_tools.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mixer.dmi b/monkestation/code/modules/blueshift/icons/mixer.dmi new file mode 100644 index 000000000000..9539c1959764 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mixer.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/actions/action_backgrounds.dmi b/monkestation/code/modules/blueshift/icons/mob/actions/action_backgrounds.dmi new file mode 100644 index 000000000000..3327ee99016d Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/actions/action_backgrounds.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/actions/actions_items.dmi b/monkestation/code/modules/blueshift/icons/mob/actions/actions_items.dmi new file mode 100644 index 000000000000..115d5d71dad6 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/actions/actions_items.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/actions/actions_nif.dmi b/monkestation/code/modules/blueshift/icons/mob/actions/actions_nif.dmi new file mode 100644 index 000000000000..eac81c9cca9f Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/actions/actions_nif.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/actions/actions_slime.dmi b/monkestation/code/modules/blueshift/icons/mob/actions/actions_slime.dmi new file mode 100644 index 000000000000..2526ab80dc59 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/actions/actions_slime.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/accessories.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/accessories.dmi new file mode 100644 index 000000000000..b289380a4283 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/accessories.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/back.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/back.dmi new file mode 100644 index 000000000000..0fd5d84f1e62 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/back.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/belt.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/belt.dmi new file mode 100644 index 000000000000..13fc767c015c Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/belt.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/eyes.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/eyes.dmi new file mode 100644 index 000000000000..2069c3660f05 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/eyes.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/feet.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/feet.dmi new file mode 100644 index 000000000000..563d63d374e4 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/feet.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/feet_digi.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/feet_digi.dmi new file mode 100644 index 000000000000..50f5816a8dd0 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/feet_digi.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/hands.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/hands.dmi new file mode 100644 index 000000000000..acc0efab98e9 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/hands.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/head.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/head.dmi new file mode 100644 index 000000000000..2ac43cbef4d4 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/head.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/head/bio_muzzled.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/head/bio_muzzled.dmi new file mode 100644 index 000000000000..6df41f85cd45 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/head/bio_muzzled.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/head/chaplain.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/head/chaplain.dmi new file mode 100644 index 000000000000..3d362e544059 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/head/chaplain.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/head/chaplain_muzzled.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/head/chaplain_muzzled.dmi new file mode 100644 index 000000000000..749d20bce5af Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/head/chaplain_muzzled.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/head/costume.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/head/costume.dmi new file mode 100644 index 000000000000..9f7a82a5c338 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/head/costume.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/head/cowboy.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/head/cowboy.dmi new file mode 100644 index 000000000000..94d19052982a Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/head/cowboy.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/head/helmet.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/head/helmet.dmi new file mode 100644 index 000000000000..6043c7fa83e0 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/head/helmet.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/head/helmet_muzzled.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/head/helmet_muzzled.dmi new file mode 100644 index 000000000000..3973cd8a4566 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/head/helmet_muzzled.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/head/pelt_big.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/head/pelt_big.dmi new file mode 100644 index 000000000000..53c897995a49 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/head/pelt_big.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/head/pets_head.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/head/pets_head.dmi new file mode 100644 index 000000000000..7f9371683fd8 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/head/pets_head.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/head/plasmaman_head.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/head/plasmaman_head.dmi new file mode 100644 index 000000000000..fe5a0ce492c9 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/head/plasmaman_head.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/head/spacehelm_muzzled.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/head/spacehelm_muzzled.dmi new file mode 100644 index 000000000000..d4ede3246cdc Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/head/spacehelm_muzzled.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/head/winterhood.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/head/winterhood.dmi new file mode 100644 index 000000000000..f07efd1c0113 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/head/winterhood.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/mask.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/mask.dmi new file mode 100644 index 000000000000..8b52d28c7cb8 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/mask.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/neck.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/neck.dmi new file mode 100644 index 000000000000..93c9d34c6481 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/neck.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/suit.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/suit.dmi new file mode 100644 index 000000000000..de336a822e63 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/suit.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/suit_digi.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/suit_digi.dmi new file mode 100644 index 000000000000..1f6b935b5f06 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/suit_digi.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/suits/armor.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/suits/armor.dmi new file mode 100644 index 000000000000..59aaf4a5fc20 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/suits/armor.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/suits/armor_digi.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/suits/armor_digi.dmi new file mode 100644 index 000000000000..5ec98ebafa8d Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/suits/armor_digi.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/suits/bio_digi.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/suits/bio_digi.dmi new file mode 100644 index 000000000000..541478dee844 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/suits/bio_digi.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/suits/chaplain.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/suits/chaplain.dmi new file mode 100644 index 000000000000..85e1cf7ad99f Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/suits/chaplain.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/suits/chaplain_digi.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/suits/chaplain_digi.dmi new file mode 100644 index 000000000000..9fdb6bd08921 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/suits/chaplain_digi.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/suits/jacket.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/suits/jacket.dmi new file mode 100644 index 000000000000..00521501d08b Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/suits/jacket.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/suits/labcoat.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/suits/labcoat.dmi new file mode 100644 index 000000000000..ac9fe47496aa Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/suits/labcoat.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/suits/labcoat_digi.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/suits/labcoat_digi.dmi new file mode 100644 index 000000000000..1c3b3c892337 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/suits/labcoat_digi.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/suits/spacesuit.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/suits/spacesuit.dmi new file mode 100644 index 000000000000..0b22f2bd2c43 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/suits/spacesuit.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/suits/spacesuit_digi.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/suits/spacesuit_digi.dmi new file mode 100644 index 000000000000..2b6864d72eab Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/suits/spacesuit_digi.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/suits/wintercoat.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/suits/wintercoat.dmi new file mode 100644 index 000000000000..a92a34ccc906 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/suits/wintercoat.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/suits/wizard_digi.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/suits/wizard_digi.dmi new file mode 100644 index 000000000000..7529b5fffca9 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/suits/wizard_digi.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/towel.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/towel.dmi new file mode 100644 index 000000000000..6cb94724b499 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/towel.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/towel_digi.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/towel_digi.dmi new file mode 100644 index 000000000000..c9919b14af9d Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/towel_digi.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/under/cargo.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/under/cargo.dmi new file mode 100644 index 000000000000..8d18e50d6233 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/under/cargo.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/under/cargo_digi.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/under/cargo_digi.dmi new file mode 100644 index 000000000000..faceea6def32 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/under/cargo_digi.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/under/centcom.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/under/centcom.dmi new file mode 100644 index 000000000000..df2e12adf8b1 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/under/centcom.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/under/centcom_digi.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/under/centcom_digi.dmi new file mode 100644 index 000000000000..8d50cd1d5692 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/under/centcom_digi.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/under/civilian.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/under/civilian.dmi new file mode 100644 index 000000000000..f29940e8527d Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/under/civilian.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/under/civilian_digi.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/under/civilian_digi.dmi new file mode 100644 index 000000000000..fc67f8fb76e1 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/under/civilian_digi.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/under/color_digi.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/under/color_digi.dmi new file mode 100644 index 000000000000..1366a6ba1ad5 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/under/color_digi.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/under/command.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/under/command.dmi new file mode 100644 index 000000000000..9688cb42e713 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/under/command.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/under/command_digi.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/under/command_digi.dmi new file mode 100644 index 000000000000..f52dc48fcd78 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/under/command_digi.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/under/costume.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/under/costume.dmi new file mode 100644 index 000000000000..317b614a4964 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/under/costume.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/under/costume_digi.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/under/costume_digi.dmi new file mode 100644 index 000000000000..197deb36d8e5 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/under/costume_digi.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/under/engineering.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/under/engineering.dmi new file mode 100644 index 000000000000..36b2920bbb2d Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/under/engineering.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/under/engineering_digi.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/under/engineering_digi.dmi new file mode 100644 index 000000000000..068e92f2fad6 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/under/engineering_digi.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/under/medical.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/under/medical.dmi new file mode 100644 index 000000000000..16070f2d27b4 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/under/medical.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/under/medical_digi.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/under/medical_digi.dmi new file mode 100644 index 000000000000..0b27b7e0d053 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/under/medical_digi.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/under/misc.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/under/misc.dmi new file mode 100644 index 000000000000..b6fbc6044578 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/under/misc.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/under/misc_digi.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/under/misc_digi.dmi new file mode 100644 index 000000000000..76fac7acc3cf Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/under/misc_digi.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/under/plasmaman.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/under/plasmaman.dmi new file mode 100644 index 000000000000..a62ee133334a Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/under/plasmaman.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/under/rnd.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/under/rnd.dmi new file mode 100644 index 000000000000..dc52b5eec556 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/under/rnd.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/under/rnd_digi.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/under/rnd_digi.dmi new file mode 100644 index 000000000000..a96624741e2c Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/under/rnd_digi.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/under/security.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/under/security.dmi new file mode 100644 index 000000000000..4dcfdfa4d67f Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/under/security.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/under/security_digi.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/under/security_digi.dmi new file mode 100644 index 000000000000..558007b1e213 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/under/security_digi.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/under/shorts_pants_shirts.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/under/shorts_pants_shirts.dmi new file mode 100644 index 000000000000..5d8f47b752d5 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/under/shorts_pants_shirts.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/under/shorts_pants_shirts_digi.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/under/shorts_pants_shirts_digi.dmi new file mode 100644 index 000000000000..1a089a50de84 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/under/shorts_pants_shirts_digi.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/under/skirts_dresses.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/under/skirts_dresses.dmi new file mode 100644 index 000000000000..7253f892f6ba Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/under/skirts_dresses.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/under/skirts_dresses_digi.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/under/skirts_dresses_digi.dmi new file mode 100644 index 000000000000..f40452565d83 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/under/skirts_dresses_digi.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/under/suits.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/under/suits.dmi new file mode 100644 index 000000000000..f494e41c425a Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/under/suits.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/under/suits_digi.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/under/suits_digi.dmi new file mode 100644 index 000000000000..d055650a5210 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/under/suits_digi.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/under/syndicate.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/under/syndicate.dmi new file mode 100644 index 000000000000..e08c13e27eb2 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/under/syndicate.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/under/syndicate_digi.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/under/syndicate_digi.dmi new file mode 100644 index 000000000000..bd51fc31808d Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/under/syndicate_digi.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/under/trek_digi.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/under/trek_digi.dmi new file mode 100644 index 000000000000..7d04bf0fbe84 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/under/trek_digi.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/uniform.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/uniform.dmi new file mode 100644 index 000000000000..637fa5a83504 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/uniform.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/clothing/uniform_digi.dmi b/monkestation/code/modules/blueshift/icons/mob/clothing/uniform_digi.dmi new file mode 100644 index 000000000000..b81819dce643 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/clothing/uniform_digi.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/carwo_defense_systems/guns_lefthand.dmi b/monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/carwo_defense_systems/guns_lefthand.dmi new file mode 100644 index 000000000000..835cd89808c2 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/carwo_defense_systems/guns_lefthand.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/carwo_defense_systems/guns_righthand.dmi b/monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/carwo_defense_systems/guns_righthand.dmi new file mode 100644 index 000000000000..76f7106b5f0b Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/carwo_defense_systems/guns_righthand.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/carwo_defense_systems/guns_worn.dmi b/monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/carwo_defense_systems/guns_worn.dmi new file mode 100644 index 000000000000..d0a854cf3030 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/carwo_defense_systems/guns_worn.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/saibasan/guns_lefthand.dmi b/monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/saibasan/guns_lefthand.dmi new file mode 100644 index 000000000000..2f83f957b72c Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/saibasan/guns_lefthand.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/saibasan/guns_righthand.dmi b/monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/saibasan/guns_righthand.dmi new file mode 100644 index 000000000000..55af184f1a34 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/saibasan/guns_righthand.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/saibasan/guns_worn.dmi b/monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/saibasan/guns_worn.dmi new file mode 100644 index 000000000000..c74c2eafb259 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/saibasan/guns_worn.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/szot_dynamica/guns_lefthand.dmi b/monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/szot_dynamica/guns_lefthand.dmi new file mode 100644 index 000000000000..41197c607447 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/szot_dynamica/guns_lefthand.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/szot_dynamica/guns_righthand.dmi b/monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/szot_dynamica/guns_righthand.dmi new file mode 100644 index 000000000000..f780bc4732d4 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/szot_dynamica/guns_righthand.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/szot_dynamica/guns_worn.dmi b/monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/szot_dynamica/guns_worn.dmi new file mode 100644 index 000000000000..9cd37f1dd166 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/szot_dynamica/guns_worn.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/szot_dynamica/inhands_64_left.dmi b/monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/szot_dynamica/inhands_64_left.dmi new file mode 100644 index 000000000000..d905ea52455d Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/szot_dynamica/inhands_64_left.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/szot_dynamica/inhands_64_right.dmi b/monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/szot_dynamica/inhands_64_right.dmi new file mode 100644 index 000000000000..fa499ae34bc2 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/szot_dynamica/inhands_64_right.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/xhihao_light_arms/guns_lefthand.dmi b/monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/xhihao_light_arms/guns_lefthand.dmi new file mode 100644 index 000000000000..84252992131a Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/xhihao_light_arms/guns_lefthand.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/xhihao_light_arms/guns_righthand.dmi b/monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/xhihao_light_arms/guns_righthand.dmi new file mode 100644 index 000000000000..9c6048ad655d Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/xhihao_light_arms/guns_righthand.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/forge_weapon_l.dmi b/monkestation/code/modules/blueshift/icons/mob/forge_weapon_l.dmi new file mode 100644 index 000000000000..5767aaef5e26 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/forge_weapon_l.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/forge_weapon_r.dmi b/monkestation/code/modules/blueshift/icons/mob/forge_weapon_r.dmi new file mode 100644 index 000000000000..8f51de1a9e9b Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/forge_weapon_r.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/forge_weapon_worn.dmi b/monkestation/code/modules/blueshift/icons/mob/forge_weapon_worn.dmi new file mode 100644 index 000000000000..532834d2336b Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/forge_weapon_worn.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/inhands/cases_lefthand.dmi b/monkestation/code/modules/blueshift/icons/mob/inhands/cases_lefthand.dmi new file mode 100644 index 000000000000..c9fac088741b Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/inhands/cases_lefthand.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/inhands/cases_righthand.dmi b/monkestation/code/modules/blueshift/icons/mob/inhands/cases_righthand.dmi new file mode 100644 index 000000000000..56a5d535c0d3 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/inhands/cases_righthand.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/inhands/clothing/backpack_lefthand.dmi b/monkestation/code/modules/blueshift/icons/mob/inhands/clothing/backpack_lefthand.dmi new file mode 100644 index 000000000000..7de3911b402c Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/inhands/clothing/backpack_lefthand.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/inhands/clothing/backpack_righthand.dmi b/monkestation/code/modules/blueshift/icons/mob/inhands/clothing/backpack_righthand.dmi new file mode 100644 index 000000000000..14c50cdff5b6 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/inhands/clothing/backpack_righthand.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/inhands/clothing/towel_lefthand.dmi b/monkestation/code/modules/blueshift/icons/mob/inhands/clothing/towel_lefthand.dmi new file mode 100644 index 000000000000..99fc6a24100c Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/inhands/clothing/towel_lefthand.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/inhands/clothing/towel_righthand.dmi b/monkestation/code/modules/blueshift/icons/mob/inhands/clothing/towel_righthand.dmi new file mode 100644 index 000000000000..fbcde13d6f81 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/inhands/clothing/towel_righthand.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/inhands/weapons/64x_guns_left.dmi b/monkestation/code/modules/blueshift/icons/mob/inhands/weapons/64x_guns_left.dmi new file mode 100644 index 000000000000..116b6c7b3ace Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/inhands/weapons/64x_guns_left.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/inhands/weapons/64x_guns_right.dmi b/monkestation/code/modules/blueshift/icons/mob/inhands/weapons/64x_guns_right.dmi new file mode 100644 index 000000000000..aca132ed469d Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/inhands/weapons/64x_guns_right.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/inhands/weapons/swords_lefthand.dmi b/monkestation/code/modules/blueshift/icons/mob/inhands/weapons/swords_lefthand.dmi new file mode 100644 index 000000000000..79b39dfe7cf3 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/inhands/weapons/swords_lefthand.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/inhands/weapons/swords_righthand.dmi b/monkestation/code/modules/blueshift/icons/mob/inhands/weapons/swords_righthand.dmi new file mode 100644 index 000000000000..6754fa51634d Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/inhands/weapons/swords_righthand.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/newmobs.dmi b/monkestation/code/modules/blueshift/icons/mob/newmobs.dmi new file mode 100644 index 000000000000..7e215131e187 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/newmobs.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/pets.dmi b/monkestation/code/modules/blueshift/icons/mob/pets.dmi new file mode 100644 index 000000000000..8fba90c03a19 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/pets.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob/worn/cases.dmi b/monkestation/code/modules/blueshift/icons/mob/worn/cases.dmi new file mode 100644 index 000000000000..f029c2956292 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob/worn/cases.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mob_backpack.dmi b/monkestation/code/modules/blueshift/icons/mob_backpack.dmi new file mode 100644 index 000000000000..3cdc9ede083e Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mob_backpack.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/mod.dmi b/monkestation/code/modules/blueshift/icons/mod.dmi new file mode 100644 index 000000000000..f84d26bf2145 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/mod.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/modsuits/mod.dmi b/monkestation/code/modules/blueshift/icons/modsuits/mod.dmi new file mode 100644 index 000000000000..a2e6c642b189 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/modsuits/mod.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/modsuits/mod_worn.dmi b/monkestation/code/modules/blueshift/icons/modsuits/mod_worn.dmi new file mode 100644 index 000000000000..99254f654a44 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/modsuits/mod_worn.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/neck.dmi b/monkestation/code/modules/blueshift/icons/neck.dmi new file mode 100644 index 000000000000..d2a2710b4608 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/neck.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj.dmi b/monkestation/code/modules/blueshift/icons/obj.dmi new file mode 100644 index 000000000000..863ae7ebc9b0 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/ammo.dmi b/monkestation/code/modules/blueshift/icons/obj/ammo.dmi new file mode 100644 index 000000000000..ddd2fe3989ab Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/ammo.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/closet.dmi b/monkestation/code/modules/blueshift/icons/obj/closet.dmi new file mode 100644 index 000000000000..5673b2f19630 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/closet.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/closet_wall.dmi b/monkestation/code/modules/blueshift/icons/obj/closet_wall.dmi new file mode 100644 index 000000000000..60465a0acc39 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/closet_wall.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/clothing/accessories.dmi b/monkestation/code/modules/blueshift/icons/obj/clothing/accessories.dmi new file mode 100644 index 000000000000..1cdcdc059049 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/clothing/accessories.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/clothing/backpacks.dmi b/monkestation/code/modules/blueshift/icons/obj/clothing/backpacks.dmi new file mode 100644 index 000000000000..5d8a2cfd375c Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/clothing/backpacks.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/clothing/belts.dmi b/monkestation/code/modules/blueshift/icons/obj/clothing/belts.dmi new file mode 100644 index 000000000000..20a694a2405b Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/clothing/belts.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/clothing/glasses.dmi b/monkestation/code/modules/blueshift/icons/obj/clothing/glasses.dmi new file mode 100644 index 000000000000..d42c3f245b1a Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/clothing/glasses.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/clothing/gloves.dmi b/monkestation/code/modules/blueshift/icons/obj/clothing/gloves.dmi new file mode 100644 index 000000000000..c11f5cbe6bfa Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/clothing/gloves.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/clothing/hats.dmi b/monkestation/code/modules/blueshift/icons/obj/clothing/hats.dmi new file mode 100644 index 000000000000..64f133fe5bde Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/clothing/hats.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/clothing/head/chaplain.dmi b/monkestation/code/modules/blueshift/icons/obj/clothing/head/chaplain.dmi new file mode 100644 index 000000000000..b00ec8bd21d5 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/clothing/head/chaplain.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/clothing/head/costume.dmi b/monkestation/code/modules/blueshift/icons/obj/clothing/head/costume.dmi new file mode 100644 index 000000000000..bfbea035e740 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/clothing/head/costume.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/clothing/head/cowboy.dmi b/monkestation/code/modules/blueshift/icons/obj/clothing/head/cowboy.dmi new file mode 100644 index 000000000000..fb582bf495ce Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/clothing/head/cowboy.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/clothing/head/helmet.dmi b/monkestation/code/modules/blueshift/icons/obj/clothing/head/helmet.dmi new file mode 100644 index 000000000000..29734b049587 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/clothing/head/helmet.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/clothing/head/plasmaman_hats.dmi b/monkestation/code/modules/blueshift/icons/obj/clothing/head/plasmaman_hats.dmi new file mode 100644 index 000000000000..75a5d0d7754a Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/clothing/head/plasmaman_hats.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/clothing/head/winterhood.dmi b/monkestation/code/modules/blueshift/icons/obj/clothing/head/winterhood.dmi new file mode 100644 index 000000000000..fa41a36ca848 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/clothing/head/winterhood.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/clothing/masks.dmi b/monkestation/code/modules/blueshift/icons/obj/clothing/masks.dmi new file mode 100644 index 000000000000..7deb40b8d859 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/clothing/masks.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/clothing/neck.dmi b/monkestation/code/modules/blueshift/icons/obj/clothing/neck.dmi new file mode 100644 index 000000000000..a3a71e6a73cd Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/clothing/neck.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/clothing/shoes.dmi b/monkestation/code/modules/blueshift/icons/obj/clothing/shoes.dmi new file mode 100644 index 000000000000..9bf04a5256a9 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/clothing/shoes.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/clothing/suits.dmi b/monkestation/code/modules/blueshift/icons/obj/clothing/suits.dmi new file mode 100644 index 000000000000..9b931146cba3 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/clothing/suits.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/clothing/suits/armor.dmi b/monkestation/code/modules/blueshift/icons/obj/clothing/suits/armor.dmi new file mode 100644 index 000000000000..a2338a200b21 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/clothing/suits/armor.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/clothing/suits/chaplain.dmi b/monkestation/code/modules/blueshift/icons/obj/clothing/suits/chaplain.dmi new file mode 100644 index 000000000000..4475c890fed6 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/clothing/suits/chaplain.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/clothing/suits/jacket.dmi b/monkestation/code/modules/blueshift/icons/obj/clothing/suits/jacket.dmi new file mode 100644 index 000000000000..ace9238ecd24 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/clothing/suits/jacket.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/clothing/suits/labcoat.dmi b/monkestation/code/modules/blueshift/icons/obj/clothing/suits/labcoat.dmi new file mode 100644 index 000000000000..abe9f39089b3 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/clothing/suits/labcoat.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/clothing/suits/spacesuit.dmi b/monkestation/code/modules/blueshift/icons/obj/clothing/suits/spacesuit.dmi new file mode 100644 index 000000000000..1e2a035cb2db Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/clothing/suits/spacesuit.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/clothing/suits/wintercoat.dmi b/monkestation/code/modules/blueshift/icons/obj/clothing/suits/wintercoat.dmi new file mode 100644 index 000000000000..bcd09afc2b86 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/clothing/suits/wintercoat.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/clothing/under/captain.dmi b/monkestation/code/modules/blueshift/icons/obj/clothing/under/captain.dmi new file mode 100644 index 000000000000..cf74d73796c8 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/clothing/under/captain.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/clothing/under/cargo.dmi b/monkestation/code/modules/blueshift/icons/obj/clothing/under/cargo.dmi new file mode 100644 index 000000000000..fccbf88fbc9e Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/clothing/under/cargo.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/clothing/under/centcom.dmi b/monkestation/code/modules/blueshift/icons/obj/clothing/under/centcom.dmi new file mode 100644 index 000000000000..a54bb2a29a68 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/clothing/under/centcom.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/clothing/under/civilian.dmi b/monkestation/code/modules/blueshift/icons/obj/clothing/under/civilian.dmi new file mode 100644 index 000000000000..e206f2625c53 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/clothing/under/civilian.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/clothing/under/command.dmi b/monkestation/code/modules/blueshift/icons/obj/clothing/under/command.dmi new file mode 100644 index 000000000000..9c5ac713db1d Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/clothing/under/command.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/clothing/under/costume.dmi b/monkestation/code/modules/blueshift/icons/obj/clothing/under/costume.dmi new file mode 100644 index 000000000000..c71466eda7b9 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/clothing/under/costume.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/clothing/under/engineering.dmi b/monkestation/code/modules/blueshift/icons/obj/clothing/under/engineering.dmi new file mode 100644 index 000000000000..a7250b406c4b Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/clothing/under/engineering.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/clothing/under/medical.dmi b/monkestation/code/modules/blueshift/icons/obj/clothing/under/medical.dmi new file mode 100644 index 000000000000..7264dcb0752f Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/clothing/under/medical.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/clothing/under/misc.dmi b/monkestation/code/modules/blueshift/icons/obj/clothing/under/misc.dmi new file mode 100644 index 000000000000..608dced902fa Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/clothing/under/misc.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/clothing/under/plasmaman.dmi b/monkestation/code/modules/blueshift/icons/obj/clothing/under/plasmaman.dmi new file mode 100644 index 000000000000..1a4b93110b19 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/clothing/under/plasmaman.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/clothing/under/rnd.dmi b/monkestation/code/modules/blueshift/icons/obj/clothing/under/rnd.dmi new file mode 100644 index 000000000000..dd0827e1de9c Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/clothing/under/rnd.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/clothing/under/security.dmi b/monkestation/code/modules/blueshift/icons/obj/clothing/under/security.dmi new file mode 100644 index 000000000000..7100fd84ca27 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/clothing/under/security.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/clothing/under/shorts_pants_shirts.dmi b/monkestation/code/modules/blueshift/icons/obj/clothing/under/shorts_pants_shirts.dmi new file mode 100644 index 000000000000..8726c9c548f9 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/clothing/under/shorts_pants_shirts.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/clothing/under/skirts_dresses.dmi b/monkestation/code/modules/blueshift/icons/obj/clothing/under/skirts_dresses.dmi new file mode 100644 index 000000000000..920a704c2265 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/clothing/under/skirts_dresses.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/clothing/under/suits.dmi b/monkestation/code/modules/blueshift/icons/obj/clothing/under/suits.dmi new file mode 100644 index 000000000000..6a0dcfc86265 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/clothing/under/suits.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/clothing/under/syndicate.dmi b/monkestation/code/modules/blueshift/icons/obj/clothing/under/syndicate.dmi new file mode 100644 index 000000000000..50a6d58b7e30 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/clothing/under/syndicate.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/clothing/uniforms.dmi b/monkestation/code/modules/blueshift/icons/obj/clothing/uniforms.dmi new file mode 100644 index 000000000000..bf740fe604c4 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/clothing/uniforms.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/carwo_defense_systems/ammo.dmi b/monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/carwo_defense_systems/ammo.dmi new file mode 100644 index 000000000000..cb733806546f Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/carwo_defense_systems/ammo.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/carwo_defense_systems/guns32x.dmi b/monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/carwo_defense_systems/guns32x.dmi new file mode 100644 index 000000000000..ab37134e185f Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/carwo_defense_systems/guns32x.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/carwo_defense_systems/guns48x.dmi b/monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/carwo_defense_systems/guns48x.dmi new file mode 100644 index 000000000000..9131e6d19bb3 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/carwo_defense_systems/guns48x.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/carwo_defense_systems/propaganda.dmi b/monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/carwo_defense_systems/propaganda.dmi new file mode 100644 index 000000000000..9438b887628c Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/carwo_defense_systems/propaganda.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/cases.dmi b/monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/cases.dmi new file mode 100644 index 000000000000..d639b8b4d861 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/cases.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/saibasan/guns32x.dmi b/monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/saibasan/guns32x.dmi new file mode 100644 index 000000000000..f4660689ae46 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/saibasan/guns32x.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/saibasan/guns48x.dmi b/monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/saibasan/guns48x.dmi new file mode 100644 index 000000000000..e7e5c519f71d Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/saibasan/guns48x.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/saibasan/projectiles.dmi b/monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/saibasan/projectiles.dmi new file mode 100644 index 000000000000..0a871ca1720f Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/saibasan/projectiles.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/szot_dynamica/ammo.dmi b/monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/szot_dynamica/ammo.dmi new file mode 100644 index 000000000000..6474afdbe43d Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/szot_dynamica/ammo.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/szot_dynamica/guns_32.dmi b/monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/szot_dynamica/guns_32.dmi new file mode 100644 index 000000000000..88f2a23b8431 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/szot_dynamica/guns_32.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/szot_dynamica/guns_48.dmi b/monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/szot_dynamica/guns_48.dmi new file mode 100644 index 000000000000..fdcbfa196bca Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/szot_dynamica/guns_48.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/szot_dynamica/guns_64.dmi b/monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/szot_dynamica/guns_64.dmi new file mode 100644 index 000000000000..14ad4187cd30 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/szot_dynamica/guns_64.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/trappiste_fabriek/ammo.dmi b/monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/trappiste_fabriek/ammo.dmi new file mode 100644 index 000000000000..89e7d90f56dd Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/trappiste_fabriek/ammo.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/trappiste_fabriek/guns32x.dmi b/monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/trappiste_fabriek/guns32x.dmi new file mode 100644 index 000000000000..067d79a810b5 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/trappiste_fabriek/guns32x.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/trappiste_fabriek/propaganda.dmi b/monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/trappiste_fabriek/propaganda.dmi new file mode 100644 index 000000000000..4ddf2216e7c1 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/trappiste_fabriek/propaganda.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/xhihao_light_arms/ammo.dmi b/monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/xhihao_light_arms/ammo.dmi new file mode 100644 index 000000000000..f671b3075286 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/xhihao_light_arms/ammo.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/xhihao_light_arms/guns32x.dmi b/monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/xhihao_light_arms/guns32x.dmi new file mode 100644 index 000000000000..84f2df323220 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/xhihao_light_arms/guns32x.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/xhihao_light_arms/guns40x.dmi b/monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/xhihao_light_arms/guns40x.dmi new file mode 100644 index 000000000000..1e6e33762aa7 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/xhihao_light_arms/guns40x.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/devices.dmi b/monkestation/code/modules/blueshift/icons/obj/devices.dmi new file mode 100644 index 000000000000..401441f95de1 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/devices.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/disks.dmi b/monkestation/code/modules/blueshift/icons/obj/disks.dmi new file mode 100644 index 000000000000..2d2f493c8de5 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/disks.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/fluff.dmi b/monkestation/code/modules/blueshift/icons/obj/fluff.dmi new file mode 100644 index 000000000000..4922409cbd75 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/fluff.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/forge_structures.dmi b/monkestation/code/modules/blueshift/icons/obj/forge_structures.dmi new file mode 100644 index 000000000000..c5d8e8497798 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/forge_structures.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/gunsets.dmi b/monkestation/code/modules/blueshift/icons/obj/gunsets.dmi new file mode 100644 index 000000000000..a80ebc5c5a47 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/gunsets.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/items/advancedtools.dmi b/monkestation/code/modules/blueshift/icons/obj/items/advancedtools.dmi new file mode 100644 index 000000000000..6d9a61ba7677 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/items/advancedtools.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/items/items_and_weapons.dmi b/monkestation/code/modules/blueshift/icons/obj/items/items_and_weapons.dmi new file mode 100644 index 000000000000..c594abb8f28f Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/items/items_and_weapons.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/machinery.dmi b/monkestation/code/modules/blueshift/icons/obj/machinery.dmi new file mode 100644 index 000000000000..34871c0b916c Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/machinery.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/machines/vendors.dmi b/monkestation/code/modules/blueshift/icons/obj/machines/vendors.dmi new file mode 100644 index 000000000000..49fa700e2bc0 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/machines/vendors.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/melee.dmi b/monkestation/code/modules/blueshift/icons/obj/melee.dmi new file mode 100644 index 000000000000..1df7316f97f8 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/melee.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/nifs.dmi b/monkestation/code/modules/blueshift/icons/obj/nifs.dmi new file mode 100644 index 000000000000..64483be5de8e Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/nifs.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/oxygen_candle.dmi b/monkestation/code/modules/blueshift/icons/obj/oxygen_candle.dmi new file mode 100644 index 000000000000..5654fbd9d2f4 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/oxygen_candle.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/pepperball/ammoboxes.dmi b/monkestation/code/modules/blueshift/icons/obj/pepperball/ammoboxes.dmi new file mode 100644 index 000000000000..13ad8bace168 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/pepperball/ammoboxes.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/pepperball/pepperball.dmi b/monkestation/code/modules/blueshift/icons/obj/pepperball/pepperball.dmi new file mode 100644 index 000000000000..1d88cc1de254 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/pepperball/pepperball.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/pepperball/projectiles.dmi b/monkestation/code/modules/blueshift/icons/obj/pepperball/projectiles.dmi new file mode 100644 index 000000000000..e8a43d24b166 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/pepperball/projectiles.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/plants.dmi b/monkestation/code/modules/blueshift/icons/obj/plants.dmi new file mode 100644 index 000000000000..356684885fbb Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/plants.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/projectiles.dmi b/monkestation/code/modules/blueshift/icons/obj/projectiles.dmi new file mode 100644 index 000000000000..11b8155ff198 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/projectiles.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/structures/sauna_oven.dmi b/monkestation/code/modules/blueshift/icons/obj/structures/sauna_oven.dmi new file mode 100644 index 000000000000..fb0871ca9196 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/structures/sauna_oven.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/obj/vending.dmi b/monkestation/code/modules/blueshift/icons/obj/vending.dmi new file mode 100644 index 000000000000..598b2595f6e8 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/obj/vending.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/ore.dmi b/monkestation/code/modules/blueshift/icons/ore.dmi new file mode 100644 index 000000000000..398c03567fb0 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/ore.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/ore_silo.dmi b/monkestation/code/modules/blueshift/icons/ore_silo.dmi new file mode 100644 index 000000000000..8cbf8158644a Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/ore_silo.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/ore_thumper.dmi b/monkestation/code/modules/blueshift/icons/ore_thumper.dmi new file mode 100644 index 000000000000..a99b196ae676 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/ore_thumper.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/ore_thumper_item.dmi b/monkestation/code/modules/blueshift/icons/ore_thumper_item.dmi new file mode 100644 index 000000000000..7c53ff0f06a4 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/ore_thumper_item.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/packed_machines.dmi b/monkestation/code/modules/blueshift/icons/packed_machines.dmi new file mode 100644 index 000000000000..8e7c4dbd7376 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/packed_machines.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/parts_kits.dmi b/monkestation/code/modules/blueshift/icons/parts_kits.dmi new file mode 100644 index 000000000000..75a4e97e23f1 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/parts_kits.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/plant_bag.dmi b/monkestation/code/modules/blueshift/icons/plant_bag.dmi new file mode 100644 index 000000000000..aa949961a41d Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/plant_bag.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/plant_bag_worn.dmi b/monkestation/code/modules/blueshift/icons/plant_bag_worn.dmi new file mode 100644 index 000000000000..5dc6e5fae292 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/plant_bag_worn.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/plant_bag_worn_mirror.dmi b/monkestation/code/modules/blueshift/icons/plant_bag_worn_mirror.dmi new file mode 100644 index 000000000000..5e3b03c8fe3a Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/plant_bag_worn_mirror.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/pod.dmi b/monkestation/code/modules/blueshift/icons/pod.dmi new file mode 100644 index 000000000000..74a432be18fc Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/pod.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/portable_machines.dmi b/monkestation/code/modules/blueshift/icons/portable_machines.dmi new file mode 100644 index 000000000000..046d517a0de0 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/portable_machines.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/posters/contraband.dmi b/monkestation/code/modules/blueshift/icons/posters/contraband.dmi new file mode 100644 index 000000000000..c2d398115c75 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/posters/contraband.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/power_storage_unit/large_battery.dmi b/monkestation/code/modules/blueshift/icons/power_storage_unit/large_battery.dmi new file mode 100644 index 000000000000..9e4fd1a29cc9 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/power_storage_unit/large_battery.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/power_storage_unit/small_battery.dmi b/monkestation/code/modules/blueshift/icons/power_storage_unit/small_battery.dmi new file mode 100644 index 000000000000..dce9d878154f Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/power_storage_unit/small_battery.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/prefab_wall.dmi b/monkestation/code/modules/blueshift/icons/prefab_wall.dmi new file mode 100644 index 000000000000..e1aec0f273ad Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/prefab_wall.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/prefab_window.dmi b/monkestation/code/modules/blueshift/icons/prefab_window.dmi new file mode 100644 index 000000000000..7845026875de Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/prefab_window.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/prim_fun.dmi b/monkestation/code/modules/blueshift/icons/prim_fun.dmi new file mode 100644 index 000000000000..1caf775d6829 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/prim_fun.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/projectiles.dmi b/monkestation/code/modules/blueshift/icons/projectiles.dmi new file mode 100644 index 000000000000..be56385841f0 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/projectiles.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/punchcard.dmi b/monkestation/code/modules/blueshift/icons/punchcard.dmi new file mode 100644 index 000000000000..699196a4fbd7 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/punchcard.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/rack.dmi b/monkestation/code/modules/blueshift/icons/rack.dmi new file mode 100644 index 000000000000..14e3b6eb51da Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/rack.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/railroad.dmi b/monkestation/code/modules/blueshift/icons/railroad.dmi new file mode 100644 index 000000000000..2ec8d3ce0e63 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/railroad.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/riot.dmi b/monkestation/code/modules/blueshift/icons/riot.dmi new file mode 100644 index 000000000000..d07b122ed737 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/riot.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/riot_left.dmi b/monkestation/code/modules/blueshift/icons/riot_left.dmi new file mode 100644 index 000000000000..0ffa2a250540 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/riot_left.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/riot_right.dmi b/monkestation/code/modules/blueshift/icons/riot_right.dmi new file mode 100644 index 000000000000..ed427efd93d6 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/riot_right.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/scram.dmi b/monkestation/code/modules/blueshift/icons/scram.dmi new file mode 100644 index 000000000000..b654175abd48 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/scram.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/seeds.dmi b/monkestation/code/modules/blueshift/icons/seeds.dmi new file mode 100644 index 000000000000..e1aa7739f736 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/seeds.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/shoes.dmi b/monkestation/code/modules/blueshift/icons/shoes.dmi new file mode 100644 index 000000000000..e69db1f1b303 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/shoes.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/shotbox.dmi b/monkestation/code/modules/blueshift/icons/shotbox.dmi new file mode 100644 index 000000000000..54b191d87c1f Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/shotbox.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/shotshells.dmi b/monkestation/code/modules/blueshift/icons/shotshells.dmi new file mode 100644 index 000000000000..cfe5fdaa1ff6 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/shotshells.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/space_heater.dmi b/monkestation/code/modules/blueshift/icons/space_heater.dmi new file mode 100644 index 000000000000..eda06ce46e4c Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/space_heater.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/special_metals_stack.dmi b/monkestation/code/modules/blueshift/icons/special_metals_stack.dmi new file mode 100644 index 000000000000..8a7ff309998e Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/special_metals_stack.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/specialist_armor/armor.dmi b/monkestation/code/modules/blueshift/icons/specialist_armor/armor.dmi new file mode 100644 index 000000000000..d3e56a6b051d Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/specialist_armor/armor.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/specialist_armor/armor_worn.dmi b/monkestation/code/modules/blueshift/icons/specialist_armor/armor_worn.dmi new file mode 100644 index 000000000000..ad052b7aaf30 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/specialist_armor/armor_worn.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/stirling_generator/big_generator.dmi b/monkestation/code/modules/blueshift/icons/stirling_generator/big_generator.dmi new file mode 100644 index 000000000000..d8cac6292e23 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/stirling_generator/big_generator.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/stirling_generator/packed_machines.dmi b/monkestation/code/modules/blueshift/icons/stirling_generator/packed_machines.dmi new file mode 100644 index 000000000000..5b750da51512 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/stirling_generator/packed_machines.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/stone_kitchen_machines.dmi b/monkestation/code/modules/blueshift/icons/stone_kitchen_machines.dmi new file mode 100644 index 000000000000..5453f17f1ebc Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/stone_kitchen_machines.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/storage.dmi b/monkestation/code/modules/blueshift/icons/storage.dmi new file mode 100644 index 000000000000..2a5acb550720 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/storage.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/structures.dmi b/monkestation/code/modules/blueshift/icons/structures.dmi new file mode 100644 index 000000000000..0682447f8d30 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/structures.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/suit.dmi b/monkestation/code/modules/blueshift/icons/suit.dmi new file mode 100644 index 000000000000..aae97bc9e5a0 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/suit.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/suit_digi.dmi b/monkestation/code/modules/blueshift/icons/suit_digi.dmi new file mode 100644 index 000000000000..2f42b3b1b1ae Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/suit_digi.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/suits.dmi b/monkestation/code/modules/blueshift/icons/suits.dmi new file mode 100644 index 000000000000..405556ec1cc5 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/suits.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/surplus_armor/surplus_armor.dmi b/monkestation/code/modules/blueshift/icons/surplus_armor/surplus_armor.dmi new file mode 100644 index 000000000000..2ecad4a5fccb Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/surplus_armor/surplus_armor.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/surplus_armor/surplus_armor_digi.dmi b/monkestation/code/modules/blueshift/icons/surplus_armor/surplus_armor_digi.dmi new file mode 100644 index 000000000000..323552af0bac Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/surplus_armor/surplus_armor_digi.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/surplus_armor/surplus_armor_object.dmi b/monkestation/code/modules/blueshift/icons/surplus_armor/surplus_armor_object.dmi new file mode 100644 index 000000000000..d4910664d43a Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/surplus_armor/surplus_armor_object.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/survival_pack.dmi b/monkestation/code/modules/blueshift/icons/survival_pack.dmi new file mode 100644 index 000000000000..55c9650e9d4a Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/survival_pack.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/terminals.dmi b/monkestation/code/modules/blueshift/icons/terminals.dmi new file mode 100644 index 000000000000..933c46be1c7e Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/terminals.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/thermomachine.dmi b/monkestation/code/modules/blueshift/icons/thermomachine.dmi new file mode 100644 index 000000000000..305c4c43edb6 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/thermomachine.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/throwing.dmi b/monkestation/code/modules/blueshift/icons/throwing.dmi new file mode 100644 index 000000000000..ba735ae8d5ea Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/throwing.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/tiles.dmi b/monkestation/code/modules/blueshift/icons/tiles.dmi new file mode 100644 index 000000000000..068107aa0fdc Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/tiles.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/tiles_item.dmi b/monkestation/code/modules/blueshift/icons/tiles_item.dmi new file mode 100644 index 000000000000..0e76bd25d2c8 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/tiles_item.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/toggles.dmi b/monkestation/code/modules/blueshift/icons/toggles.dmi new file mode 100644 index 000000000000..ec7c2f262822 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/toggles.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/tomahawk.dmi b/monkestation/code/modules/blueshift/icons/tomahawk.dmi new file mode 100644 index 000000000000..d2ebb3563a1b Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/tomahawk.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/tomahawk_l.dmi b/monkestation/code/modules/blueshift/icons/tomahawk_l.dmi new file mode 100644 index 000000000000..9bf70a79bf14 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/tomahawk_l.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/tomahawk_r.dmi b/monkestation/code/modules/blueshift/icons/tomahawk_r.dmi new file mode 100644 index 000000000000..09229790e2ad Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/tomahawk_r.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/tomahawk_worn.dmi b/monkestation/code/modules/blueshift/icons/tomahawk_worn.dmi new file mode 100644 index 000000000000..09e64b23e7c6 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/tomahawk_worn.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/tools.dmi b/monkestation/code/modules/blueshift/icons/tools.dmi new file mode 100644 index 000000000000..e1e7a12bc7da Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/tools.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/trash_piles.dmi b/monkestation/code/modules/blueshift/icons/trash_piles.dmi new file mode 100644 index 000000000000..ad8fc7e3ca2f Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/trash_piles.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/turf/decals/vgstation_decals.dmi b/monkestation/code/modules/blueshift/icons/turf/decals/vgstation_decals.dmi new file mode 100644 index 000000000000..252cbdc703f6 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/turf/decals/vgstation_decals.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/turf/open/sandychasm.dmi b/monkestation/code/modules/blueshift/icons/turf/open/sandychasm.dmi new file mode 100644 index 000000000000..ce6bf9491d0a Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/turf/open/sandychasm.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/turf/submarine.dmi b/monkestation/code/modules/blueshift/icons/turf/submarine.dmi new file mode 100644 index 000000000000..be65f20957bd Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/turf/submarine.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/turf/turf_decals.dmi b/monkestation/code/modules/blueshift/icons/turf/turf_decals.dmi new file mode 100644 index 000000000000..98dd8038f7d6 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/turf/turf_decals.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/turf_decals.dmi b/monkestation/code/modules/blueshift/icons/turf_decals.dmi new file mode 100644 index 000000000000..6262ef927833 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/turf_decals.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/turret_deployable.dmi b/monkestation/code/modules/blueshift/icons/turret_deployable.dmi new file mode 100644 index 000000000000..e3dfa212311d Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/turret_deployable.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/uniform.dmi b/monkestation/code/modules/blueshift/icons/uniform.dmi new file mode 100644 index 000000000000..9aeb1ea0ff91 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/uniform.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/uniform_digi.dmi b/monkestation/code/modules/blueshift/icons/uniform_digi.dmi new file mode 100644 index 000000000000..9ee300e7363d Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/uniform_digi.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/uniforms.dmi b/monkestation/code/modules/blueshift/icons/uniforms.dmi new file mode 100644 index 000000000000..4c5e33182170 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/uniforms.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/unique/closet.dmi b/monkestation/code/modules/blueshift/icons/unique/closet.dmi new file mode 100644 index 000000000000..5673b2f19630 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/unique/closet.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/unique/dungeon.dmi b/monkestation/code/modules/blueshift/icons/unique/dungeon.dmi new file mode 100644 index 000000000000..9804df5acf71 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/unique/dungeon.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/unique/furniture.dmi b/monkestation/code/modules/blueshift/icons/unique/furniture.dmi new file mode 100644 index 000000000000..d57113e0e81d Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/unique/furniture.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/unique/pool.dmi b/monkestation/code/modules/blueshift/icons/unique/pool.dmi new file mode 100644 index 000000000000..ac6d3a0e045b Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/unique/pool.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/unique/spaceships/shipstacks.dmi b/monkestation/code/modules/blueshift/icons/unique/spaceships/shipstacks.dmi new file mode 100644 index 000000000000..b95b67692904 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/unique/spaceships/shipstacks.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/unique/spaceships/shipwalls.dmi b/monkestation/code/modules/blueshift/icons/unique/spaceships/shipwalls.dmi new file mode 100644 index 000000000000..44c2fde29c98 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/unique/spaceships/shipwalls.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/unique/spaceships/shipwindows.dmi b/monkestation/code/modules/blueshift/icons/unique/spaceships/shipwindows.dmi new file mode 100644 index 000000000000..764e6dd34cde Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/unique/spaceships/shipwindows.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/vending.dmi b/monkestation/code/modules/blueshift/icons/vending.dmi new file mode 100644 index 000000000000..85fae3ed5d1e Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/vending.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/vendor.dmi b/monkestation/code/modules/blueshift/icons/vendor.dmi new file mode 100644 index 000000000000..62b6cbe0c5bf Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/vendor.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/wagon.dmi b/monkestation/code/modules/blueshift/icons/wagon.dmi new file mode 100644 index 000000000000..3db2a71de67b Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/wagon.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/wall.dmi b/monkestation/code/modules/blueshift/icons/wall.dmi new file mode 100644 index 000000000000..1384db4a89a0 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/wall.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/wind_turbine.dmi b/monkestation/code/modules/blueshift/icons/wind_turbine.dmi new file mode 100644 index 000000000000..26a37260b73d Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/wind_turbine.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/windows.dmi b/monkestation/code/modules/blueshift/icons/windows.dmi new file mode 100644 index 000000000000..02f84bea3823 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/windows.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/wooden_fence.dmi b/monkestation/code/modules/blueshift/icons/wooden_fence.dmi new file mode 100644 index 000000000000..6bd24627e315 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/wooden_fence.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/wooden_gate.dmi b/monkestation/code/modules/blueshift/icons/wooden_gate.dmi new file mode 100644 index 000000000000..81c68631613a Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/wooden_gate.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/wooden_ladder.dmi b/monkestation/code/modules/blueshift/icons/wooden_ladder.dmi new file mode 100644 index 000000000000..b9a782ea52ae Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/wooden_ladder.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/worn.dmi b/monkestation/code/modules/blueshift/icons/worn.dmi new file mode 100644 index 000000000000..4725e470404b Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/worn.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/wornarmor.dmi b/monkestation/code/modules/blueshift/icons/wornarmor.dmi new file mode 100644 index 000000000000..299cd1c90001 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/wornarmor.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/wornmask.dmi b/monkestation/code/modules/blueshift/icons/wornmask.dmi new file mode 100644 index 000000000000..c35c56883ef4 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/wornmask.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/wornmask_digi.dmi b/monkestation/code/modules/blueshift/icons/wornmask_digi.dmi new file mode 100644 index 000000000000..c35c56883ef4 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/wornmask_digi.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/wornmod.dmi b/monkestation/code/modules/blueshift/icons/wornmod.dmi new file mode 100644 index 000000000000..0ac1a2618ad3 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/wornmod.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/wrestling.dmi b/monkestation/code/modules/blueshift/icons/wrestling.dmi new file mode 100644 index 000000000000..e741103ef38d Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/wrestling.dmi differ diff --git a/monkestation/code/modules/blueshift/icons/xeno_actions.dmi b/monkestation/code/modules/blueshift/icons/xeno_actions.dmi new file mode 100644 index 000000000000..56b6273cbfe3 Binary files /dev/null and b/monkestation/code/modules/blueshift/icons/xeno_actions.dmi differ diff --git a/monkestation/code/modules/blueshift/items/_balistic_additions.dm b/monkestation/code/modules/blueshift/items/_balistic_additions.dm new file mode 100644 index 000000000000..022166ee5fa7 --- /dev/null +++ b/monkestation/code/modules/blueshift/items/_balistic_additions.dm @@ -0,0 +1,265 @@ +/obj/item/suppressor/standard + desc = "A small-arms suppressor for maximum espionage." + +/obj/item/gun/ballistic + /// Does this gun have mag and nomag on mob variance? + var/alt_icons = FALSE + /// What the icon state is for the on-back guns + var/alt_icon_state + /// How long it takes to reload a magazine. + var/reload_time = 2 SECONDS + /// if this gun has a penalty for reloading with an ammo_box type + var/box_reload_penalty = TRUE + /// reload penalty inflicted by using an ammo box instead of an individual cartridge, if not outright exchanging the magazine + var/box_reload_delay = CLICK_CD_MELEE + +/* +* hey there's like... no better place to put these overrides, sorry +* if there's other guns that use speedloader-likes or otherwise have a reason to +* probably not have a CLICK_CD_MELEE cooldown for reloading them with something else +* i guess add it here? only current example is revolvers +* you could maybe make a case for double-barrels? i'll leave that for discussion in the pr comments +*/ + +/obj/item/gun/ballistic/revolver + box_reload_delay = CLICK_CD_RAPID // honestly this is negligible because of the inherent delay of having to switch hands + +/obj/item/gun/ballistic/rifle/boltaction // slightly less negligible than a revolver, since this is mostly for fairly powerful but crew-accessible stuff like mosins + box_reload_delay = CLICK_CD_RANGE + +/obj/item/gun/ballistic/Initialize(mapload) + . = ..() + + if(alt_icons) + AddElement(/datum/element/update_icon_updates_onmob) + +/obj/item/gun/ballistic/update_overlays() + . = ..() + if(alt_icons) + if(!magazine) + if(alt_icon_state) + inhand_icon_state = "[alt_icon_state]_nomag" + worn_icon_state = "[alt_icon_state]_nomag" + else + inhand_icon_state = "[initial(icon_state)]_nomag" + worn_icon_state = "[initial(icon_state)]_nomag" + else + if(alt_icon_state) + inhand_icon_state = "[alt_icon_state]" + worn_icon_state = "[alt_icon_state]" + else + inhand_icon_state = "[initial(icon_state)]" + worn_icon_state = "[initial(icon_state)]" + +/obj/item/gun/ballistic/proc/handle_magazine(mob/user, obj/item/ammo_box/magazine/inserting_magazine) + if(magazine) // If we already have a magazine inserted, we're going to begin tactically reloading it. + if(reload_time && !HAS_TRAIT(user, TRAIT_INSTANT_RELOAD)) // Check if we have a reload time to tactical reloading, or if we have the instant reload trait. + to_chat(user, span_notice("You start to insert the magazine into [src]!")) + if(!do_after(user, reload_time, src, IGNORE_USER_LOC_CHANGE)) // We are allowed to move while reloading. + to_chat(user, span_danger("You fail to insert the magazine into [src]!")) + return TRUE + eject_magazine(user, FALSE, inserting_magazine) // We eject the magazine then insert the new one, while putting the old one in hands. + else + insert_magazine(user, inserting_magazine) // Otherwise, just insert it. + + return TRUE + +/// Reloading with ammo box can incur penalty with some guns +/obj/item/gun/ballistic/proc/handle_box_reload(mob/user, obj/item/ammo_box/ammobox, num_loaded) + var/box_load = FALSE // if you're reloading with an ammo box, inflicts a cooldown + if(istype(ammobox, /obj/item/ammo_box) && box_reload_penalty) + box_load = TRUE + user.changeNext_move(box_reload_delay) // cooldown to simulate having to fumble for another round + balloon_alert(user, "reload encumbered!") + to_chat(user, span_notice("You load [num_loaded] [cartridge_wording]\s into [src][box_load ? ", but it takes some extra effort" : ""].")) + +/obj/effect/temp_visual/dir_setting/firing_effect + light_system = OVERLAY_LIGHT + light_outer_range = 2 + light_power = 1 + light_color = LIGHT_COLOR_FIRE + +// Prevents gun sizes from changing due to suppressors +/obj/item/gun/ballistic/install_suppressor(obj/item/suppressor/added_suppressor) + . = ..() + // Prevents the w_class of the weapon from actually being increased + w_class -= added_suppressor.w_class + +// Prevents gun sizes from changing due to suppressors +/obj/item/gun/ballistic/clear_suppressor() + if(!can_unsuppress) + return + // Adds to the w_class of the item before its promptly removed, resulting in a net zero w_class change + if(isitem(suppressed)) + var/obj/item/item_suppressor = suppressed + w_class += item_suppressor.w_class + return ..() + +/obj/item/gun/energy/laser + name = "\improper Allstar SC-1 laser carbine" + desc = "A basic energy-based laser carbine that fires concentrated beams of light which pass through glass and thin metal." + +/obj/item/gun/energy/laser/carbine + name = "\improper Allstar SC-1A laser auto-carbine" + desc = "An basic energy-based laser auto-carbine that rapidly fires weakened, concentrated beams of light which pass through glass and thin metal." + +/obj/item/gun/energy/e_gun + name = "\improper Allstar SC-2 energy carbine" + desc = "A basic hybrid energy carbine with two settings: disable and kill." + +//Gunset for the APS Machine Pistol + +/obj/item/storage/toolbox/guncase/skyrat/pistol + name = "'Makarov pistol' gunset" + + weapon_to_spawn = /obj/item/gun/ballistic/automatic/pistol + extra_to_spawn = /obj/item/ammo_box/magazine/m9mm + +/obj/item/storage/toolbox/guncase/skyrat/pistol/aps + name = "'Stechkin APS machine pistol' gunset" + + weapon_to_spawn = /obj/item/gun/ballistic/automatic/pistol/aps + extra_to_spawn = /obj/item/ammo_box/magazine/m9mm_aps + + +/obj/item/storage/toolbox/guncase/skyrat/c20r + name = "'C-20r SMG' gunset" + + weapon_to_spawn = /obj/item/gun/ballistic/automatic/c20r + extra_to_spawn = /obj/item/ammo_box/magazine/smgm45 + +/// Adds the gun manufacturer examine component to the gun on subtypes, does nothing by default +/obj/item/gun/proc/give_manufacturer_examine() + return + +// Ballistics + +/obj/item/gun/ballistic/automatic/pistol/aps/give_manufacturer_examine() + AddElement(/datum/element/manufacturer_examine, COMPANY_SCARBOROUGH) + +/obj/item/gun/ballistic/rifle/boltaction/give_manufacturer_examine() + AddElement(/datum/element/manufacturer_examine, COMPANY_SAKHNO) + +/obj/item/gun/ballistic/rifle/boltaction/prime/give_manufacturer_examine() + AddElement(/datum/element/manufacturer_examine, COMPANY_XHIHAO) + +/obj/item/gun/ballistic/rifle/boltaction/pipegun/give_manufacturer_examine() + return + +/obj/item/gun/ballistic/rifle/boltaction/harpoon/give_manufacturer_examine() + return + +/obj/item/gun/ballistic/rifle/boltaction/lionhunter/give_manufacturer_examine() + return + +/obj/item/gun/ballistic/revolver/give_manufacturer_examine() + AddElement(/datum/element/manufacturer_examine, COMPANY_SCARBOROUGH) + +/obj/item/gun/ballistic/shotgun/riot/give_manufacturer_examine() + AddElement(/datum/element/manufacturer_examine, COMPANY_NANOTRASEN) + +/obj/item/gun/ballistic/shotgun/bulldog/give_manufacturer_examine() + AddElement(/datum/element/manufacturer_examine, COMPANY_SCARBOROUGH) + +/obj/item/gun/ballistic/shotgun/automatic/combat/give_manufacturer_examine() + AddElement(/datum/element/manufacturer_examine, COMPANY_NANOTRASEN) + +/obj/item/gun/ballistic/automatic/pistol/give_manufacturer_examine() + AddElement(/datum/element/manufacturer_examine, COMPANY_SCARBOROUGH) + +/obj/item/gun/ballistic/revolver/c38/detective/give_manufacturer_examine() + AddElement(/datum/element/manufacturer_examine, COMPANY_NANOTRASEN) + +/obj/item/gun/ballistic/shotgun/automatic/dual_tube/give_manufacturer_examine() + AddElement(/datum/element/manufacturer_examine, COMPANY_NANOTRASEN) + +/obj/item/gun/ballistic/shotgun/toy/give_manufacturer_examine() + AddElement(/datum/element/manufacturer_examine, COMPANY_DONK) + +/obj/item/gun/ballistic/automatic/c20r/toy/give_manufacturer_examine() + AddElement(/datum/element/manufacturer_examine, COMPANY_DONK) + +/obj/item/gun/ballistic/automatic/pistol/clandestine/give_manufacturer_examine() + AddElement(/datum/element/manufacturer_examine, COMPANY_SCARBOROUGH) + +/obj/item/gun/ballistic/automatic/l6_saw/toy/give_manufacturer_examine() + AddElement(/datum/element/manufacturer_examine, COMPANY_DONK) + +/obj/item/gun/ballistic/revolver/mateba/give_manufacturer_examine() + return + +/obj/item/gun/ballistic/revolver/russian/give_manufacturer_examine() + return + +// Energy + +/obj/item/gun/energy/e_gun/give_manufacturer_examine() + AddElement(/datum/element/manufacturer_examine, COMPANY_ALLSTAR) + +/obj/item/gun/energy/laser/give_manufacturer_examine() + AddElement(/datum/element/manufacturer_examine, COMPANY_ALLSTAR) + +/obj/item/gun/energy/pulse/give_manufacturer_examine() + AddElement(/datum/element/manufacturer_examine, COMPANY_NANOTRASEN) + +/obj/item/gun/energy/laser/redtag/give_manufacturer_examine() + return + +/obj/item/gun/energy/laser/bluetag/give_manufacturer_examine() + return + +/obj/item/gun/energy/laser/instakill/give_manufacturer_examine() + return + +/obj/item/gun/energy/laser/chameleon/give_manufacturer_examine() + return + +/obj/item/gun/energy/laser/captain/give_manufacturer_examine() + AddElement(/datum/element/manufacturer_examine, COMPANY_NANOTRASEN) + +/obj/item/gun/energy/laser/retro/give_manufacturer_examine() + AddElement(/datum/element/manufacturer_examine, COMPANY_REMOVED) + +/obj/item/gun/energy/laser/retro/old/give_manufacturer_examine() + AddElement(/datum/element/manufacturer_examine, COMPANY_NANOTRASEN) + +/obj/item/gun/energy/e_gun/old/give_manufacturer_examine() + AddElement(/datum/element/manufacturer_examine, COMPANY_NANOTRASEN) + +/obj/item/gun/energy/e_gun/advtaser/cyborg/give_manufacturer_examine() + return + +/obj/item/gun/energy/recharge/ebow/give_manufacturer_examine() + AddElement(/datum/element/manufacturer_examine, COMPANY_SCARBOROUGH) + +/obj/item/gun/energy/lasercannon/give_manufacturer_examine() + AddElement(/datum/element/manufacturer_examine, COMPANY_ALLSTAR) + +/obj/item/gun/energy/ionrifle/give_manufacturer_examine() + AddElement(/datum/element/manufacturer_examine, COMPANY_ALLSTAR) + +/obj/item/gun/energy/temperature/give_manufacturer_examine() + AddElement(/datum/element/manufacturer_examine, COMPANY_ALLSTAR) + +/obj/item/gun/energy/shrink_ray/give_manufacturer_examine() + AddElement(/datum/element/manufacturer_examine, COMPANY_ABDUCTOR) + +/obj/item/gun/energy/alien/give_manufacturer_examine() + AddElement(/datum/element/manufacturer_examine, COMPANY_ABDUCTOR) + +// Syringe + +/obj/item/gun/syringe/give_manufacturer_examine() + AddElement(/datum/element/manufacturer_examine, COMPANY_INTERDYNE) + +/obj/item/gun/syringe/blowgun/give_manufacturer_examine() + return + +/obj/item/gun/syringe/syndicate/prototype/give_manufacturer_examine() + return + +/obj/item/gun/ballistic/revolver/syndicate/nuclear + pin = /obj/item/firing_pin/implant/pindicate + +/obj/item/gun/ballistic/bow/can_trigger_gun(mob/living/user, akimbo_usage) + return TRUE diff --git a/monkestation/code/modules/blueshift/items/ammo.dm b/monkestation/code/modules/blueshift/items/ammo.dm new file mode 100644 index 000000000000..19f78deb4230 --- /dev/null +++ b/monkestation/code/modules/blueshift/items/ammo.dm @@ -0,0 +1,1454 @@ +#define AMMO_MATS_GRENADE list( \ + /datum/material/iron = SMALL_MATERIAL_AMOUNT * 4, \ +) + +#define AMMO_MATS_GRENADE_SHRAPNEL list( \ + /datum/material/iron = SMALL_MATERIAL_AMOUNT * 2,\ + /datum/material/titanium = SMALL_MATERIAL_AMOUNT * 2, \ +) + +#define AMMO_MATS_GRENADE_INCENDIARY list( \ + /datum/material/iron = SMALL_MATERIAL_AMOUNT * 2,\ + /datum/material/plasma = SMALL_MATERIAL_AMOUNT * 2, \ +) + +#define GRENADE_SMOKE_RANGE 0.75 + +/obj/item/ammo_box + /// When inserted into an ammo workbench, does this ammo box check for parent ammunition to search for subtypes of? Relevant for surplus clips, multi-sprite magazines. + /// Maybe don't enable this for shotgun ammo boxes. + var/multitype = TRUE + +// .980 grenades +// Grenades that can be given a range to detonate at by their firing gun + +/obj/item/ammo_casing/c980grenade + name = ".980 Tydhouer practice grenade" + desc = "A large grenade shell that will detonate at a range given to it by the gun that fires it. Practice shells disintegrate into harmless sparks." + + icon = 'monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/carwo_defense_systems/ammo.dmi' + icon_state = "980_solid" + + caliber = CALIBER_980TYDHOUER + projectile_type = /obj/projectile/bullet/c980grenade + + custom_materials = AMMO_MATS_GRENADE + + harmful = FALSE //Erm, technically + + +/obj/item/ammo_casing/c980grenade/fire_casing(atom/target, mob/living/user, params, distro, quiet, zone_override, spread, atom/fired_from) + var/obj/item/gun/ballistic/automatic/sol_grenade_launcher/firing_launcher = fired_from + if(istype(firing_launcher)) + loaded_projectile.range = firing_launcher.target_range + + . = ..() + + +/obj/projectile/bullet/c980grenade + name = ".980 Tydhouer practice grenade" + damage = 20 + stamina = 30 + + range = 14 + + speed = 2 // Higher means slower, y'all + + sharpness = NONE + + +/obj/projectile/bullet/c980grenade/on_hit(atom/target, blocked = 0, pierce_hit) + ..() + fuse_activation(target) + return BULLET_ACT_HIT + + +/obj/projectile/bullet/c980grenade/on_range() + fuse_activation(get_turf(src)) + return ..() + + +/// Generic proc that is called when the projectile should 'detonate', being either on impact or when the range runs out +/obj/projectile/bullet/c980grenade/proc/fuse_activation(atom/target) + playsound(src, 'monkestation/code/modules/blueshift/sounds/grenade_burst.ogg', 50, TRUE, -3) + do_sparks(3, FALSE, src) + + +/obj/item/ammo_box/c980grenade + name = "ammo box (.980 Tydhouer practice)" + desc = "A box of four .980 Tydhouer practice grenades. Instructions on the box indicate these are dummy practice rounds that will disintegrate into sparks on detonation. Neat!" + + icon = 'monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/carwo_defense_systems/ammo.dmi' + icon_state = "980box_solid" + + multiple_sprites = AMMO_BOX_FULL_EMPTY + + w_class = WEIGHT_CLASS_NORMAL + + caliber = CALIBER_980TYDHOUER + ammo_type = /obj/item/ammo_casing/c980grenade + max_ammo = 4 + + +// .980 smoke grenade + +/obj/item/ammo_casing/c980grenade/smoke + name = ".980 Tydhouer smoke grenade" + desc = "A large grenade shell that will detonate at a range given to it by the gun that fires it. Bursts into a laser-weakening smoke cloud." + + icon_state = "980_smoke" + + projectile_type = /obj/projectile/bullet/c980grenade/smoke + + +/obj/projectile/bullet/c980grenade/smoke + name = ".980 Tydhouer smoke grenade" + + +/obj/projectile/bullet/c980grenade/smoke/fuse_activation(atom/target) + playsound(src, 'monkestation/code/modules/blueshift/sounds/grenade_burst.ogg', 50, TRUE, -3) + playsound(src, 'sound/effects/smoke.ogg', 50, TRUE, -3) + var/datum/effect_system/fluid_spread/smoke/bad/smoke = new + smoke.set_up(GRENADE_SMOKE_RANGE, holder = src, location = src) + smoke.start() + + +/obj/item/ammo_box/c980grenade/smoke + name = "ammo box (.980 Tydhouer smoke)" + desc = "A box of four .980 Tydhouer smoke grenades. Instructions on the box indicate these are smoke rounds that will make a small cloud of laser-dampening smoke on detonation." + + icon_state = "980box_smoke" + + ammo_type = /obj/item/ammo_casing/c980grenade/smoke + + +// .980 shrapnel grenade + +/obj/item/ammo_casing/c980grenade/shrapnel + name = ".980 Tydhouer shrapnel grenade" + desc = "A large grenade shell that will detonate at a range given to it by the gun that fires it. Explodes into shrapnel on detonation." + + icon_state = "980_explosive" + + projectile_type = /obj/projectile/bullet/c980grenade/shrapnel + + custom_materials = AMMO_MATS_GRENADE_SHRAPNEL + advanced_print_req = TRUE + + harmful = TRUE + + +/obj/projectile/bullet/c980grenade/shrapnel + name = ".980 Tydhouer shrapnel grenade" + + /// What type of casing should we put inside the bullet to act as shrapnel later + var/casing_to_spawn = /obj/item/grenade/c980payload + + +/obj/projectile/bullet/c980grenade/shrapnel/fuse_activation(atom/target) + var/obj/item/grenade/shrapnel_maker = new casing_to_spawn(get_turf(src)) + + shrapnel_maker.detonate() + qdel(shrapnel_maker) + + playsound(src, 'monkestation/code/modules/blueshift/sounds/grenade_burst.ogg', 50, TRUE, -3) + + +/obj/item/ammo_box/c980grenade/shrapnel + name = "ammo box (.980 Tydhouer shrapnel)" + desc = "A box of four .980 Tydhouer shrapnel grenades. Instructions on the box indicate these are shrapnel rounds. Its also covered in hazard signs, odd." + + icon_state = "980box_explosive" + + ammo_type = /obj/item/ammo_casing/c980grenade/shrapnel + + +/obj/item/grenade/c980payload + shrapnel_type = /obj/projectile/bullet/shrapnel/short_range + shrapnel_radius = 2 + ex_dev = 0 + ex_heavy = 0 + ex_light = 0 + ex_flame = 0 + + +/obj/projectile/bullet/shrapnel/short_range + range = 2 + + +// .980 phosphor grenade + +/obj/item/ammo_casing/c980grenade/shrapnel/phosphor + name = ".980 Tydhouer phosphor grenade" + desc = "A large grenade shell that will detonate at a range given to it by the gun that fires it. Explodes into smoke and flames on detonation." + + icon_state = "980_gas_alternate" + + projectile_type = /obj/projectile/bullet/c980grenade/shrapnel/phosphor + + custom_materials = AMMO_MATS_GRENADE_INCENDIARY + + +/obj/projectile/bullet/c980grenade/shrapnel/phosphor + name = ".980 Tydhouer phosphor grenade" + + casing_to_spawn = /obj/item/grenade/c980payload/phosphor + + +/obj/projectile/bullet/c980grenade/shrapnel/phosphor/fuse_activation(atom/target) + . = ..() + + playsound(src, 'sound/effects/smoke.ogg', 50, TRUE, -3) + var/datum/effect_system/fluid_spread/smoke/quick/smoke = new + smoke.set_up(GRENADE_SMOKE_RANGE, holder = src, location = src) + smoke.start() + + +/obj/item/ammo_box/c980grenade/shrapnel/phosphor + name = "ammo box (.980 Tydhouer phosphor)" + desc = "A box of four .980 Tydhouer phosphor grenades. Instructions on the box indicate these are incendiary explosive rounds. Its also covered in hazard signs, odd." + + icon_state = "980box_gas_alternate" + + ammo_type = /obj/item/ammo_casing/c980grenade/shrapnel/phosphor + + +/obj/item/ammo_casing/shrapnel_exploder/phosphor + pellets = 8 + + projectile_type = /obj/projectile/bullet/incendiary/fire/backblast/short_range + + +/obj/item/grenade/c980payload/phosphor + shrapnel_type = /obj/projectile/bullet/incendiary/fire/backblast/short_range + + +/obj/projectile/bullet/incendiary/fire/backblast/short_range + range = 2 + + +// .980 tear gas grenade + +/obj/item/ammo_casing/c980grenade/riot + name = ".980 Tydhouer tear gas grenade" + desc = "A large grenade shell that will detonate at a range given to it by the gun that fires it. Bursts into a tear gas cloud." + + icon_state = "980_gas" + + projectile_type = /obj/projectile/bullet/c980grenade/riot + + +/obj/projectile/bullet/c980grenade/riot + name = ".980 Tydhouer tear gas grenade" + +/obj/projectile/bullet/c980grenade/riot/fuse_activation(atom/target) + playsound(src, 'monkestation/code/modules/blueshift/sounds/grenade_burst.ogg', 50, TRUE, -3) + playsound(src, 'sound/effects/smoke.ogg', 50, TRUE, -3) + var/datum/effect_system/fluid_spread/smoke/chem/smoke = new() + smoke.chemholder.add_reagent(/datum/reagent/consumable/condensedcapsaicin, 10) + smoke.set_up(GRENADE_SMOKE_RANGE, holder = src, location = src) + smoke.start() + + +/obj/item/ammo_box/c980grenade/riot + name = "ammo box (.980 Tydhouer tear gas)" + desc = "A box of four .980 Tydhouer tear gas grenades. Instructions on the box indicate these are smoke rounds that will make a small cloud of laser-dampening smoke on detonation." + + icon_state = "980box_gas" + + ammo_type = /obj/item/ammo_casing/c980grenade/riot + +#undef AMMO_MATS_GRENADE +#undef AMMO_MATS_GRENADE_SHRAPNEL +#undef AMMO_MATS_GRENADE_INCENDIARY + +#undef GRENADE_SMOKE_RANGE + +// .35 Sol Short +// Pistol caliber caseless round used almost exclusively by SolFed weapons + +/obj/item/ammo_casing/c35sol + name = ".35 Sol Short lethal bullet casing" + desc = "A SolFed standard caseless lethal pistol round." + + icon = 'monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/carwo_defense_systems/ammo.dmi' + icon_state = "35sol" + + caliber = CALIBER_SOL35SHORT + projectile_type = /obj/projectile/bullet/c35sol + + +/obj/item/ammo_casing/c35sol/Initialize(mapload) + . = ..() + + AddElement(/datum/element/caseless) + + +/obj/projectile/bullet/c35sol + name = ".35 Sol Short bullet" + damage = 20 + + wound_bonus = -5 // Normal bullets are 20 + bare_wound_bonus = 5 + embed_falloff_tile = -4 + + +/obj/item/ammo_box/c35sol + name = "ammo box (.35 Sol Short lethal)" + desc = "A box of .35 Sol Short pistol rounds, holds twenty-four rounds." + + icon = 'monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/carwo_defense_systems/ammo.dmi' + icon_state = "35box" + + multiple_sprites = AMMO_BOX_FULL_EMPTY + + w_class = WEIGHT_CLASS_NORMAL + + caliber = CALIBER_SOL35SHORT + ammo_type = /obj/item/ammo_casing/c35sol + max_ammo = 24 + + +// .35 Sol's equivalent to a rubber bullet + +/obj/item/ammo_casing/c35sol/incapacitator + name = ".35 Sol Short incapacitator bullet casing" + desc = "A SolFed standard caseless less-lethal pistol round. Exhausts targets on hit, has a tendency to bounce off walls at shallow angles." + + icon_state = "35sol_disabler" + + projectile_type = /obj/projectile/bullet/c35sol/incapacitator + harmful = FALSE + + +/obj/projectile/bullet/c35sol/incapacitator + name = ".35 Sol Short incapacitator bullet" + damage = 5 + stamina = 30 + + wound_bonus = -40 + bare_wound_bonus = -20 + + weak_against_armour = TRUE + + // The stats of the ricochet are a nerfed version of detective revolver rubber ammo + // This is due to the fact that there's a lot more rounds fired quickly from weapons that use this, over a revolver + ricochet_auto_aim_angle = 30 + ricochet_auto_aim_range = 5 + ricochets_max = 4 + ricochet_incidence_leeway = 50 + ricochet_chance = 130 + ricochet_decay_damage = 0.8 + + shrapnel_type = null + sharpness = NONE + embedding = null + + +/obj/item/ammo_box/c35sol/incapacitator + name = "ammo box (.35 Sol Short incapacitator)" + desc = "A box of .35 Sol Short pistol rounds, holds twenty-four rounds. The blue stripe indicates this should hold less-lethal ammunition." + + icon_state = "35box_disabler" + + ammo_type = /obj/item/ammo_casing/c35sol/incapacitator + + +// .35 Sol ripper, similar to the detective revolver's dumdum rounds, causes slash wounds and is weak to armor + +/obj/item/ammo_casing/c35sol/ripper + name = ".35 Sol Short ripper bullet casing" + desc = "A SolFed standard caseless ripper pistol round. Causes slashing wounds on targets, but is weak to armor." + + icon_state = "35sol_shrapnel" + projectile_type = /obj/projectile/bullet/c35sol/ripper + + custom_materials = AMMO_MATS_RIPPER + advanced_print_req = TRUE + + +/obj/projectile/bullet/c35sol/ripper + name = ".35 Sol ripper bullet" + damage = 15 + + weak_against_armour = TRUE + + sharpness = SHARP_EDGED + + wound_bonus = 20 + bare_wound_bonus = 20 + + embedding = list( + embed_chance = 75, + fall_chance = 3, + jostle_chance = 4, + ignore_throwspeed_threshold = TRUE, + pain_stam_pct = 0.4, + pain_mult = 5, + jostle_pain_mult = 6, + rip_time = 1 SECONDS, + ) + + embed_falloff_tile = -15 + + +/obj/item/ammo_box/c35sol/ripper + name = "ammo box (.35 Sol Short ripper)" + desc = "A box of .35 Sol Short pistol rounds, holds twenty-four rounds. The purple stripe indicates this should hold hollowpoint-like ammunition." + + icon_state = "35box_shrapnel" + + ammo_type = /obj/item/ammo_casing/c35sol/ripper + +// .40 Sol Long +// Rifle caliber caseless ammo that kills people good + +/obj/item/ammo_casing/c40sol + name = ".40 Sol Long lethal bullet casing" + desc = "A SolFed standard caseless lethal rifle round." + + icon = 'monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/carwo_defense_systems/ammo.dmi' + icon_state = "40sol" + + caliber = CALIBER_SOL40LONG + projectile_type = /obj/projectile/bullet/c40sol + + +/obj/item/ammo_casing/c40sol/Initialize(mapload) + . = ..() + + AddElement(/datum/element/caseless) + + +/obj/projectile/bullet/c40sol + name = ".40 Sol Long bullet" + damage = 20 + + wound_bonus = 10 + bare_wound_bonus = 20 + + +/obj/item/ammo_box/c40sol + name = "ammo box (.40 Sol Long lethal)" + desc = "A box of .40 Sol Long rifle rounds, holds thirty bullets." + + icon = 'monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/carwo_defense_systems/ammo.dmi' + icon_state = "40box" + + multiple_sprites = AMMO_BOX_FULL_EMPTY + + w_class = WEIGHT_CLASS_NORMAL + + caliber = CALIBER_SOL40LONG + ammo_type = /obj/item/ammo_casing/c40sol + max_ammo = 30 + + +// .40 Sol fragmentation rounds, embeds shrapnel in the target almost every time at close to medium range. Teeeechnically less lethals. + +/obj/item/ammo_casing/c40sol/fragmentation + name = ".40 Sol Long fragmentation bullet casing" + desc = "A SolFed standard caseless fragmentation rifle round. Shatters upon impact, ejecting sharp shrapnel that can potentially incapacitate targets." + + icon_state = "40sol_disabler" + + projectile_type = /obj/projectile/bullet/c40sol/fragmentation + + advanced_print_req = TRUE + + harmful = FALSE + + +/obj/projectile/bullet/c40sol/fragmentation + name = ".40 Sol Long fragmentation bullet" + damage = 10 + stamina = 30 + + weak_against_armour = TRUE + + sharpness = SHARP_EDGED + wound_bonus = 0 + bare_wound_bonus = 10 + + shrapnel_type = /obj/item/shrapnel/stingball + embedding = list( + embed_chance = 50, + fall_chance = 5, + jostle_chance = 5, + ignore_throwspeed_threshold = TRUE, + pain_stam_pct = 0.4, + pain_mult = 2, + jostle_pain_mult = 3, + rip_time = 0.5 SECONDS, + ) + + embed_falloff_tile = -5 + + +/obj/item/ammo_box/c40sol/fragmentation + name = "ammo box (.40 Sol Long fragmentation)" + desc = "A box of .40 Sol Long rifle rounds, holds thirty bullets. The blue stripe indicates this should hold less lethal ammunition." + + icon_state = "40box_disabler" + + ammo_type = /obj/item/ammo_casing/c40sol/fragmentation + + +// .40 Sol match grade, bounces a lot, and if there's less than 20 bullet armor on wherever these hit, it'll go completely through the target and out the other side + +/obj/item/ammo_casing/c40sol/pierce + name = ".40 Sol Long match bullet casing" + desc = "A SolFed standard caseless match grade rifle round. Fires at a higher pressure and thus fires slightly faster projectiles. \ + Rumors say you can do sick ass wall bounce trick shots with these, though the official suggestion is to just shoot your target and \ + not the wall next to them." + + icon_state = "40sol_pierce" + + projectile_type = /obj/projectile/bullet/c40sol/pierce + + custom_materials = AMMO_MATS_AP + advanced_print_req = TRUE + + +/obj/projectile/bullet/c40sol/pierce + name = ".40 Sol match bullet" + + icon_state = "gaussphase" + + speed = 0.5 + + damage = 15 + armour_penetration = 20 + + wound_bonus = -30 + bare_wound_bonus = -10 + + ricochets_max = 2 + ricochet_chance = 80 + ricochet_auto_aim_range = 4 + ricochet_incidence_leeway = 65 + + projectile_piercing = PASSMOB + + +/obj/projectile/bullet/c40sol/pierce/on_hit(atom/target, blocked = 0, pierce_hit) + if(isliving(target)) + var/mob/living/poor_sap = target + + // If the target mob has enough armor to stop the bullet, or the bullet has already gone through two people, stop it on this hit + if((poor_sap.run_armor_check(def_zone, BULLET, "", "", silent = TRUE) > 20) || (pierces > 2)) + projectile_piercing = NONE + + if(damage > 10) // Lets just be safe with this one + damage -= 5 + armour_penetration -= 10 + + return ..() + + +/obj/item/ammo_box/c40sol/pierce + name = "ammo box (.40 Sol Long match)" + desc = "A box of .40 Sol Long rifle rounds, holds thirty bullets. The yellow stripe indicates this should hold high performance ammuniton." + + icon_state = "40box_pierce" + + ammo_type = /obj/item/ammo_casing/c40sol/pierce + + +// .40 Sol incendiary + +/obj/item/ammo_casing/c40sol/incendiary + name = ".40 Sol Long incendiary bullet casing" + desc = "A SolFed standard caseless incendiary rifle round. Leaves no flaming trail, only igniting targets on impact." + + icon_state = "40sol_flame" + + projectile_type = /obj/projectile/bullet/c40sol/incendiary + + custom_materials = AMMO_MATS_TEMP + advanced_print_req = TRUE + + +/obj/projectile/bullet/c40sol/incendiary + name = ".40 Sol Long incendiary bullet" + icon_state = "redtrac" + + damage = 15 + + /// How many firestacks the bullet should impart upon a target when impacting + var/firestacks_to_give = 1 + + +/obj/projectile/bullet/c40sol/incendiary/on_hit(atom/target, blocked = 0, pierce_hit) + . = ..() + + if(iscarbon(target)) + var/mob/living/carbon/gaslighter = target + gaslighter.adjust_fire_stacks(firestacks_to_give) + gaslighter.ignite_mob() + + +/obj/item/ammo_box/c40sol/incendiary + name = "ammo box (.40 Sol Long incendiary)" + desc = "A box of .40 Sol Long rifle rounds, holds thirty bullets. The orange stripe indicates this should hold incendiary ammunition." + + icon_state = "40box_flame" + + ammo_type = /obj/item/ammo_casing/c40sol/incendiary + +/* +* .310 Strilka +*/ + +/obj/item/ammo_casing/strilka310/rubber + name = ".310 Strilka rubber bullet casing" + desc = "A .310 rubber bullet casing. Casing is a bit of a fib, there isn't one.\ +

\ + RUBBER: Less than lethal ammo. Deals both stamina damage and regular damage." + + icon = 'monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/xhihao_light_arms/ammo.dmi' + icon_state = "310-casing-rubber" + + projectile_type = /obj/projectile/bullet/strilka310/rubber + harmful = FALSE + +/obj/projectile/bullet/strilka310/rubber + name = ".310 rubber bullet" + damage = 10 + stamina = 55 + ricochets_max = 5 + ricochet_incidence_leeway = 0 + ricochet_chance = 130 + ricochet_decay_damage = 0.7 + shrapnel_type = null + sharpness = NONE + embedding = null + +/obj/item/ammo_casing/strilka310/ap + name = ".310 Strilka armor-piercing bullet casing" + desc = "A .310 armor-piercing bullet casing. Note, does not actually contain a casing.\ +

\ + ARMOR-PIERCING: Improved armor-piercing capabilities, in return for less outright damage." + + icon = 'monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/xhihao_light_arms/ammo.dmi' + icon_state = "310-casing-ap" + + projectile_type = /obj/projectile/bullet/strilka310/ap + custom_materials = AMMO_MATS_AP + advanced_print_req = TRUE + +/obj/projectile/bullet/strilka310/ap + name = ".310 armor-piercing bullet" + damage = 50 + armour_penetration = 60 + +// .585 Trappiste +// High caliber round used in large pistols and revolvers + +/obj/item/ammo_casing/c585trappiste + name = ".585 Trappiste lethal bullet casing" + desc = "A white polymer cased high caliber round commonly used in handguns." + + icon = 'monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/trappiste_fabriek/ammo.dmi' + icon_state = "585trappiste" + + caliber = CALIBER_585TRAPPISTE + projectile_type = /obj/projectile/bullet/c585trappiste + +/obj/projectile/bullet/c585trappiste + name = ".585 Trappiste bullet" + damage = 25 + wound_bonus = 0 // Normal bullets are 20 + +/obj/item/ammo_box/c585trappiste + name = "ammo box (.585 Trappiste lethal)" + desc = "A box of .585 Trappiste pistol rounds, holds twelve cartridges." + + icon = 'monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/trappiste_fabriek/ammo.dmi' + icon_state = "585box" + + multiple_sprites = AMMO_BOX_FULL_EMPTY + + w_class = WEIGHT_CLASS_NORMAL + + caliber = CALIBER_585TRAPPISTE + ammo_type = /obj/item/ammo_casing/c585trappiste + max_ammo = 12 + +// .585 Trappiste equivalent to a rubber bullet + +/obj/item/ammo_casing/c585trappiste/incapacitator + name = ".585 Trappiste flathead bullet casing" + desc = "A white polymer cased high caliber round with a relatively soft, flat tip. Designed to flatten against targets and usually not penetrate on impact." + + icon_state = "585trappiste_disabler" + + projectile_type = /obj/projectile/bullet/c585trappiste/incapacitator + harmful = FALSE + +/obj/projectile/bullet/c585trappiste/incapacitator + name = ".585 Trappiste flathead bullet" + damage = 9 + stamina = 40 + wound_bonus = 10 + + weak_against_armour = TRUE + + shrapnel_type = null + sharpness = NONE + embedding = null + +/obj/item/ammo_box/c585trappiste/incapacitator + name = "ammo box (.585 Trappiste flathead)" + desc = "A box of .585 Trappiste pistol rounds, holds twelve cartridges. The blue stripe indicates that it should hold less lethal rounds." + + icon_state = "585box_disabler" + + ammo_type = /obj/item/ammo_casing/c585trappiste/incapacitator + +// .585 hollowpoint, made to cause nasty wounds + +/obj/item/ammo_casing/c585trappiste/hollowpoint + name = ".585 Trappiste hollowhead bullet casing" + desc = "A white polymer cased high caliber round with a hollowed tip. Designed to cause as much damage on impact to fleshy targets as possible." + + icon_state = "585trappiste_shrapnel" + projectile_type = /obj/projectile/bullet/c585trappiste/hollowpoint + + advanced_print_req = TRUE + +/obj/projectile/bullet/c585trappiste/hollowpoint + name = ".585 Trappiste hollowhead bullet" + damage = 25 + + weak_against_armour = TRUE + + wound_bonus = 30 + bare_wound_bonus = 40 + +/obj/item/ammo_box/c585trappiste/hollowpoint + name = "ammo box (.585 Trappiste hollowhead)" + desc = "A box of .585 Trappiste pistol rounds, holds twelve cartridges. The purple stripe indicates that it should hold hollowpoint-like rounds." + + icon_state = "585box_shrapnel" + + ammo_type = /obj/item/ammo_casing/c585trappiste/hollowpoint + +// .27-54 Cesarzowa +// Small caliber pistol round meant to be fired out of something that shoots real quick like + +/obj/item/ammo_casing/c27_54cesarzowa + name = ".27-54 Cesarzowa piercing bullet casing" + desc = "A purple-bodied caseless cartridge home to a small projectile with a fine point." + + icon = 'monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/szot_dynamica/ammo.dmi' + icon_state = "27-54cesarzowa" + + caliber = CALIBER_CESARZOWA + projectile_type = /obj/projectile/bullet/c27_54cesarzowa + +/obj/item/ammo_casing/c27_54cesarzowa/Initialize(mapload) + . = ..() + + AddElement(/datum/element/caseless) + +/obj/projectile/bullet/c27_54cesarzowa + name = ".27-54 Cesarzowa piercing bullet" + damage = 15 + armour_penetration = 30 + wound_bonus = -30 + bare_wound_bonus = -10 + +/obj/item/ammo_box/c27_54cesarzowa + name = "ammo box (.27-54 Cesarzowa piercing)" + desc = "A box of .27-54 Cesarzowa piercing pistol rounds, holds eighteen cartridges." + + icon = 'monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/szot_dynamica/ammo.dmi' + icon_state = "27-54cesarzowa_box" + + multiple_sprites = AMMO_BOX_FULL_EMPTY + + w_class = WEIGHT_CLASS_NORMAL + + caliber = CALIBER_CESARZOWA + ammo_type = /obj/item/ammo_casing/c27_54cesarzowa + max_ammo = 18 + +// .27-54 Cesarzowa rubber +// Small caliber pistol round meant to be fired out of something that shoots real quick like, this one is less lethal + +/obj/item/ammo_casing/c27_54cesarzowa/rubber + name = ".27-54 Cesarzowa rubber bullet casing" + desc = "A purple-bodied caseless cartridge home to a small projectile with a flat rubber tip." + + icon_state = "27-54cesarzowa_rubber" + + projectile_type = /obj/projectile/bullet/c27_54cesarzowa/rubber + +/obj/projectile/bullet/c27_54cesarzowa/rubber + name = ".27-54 Cesarzowa rubber bullet" + stamina = 30 + damage = 6 + weak_against_armour = TRUE + wound_bonus = -30 + bare_wound_bonus = -10 + +/obj/item/ammo_box/c27_54cesarzowa/rubber + name = "ammo box (.27-54 Cesarzowa rubber)" + desc = "A box of .27-54 Cesarzowa rubber pistol rounds, holds eighteen cartridges." + + icon_state = "27-54cesarzowa_box_rubber" + + ammo_type = /obj/item/ammo_casing/c27_54cesarzowa/rubber + +// Casing and projectile for the plasma thrower + +/obj/item/ammo_casing/energy/laser/plasma_glob + projectile_type = /obj/projectile/beam/laser/plasma_glob + fire_sound = 'monkestation/code/modules/blueshift/sounds/incinerate.ogg' + +/obj/item/ammo_casing/energy/laser/plasma_glob/Initialize(mapload) + . = ..() + + AddElement(/datum/element/caseless) + +/obj/projectile/beam/laser/plasma_glob + name = "plasma globule" + icon = 'monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/szot_dynamica/ammo.dmi' + icon_state = "plasma_glob" + damage = 10 + speed = 1.5 + bare_wound_bonus = 55 // Lasers have a wound bonus of 40, this is a bit higher + wound_bonus = -50 // However we do not very much against armor + pass_flags = PASSTABLE | PASSGRILLE // His ass does NOT pass through glass! + weak_against_armour = TRUE + +// Various ammo boxes for .310 + +/obj/item/ammo_box/c310_cargo_box + name = "ammo box (.310 Strilka lethal)" + desc = "A box of .310 Strilka lethal rifle rounds, holds ten cartridges." + + icon = 'monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/szot_dynamica/ammo.dmi' + icon_state = "310_box" + + multiple_sprites = AMMO_BOX_FULL_EMPTY + + w_class = WEIGHT_CLASS_NORMAL + + caliber = CALIBER_STRILKA310 + ammo_type = /obj/item/ammo_casing/strilka310 + max_ammo = 10 + +// Rubber + +/obj/item/ammo_box/c310_cargo_box/rubber + name = "ammo box (.310 Strilka rubber)" + desc = "A box of .310 Strilka rubber rifle rounds, holds ten cartridges." + + icon_state = "310_box_rubber" + + ammo_type = /obj/item/ammo_casing/strilka310/rubber + +// AP + +/obj/item/ammo_box/c310_cargo_box/piercing + name = "ammo box (.310 Strilka piercing)" + desc = "A box of .310 Strilka piercing rifle rounds, holds ten cartridges." + + icon_state = "310_box_ap" + + ammo_type = /obj/item/ammo_casing/strilka310/ap + +// AMR bullet + +/obj/item/ammo_casing/p60strela + name = ".60 Strela caseless cartridge" + desc = "A massive block of plasma-purple propellant with an equally massive round sticking out the top of it. \ + While good at killing a man, you'll find most effective use out of destroying things with it." + icon = 'monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/szot_dynamica/ammo.dmi' + icon_state = "amr_bullet" + caliber = CALIBER_60STRELA + projectile_type = /obj/projectile/bullet/p60strela + +/obj/item/ammo_casing/p60strela/Initialize(mapload) + . = ..() + AddElement(/datum/element/caseless) + +/obj/projectile/bullet/p60strela // The funny thing is, these are wild but you only get three of them a magazine + name =".60 Strela bullet" + icon_state = "gaussphase" + speed = 0.4 + damage = 50 + armour_penetration = 50 + wound_bonus = 20 + bare_wound_bonus = 30 + demolition_mod = 1.8 + /// How much damage we add to things that are weak to this bullet + var/anti_materiel_damage_addition = 30 + +/obj/projectile/bullet/p60strela/Initialize(mapload) + . = ..() + // We do 80 total damage to anything robotic, namely borgs, and robotic simplemobs + AddElement(/datum/element/bane, target_type = /mob/living, mob_biotypes = MOB_ROBOTIC, damage_multiplier = 0, added_damage = anti_materiel_damage_addition) + +/obj/item/ammo_box/magazine/m10mm/rifle + name = "rifle magazine (10mm)" + desc = "A well-worn magazine fitted for the surplus rifle." + icon_state = "75-full" + base_icon_state = "75" + ammo_type = /obj/item/ammo_casing/c10mm + max_ammo = 10 + +/obj/item/ammo_box/magazine/m10mm/rifle/update_icon_state() + . = ..() + icon_state = "[base_icon_state]-[LAZYLEN(stored_ammo) ? "full" : "empty"]" + +/obj/item/ammo_box/magazine/m223 + name = "toploader magazine (.223)" + icon_state = ".223" + ammo_type = /obj/item/ammo_casing/a223 + caliber = CALIBER_A223 + max_ammo = 30 + multiple_sprites = AMMO_BOX_FULL_EMPTY + +/obj/item/ammo_box/magazine/m223/phasic + name = "toploader magazine (.223 Phasic)" + ammo_type = /obj/item/ammo_casing/a223/phasic + +/obj/item/ammo_box/a40mm/rubber + name = "ammo box (40mm rubber slug)" + ammo_type = /obj/item/ammo_casing/a40mm/rubber + +/obj/item/ammo_box/rocket + name = "rocket bouquet (84mm HE)" + icon_state = "rocketbundle" + ammo_type = /obj/item/ammo_casing/rocket + max_ammo = 3 + multiple_sprites = AMMO_BOX_PER_BULLET + +/obj/item/ammo_box/rocket/can_load(mob/user) + return FALSE + +/obj/item/ammo_box/strilka310 + name = "stripper clip (.310 Strilka)" + desc = "A stripper clip." + icon_state = "310_strip" + ammo_type = /obj/item/ammo_casing/strilka310 + max_ammo = 5 + caliber = CALIBER_STRILKA310 + multiple_sprites = AMMO_BOX_PER_BULLET + +/obj/item/ammo_box/strilka310/surplus + name = "stripper clip (.310 Surplus)" + ammo_type = /obj/item/ammo_casing/strilka310/surplus + +/obj/item/ammo_box/n762 + name = "ammo box (7.62x38mmR)" + icon_state = "10mmbox" + ammo_type = /obj/item/ammo_casing/n762 + max_ammo = 14 + +/obj/item/ammo_box + w_class = WEIGHT_CLASS_NORMAL + +/obj/item/ammo_box/magazine + w_class = WEIGHT_CLASS_SMALL + +/obj/item/ammo_box/strilka310 + w_class = WEIGHT_CLASS_SMALL + +/obj/item/ammo_box/a357 + w_class = WEIGHT_CLASS_SMALL + +/obj/item/ammo_box/c38 + w_class = WEIGHT_CLASS_SMALL + +/obj/item/ammo_box/c9mm/ap + name = "ammo box (9mm AP)" + ammo_type = /obj/item/ammo_casing/c9mm/ap + +/obj/item/ammo_box/c9mm/hp + name = "ammo box (9mm HP)" + ammo_type = /obj/item/ammo_casing/c9mm/hp + +/obj/item/ammo_box/c9mm/fire + name = "ammo box (9mm incendiary)" + ammo_type = /obj/item/ammo_casing/c9mm/fire + +/obj/item/ammo_box/c10mm/ap + name = "ammo box (10mm AP)" + ammo_type = /obj/item/ammo_casing/c10mm/ap + max_ammo = 20 + +/obj/item/ammo_box/c10mm/hp + name = "ammo box (10mm HP)" + ammo_type = /obj/item/ammo_casing/c10mm/hp + max_ammo = 20 + +/obj/item/ammo_box/c10mm/fire + name = "ammo box (10mm incendiary)" + ammo_type = /obj/item/ammo_casing/c10mm/fire + max_ammo = 20 + +/obj/item/ammo_box/c46x30mm + name = "ammo box (4.6x30mm)" + icon = 'monkestation/code/modules/blueshift/icons/ammo.dmi' + icon_state = "ammo_46" + ammo_type = /obj/item/ammo_casing/c46x30mm + max_ammo = 20 + +/obj/item/ammo_box/c46x30mm/ap + name = "ammo box (4.6x30mm AP)" + ammo_type = /obj/item/ammo_casing/c46x30mm/ap + +/obj/item/ammo_box/c46x30mm/rubber + name = "ammo box (4.6x30mm rubber)" + ammo_type = /obj/item/ammo_casing/c46x30mm/rubber + +/obj/item/ammo_box/advanced/s12gauge + name = "Slug ammo box" + desc = "A box of 15 slug shells. Large, singular shots that pack a punch." + icon = 'monkestation/code/modules/blueshift/icons/shotbox.dmi' + icon_state = "slug" + ammo_type = /obj/item/ammo_casing/shotgun + max_ammo = 15 + multitype = FALSE // if you enable this and set the box's caliber var to CALIBER_SHOTGUN (at time of writing, "shotgun"), then you can have the fabled any-ammo shellbox + +/obj/item/ammo_box/advanced/s12gauge/buckshot + name = "Buckshot ammo box" + desc = "A box of 15 buckshot shells. These have a modest spread of weaker projectiles." + icon_state = "buckshot" + ammo_type = /obj/item/ammo_casing/shotgun/buckshot + max_ammo = 15 + +/obj/item/ammo_box/advanced/s12gauge/rubber + name = "Rubbershot ammo box" + desc = "A box of 15 rubbershot shells. These have a modest spread of weaker, less-lethal projectiles." + icon_state = "rubber" + ammo_type = /obj/item/ammo_casing/shotgun/rubbershot + max_ammo = 15 + +/obj/item/ammo_box/advanced/s12gauge/bean + name = "Beanbag Slug ammo box" + desc = "A box of 15 beanbag slug shells. These are large, singular beanbags that pack a less-lethal punch." + icon_state = "bean" + ammo_type = /obj/item/ammo_casing/shotgun/beanbag + max_ammo = 15 + +/obj/item/ammo_box/advanced/s12gauge/magnum + name = "Magnum blockshot ammo box" + desc = "A box of 15 magnum blockshot shells. The size of the pellet is larger in diameter than the typical shot, but there are less of them inside each shell." + icon_state = "magnum" + ammo_type = /obj/item/ammo_casing/shotgun/magnum + max_ammo = 15 + +/obj/item/ammo_box/advanced/s12gauge/express + name = "Express pelletshot ammo box" + desc = "A box of 15 express pelletshot shells. The size of the pellet is smaller in diameter than the typical shot, but there are more of them inside each shell." + icon_state = "express" + ammo_type = /obj/item/ammo_casing/shotgun/express + max_ammo = 15 + +/obj/item/ammo_box/advanced/s12gauge/hunter + name = "Hunter slug ammo box" + desc = "A box of 15 hunter slug shells. These shotgun slugs excel at damaging the local fauna." + icon_state = "hunter" + ammo_type = /obj/item/ammo_casing/shotgun/hunter + max_ammo = 15 + +/obj/item/ammo_box/advanced/s12gauge/flechette + name = "Flechette ammo box" + desc = "A box of 15 flechette shells. Each shell contains a small group of tumbling blades that excel at causing terrible wounds." + icon_state = "flechette" + ammo_type = /obj/item/ammo_casing/shotgun/flechette + max_ammo = 15 + +/obj/item/ammo_box/advanced/s12gauge/beehive + name = "Hornet's nest ammo box" + desc = "A box of 15 hornet's nest shells. These are less-lethal shells that will bounce off walls and direct themselves toward nearby targets." + icon_state = "beehive" + ammo_type = /obj/item/ammo_casing/shotgun/beehive + max_ammo = 15 + +/obj/item/ammo_box/advanced/s12gauge/antitide + name = "Stardust ammo box" + desc = "A box of 15 express pelletshot shells. These are less-lethal and will embed in targets, causing pain on movement." + icon_state = "antitide" + ammo_type = /obj/item/ammo_casing/shotgun/antitide + max_ammo = 15 + +/obj/item/ammo_box/advanced/s12gauge/incendiary + name = "Incendiary Slug ammo box" + desc = "A box of 15 incendiary slug shells. These will ignite targets and leave a trail of fire behind them." + icon_state = "incendiary" + ammo_type = /obj/item/ammo_casing/shotgun/incendiary + max_ammo = 15 + +/obj/item/ammo_box/advanced/s12gauge/honkshot + name = "Confetti Honkshot ammo box" + desc = "A box of 35 shotgun shells." + icon_state = "honk" + ammo_type = /obj/item/ammo_casing/shotgun/honkshot + max_ammo = 35 + +#define AMMO_MATS_SHOTGUN list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 4) // not quite as thick as a half-sheet + +#define AMMO_MATS_SHOTGUN_FLECH list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 2,\ + /datum/material/glass = SMALL_MATERIAL_AMOUNT * 2) + +#define AMMO_MATS_SHOTGUN_HIVE list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 2,\ + /datum/material/plasma = SMALL_MATERIAL_AMOUNT * 1,\ + /datum/material/silver = SMALL_MATERIAL_AMOUNT * 1) + +#define AMMO_MATS_SHOTGUN_TIDE list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 2,\ + /datum/material/plasma = SMALL_MATERIAL_AMOUNT * 1,\ + /datum/material/gold = SMALL_MATERIAL_AMOUNT * 1) + +#define AMMO_MATS_SHOTGUN_PLASMA list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 2,\ + /datum/material/plasma = SMALL_MATERIAL_AMOUNT * 2) + +/obj/item/ammo_casing/shotgun + icon = 'monkestation/code/modules/blueshift/icons/shotshells.dmi' + desc = "A 12 gauge iron slug." + custom_materials = AMMO_MATS_SHOTGUN + +// THE BELOW TWO SLUGS ARE NOTED AS ADMINONLY AND HAVE ***EIGHTY*** WOUND BONUS. NOT BARE WOUND BONUS. FLAT WOUND BONUS. +/obj/item/ammo_casing/shotgun/executioner + name = "expanding shotgun slug" + desc = "A 12 gauge fragmenting slug purpose-built to annihilate flesh on impact." + can_be_printed = FALSE // noted as adminonly in code/modules/projectiles/projectile/bullets/shotgun.dm. + +/obj/item/ammo_casing/shotgun/pulverizer + name = "pulverizer shotgun slug" + desc = "A 12 gauge uranium slug purpose-built to break bones on impact." + can_be_printed = FALSE // noted as adminonly in code/modules/projectiles/projectile/bullets/shotgun.dm + +/obj/item/ammo_casing/shotgun/incendiary + name = "incendiary slug" + desc = "A 12 gauge magnesium slug meant for \"setting shit on fire and looking cool while you do it\".\ +

\ + INCENDIARY: Leaves a trail of fire when shot, sets targets aflame." + advanced_print_req = TRUE + custom_materials = AMMO_MATS_SHOTGUN_PLASMA + +/obj/item/ammo_casing/shotgun/techshell + can_be_printed = FALSE // techshell... casing! so not really usable on its own but if you're gonna make these go raid a seclathe. + +/obj/item/ammo_casing/shotgun/improvised + can_be_printed = FALSE // this is literally made out of scrap why would you use this if you have a perfectly good ammolathe + +/obj/item/ammo_casing/shotgun/dart/bioterror + can_be_printed = FALSE // PRELOADED WITH TERROR CHEMS MAYBE LET'S NOT + +/obj/item/ammo_casing/shotgun/dragonsbreath + can_be_printed = FALSE // techshell. assumed intended balance being a pain to assemble + +/obj/item/ammo_casing/shotgun/stunslug + name = "taser slug" + desc = "A 12 gauge silver slug with electrical microcomponents meant to incapacitate targets." + can_be_printed = FALSE // comment out if you want rocket tag shotgun ammo being printable + +/obj/item/ammo_casing/shotgun/meteorslug + name = "meteor slug" + desc = "A 12 gauge shell rigged with CMC technology which launches a heap of matter with great force when fired.\ +

\ + METEOR: Fires a meteor-like projectile that knocks back movable objects like people and airlocks." + can_be_printed = FALSE // techshell. assumed intended balance being a pain to assemble + +/obj/item/ammo_casing/shotgun/frag12 + name = "FRAG-12 slug" + desc = "A 12 gauge shell containing high explosives designed for defeating some barriers and light vehicles, disrupting IEDs, or intercepting assistants.\ +

\ + HIGH EXPLOSIVE: Explodes on impact." + can_be_printed = FALSE // techshell. assumed intended balance being a pain to assemble + +/obj/item/ammo_casing/shotgun/pulseslug + can_be_printed = FALSE // techshell. assumed intended balance being a pain to assemble + +/obj/item/ammo_casing/shotgun/laserslug + can_be_printed = FALSE // techshell. assumed intended balance being a pain to assemble + +/obj/item/ammo_casing/shotgun/ion + can_be_printed = FALSE // techshell. assumed intended balance being a pain to assemble + +/obj/item/ammo_casing/shotgun/incapacitate + name = "hornet's nest shell" + desc = "A 12 gauge shell filled with some kind of material that excels at incapacitating targets. Contains a lot of pellets, \ + sacrificing individual pellet strength for sheer stopping power in what's best described as \"spitting distance\".\ +

\ + HORNET'S NEST: Fire an overwhelming amount of projectiles in a single shot." + can_be_printed = FALSE + +/obj/item/ammo_casing/shotgun/buckshot + name = "buckshot shell" + desc = "A 12 gauge buckshot shell." + icon_state = "gshell" + projectile_type = /obj/projectile/bullet/pellet/shotgun_buckshot + pellets = 8 // 8 * 6 for 48 damage if every pellet hits, we want to keep lethal shells ~50 damage + variance = 25 + +/obj/projectile/bullet/pellet/shotgun_buckshot + name = "buckshot pellet" + damage = 6 + +/obj/item/ammo_casing/shotgun/rubbershot + name = "rubber shot" + desc = "A shotgun casing filled with densely-packed rubber balls, used to incapacitate crowds from a distance." + icon_state = "rshell" + projectile_type = /obj/projectile/bullet/pellet/shotgun_rubbershot + pellets = 6 // 6 * 10 for 60 stamina damage, + some small amount of brute, we want to keep less lethal shells ~60 + variance = 20 + harmful = FALSE + +/obj/projectile/bullet/pellet/shotgun_rubbershot + stamina = 10 + +/obj/item/ammo_casing/shotgun/magnum + name = "magnum blockshot shell" + desc = "A 12 gauge shell that fires fewer, larger pellets than buckshot. A favorite of SolFed anti-piracy enforcers, \ + especially against the likes of vox." + icon_state = "magshell" + projectile_type = /obj/projectile/bullet/pellet/shotgun_buckshot/magnum + pellets = 4 // Half as many pellets for twice the damage each pellet, same overall damage as buckshot + variance = 20 + advanced_print_req = TRUE + +/obj/projectile/bullet/pellet/shotgun_buckshot/magnum + name = "magnum blockshot pellet" + damage = 12 + wound_bonus = 10 + +/obj/projectile/bullet/pellet/shotgun_buckshot/magnum/Initialize(mapload) + . = ..() + transform = transform.Scale(1.25, 1.25) + +/obj/item/ammo_casing/shotgun/express + name = "express pelletshot shell" + desc = "A 12 gauge shell that fires more and smaller projectiles than buckshot. Considered taboo to speak about \ + openly near teshari, for reasons you would be personally blessed to not know at least some of." + icon_state = "expshell" + projectile_type = /obj/projectile/bullet/pellet/shotgun_buckshot/express + pellets = 12 // 1.3x The pellets for 0.6x the damage, same overall damage as buckshot + variance = 30 // Slightly wider spread than buckshot + +/obj/projectile/bullet/pellet/shotgun_buckshot/express + name = "express buckshot pellet" + damage = 4 + wound_bonus = 0 + +/obj/projectile/bullet/pellet/shotgun_buckshot/express/Initialize(mapload) + . = ..() + transform = transform.Scale(0.75, 0.75) + +/obj/item/ammo_casing/shotgun/flechette + name = "flechette shell" + desc = "A 12 gauge flechette shell that specializes in ripping unarmored targets apart." + icon_state = "fshell" + projectile_type = /obj/projectile/bullet/pellet/shotgun_buckshot/flechette + pellets = 8 //8 x 6 = 48 Damage Potential + variance = 25 + custom_materials = AMMO_MATS_SHOTGUN_FLECH + advanced_print_req = TRUE + +/obj/projectile/bullet/pellet/shotgun_buckshot/flechette + name = "flechette" + icon = 'monkestation/code/modules/blueshift/icons/projectiles.dmi' + icon_state = "flechette" + damage = 6 + wound_bonus = 10 + bare_wound_bonus = 20 + sharpness = SHARP_EDGED //Did you knew flechettes fly sideways into people + +/obj/projectile/bullet/pellet/shotgun_buckshot/flechette/Initialize(mapload) + . = ..() + SpinAnimation() + +/obj/item/ammo_casing/shotgun/beehive + name = "hornet shell" + desc = "A less-lethal 12 gauge shell that fires four pellets capable of bouncing off nearly any surface \ + and re-aiming themselves toward the nearest target. They will, however, go for any target nearby." + icon_state = "cnrshell" + projectile_type = /obj/projectile/bullet/pellet/shotgun_buckshot/beehive + pellets = 4 + variance = 15 + fire_sound = 'sound/weapons/taser.ogg' + harmful = FALSE + custom_materials = AMMO_MATS_SHOTGUN_HIVE + advanced_print_req = TRUE + +/obj/projectile/bullet/pellet/shotgun_buckshot/beehive + name = "hornet flechette" + icon = 'monkestation/code/modules/blueshift/icons/projectiles.dmi' + icon_state = "hornet" + damage = 4 + stamina = 15 + wound_bonus = -5 + bare_wound_bonus = 5 + wound_falloff_tile = 0 + sharpness = NONE + ricochets_max = 5 + ricochet_chance = 200 + ricochet_auto_aim_angle = 60 + ricochet_auto_aim_range = 8 + ricochet_decay_damage = 1 + ricochet_decay_chance = 1 + ricochet_incidence_leeway = 0 //nanomachines son + +/obj/item/ammo_casing/shotgun/antitide + name = "stardust shell" + desc = "A highly experimental shell filled with nanite electrodes that will embed themselves in soft targets. The electrodes are charged from kinetic movement which means moving targets will get punished more." + icon_state = "lasershell" + projectile_type = /obj/projectile/bullet/pellet/shotgun_buckshot/antitide + pellets = 8 // 8 * 7 for 56 stamina damage, plus whatever the embedded shells do + variance = 30 + harmful = FALSE + fire_sound = 'sound/weapons/taser.ogg' + custom_materials = AMMO_MATS_SHOTGUN_TIDE + advanced_print_req = TRUE + +/obj/projectile/bullet/pellet/shotgun_buckshot/antitide + name = "electrode" + icon = 'monkestation/code/modules/blueshift/icons/projectiles.dmi' + icon_state = "stardust" + damage = 2 + stamina = 16 + wound_bonus = 0 + bare_wound_bonus = 0 + stutter = 3 SECONDS + jitter = 5 SECONDS + eyeblur = 1 SECONDS + sharpness = NONE + range = 8 + embedding = list(embed_chance=70, pain_chance=25, fall_chance=15, jostle_chance=80, ignore_throwspeed_threshold=TRUE, pain_stam_pct=0.9, pain_mult=2, rip_time=10) + +/obj/projectile/bullet/pellet/shotgun_buckshot/antitide/on_range() + do_sparks(1, TRUE, src) + ..() + +/obj/item/ammo_casing/shotgun/hunter + name = "hunter slug shell" + desc = "A 12 gauge slug shell that fires specially designed slugs that deal extra damage to the local planetary fauna" + icon_state = "huntershell" + projectile_type = /obj/projectile/bullet/shotgun_slug/hunter + +/obj/projectile/bullet/shotgun_slug/hunter + name = "12g hunter slug" + damage = 20 + range = 12 + /// How much the damage is multiplied by when we hit a mob with the correct biotype + var/biotype_damage_multiplier = 5 + /// What biotype we look for + var/biotype_we_look_for = MOB_BEAST + +/obj/projectile/bullet/shotgun_slug/hunter/on_hit(atom/target, blocked, pierce_hit) + if(ismineralturf(target)) + var/turf/closed/mineral/mineral_turf = target + mineral_turf.gets_drilled(firer, FALSE) + if(range > 0) + return BULLET_ACT_FORCE_PIERCE + return ..() + if(!isliving(target) || (damage > initial(damage))) + return ..() + var/mob/living/target_mob = target + if(target_mob.mob_biotypes & biotype_we_look_for || istype(target_mob, /mob/living/simple_animal/hostile/megafauna)) + damage *= biotype_damage_multiplier + return ..() + +/obj/projectile/bullet/shotgun_slug/hunter/Initialize(mapload) + . = ..() + AddElement(/datum/element/bane, mob_biotypes = MOB_BEAST, damage_multiplier = 5) + +/obj/projectile/bullet/pellet/shotgun_improvised + weak_against_armour = TRUE // We will not have Improvised are Better 2.0 + +/obj/item/ammo_casing/shotgun/honkshot + name = "confetti shell" + desc = "A 12 gauge buckshot shell thats been filled to the brim with confetti, yippie!" + icon_state = "honkshell" + projectile_type = /obj/projectile/bullet/honkshot + pellets = 12 + variance = 35 + fire_sound = 'sound/items/bikehorn.ogg' + harmful = FALSE + +/obj/projectile/bullet/honkshot + name = "confetti" + damage = 0 + sharpness = NONE + shrapnel_type = NONE + impact_effect_type = null + ricochet_chance = 0 + jitter = 1 SECONDS + eyeblur = 1 SECONDS + hitsound = SFX_CLOWN_STEP + range = 4 + icon_state = "guardian" + +/obj/projectile/bullet/honkshot/Initialize(mapload) + . = ..() + SpinAnimation() + range = rand(1, 4) + color = pick( + COLOR_PRIDE_RED, + COLOR_PRIDE_ORANGE, + COLOR_PRIDE_YELLOW, + COLOR_PRIDE_GREEN, + COLOR_PRIDE_BLUE, + COLOR_PRIDE_PURPLE, + ) + +// This proc addition will spawn a decal on each tile the projectile travels over +/obj/projectile/bullet/honkshot/Moved(atom/old_loc, movement_dir, forced, list/old_locs, momentum_change = TRUE) + new /obj/effect/decal/cleanable/confetti(get_turf(old_loc)) + return ..() + +// This proc addition will make living humanoids do a flip animation when hit by the projectile +/obj/projectile/bullet/honkshot/on_hit(atom/target, blocked, pierce_hit) + if(!isliving(target)) + return ..() + target.SpinAnimation(7,1) + return ..() + +// This proc addition adds a spark effect when the projectile expires/hits +/obj/projectile/bullet/honkshot/on_range() + do_sparks(1, TRUE, src) + return ..() + + +/obj/item/ammo_box/magazine/c980_grenade/thunderdome_fire + ammo_type = /obj/item/ammo_casing/c980grenade/shrapnel/phosphor + +/obj/item/ammo_box/magazine/c980_grenade/thunderdome_shrapnel + ammo_type = /obj/item/ammo_casing/c980grenade/shrapnel + +/obj/item/ammo_box/magazine/c980_grenade/thunderdome_smoke + ammo_type = /obj/item/ammo_casing/c980grenade/smoke + +/obj/item/ammo_box/magazine/c980_grenade/thunderdome_gas + ammo_type = /obj/item/ammo_casing/c980grenade/riot + +/obj/item/ammo_box/magazine/c980_grenade/drum + name = "\improper Kiboko grenade drum" + desc = "A drum for .980 grenades, holds six shells." + + icon_state = "granata_drum" + + w_class = WEIGHT_CLASS_NORMAL + + max_ammo = 6 + +/obj/item/ammo_box/magazine/c980_grenade/drum/starts_empty + start_empty = TRUE + +/obj/item/ammo_box/magazine/c980_grenade/drum/thunderdome_fire + ammo_type = /obj/item/ammo_casing/c980grenade/shrapnel/phosphor + +/obj/item/ammo_box/magazine/c980_grenade/drum/thunderdome_shrapnel + ammo_type = /obj/item/ammo_casing/c980grenade/shrapnel + +/obj/item/ammo_box/magazine/c980_grenade/drum/thunderdome_smoke + ammo_type = /obj/item/ammo_casing/c980grenade/smoke + +/obj/item/ammo_box/magazine/c980_grenade/drum/thunderdome_gas + ammo_type = /obj/item/ammo_casing/c980grenade/riot diff --git a/monkestation/code/modules/blueshift/items/armor/ash_walker.dm b/monkestation/code/modules/blueshift/items/armor/ash_walker.dm new file mode 100644 index 000000000000..11408fcbeb5c --- /dev/null +++ b/monkestation/code/modules/blueshift/items/armor/ash_walker.dm @@ -0,0 +1,372 @@ +//ASH CLOTHING +/datum/armor/ash_headdress + melee = 15 + bullet = 25 + laser = 15 + energy = 15 + bomb = 20 + bio = 10 + +/datum/armor/clothing_under/ash_robes + melee = 15 + bullet = 25 + laser = 15 + energy = 15 + bomb = 20 + bio = 10 + +/datum/armor/ash_plates + melee = 15 + bullet = 25 + laser = 15 + energy = 15 + bomb = 20 + bio = 10 + +/datum/armor/bone_greaves + melee = 15 + bullet = 25 + laser = 15 + energy = 15 + bomb = 20 + bio = 50 + +/obj/item/clothing/head/ash_headdress + name = "ash headdress" + desc = "A headdress that shows the dominance of the walkers of ash." + icon = 'monkestation/code/modules/blueshift/icons/ashwalker_clothing.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/ashwalker_clothing_mob.dmi' + icon_state = "headdress" + supports_variations_flags = NONE + armor_type = /datum/armor/ash_headdress + + greyscale_colors = null + greyscale_config = null + greyscale_config_inhand_left = null + greyscale_config_inhand_right = null + greyscale_config_worn = null + +/datum/crafting_recipe/ash_recipe/ash_headdress + name = "Ash Headdress" + result = /obj/item/clothing/head/ash_headdress + category = CAT_CLOTHING + always_available = FALSE + +/obj/item/clothing/head/ash_headdress/Initialize(mapload) + . = ..() + AddComponent(/datum/component/armor_plate, 2, /obj/item/stack/sheet/animalhide/goliath_hide, list(MELEE = 5, BULLET = 2, LASER = 2)) + +/obj/item/clothing/head/ash_headdress/winged + name = "winged ash headdress" + icon_state = "wing_headdress" + +/datum/crafting_recipe/ash_recipe/ash_headdress/winged + name = "Winged Ash Headdress" + result = /obj/item/clothing/head/ash_headdress/winged + always_available = FALSE + +/obj/item/clothing/under/costume/gladiator/ash_walker/ash_robes + name = "ash robes" + desc = "A set of hand-made robes. The bones still seem to have some muscle still attached." + icon = 'monkestation/code/modules/blueshift/icons/ashwalker_clothing.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/ashwalker_clothing_mob.dmi' + icon_state = "robes" + armor_type = /datum/armor/clothing_under/ash_robes + + greyscale_colors = null + greyscale_config = null + greyscale_config_inhand_left = null + greyscale_config_inhand_right = null + greyscale_config_worn = null + +/datum/crafting_recipe/ash_recipe/ash_robes + name = "Ash Robes" + result = /obj/item/clothing/under/costume/gladiator/ash_walker/ash_robes + category = CAT_CLOTHING + always_available = FALSE + +/obj/item/clothing/under/costume/gladiator/ash_walker/ash_robes/Initialize(mapload) + . = ..() + AddComponent(/datum/component/armor_plate, 2, /obj/item/stack/sheet/animalhide/goliath_hide, list(MELEE = 5, BULLET = 2, LASER = 2)) + +/obj/item/clothing/under/costume/gladiator/ash_walker/ash_plates + name = "ash combat plates" + desc = "A combination of bones and hides, strung together by watcher sinew." + icon = 'monkestation/code/modules/blueshift/icons/ashwalker_clothing.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/ashwalker_clothing_mob.dmi' + icon_state = "combat_plates" + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + armor_type = /datum/armor/clothing_under/ash_robes + + greyscale_colors = null + greyscale_config = null + greyscale_config_inhand_left = null + greyscale_config_inhand_right = null + greyscale_config_worn = null + +/datum/crafting_recipe/ash_recipe/ash_plates + name = "Ash Combat Plates" + result = /obj/item/clothing/under/costume/gladiator/ash_walker/ash_plates + category = CAT_CLOTHING + always_available = FALSE + +/obj/item/clothing/under/costume/gladiator/ash_walker/ash_plates/Initialize(mapload) + . = ..() + AddComponent(/datum/component/armor_plate, 2, /obj/item/stack/sheet/animalhide/goliath_hide, list(MELEE = 5, BULLET = 2, LASER = 2)) + +/obj/item/clothing/under/costume/gladiator/ash_walker/ash_plates/decorated + name = "decorated ash combat plates" + icon_state = "dec_breastplate" + +/datum/crafting_recipe/ash_recipe/ash_plates/decorated + name = "Decorated Ash Combat Plates" + result = /obj/item/clothing/under/costume/gladiator/ash_walker/ash_plates/decorated + category = CAT_CLOTHING + always_available = FALSE + +/obj/item/clothing/shoes/bone_greaves + name = "bone greaves" + desc = "For when you're expecting to step on spiky things. Offers modest protection to your feet." + icon = 'monkestation/code/modules/blueshift/icons/shoes.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/feet.dmi' + worn_icon_digitigrade = 'monkestation/code/modules/blueshift/icons/feet_digi.dmi' + icon_state = "bone_greaves" + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION + armor_type = /datum/armor/bone_greaves + +/datum/crafting_recipe/ash_recipe/bone_greaves + name = "Bone Greaves" + result = /obj/item/clothing/shoes/bone_greaves + reqs = list( + /obj/item/stack/sheet/bone = 2, + /obj/item/stack/sheet/sinew = 1, + ) + category = CAT_CLOTHING + +/obj/item/clothing/gloves/military/ashwalk + icon = 'monkestation/code/modules/blueshift/icons/gloves.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/hands.dmi' + name = "ash coated bronze gloves" + desc = "Some sort of thin material with the backing of bronze plates." + icon_state = "legionlegat" + +/obj/item/clothing/gloves/military/claw + icon = 'monkestation/code/modules/blueshift/icons/gloves.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/hands.dmi' + name = "tribal claw glove" + desc = "A gauntlet fashioned from the hand of a long-dead creature. Judging by the claws, whoever brought the beast down must have had a hard fight." + icon_state = "claw" + +/obj/item/clothing/head/shamanash + name = "shaman skull" + desc = "The skull of a long dead animal bolted to the front of a repurposed pan." + icon = 'monkestation/code/modules/blueshift/icons/hats.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/head.dmi' + icon_state = "shamskull" + supports_variations_flags = NONE + +/obj/item/clothing/suit/ashwalkermantle + icon = 'monkestation/code/modules/blueshift/icons/suits.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/suit.dmi' + name = "tanned hide" + desc = "The tanned hide of some brown furred creature." + icon_state = "mantle_liz" + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + +/obj/item/clothing/suit/ashwalkermantle/cape + icon = 'monkestation/code/modules/blueshift/icons/suits.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/suit.dmi' + name = "brown leather cape" + desc = "An ash coated cloak." + icon_state = "desertcloak" + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + +/obj/item/clothing/neck/cloak/tribalmantle + name = "ornate mantle" + desc = "An ornate mantle commonly worn by a shaman or chieftain." + icon = 'monkestation/code/modules/blueshift/icons/cloaks.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/neck.dmi' + icon_state = "tribal-mantle" + +/obj/item/clothing/shoes/jackboots/ashwalker + name = "ash coated bronze boots" + desc = "Boots decorated with poorly forged metal." + icon = 'monkestation/code/modules/blueshift/icons/shoes.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/feet.dmi' + icon_state = "legionmetal" + supports_variations_flags = NONE + +/obj/item/clothing/shoes/jackboots/ashwalker/legate + icon = 'monkestation/code/modules/blueshift/icons/shoes.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/feet.dmi' + icon_state = "legionlegate" + supports_variations_flags = NONE + +/obj/item/clothing/shoes/wraps/ashwalker + icon = 'monkestation/code/modules/blueshift/icons/shoes.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/feet.dmi' + name = "ash coated foot wraps" + desc = "May hurt for less than normal legs." + icon_state = "rag" + supports_variations_flags = NONE + +/obj/item/clothing/shoes/wraps/ashwalker/tribalwraps + icon = 'monkestation/code/modules/blueshift/icons/shoes.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/feet.dmi' + worn_icon_digitigrade = 'monkestation/code/modules/blueshift/icons/feet_digi.dmi' + name = "ornate leg wraps" + desc = "An ornate set of leg wraps commonly worn by a shaman or chieftain." + icon_state = "tribalcuffs" + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION + +/obj/item/clothing/shoes/wraps/ashwalker/mundanewraps + icon = 'monkestation/code/modules/blueshift/icons/shoes.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/feet.dmi' + worn_icon_digitigrade = 'monkestation/code/modules/blueshift/icons/feet_digi.dmi' + name = "tribal leg wraps" + desc = "A mundane set of leg wraps often worn by tribal villagers." + icon_state = "mundanecuffs" + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION + +/obj/item/clothing/under/costume/gladiator/ash_walker/greentrib + icon = 'monkestation/code/modules/blueshift/icons/uniforms.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/uniform.dmi' + name = "ash covered leaves" + desc = "Green leaves coated with a thick layer of ash. Praise the Nercopolis." + icon_state = "tribal_m" + +/obj/item/clothing/under/costume/gladiator/ash_walker/yellow + icon = 'monkestation/code/modules/blueshift/icons/uniforms.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/uniform.dmi' + name = "ash walker rags" + desc = "Rags from Lavaland, coated with light ash. This one seems to be for the juniors of a tribe. Praise the Nercopolis." + icon_state = "tribalrags" + +/obj/item/clothing/under/costume/gladiator/ash_walker/chiefrags + icon = 'monkestation/code/modules/blueshift/icons/uniforms.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/uniform.dmi' + name = "old ash walker rags" + desc = "Rags from Lavaland, coated with heavy ash. This one seems to be for the elders of a tribe. Praise the Nercopolis." + icon_state = "chiefrags" + +/obj/item/clothing/under/costume/gladiator/ash_walker/shaman + icon = 'monkestation/code/modules/blueshift/icons/uniforms.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/uniform.dmi' + name = "decorated ash walker rags" + desc = "Rags from Lavaland, drenched with ash, it has fine jewel coated bones sewn around the neck. This one seems to be for the shaman of a tribe. Praise the Nercopolis." + icon_state = "shamanrags" + +/obj/item/clothing/under/costume/gladiator/ash_walker/robe + icon = 'monkestation/code/modules/blueshift/icons/uniforms.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/uniform.dmi' + name = "ash walker robes" + desc = "A robe from the ashlands. This one seems to be for ...Everyone, really. Praise the Nercopolis." + icon_state = "robe_liz" + +/obj/item/clothing/under/costume/gladiator/ash_walker/tribal + icon = 'monkestation/code/modules/blueshift/icons/uniforms.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/uniform.dmi' + name = "ash walker tin" + desc = "Thin tin bolted over poorly tanned leather." + icon_state = "tribal" + +/obj/item/clothing/under/costume/gladiator/ash_walker/white + icon = 'monkestation/code/modules/blueshift/icons/uniforms.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/uniform.dmi' + name = "white ash walker rags" + desc = "A poorly sewn dress made of white materials." + icon_state = "lizcheo" + +/obj/item/clothing/under/costume/gladiator/ash_walker/chestwrap + icon = 'monkestation/code/modules/blueshift/icons/uniforms.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/uniform.dmi' + name = "loincloth and chestwrap" + desc = "A poorly sewn dress made of white materials." + icon_state = "chestwrap" + +/obj/item/clothing/under/costume/gladiator/ash_walker/caesar_clothes + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/uniforms.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/uniform.dmi' + name = "ash walker tunic" + desc = "A tattered red tunic of reddened fabric." + icon_state = "caesar_clothes" + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION + +/obj/item/clothing/under/costume/gladiator/ash_walker/legskirt_d + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/uniforms.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/uniform.dmi' + name = "ash walker waistcloth" + desc = "A unisex waistcloth to serve as a kilt or skirt." + icon_state = "legskirt_d" + +#define LANGUAGE_TRANSLATOR "translator" +/obj/item/clothing/neck/necklace/ashwalker + name = "ashen necklace" + desc = "A necklace crafted from ash, connected to the Necropolis through the core of a Legion. This imbues overdwellers with an unnatural understanding of Ashtongue, the native language of Lavaland, while worn." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/neck.dmi' + icon_state = "ashnecklace" + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/neck.dmi' + icon_state = "ashnecklace" + w_class = WEIGHT_CLASS_SMALL //allows this to fit inside of pockets. + +/obj/item/clothing/neck/necklace/ashwalker/cursed + name = "cursed ashen necklace" + desc = "A necklace crafted from ash, connected to the Necropolis through the core of a Legion. This imbues overdwellers with an unnatural understanding of Ashtongue, the native language of Lavaland, while worn. Cannot be removed!" + +/obj/item/clothing/neck/necklace/ashwalker/cursed/Initialize(mapload) + . = ..() + ADD_TRAIT(src, TRAIT_NODROP, ABSTRACT_ITEM_TRAIT) + +//uses code from the pirate hat. +/obj/item/clothing/neck/necklace/ashwalker/equipped(mob/user, slot) + . = ..() + if(!ishuman(user)) + return + if(slot & ITEM_SLOT_NECK) + user.grant_language(/datum/language/ashtongue/, source = LANGUAGE_TRANSLATOR) + to_chat(user, span_boldnotice("Slipping the necklace on, you feel the insidious creep of the Necropolis enter your bones, and your very shadow. You find yourself with an unnatural knowledge of Ashtongue; but the amulet's eye stares at you.")) + +/obj/item/clothing/neck/necklace/ashwalker/dropped(mob/user) + . = ..() + if(!ishuman(user)) + return + var/mob/living/carbon/human/H = user + if(H.get_item_by_slot(ITEM_SLOT_NECK) == src && !QDELETED(src)) //This can be called as a part of destroy + user.remove_language(/datum/language/ashtongue/, source = LANGUAGE_TRANSLATOR) + to_chat(user, span_boldnotice("You feel the alien mind of the Necropolis lose its interest in you as you remove the necklace. The eye closes, and your mind does as well, losing its grasp of Ashtongue.")) + + +// ashtongue for ashwalkers +/datum/language_holder/lizard/ash + understood_languages = list(/datum/language/ashtongue = list(LANGUAGE_ATOM)) + spoken_languages = list(/datum/language/ashtongue = list(LANGUAGE_ATOM)) + selected_language = /datum/language/ashtongue + +/datum/language/ashtongue + name = "Ashtongue" + desc = "A language derived from Draconic, altered and morphed into a strange tongue by the enigmatic will of the Necropolis, a half-successful attempt at patterning its own alien communication methods onto mundane races. It's become nigh-incomprehensible to speakers of the original language." + key = "l" + flags = TONGUELESS_SPEECH + space_chance = 70 + syllables = list( + "za", "az", "ze", "ez", "zi", "iz", "zo", "oz", "zu", "uz", "zs", "sz", + "ha", "ah", "he", "eh", "hi", "ih", "ho", "oh", "hu", "uh", "hs", "sh", + "la", "al", "le", "el", "li", "il", "lo", "ol", "lu", "ul", "ls", "sl", + "ka", "ak", "ke", "ek", "ki", "ik", "ko", "ok", "ku", "uk", "ks", "sk", + "sa", "as", "se", "es", "si", "is", "so", "os", "su", "us", "ss", "ss", + "ra", "ar", "re", "er", "ri", "ir", "ro", "or", "ru", "ur", "rs", "sr", + "er", "sint", "en", "et", "nor", "bahr", "sint", "un", "ku", "lakor", "eri", + "noj", "dashilu", "as", "ot", "lih", "morh", "ghinu", "kin", "sha", "marik", "jibu", + "sudas", "fut", "kol", "bivi", "pohim", "devohr", "ru", "huirf", "neiris", "sut", + "viepn","bag","docu","kar","xlaqf","raa","qwos","nen","ty","von","kytaf","xin", + "devehr", "iru", "gher", "gan", "ujil", "lacor", "bahris", "ghar", "alnef", "wah", + "khurdhar", "bar", "et", "ilu", "dash", "diru", "noj", "de", "damjulan", "luvahr", + "telshahr", "tifur", "enhi", "am", "bahr", "nei", "neibahri", "n'chow", "n'wah", + "baak","hlaf","pyk","znu","agr","ith","na'ar","uah","plhu","six","fhler","bjel","scee", + "lleri","dttm","aggr","uujl","hjjifr","wuth","aav","inya","sod","bli","min","fril","bli","'ddn","tun'da", + "'ad","iir","krei","tii'","ruuk","nei","zirua","surai","lieket","miruk","ettirup","mireez","cqiek", + "brut","vaahk","nah'za","diierk","piut","vuurk","cs'eer","jeirk","qiruvk", + ) + icon_state = "ashtongue" + icon = 'monkestation/code/modules/blueshift/icons/language.dmi' + default_priority = 90 diff --git a/monkestation/code/modules/blueshift/items/ash_walker.dm b/monkestation/code/modules/blueshift/items/ash_walker.dm new file mode 100644 index 000000000000..c63433a39fb3 --- /dev/null +++ b/monkestation/code/modules/blueshift/items/ash_walker.dm @@ -0,0 +1,433 @@ +/obj/item/reagent_containers/cup/primitive_centrifuge + name = "primitive centrifuge" + desc = "A small cup that allows a person to slowly spin out liquids they do not desire." + icon = 'monkestation/code/modules/blueshift/icons/misc_tools.dmi' + icon_state = "primitive_centrifuge" + volume = 100 + material_flags = MATERIAL_EFFECTS | MATERIAL_ADD_PREFIX | MATERIAL_GREYSCALE | MATERIAL_COLOR + +/obj/item/reagent_containers/cup/primitive_centrifuge/examine() + . = ..() + . += span_notice("Ctrl + Click to select chemicals to remove.") + . += span_notice("Ctrl + Shift + Click to select a chemical to keep, the rest removed.") + +/obj/item/reagent_containers/cup/primitive_centrifuge/CtrlClick(mob/user) + if(!length(reagents.reagent_list)) + return + + var/datum/user_input = tgui_input_list(user, "Select which chemical to remove.", "Removal Selection", reagents.reagent_list) + + if(!user_input) + balloon_alert(user, "no selection") + return + + user.balloon_alert_to_viewers("spinning [src]...") + var/skill_modifier = user.mind.get_skill_modifier(/datum/skill/primitive, SKILL_SPEED_MODIFIER) + if(!do_after(user, 5 SECONDS * skill_modifier, target = src)) + user.balloon_alert_to_viewers("stopped spinning [src]") + return + + reagents.del_reagent(user_input.type) + user.mind.adjust_experience(/datum/skill/primitive, 5) + balloon_alert(user, "removed reagent from [src]") + +/obj/item/reagent_containers/cup/primitive_centrifuge/CtrlShiftClick(mob/user) + if(!length(reagents.reagent_list)) + return + + var/datum/user_input = tgui_input_list(user, "Select which chemical to keep, the rest removed.", "Keep Selection", reagents.reagent_list) + + if(!user_input) + balloon_alert(user, "no selection") + return + + user.balloon_alert_to_viewers("spinning [src]...") + var/skill_modifier = user.mind.get_skill_modifier(/datum/skill/primitive, SKILL_SPEED_MODIFIER) + if(!do_after(user, 5 SECONDS * skill_modifier, target = src)) + user.balloon_alert_to_viewers("stopped spinning [src]") + return + + for(var/datum/reagent/remove_reagent in reagents.reagent_list) + if(!istype(remove_reagent, user_input.type)) + reagents.del_reagent(remove_reagent.type) + + user.mind.adjust_experience(/datum/skill/primitive, 5) + balloon_alert(user, "removed reagents from [src]") + +/obj/item/seed_mesh + name = "seed mesh" + desc = "A little mesh that, when paired with sand, has the possibility of filtering out large seeds." + icon = 'monkestation/code/modules/blueshift/icons/misc_tools.dmi' + icon_state = "mesh" + var/list/static/seeds_blacklist = list( + /obj/item/seeds/lavaland, + ) + +/obj/item/seed_mesh/attackby(obj/item/attacking_item, mob/user, params) + if(istype(attacking_item, /obj/item/stack/ore/glass)) + var/obj/item/stack/ore/ore_item = attacking_item + if(ore_item.points == 0) + user.balloon_alert(user, "[ore_item] is worthless!") + return + + var/ore_usage = 5 + while(ore_item.amount >= ore_usage) + var/skill_modifier = user.mind.get_skill_modifier(/datum/skill/primitive, SKILL_SPEED_MODIFIER) + if(!do_after(user, 5 SECONDS * skill_modifier, src)) + user.balloon_alert(user, "have to stand still!") + return + + if(prob(user.mind.get_skill_modifier(/datum/skill/primitive, SKILL_PROBS_MODIFIER))) + ore_usage = 3 + + if(!ore_item.use(ore_usage)) + user.balloon_alert(user, "unable to use five of [ore_item]!") + return + + user.mind.adjust_experience(/datum/skill/primitive, 5) + if(prob(70)) + user.balloon_alert(user, "[ore_item] reveals nothing!") + continue + + var/spawn_seed = pick(subtypesof(/obj/item/seeds) - seeds_blacklist) + new spawn_seed(get_turf(src)) + user.mind.adjust_experience(/datum/skill/primitive, 10) + user.balloon_alert(user, "[ore_item] revealed something!") + + return ..() + +//ASH SURGERY +/obj/item/cautery/ashwalker + name = "primitive cautery" + icon = 'monkestation/code/modules/blueshift/icons/ashwalker_tools.dmi' + icon_state = "cautery" + + greyscale_colors = null + greyscale_config = null + greyscale_config_inhand_left = null + greyscale_config_inhand_right = null + greyscale_config_worn = null + +/datum/crafting_recipe/ash_recipe/ash_cautery + name = "Ash Cautery" + result = /obj/item/cautery/ashwalker + +/obj/item/surgicaldrill/ashwalker + name = "primitive surgical drill" + icon = 'monkestation/code/modules/blueshift/icons/ashwalker_tools.dmi' + icon_state = "surgical_drill" + + greyscale_colors = null + greyscale_config = null + greyscale_config_inhand_left = null + greyscale_config_inhand_right = null + greyscale_config_worn = null + +/datum/crafting_recipe/ash_recipe/ash_drill + name = "Ash Surgical Drill" + result = /obj/item/surgicaldrill/ashwalker + +/obj/item/scalpel/ashwalker + name = "primitive scalpel" + icon = 'monkestation/code/modules/blueshift/icons/ashwalker_tools.dmi' + icon_state = "scalpel" + + greyscale_colors = null + greyscale_config = null + greyscale_config_inhand_left = null + greyscale_config_inhand_right = null + greyscale_config_worn = null + +/datum/crafting_recipe/ash_recipe/ash_scalpel + name = "Ash Scalpel" + result = /obj/item/scalpel/ashwalker + +/obj/item/circular_saw/ashwalker + name = "primitive circular saw" + icon = 'monkestation/code/modules/blueshift/icons/ashwalker_tools.dmi' + icon_state = "surgical_saw" + + greyscale_colors = null + greyscale_config = null + greyscale_config_inhand_left = null + greyscale_config_inhand_right = null + greyscale_config_worn = null + +/datum/crafting_recipe/ash_recipe/ash_saw + name = "Ash Circular Saw" + result = /obj/item/circular_saw/ashwalker + +/obj/item/retractor/ashwalker + name = "primitive retractor" + icon = 'monkestation/code/modules/blueshift/icons/ashwalker_tools.dmi' + icon_state = "retractors" + + greyscale_colors = null + greyscale_config = null + greyscale_config_inhand_left = null + greyscale_config_inhand_right = null + greyscale_config_worn = null + +/datum/crafting_recipe/ash_recipe/ash_retractor + name = "Ash Retractor" + result = /obj/item/retractor/ashwalker + +/obj/item/hemostat/ashwalker + name = "primitive hemostat" + icon = 'monkestation/code/modules/blueshift/icons/ashwalker_tools.dmi' + icon_state = "hemostat" + + greyscale_colors = null + greyscale_config = null + greyscale_config_inhand_left = null + greyscale_config_inhand_right = null + greyscale_config_worn = null + +/datum/crafting_recipe/ash_recipe/ash_hemostat + name = "Ash Hemostat" + result = /obj/item/hemostat/ashwalker + +/obj/item/bonesetter/ashwalker + name = "primitive bonesetter" + icon = 'monkestation/code/modules/blueshift/icons/ashwalker_tools.dmi' + icon_state = "bonesetter" + + greyscale_colors = null + greyscale_config = null + greyscale_config_inhand_left = null + greyscale_config_inhand_right = null + greyscale_config_worn = null + +/datum/crafting_recipe/ash_recipe/ash_bonesetter + name = "Ash Bonesetter" + result = /obj/item/bonesetter/ashwalker + +//ASH TOOL +/obj/item/screwdriver/ashwalker + name = "primitive screwdriver" + icon = 'monkestation/code/modules/blueshift/icons/ashwalker_tools.dmi' + icon_state = "screwdriver" + + greyscale_colors = null + greyscale_config = null + greyscale_config_inhand_left = null + greyscale_config_inhand_right = null + greyscale_config_worn = null + +/datum/crafting_recipe/ash_recipe/ash_screwdriver + name = "Ash Screwdriver" + result = /obj/item/screwdriver/ashwalker + +/obj/item/wirecutters/ashwalker + name = "primitive wirecutters" + icon = 'monkestation/code/modules/blueshift/icons/ashwalker_tools.dmi' + icon_state = "cutters" + + greyscale_colors = null + greyscale_config = null + greyscale_config_inhand_left = null + greyscale_config_inhand_right = null + greyscale_config_worn = null + +/datum/crafting_recipe/ash_recipe/ash_cutters + name = "Ash Wirecutters" + result = /obj/item/wirecutters/ashwalker + +/obj/item/wrench/ashwalker + name = "primitive wrench" + icon = 'monkestation/code/modules/blueshift/icons/ashwalker_tools.dmi' + icon_state = "wrench" + + greyscale_colors = null + greyscale_config = null + greyscale_config_inhand_left = null + greyscale_config_inhand_right = null + greyscale_config_worn = null + +/datum/crafting_recipe/ash_recipe/ash_wrench + name = "Ash Wrench" + result = /obj/item/wrench/ashwalker + +/obj/item/crowbar/ashwalker + name = "primitive crowbar" + icon = 'monkestation/code/modules/blueshift/icons/ashwalker_tools.dmi' + icon_state = "crowbar" + + greyscale_colors = null + greyscale_config = null + greyscale_config_inhand_left = null + greyscale_config_inhand_right = null + greyscale_config_worn = null + +/datum/crafting_recipe/ash_recipe/ash_crowbar + name = "Ash Crowbar" + result = /obj/item/crowbar/ashwalker + +/obj/item/cursed_dagger + name = "cursed ash dagger" + desc = "A blunted dagger that seems to cause the shadows near it to tremble." + icon = 'icons/obj/weapons/sword.dmi' + icon_state = "crysknife" + inhand_icon_state = "crysknife" + lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi' + righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' + +/obj/item/cursed_dagger/examine(mob/user) + . = ..() + . += span_notice("To be used on tendrils. It will visually change the tendril to indicate whether it has been cursed or not.") + +/obj/item/tendril_seed + name = "tendril seed" + desc = "A horrible fleshy mass that pulse with a dark energy." + icon = 'monkestation/code/modules/blueshift/icons/ashwalker_tools.dmi' + icon_state = "tendril_seed" + +/obj/item/tendril_seed/examine(mob/user) + . = ..() + . += span_notice("In order to be planted, it is required to be on the mining level as well as on basalt.") + +/obj/item/tendril_seed/attack_self(mob/user, modifiers) + . = ..() + var/turf/src_turf = get_turf(src) + if(!is_mining_level(src_turf.z) || !istype(src_turf, /turf/open/misc/asteroid/basalt)) + return + if(!isliving(user)) + return + var/mob/living/living_user = user + to_chat(living_user, span_warning("You begin to squeeze [src]...")) + if(!do_after(living_user, 4 SECONDS, target = src)) + return + to_chat(living_user, span_warning("[src] begins to crawl between your hand's appendages, crawling up your arm...")) + living_user.adjustBruteLoss(35) + if(!do_after(living_user, 4 SECONDS, target = src)) + return + to_chat(living_user, span_warning("[src] wraps around your chest and begins to tighten, causing an odd needling sensation...")) + living_user.adjustBruteLoss(35) + if(!do_after(living_user, 4 SECONDS, target = src)) + return + to_chat(living_user, span_warning("[src] leaps from you satisfied and begins to grossly assemble itself!")) + var/type = pick(/obj/structure/spawner/lavaland, /obj/structure/spawner/lavaland/goliath, /obj/structure/spawner/lavaland/legion) + new type(user.loc) + playsound(get_turf(src), 'sound/magic/demon_attack1.ogg', 50, TRUE) + qdel(src) + +//ASH WEAPON +/obj/item/melee/macahuitl + name = "ash macahuitl" + desc = "A weapon that looks like it will leave really bad marks." + icon = 'monkestation/code/modules/blueshift/icons/ashwalker_clothing.dmi' + lefthand_file = 'monkestation/code/modules/blueshift/icons/ashwalker_clothing_left.dmi' + righthand_file = 'monkestation/code/modules/blueshift/icons/ashwalker_clothing_right.dmi' + icon_state = "macahuitl" + + force = 15 + wound_bonus = 15 + bare_wound_bonus = 10 + + greyscale_colors = null + greyscale_config = null + greyscale_config_inhand_left = null + greyscale_config_inhand_right = null + greyscale_config_worn = null + +/datum/crafting_recipe/ash_recipe/macahuitl + name = "Ash Macahuitl" + result = /obj/item/melee/macahuitl + reqs = list( + /obj/item/stack/sheet/bone = 2, + /obj/item/stack/sheet/sinew = 2, + /obj/item/stack/sheet/animalhide/goliath_hide = 2, + ) + category = CAT_WEAPON_MELEE + +/obj/item/kinetic_crusher/cursed + name = "cursed ash carver" + desc = "A horrible, alive-looking weapon that pulses every so often. The tendril created this monstrosity to mimic and compete with those who invade the land." + icon = 'monkestation/code/modules/blueshift/icons/ashwalker_tools.dmi' + +//ASH STAFF +/obj/item/ash_staff + name = "staff of the ashlands" + desc = "A gnarly and twisted branch that is imbued with some ancient power." + + icon = 'icons/obj/weapons/guns/magic.dmi' + lefthand_file = 'icons/mob/inhands/weapons/staves_lefthand.dmi' + righthand_file = 'icons/mob/inhands/weapons/staves_righthand.dmi' + icon_state = "staffofanimation" + inhand_icon_state = "staffofanimation" + +/obj/item/ash_staff/afterattack(atom/target, mob/user, proximity_flag, click_parameters) + if(!proximity_flag) + return ..() + + if(!user.mind.has_antag_datum(/datum/antagonist/ashwalker)) + return ..() + + if(istype(target, /obj/structure/lavaland/ash_walker)) + return + + if(isopenturf(target)) + var/turf/target_turf = target + if(istype(target, /turf/open/misc/asteroid/basalt/lava_land_surface)) + to_chat(user, span_warning("You begin to corrupt the land even further...")) + if(!do_after(user, 4 SECONDS, target = target_turf)) + to_chat(user, span_warning("[src] had their casting cut short!")) + return + + target_turf.ChangeTurf(/turf/open/lava/smooth/lava_land_surface) + to_chat(user, span_notice("[src] sparks, corrupting the area too far!")) + return + + if(!do_after(user, 2 SECONDS, target = target_turf)) + to_chat(user, span_warning("[src] had their casting cut short!")) + return + + target_turf.ChangeTurf(/turf/open/misc/asteroid/basalt/lava_land_surface) + return + + return ..() + +//generic ash item recipe +/datum/crafting_recipe/ash_recipe + reqs = list( + /obj/item/stack/sheet/bone = 1, + /obj/item/stack/sheet/sinew = 1, + ) + time = 4 SECONDS + category = CAT_TOOLS + +/obj/item/chisel/ashwalker + name = "primitive chisel" + desc = "Where there is a will there is a way; the tool head of this chisel is fashioned from bone shaped when it was fresh and then left to calcify in iron rich water, to make a strong head for all your carving needs." + icon = 'monkestation/code/modules/blueshift/icons/ashwalker_tools.dmi' + icon_state = "chisel" + custom_materials = list(/datum/material/bone = SMALL_MATERIAL_AMOUNT * 1) + + greyscale_colors = null + greyscale_config = null + greyscale_config_inhand_left = null + greyscale_config_inhand_right = null + greyscale_config_worn = null + toolspeed = 4 + +/datum/crafting_recipe/ash_recipe/ash_chisel + name = "Ash Chisel" + result = /obj/item/chisel/ashwalker + +/obj/item/forging + icon = 'monkestation/code/modules/blueshift/icons/forge_items.dmi' + lefthand_file = 'monkestation/code/modules/blueshift/icons/mob/forge_weapon_l.dmi' + righthand_file = 'monkestation/code/modules/blueshift/icons/mob/forge_weapon_r.dmi' + toolspeed = 1 SECONDS + ///whether the item is in use or not + var/in_use = FALSE + +/obj/item/forging/billow + name = "forging billow" + desc = "A billow specifically crafted for use in forging. Used to stoke the flames and keep the forge lit." + icon_state = "billow" + tool_behaviour = TOOL_BILLOW + +/obj/item/forging/billow/primitive + name = "primitive forging billow" + toolspeed = 2 SECONDS diff --git a/monkestation/code/modules/blueshift/items/badges.dm b/monkestation/code/modules/blueshift/items/badges.dm new file mode 100644 index 000000000000..50fc866d5fb6 --- /dev/null +++ b/monkestation/code/modules/blueshift/items/badges.dm @@ -0,0 +1,193 @@ +/obj/item/clothing/accessory/badge + name = "detective's badge" + desc = "Security Department detective's badge, made from gold." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/accessories.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/accessories.dmi' + icon_state = "badge" + slot_flags = ITEM_SLOT_NECK + attachment_slot = CHEST + + var/stored_name + var/badge_string = "Corporate Security" + +/obj/item/clothing/accessory/badge/old + name = "faded badge" + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/accessories.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/accessories.dmi' + desc = "A faded badge, backed with leather. It bears the emblem of the Forensic division." + icon_state = "goldbadge" + +/obj/item/clothing/accessory/badge/proc/set_name(new_name) + stored_name = new_name + name = "[initial(name)] ([stored_name])" + +/obj/item/clothing/accessory/badge/proc/set_desc(mob/living/carbon/human/H) + +/obj/item/clothing/accessory/badge/attack_self(mob/user as mob) + + if(!stored_name) + to_chat(user, "You polish your old badge fondly, shining up the surface.") + set_name(user.real_name) + return + + if(isliving(user)) + if(stored_name) + user.visible_message(span_notice("[user] displays their [src.name].\nIt reads: [stored_name], [badge_string]."),span_notice("You display your [src.name].\nIt reads: [stored_name], [badge_string].")) + else + user.visible_message(span_notice("[user] displays their [src.name].\nIt reads: [badge_string]."),span_notice("You display your [src.name]. It reads: [badge_string].")) + +/obj/item/clothing/accessory/badge/attack(mob/living/carbon/human/M, mob/living/user) + if(isliving(user)) + user.visible_message(span_danger("[user] invades [M]'s personal space, thrusting [src] into their face insistently."),span_danger("You invade [M]'s personal space, thrusting [src] into their face insistently.")) + user.do_attack_animation(M) + +// Sheriff Badge (toy) +/obj/item/clothing/accessory/badge/sheriff + name = "sheriff badge" + desc = "This town ain't big enough for the two of us, pardner." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/accessories.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/accessories.dmi' + icon_state = "sheriff" + +/obj/item/clothing/accessory/badge/sheriff/attack_self(mob/user as mob) + user.visible_message("[user] shows their sheriff badge. There's a new sheriff in town!",\ + "You flash the sheriff badge to everyone around you!") + +/obj/item/clothing/accessory/badge/sheriff/attack(mob/living/carbon/human/M, mob/living/user) + if(isliving(user)) + user.visible_message(span_danger("[user] invades [M]'s personal space, the sheriff badge into their face!."),span_danger("You invade [M]'s personal space, thrusting the sheriff badge into their face insistently.")) + user.do_attack_animation(M) + +//.Holobadges. +/obj/item/clothing/accessory/badge/holo + name = "holobadge" + desc = "This glowing blue badge marks the holder as THE LAW." + icon_state = "holobadge_lopland" + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/accessories.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/accessories.dmi' + +/obj/item/clothing/accessory/badge/holo/cord + icon_state = "holobadge-cord" + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/accessories.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/accessories.dmi' + +/obj/item/clothing/accessory/badge/holo/attack_self(mob/user as mob) + if(!stored_name) + to_chat(user, "Waving around a holobadge before swiping an ID would be pretty pointless.") + return + return ..() + +/obj/item/clothing/accessory/badge/holo/emag_act(remaining_charges, mob/user) + if(obj_flags & EMAGGED) + balloon_alert(user, "already cracked") + return FALSE + + obj_flags |= EMAGGED + balloon_alert(user, "security checks cracked!") + to_chat(user, span_danger("You crack the holobadge security checks.")) + return TRUE + +/obj/item/clothing/accessory/badge/holo/attackby(obj/item/object as obj, mob/user as mob) + if(istype(object, /obj/item/card/id)) + + var/obj/item/card/id/id_card = null + + if(istype(object, /obj/item/card/id)) + id_card = object + + if(ACCESS_SECURITY in id_card.access || (obj_flags & EMAGGED)) + to_chat(user, "You imprint your ID details onto the badge.") + set_name(user.real_name) + badge_string = id_card.assignment + else + to_chat(user, "[src] rejects your insufficient access rights.") + return + ..() + +/obj/item/storage/box/holobadge + name = "holobadge box" + desc = "A box claiming to contain holobadges." + +/obj/item/storage/box/holobadge/PopulateContents() + . = ..() + new /obj/item/clothing/accessory/badge/holo(src) + new /obj/item/clothing/accessory/badge/holo(src) + new /obj/item/clothing/accessory/badge/holo(src) + new /obj/item/clothing/accessory/badge/holo(src) + new /obj/item/clothing/accessory/badge/holo/cord(src) + new /obj/item/clothing/accessory/badge/holo/cord(src) + return + +/obj/item/clothing/accessory/badge/holo/warden + name = "warden's holobadge" + desc = "A silver corporate security badge. Stamped with the words 'Warden.'" + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/accessories.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/accessories.dmi' + icon_state = "silverbadge" + slot_flags = ITEM_SLOT_NECK + +/obj/item/clothing/accessory/badge/holo/hos + name = "head of security's holobadge" + desc = "An immaculately polished gold security badge. Labeled 'Head of Security.'" + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/accessories.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/accessories.dmi' + icon_state = "goldbadge" + slot_flags = ITEM_SLOT_NECK + +/obj/item/clothing/accessory/badge/holo/detective + name = "detective's holobadge" + desc = "An immaculately polished gold security badge on leather. Labeled 'Detective.'" + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/accessories.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/accessories.dmi' + icon_state = "marshalbadge" + slot_flags = ITEM_SLOT_NECK + +/obj/item/storage/box/holobadge/hos + name = "holobadge box" + desc = "A box claiming to contain holobadges." + +/obj/item/storage/box/holobadge/hos/PopulateContents() + . = ..() + new /obj/item/clothing/accessory/badge/holo(src) + new /obj/item/clothing/accessory/badge/holo(src) + new /obj/item/clothing/accessory/badge/holo/warden(src) + new /obj/item/clothing/accessory/badge/holo/detective(src) + new /obj/item/clothing/accessory/badge/holo/detective(src) + new /obj/item/clothing/accessory/badge/holo/hos(src) + new /obj/item/clothing/accessory/badge/holo/cord(src) + return + +// The newbie pin +/obj/item/clothing/accessory/green_pin + name = "green pin" + desc = "A pin given to newly hired personnel on deck." + icon_state = "green" + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/accessories.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/accessories.dmi' + +/obj/item/clothing/accessory/green_pin/examine(mob/user) + . = ..() + // How many hours of playtime left until the green pin expires + var/green_time_remaining = sanitize_integer((PLAYTIME_GREEN - user.client?.get_exp_living(pure_numeric = TRUE) / 60), 0, (PLAYTIME_GREEN / 60)) + if(green_time_remaining > 0) + . += span_nicegreen("It reads '[green_time_remaining] hour[green_time_remaining >= 2 ? "s" : ""].'") + +// Pride Pin Over-ride +/obj/item/clothing/accessory/pride + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/accessories.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/accessories.dmi' + +GLOBAL_LIST_INIT(pride_pin_reskins, list( + "Rainbow Pride" = "pride", + "Bisexual Pride" = "pride_bi", + "Pansexual Pride" = "pride_pan", + "Asexual Pride" = "pride_ace", + "Non-binary Pride" = "pride_enby", + "Transgender Pride" = "pride_trans", + "Intersex Pride" = "pride_intersex", + "Lesbian Pride" = "pride_lesbian", + "Man-Loving-Man / Gay Pride" = "pride_mlm", + "Genderfluid Pride" = "pride_genderfluid", + "Genderqueer Pride" = "pride_genderqueer", + "Aromantic Pride" = "pride_aromantic", +)) diff --git a/monkestation/code/modules/blueshift/items/barber.dm b/monkestation/code/modules/blueshift/items/barber.dm new file mode 100644 index 000000000000..c8c230fdfe40 --- /dev/null +++ b/monkestation/code/modules/blueshift/items/barber.dm @@ -0,0 +1,779 @@ +/obj/item + /// How much power would this item use? + var/power_use_amount = 50 + +/// Use the power of an attached component that posesses power handling, will return the signal bitflag. +/obj/item/proc/item_use_power(use_amount, mob/user, check_only) + SHOULD_CALL_PARENT(TRUE) + return SEND_SIGNAL(src, COMSIG_ITEM_POWER_USE, use_amount, user, check_only) + + +/obj/machinery/dryer + name = "hand dryer" + desc = "The Breath Of Lizards-3000, an experimental dryer." + icon = 'monkestation/code/modules/blueshift/icons/dryer.dmi' + icon_state = "dryer" + density = FALSE + anchored = TRUE + var/busy = FALSE + +/obj/machinery/dryer/attack_hand(mob/user) + if(iscyborg(user) || isAI(user)) + return + + if(!can_interact(user)) + return + + if(busy) + to_chat(user, span_warning("Someone's already drying here.")) + return + + to_chat(user, span_notice("You start drying your hands.")) + playsound(src, 'monkestation/code/modules/blueshift/sounds/drying.ogg', 50) + add_fingerprint(user) + busy = TRUE + if(do_after(user, 4 SECONDS, src)) + busy = FALSE + user.visible_message("[user] dried their hands using \the [src].") + else + busy = FALSE + +/obj/item/clothing/head/hair_tie + name = "hair tie" + desc = "An elastic hair tie, made to hold your hair up!" + icon = 'monkestation/code/modules/blueshift/icons/items.dmi' + icon_state = "hairtie" + worn_icon = 'monkestation/code/modules/blueshift/icons/items.dmi' + worn_icon_state = "hair_tie_worn_no_icon" + lefthand_file = 'monkestation/code/modules/blueshift/icons/items.dmi' + righthand_file = 'monkestation/code/modules/blueshift/icons/items.dmi' + inhand_icon_state = "hair_tie_worn_no_icon" + w_class = WEIGHT_CLASS_TINY + custom_price = PAYCHECK_CREW * 0.2 + ///string which set_hairstyle() will read + var/picked_hairstyle + ///storage for the original hairstyle string + var/actual_hairstyle + ///which projectile object to use as flicked hair tie + var/projectile_to_fire = /obj/projectile/bullet/hair_tie + ///how long the do_after takes to flick the hair tie + var/fire_speed = 3 SECONDS + ///how big is the randomized aim radius when flicked + var/projectile_aim_radius = 30 + +/obj/item/clothing/head/hair_tie/scrunchie + name = "scrunchie" + desc = "An elastic hair tie, its fabric is velvet soft." + icon_state = "hairtie_scrunchie" + +/obj/item/clothing/head/hair_tie/plastic_beads + name = "colorful hair tie" + desc = "An elastic hair tie, adornished with colorful plastic beads." + icon_state = "hairtie_beads" + custom_materials = (list(/datum/material/plastic = HALF_SHEET_MATERIAL_AMOUNT)) + +/obj/item/clothing/head/hair_tie/syndicate + name = "\improper Syndicate hair tie" + desc = "An elastic hair tie with a metal clip, brandishing the logo of the Syndicate." + icon_state = "hairtie_syndie" + fire_speed = 1.5 SECONDS + projectile_to_fire = /obj/projectile/bullet/hair_tie/syndicate + projectile_aim_radius = 0 //accurate aim + +/obj/item/clothing/head/hair_tie/examine(mob/user) + . = ..() + if(picked_hairstyle) + . += span_notice("Wearing it will change your hairstyle to '[picked_hairstyle]'.") + . += span_notice("Use in hand to pick a new hairstyle.") + . += span_notice("Alt-click [src] to fling it.") + +/obj/item/clothing/head/hair_tie/mob_can_equip(mob/living/carbon/human/user, slot, disable_warning, bypass_equip_delay_self, ignore_equipped, indirect_action) + if(user.hairstyle == "Bald") //could create a list of the bald hairstyles to check + return FALSE + return ..() + +/obj/item/clothing/head/hair_tie/attack_self(mob/user) + var/hair_id = tgui_input_list(user, "How does your hair look when its up?", "Pick!", GLOB.hairstyles_list) + if(!hair_id || hair_id == "Bald") + balloon_alert(user, "error!") + return + balloon_alert(user, "[hair_id]") + picked_hairstyle = hair_id + +/obj/item/clothing/head/hair_tie/equipped(mob/living/carbon/human/user, slot) + . = ..() + if(!ishuman(user) || !(slot_flags & slot)) + return + if(!picked_hairstyle) + return + user.visible_message( + span_notice("[user.name] ties up [user.p_their()] hair."), + span_notice("You tie up your hair!"), + ) + actual_hairstyle = user.hairstyle + user.hairstyle = picked_hairstyle + user.update_body_parts() + +/obj/item/clothing/head/hair_tie/dropped(mob/living/carbon/human/user) + . = ..() + if(!ishuman(user)) + return + if(!picked_hairstyle || !actual_hairstyle) + return + user.visible_message( + span_notice("[user.name] takes [src] out of [user.p_their()] hair."), + span_notice("You let down your hair!"), + ) + user.hairstyle = actual_hairstyle + user.update_body_parts() + actual_hairstyle = null + +/obj/item/clothing/head/hair_tie/AltClick(mob/living/user) + if(!(user.get_slot_by_item(src) == ITEM_SLOT_HANDS)) + balloon_alert(user, "hold in-hand!") + return + user.visible_message( + span_danger("[user.name] puts [src] around [user.p_their()] fingers, beginning to flick it!"), + span_notice("You try to flick [src]!"), + ) + flick_hair_tie(user) + return + +///This proc flicks the hair tie out of the player's hand, tripping the target hit for 1 second +/obj/item/clothing/head/hair_tie/proc/flick_hair_tie(mob/living/user) + if(!do_after(user, fire_speed, src)) + return + //build the projectile + var/obj/projectile/bullet/hair_tie/proj = new projectile_to_fire (drop_location()) + //clone some vars + proj.name = name + proj.icon_state = icon_state + //add projectile_drop + proj.AddElement(/datum/element/projectile_drop, type) + //aim and fire + proj.firer = user + proj.fired_from = user + proj.fire((dir2angle(user.dir) + rand(-projectile_aim_radius, projectile_aim_radius))) + playsound(src, 'sound/weapons/effects/batreflect.ogg', 25, TRUE) + //get rid of what we just launched to let projectile_drop spawn a new one + qdel(src) + +/obj/projectile/bullet/hair_tie + icon = 'monkestation/code/modules/blueshift/icons/items.dmi' + icon_state = "hairtie" + hitsound = 'sound/weapons/genhit.ogg' + damage = 0 //its just about the knockdown + sharpness = NONE + shrapnel_type = NONE //no embedding pls + impact_effect_type = null + ricochet_chance = 0 + range = 7 + knockdown = 1 SECONDS + +/obj/projectile/bullet/hair_tie/syndicate + damage = 10 //getting hit with this one fucking sucks + stamina = 30 + eyeblur = 2 SECONDS + jitter = 8 SECONDS + +/datum/design/plastic_hair_tie + name = "Plastic Hair Tie" + id = "plastic_hair_tie" + build_type = PROTOLATHE | AWAY_LATHE | AUTOLATHE + materials = list( + /datum/material/plastic = HALF_SHEET_MATERIAL_AMOUNT, + ) + build_path = /obj/item/clothing/head/hair_tie/plastic_beads + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SERVICE, + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE + +/obj/item/scissors + name = "barber's scissors" + desc = "Some say a barbers best tool is his electric razor, that is not the case. These are used to cut hair in a professional way!" + icon = 'monkestation/code/modules/blueshift/icons/items.dmi' + icon_state = "scissors" + w_class = WEIGHT_CLASS_TINY + sharpness = SHARP_EDGED + // How long does it take to change someone's hairstyle? + var/haircut_duration = 1 MINUTES + // How long does it take to change someone's facial hair style? + var/facial_haircut_duration = 20 SECONDS + +/obj/item/scissors/attack(mob/living/attacked_mob, mob/living/user, params) + if(!ishuman(attacked_mob)) + return + + var/mob/living/carbon/human/target_human = attacked_mob + + var/location = user.zone_selected + if(!(location in list(BODY_ZONE_PRECISE_MOUTH, BODY_ZONE_HEAD)) && !(user.istate & ISTATE_HARM)) + to_chat(user, span_warning("You stop, look down at what you're currently holding and ponder to yourself, \"This is probably to be used on their hair or their facial hair.\"")) + return + + if(target_human.hairstyle == "Bald" && target_human.facial_hairstyle == "Shaved") + balloon_alert(user, "What hair? They have none!") + return + + if(user.zone_selected != BODY_ZONE_HEAD) + return ..() + + var/selected_part = tgui_alert(user, "Please select which part of [target_human] you would like to sculpt!", "It's sculpting time!", list("Hair", "Facial Hair", "Cancel")) + + if(!selected_part || selected_part == "Cancel") + return + + if(selected_part == "Hair") + if(!target_human.hairstyle == "Bald" && target_human.head) + balloon_alert(user, "They have no hair to cut!") + return + + var/hair_id = tgui_input_list(user, "Please select what hairstyle you'd like to sculpt!", "Select masterpiece", GLOB.hairstyles_list) + if(!hair_id) + return + + if(hair_id == "Bald") + to_chat(target_human, span_danger("[user] seems to be cutting all your hair off!")) + + to_chat(user, span_notice("You begin to masterfully sculpt [target_human]'s hair!")) + + playsound(target_human, 'monkestation/code/modules/blueshift/sounds/haircut.ogg', 100) + + if(do_after(user, haircut_duration, target_human)) + target_human.hairstyle = hair_id + target_human.update_body_parts() + user.visible_message(span_notice("[user] successfully cuts [target_human]'s hair!"), span_notice("You successfully cut [target_human]'s hair!")) + new /obj/effect/decal/cleanable/hair(get_turf(src)) + else + if(!target_human.facial_hairstyle == "Shaved" && target_human.wear_mask) + balloon_alert(user, "They have no facial hair to cut!") + return + + var/facial_hair_id = tgui_input_list(user, "Please select what facial hairstyle you'd like to sculpt!", "Select masterpiece", GLOB.facial_hairstyles_list) + if(!facial_hair_id) + return + + if(facial_hair_id == "Shaved") + to_chat(target_human, span_danger("[user] seems to be cutting all your facial hair off!")) + + to_chat(user, "You begin to masterfully sculpt [target_human]'s facial hair!") + + playsound(target_human, 'monkestation/code/modules/blueshift/sounds/haircut.ogg', 100) + + if(do_after(user, facial_haircut_duration, target_human)) + target_human.facial_hairstyle = facial_hair_id + target_human.update_body_parts() + user.visible_message(span_notice("[user] successfully cuts [target_human]'s facial hair!"), span_notice("You successfully cut [target_human]'s facial hair!")) + new /obj/effect/decal/cleanable/hair(get_turf(src)) + +/obj/item/reagent_containers/dropper/precision + name = "pipette" + desc = "A high precision pippette. Holds 1 unit." + icon = 'monkestation/code/modules/blueshift/icons/items.dmi' + icon_state = "pipette1" + amount_per_transfer_from_this = 1 + possible_transfer_amounts = list(0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1) + volume = 1 + w_class = WEIGHT_CLASS_TINY + +/obj/structure/chair/comfy/barber_chair + name = "barber's chair" + desc = "You sit in this, and your hair shall be cut." + icon = 'monkestation/code/modules/blueshift/icons/chair.dmi' + icon_state = "barber_chair" + +/obj/machinery/vending/barbervend + name = "Fab-O-Vend" + desc = "It would seem it vends dyes, and other stuff to make you pretty." + icon = 'monkestation/code/modules/blueshift/icons/vendor.dmi' + icon_state = "barbervend" + product_slogans = "Spread the colour, like butter, onto toast... Onto their hair.; Sometimes, I dream about dyes...; Paint 'em up and call me Mr. Painter.; Look brother, I'm a vendomat, I solve practical problems." + product_ads = "Cut 'em all!; To sheds!; Hair be gone!; Prettify!; Beautify!" + vend_reply = "Come again!; Buy another!; Dont you love your new look?" + req_access = list(ACCESS_SERVICE) + refill_canister = /obj/item/vending_refill/barbervend + products = list( + /obj/item/reagent_containers/spray/quantum_hair_dye = 3, + /obj/item/reagent_containers/spray/baldium = 3, + /obj/item/reagent_containers/spray/barbers_aid = 3, + /obj/item/clothing/head/hair_tie = 3, + /obj/item/dyespray = 5, + /obj/item/hairbrush = 3, + /obj/item/hairbrush/comb = 3, + /obj/item/fur_dyer = 1, + ) + premium = list( + /obj/item/scissors = 3, + /obj/item/reagent_containers/spray/super_barbers_aid = 3, + /obj/item/storage/box/lipsticks = 3, + /obj/item/lipstick/quantum = 1, + /obj/item/razor = 1, + /obj/item/storage/box/perfume = 1, + ) + refill_canister = /obj/item/vending_refill/barbervend + default_price = PAYCHECK_CREW + extra_price = PAYCHECK_COMMAND + payment_department = ACCOUNT_SRV + +/obj/item/vending_refill/barbervend + machine_name = "barber vend resupply" + icon_state = "refill_snack" //generic item refill because there isnt one sprited yet. + +/obj/structure/closet/secure_closet/barber + name = "barber's locker" + icon_state = "barber" + icon = 'monkestation/code/modules/blueshift/icons/obj/closet.dmi' + req_access = list(ACCESS_SERVICE) + +/obj/structure/closet/secure_closet/barber/PopulateContents() + new /obj/item/clothing/mask/surgical(src) // These three are here, so the barber can pick and choose what he's painting. + new /obj/item/clothing/under/rank/medical/scrubs/blue(src) + new /obj/item/clothing/suit/apron/surgical(src) + new /obj/item/clothing/accessory/waistcoat(src) + new /obj/item/clothing/under/rank/civilian/lawyer/purpsuit(src) + new /obj/item/clothing/suit/toggle/lawyer/purple(src) + new /obj/item/razor(src) + new /obj/item/hairbrush/comb(src) + new /obj/item/scissors(src) + new /obj/item/fur_dyer(src) + new /obj/item/dyespray(src) + new /obj/item/storage/box/lipsticks(src) + new /obj/item/reagent_containers/spray/quantum_hair_dye(src) + new /obj/item/reagent_containers/spray/barbers_aid(src) + new /obj/item/reagent_containers/spray/cleaner(src) + new /obj/item/reagent_containers/cup/rag(src) + new /obj/item/storage/medkit(src) + +#define COLOR_MODE_SPECIFIC "Specific Marking" +#define COLOR_MODE_GENERAL "General Color" + +/obj/item/fur_dyer + name = "electric fur dyer" + desc = "Dye that is capable of recoloring fur in a mostly permanent way." + icon = 'monkestation/code/modules/blueshift/icons/items.dmi' + icon_state = "fur_sprayer" + w_class = WEIGHT_CLASS_TINY + + var/mode = COLOR_MODE_SPECIFIC + +/obj/item/fur_dyer/Initialize(mapload) + . = ..() + AddComponent(/datum/component/cell) + +/obj/item/fur_dyer/attack_self(mob/user, modifiers) + . = ..() + if(mode == COLOR_MODE_SPECIFIC) + mode = COLOR_MODE_GENERAL + else + mode = COLOR_MODE_SPECIFIC + + balloon_alert(user, "Set to [mode]!") + +/obj/item/fur_dyer/attack(mob/living/M, mob/living/user, params) + if(!ishuman(M)) + return ..() + + var/mob/living/carbon/human/target_human = M + + switch(mode) + if(COLOR_MODE_SPECIFIC) + dye_marking(target_human, user) + if(COLOR_MODE_GENERAL) + dye_general(target_human, user) + +/obj/item/fur_dyer/proc/dye_general(mob/living/carbon/human/target_human, mob/living/user) + var/selected_mutant_color = tgui_alert(user, "Please select which mutant color you'd like to change", "Select Color", list("One", "Two", "Three")) + + if(!selected_mutant_color) + return + + if(!(item_use_power(power_use_amount, user, TRUE) & COMPONENT_POWER_SUCCESS)) + to_chat(user, span_danger("A red light blinks!")) + return + + var/selected_color = input( + user, + "Select marking color", + null, + COLOR_WHITE, + ) as color | null + + if(!selected_color) + return + + selected_color = sanitize_hexcolor(selected_color) + + visible_message(span_notice("[user] starts to masterfully paint [target_human]!")) + + if(do_after(user, 20 SECONDS, target_human)) + switch(selected_mutant_color) + if("One") + target_human.dna.features["mcolor"] = selected_color + if("Two") + target_human.dna.features["mcolor1"] = selected_color + if("Three") + target_human.dna.features["mcolor2"] = selected_color + + target_human.regenerate_icons() + item_use_power(power_use_amount, user) + + visible_message(span_notice("[user] finishes painting [target_human]!")) + + playsound(src.loc, 'sound/effects/spray2.ogg', 50, TRUE) + + +/obj/item/fur_dyer/proc/dye_marking(mob/living/carbon/human/target_human, mob/living/user) + + var/list/list/current_markings = list(target_human.dna.features["body_markings"]) + + if(!current_markings.len) + to_chat(user, span_danger("[target_human] has no markings!")) + return + + if(!(item_use_power(power_use_amount, user, TRUE) & COMPONENT_POWER_SUCCESS)) + to_chat(user, span_danger("A red light blinks!")) + return + + var/selected_marking_area = user.zone_selected + + if(!current_markings[selected_marking_area]) + to_chat(user, span_danger("[target_human] has no bodymarkings on this limb!")) + return + + var/selected_marking_id = tgui_input_list(user, "Please select which marking you'd like to color!", "Select marking", current_markings[selected_marking_area]) + + if(!selected_marking_id) + return + + var/selected_color = input( + user, + "Select marking color", + null, + COLOR_WHITE, + ) as color | null + + if(!selected_color) + return + + selected_color = sanitize_hexcolor(selected_color) + + visible_message(span_notice("[user] starts to masterfully paint [target_human]!")) + + if(do_after(user, 20 SECONDS, target_human)) + current_markings[selected_marking_area][selected_marking_id] = selected_color + + target_human.dna.features["body_markings"] = current_markings[1] + + target_human.regenerate_icons() + + item_use_power(power_use_amount, user) + + visible_message(span_notice("[user] finishes painting [target_human]!")) + + playsound(src.loc, 'sound/effects/spray2.ogg', 50, TRUE) + + + +/obj/item/storage/box/lipsticks + name = "lipstick box" + +/obj/item/storage/box/lipsticks/PopulateContents() + ..() + new /obj/item/lipstick(src) + new /obj/item/lipstick/purple(src) + new /obj/item/lipstick/jade(src) + new /obj/item/lipstick/black(src) + +/obj/item/lipstick/quantum + name = "quantum lipstick" + +/obj/item/lipstick/quantum/attack(mob/attacked_mob, mob/user) + if(!open || !ismob(attacked_mob)) + return + + if(!ishuman(attacked_mob)) + to_chat(user, span_warning("Where are the lips on that?")) + return + + INVOKE_ASYNC(src, PROC_REF(async_set_color), attacked_mob, user) + +/obj/item/lipstick/quantum/proc/async_set_color(mob/attacked_mob, mob/user) + var/new_color = input( + user, + "Select lipstick color", + null, + COLOR_WHITE, + ) as color | null + + var/mob/living/carbon/human/target = attacked_mob + if(target.is_mouth_covered()) + to_chat(user, span_warning("Remove [ target == user ? "your" : "[target.p_their()]" ] mask!")) + return + if(target.lip_style) //if they already have lipstick on + to_chat(user, span_warning("You need to wipe off the old lipstick first!")) + return + + if(target == user) + user.visible_message(span_notice("[user] does [user.p_their()] lips with \the [src]."), \ + span_notice("You take a moment to apply \the [src]. Perfect!")) + target.update_lips("lipstick", new_color, lipstick_trait) + return + + user.visible_message(span_warning("[user] begins to do [target]'s lips with \the [src]."), \ + span_notice("You begin to apply \the [src] on [target]'s lips...")) + if(!do_after(user, 2 SECONDS, target = target)) + return + user.visible_message(span_notice("[user] does [target]'s lips with \the [src]."), \ + span_notice("You apply \the [src] on [target]'s lips.")) + target.update_lips("lipstick", new_color, lipstick_trait) + +/obj/item/hairbrush/comb + name = "comb" + desc = "A rather simple tool, used to straighten out hair and knots in it." + icon = 'monkestation/code/modules/blueshift/icons/items.dmi' + icon_state = "blackcomb" + +/obj/item/hairstyle_preview_magazine + name = "hip hairstyles magazine" + desc = "A magazine featuring a magnitude of hairsytles!" + +/obj/item/hairstyle_preview_magazine/ui_interact(mob/user, datum/tgui/ui) + . = ..() + // A simple GUI with a list of hairstyles and a view, so people can choose a hairstyle! + +/obj/effect/decal/cleanable/hair + name = "hair cuttings" + icon = 'monkestation/code/modules/blueshift/icons/items.dmi' + icon_state = "cut_hair" + +/obj/item/razor + name = "electric razor" + desc = "The latest and greatest power razor born from the science of shaving." + icon = 'monkestation/code/modules/blueshift/icons/items.dmi' + icon_state = "razor" + w_class = WEIGHT_CLASS_TINY + // How long do we take to shave someone's (facial) hair? + var/shaving_time = 5 SECONDS + +/obj/item/razor/suicide_act(mob/living/carbon/user) + user.visible_message(span_suicide("[user] begins shaving [user.p_them()]self without the razor guard! It looks like [user.p_theyre()] trying to commit suicide!")) + shave(user, BODY_ZONE_PRECISE_MOUTH) + shave(user, BODY_ZONE_HEAD)//doesnt need to be BODY_ZONE_HEAD specifically, but whatever + return BRUTELOSS + +/obj/item/razor/proc/shave(mob/living/carbon/human/target_human, location = BODY_ZONE_PRECISE_MOUTH) + if(location == BODY_ZONE_PRECISE_MOUTH) + target_human.hairstyle = "Shaved" + target_human.update_body_parts() + else + target_human.hairstyle = "Bald" + target_human.update_body_parts() + + playsound(loc, 'sound/items/unsheath.ogg', 20, TRUE) + + +/obj/item/razor/attack(mob/attacked_mob, mob/living/user) + if(!ishuman(attacked_mob)) + return ..() + + var/mob/living/carbon/human/target_human = attacked_mob + var/location = user.zone_selected + var/obj/item/bodypart/head/noggin = target_human.get_bodypart(BODY_ZONE_HEAD) + var/static/list/head_zones = list(BODY_ZONE_PRECISE_MOUTH, BODY_ZONE_HEAD) + + if(!noggin && (location in head_zones)) + to_chat(user, span_warning("[target_human] doesn't have a head!")) + return + + if(!(location in head_zones) && !(user.istate & ISTATE_HARM)) + to_chat(user, span_warning("You stop, look down at what you're currently holding and ponder to yourself, \"This is probably to be used on their hair or their facial hair.\"")) + return + + if(location == BODY_ZONE_PRECISE_MOUTH) + if(!get_location_accessible(target_human, location)) + to_chat(user, span_warning("The mask is in the way!")) + return + + if(HAS_TRAIT(target_human, TRAIT_SHAVED)) + to_chat(user, span_warning("[target_human] is just way too shaved. Like, really really shaved.")) + return + + if(target_human.facial_hairstyle == "Shaved") + to_chat(user, span_warning("Already clean-shaven!")) + return + + var/self_shaving = target_human == user // Shaving yourself? + user.visible_message(span_notice("[user] starts to shave [self_shaving ? user.p_their() : "[target_human]'s"] hair with [src]."), \ + span_notice("You take a moment to shave [self_shaving ? "your" : "[target_human]'s" ] hair with [src]...")) + + if(do_after(user, shaving_time, target = target_human)) + user.visible_message(span_notice("[user] shaves [self_shaving ? user.p_their() : "[target_human]'s"] hair clean with [src]."), \ + span_notice("You finish shaving [self_shaving ? "your" : " [target_human]'s"] hair with [src]. Fast and clean!")) + + shave(target_human, location) + + else if(location == BODY_ZONE_HEAD) + + if(!get_location_accessible(target_human, location)) + to_chat(user, span_warning("The headgear is in the way!")) + return + + if(target_human.hairstyle == "Bald" || target_human.hairstyle == "Balding Hair" || target_human.hairstyle == "Skinhead") + to_chat(user, span_warning("There is not enough hair left to shave!")) + return + + if(HAS_TRAIT(target_human, TRAIT_SHAVED)) + to_chat(user, span_warning("[target_human] is just way too shaved. Like, really really shaved.")) + return + + var/self_shaving = target_human == user // Shaving yourself? + user.visible_message(span_notice("[user] starts to shave [self_shaving ? user.p_their() : "[target_human]'s"] hair with [src]."), \ + span_notice("You take a moment to shave [self_shaving ? "your" : "[target_human]'s" ] hair with [src]...")) + + if(do_after(user, shaving_time, target = target_human)) + user.visible_message(span_notice("[user] shaves [self_shaving ? user.p_their() : "[target_human]'s"] hair clean with [src]."), \ + span_notice("You finish shaving [self_shaving ? "your" : " [target_human]'s"] hair with [src]. Fast and clean!")) + + shave(target_human, location) + + return + + return ..() + +/obj/structure/sign/barber + name = "barbershop sign" + desc = "A glowing red-blue-white stripe you won't mistake for any other!" + icon = 'monkestation/code/modules/blueshift/icons/items.dmi' + icon_state = "barber" + buildable_sign = FALSE // Don't want them removed, they look too jank. + +/obj/item/storage/box/perfume + name = "box of perfumes" + +/obj/item/storage/box/perfume/PopulateContents() + new /obj/item/perfume/cologne(src) + new /obj/item/perfume/wood(src) + new /obj/item/perfume/rose(src) + new /obj/item/perfume/jasmine(src) + new /obj/item/perfume/mint(src) + new /obj/item/perfume/vanilla(src) + new /obj/item/perfume/pear(src) + new /obj/item/perfume/strawberry(src) + new /obj/item/perfume/cherry(src) + new /obj/item/perfume/amber(src) + +/obj/item/reagent_containers/spray/quantum_hair_dye + name = "quantum hair dye" + desc = "Changes hair colour RANDOMLY! Don't forget to read the label!" + icon = 'monkestation/code/modules/blueshift/icons/items.dmi' + icon_state = "hairspraywhite" + amount_per_transfer_from_this = 1 + possible_transfer_amounts = list(1, 5) + list_reagents = list(/datum/reagent/hair_dye = 30) + volume = 50 + +/obj/item/reagent_containers/spray/baldium + name = "baldium spray" + desc = "Causes baldness, exessive use may cause customer disatisfaction." + icon = 'monkestation/code/modules/blueshift/icons/items.dmi' + icon_state = "hairremoval" + amount_per_transfer_from_this = 1 + possible_transfer_amounts = list(1, 5) + list_reagents = list(/datum/reagent/baldium = 30) + volume = 50 + +/obj/item/reagent_containers/spray/barbers_aid + name = "barber's aid" + desc = "Causes rapid hair and facial hair growth!" + icon = 'monkestation/code/modules/blueshift/icons/items.dmi' + icon_state = "hairaccelerator" + amount_per_transfer_from_this = 1 + possible_transfer_amounts = list(1, 5) + list_reagents = list(/datum/reagent/barbers_aid = 50) + volume = 50 + +/obj/item/reagent_containers/spray/super_barbers_aid + name = "super barber's aid" + desc = "Causes SUPER rapid hair and facial hair growth!" + icon = 'monkestation/code/modules/blueshift/icons/items.dmi' + icon_state = "hairaccelerator" + amount_per_transfer_from_this = 1 + possible_transfer_amounts = list(1, 5) + list_reagents = list(/datum/reagent/concentrated_barbers_aid = 30) + volume = 50 + +// Hairbrushes + +/obj/item/hairbrush + name = "hairbrush" + desc = "A small, circular brush with an ergonomic grip for efficient brush application." + icon = 'monkestation/code/modules/blueshift/icons/hairbrush.dmi' + icon_state = "brush" + inhand_icon_state = "inhand" + lefthand_file = 'monkestation/code/modules/blueshift/icons/inhand_left.dmi' + righthand_file = 'monkestation/code/modules/blueshift/icons/inhand_right.dmi' + w_class = WEIGHT_CLASS_TINY + var/brush_speed = 3 SECONDS + +/obj/item/hairbrush/attack(mob/target, mob/user) + if(target.stat == DEAD) + to_chat(usr, span_warning("There isn't much point brushing someone who can't appreciate it!")) + return + brush(target, user) + return COMPONENT_CANCEL_ATTACK_CHAIN + +/// Brushes someone, giving them a small mood boost +/obj/item/hairbrush/proc/brush(mob/living/target, mob/user) + if(ishuman(target)) + var/mob/living/carbon/human/human_target = target + var/obj/item/bodypart/head = human_target.get_bodypart(BODY_ZONE_HEAD) + + // Don't brush if you can't reach their head or cancel the action + if(!head) + to_chat(user, span_warning("[human_target] has no head!")) + return + if(human_target.is_mouth_covered(ITEM_SLOT_HEAD)) + to_chat(user, span_warning("You can't brush [human_target]'s hair while [human_target.p_their()] head is covered!")) + return + if(!do_after(user, brush_speed, human_target)) + return + + // Do 1 brute to their head if they're bald. Should've been more careful. + if(human_target.hairstyle == "Bald" || human_target.hairstyle == "Skinhead" && is_species(human_target, /datum/species/human)) //It can be assumed most anthros have hair on them! + human_target.visible_message(span_warning("[usr] scrapes the bristles uncomfortably over [human_target]'s scalp."), span_warning("You scrape the bristles uncomfortably over [human_target]'s scalp.")) + head.receive_damage(1) + return + + // Brush their hair + if(human_target == user) + human_target.visible_message(span_notice("[usr] brushes [usr.p_their()] hair!"), span_notice("You brush your hair.")) + human_target.add_mood_event("brushed", /datum/mood_event/brushed/self) + else + user.visible_message(span_notice("[usr] brushes [human_target]'s hair!"), span_notice("You brush [human_target]'s hair."), ignored_mobs=list(human_target)) + human_target.show_message(span_notice("[usr] brushes your hair!"), MSG_VISUAL) + human_target.add_mood_event("brushed", /datum/mood_event/brushed, user) + + else if(istype(target, /mob/living/basic/pet)) + if(!do_after(usr, brush_speed, target)) + return + to_chat(user, span_notice("[target] closes [target.p_their()] eyes as you brush [target.p_them()]!")) + var/mob/living/living_user = user + if(istype(living_user)) + living_user.add_mood_event("brushed", /datum/mood_event/brushed/pet, target) + +/datum/mood_event/brushed + description = span_nicegreen("Someone brushed my hair recently, that felt great!\n") + mood_change = 3 + timeout = 4 MINUTES + +/datum/mood_event/brushed/add_effects(mob/brusher) + description = span_nicegreen("[brusher? brusher.name : "I"] brushed my hair recently, that felt great!\n") + +/datum/mood_event/brushed/self + description = span_nicegreen("I brushed my hair recently!\n") + mood_change = 2 // You can't hit all the right spots yourself, or something + +/datum/mood_event/brushed/pet/add_effects(mob/brushed_pet) + description = span_nicegreen("I brushed [brushed_pet] recently, they're so cute!\n") diff --git a/monkestation/code/modules/blueshift/items/briefcase.dm b/monkestation/code/modules/blueshift/items/briefcase.dm new file mode 100644 index 000000000000..7425c355b852 --- /dev/null +++ b/monkestation/code/modules/blueshift/items/briefcase.dm @@ -0,0 +1,37 @@ +/** + * Secure briefcase + * Uses the lockable storage component to give it a lock. + */ +/obj/item/storage/briefcase/secure + name = "secure briefcase" + desc = "A large briefcase with a digital locking system." + icon_state = "secure" + base_icon_state = "secure" + inhand_icon_state = "sec-case" + +/obj/item/storage/briefcase/secure/Initialize(mapload) + . = ..() + atom_storage.max_total_storage = 21 + atom_storage.max_specific_storage = WEIGHT_CLASS_NORMAL + AddComponent(/datum/component/lockable_storage) + +///Syndie variant of Secure Briefcase. Contains space cash, slightly more robust. +/obj/item/storage/briefcase/secure/syndie + force = 15 + +/obj/item/storage/briefcase/secure/syndie/PopulateContents() + . = ..() + for(var/iterator in 1 to 5) + new /obj/item/stack/spacecash/c1000(src) + +/// A briefcase that contains various sought-after spoils +/obj/item/storage/briefcase/secure/riches + +/obj/item/storage/briefcase/secure/riches/PopulateContents() + new /obj/item/clothing/suit/armor/vest(src) + new /obj/item/gun/ballistic/automatic/pistol(src) + new /obj/item/suppressor(src) + new /obj/item/melee/baton/telescopic(src) + new /obj/item/clothing/mask/balaclava(src) + new /obj/item/bodybag(src) + new /obj/item/soap/nanotrasen(src) diff --git a/monkestation/code/modules/blueshift/items/capacitor.dm b/monkestation/code/modules/blueshift/items/capacitor.dm new file mode 100644 index 000000000000..cb2482943370 --- /dev/null +++ b/monkestation/code/modules/blueshift/items/capacitor.dm @@ -0,0 +1,27 @@ +/obj/item/stock_parts/capacitor/Initialize(mapload) + . = ..() + + RegisterSignal(src, COMSIG_ITEM_ATTACK_OBJ, PROC_REF(install_polarization_controller)) + + +/** + * Handles installing the capacitor in the window, to provide it with some + * polarization functionalities. + */ +/obj/item/stock_parts/capacitor/proc/install_polarization_controller(datum/source, obj/structure/window/target, mob/user) + SIGNAL_HANDLER + + if(!istype(target)) + return + + . = COMPONENT_CANCEL_ATTACK_CHAIN // Just to reduce the unnecessary repetition at every early return. + + var/datum/component/polarization_controller/window_polarization_controller = target.GetComponent(/datum/component/polarization_controller) + + if(window_polarization_controller) + balloon_alert(user, "polarization controller already installed!") + return + + target.AddComponent(/datum/component/polarization_controller, src) // No need to do anything else, the component will handle moving the capacitor into the window. + + target.balloon_alert(user, "polarization controller installed") diff --git a/monkestation/code/modules/blueshift/items/company_guns.dm b/monkestation/code/modules/blueshift/items/company_guns.dm new file mode 100644 index 000000000000..1377d24126e3 --- /dev/null +++ b/monkestation/code/modules/blueshift/items/company_guns.dm @@ -0,0 +1,1341 @@ +// Base Sol rifle + +/obj/item/gun/ballistic/automatic/sol_rifle + name = "\improper Carwo-Cawil Battle Rifle" + desc = "A heavy battle rifle firing .40 Sol. Commonly seen in the hands of SolFed military types. Accepts any standard SolFed rifle magazine." + + icon = 'monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/carwo_defense_systems/guns48x.dmi' + icon_state = "infanterie" + + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/carwo_defense_systems/guns_worn.dmi' + worn_icon_state = "infanterie" + + lefthand_file = 'monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/carwo_defense_systems/guns_lefthand.dmi' + righthand_file = 'monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/carwo_defense_systems/guns_righthand.dmi' + inhand_icon_state = "infanterie" + + SET_BASE_PIXEL(-8, 0) + + special_mags = TRUE + + bolt_type = BOLT_TYPE_LOCKING + + w_class = WEIGHT_CLASS_BULKY + weapon_weight = WEAPON_HEAVY + slot_flags = ITEM_SLOT_BACK | ITEM_SLOT_SUITSTORE + + accepted_magazine_type = /obj/item/ammo_box/magazine/c40sol_rifle + spawn_magazine_type = /obj/item/ammo_box/magazine/c40sol_rifle/standard + + fire_sound = 'monkestation/code/modules/blueshift/sounds/rifle_heavy.ogg' + suppressed_sound = 'monkestation/code/modules/blueshift/sounds/suppressed_rifle.ogg' + can_suppress = TRUE + + can_bayonet = FALSE + + suppressor_x_offset = 12 + + burst_size = 1 + fire_delay = 0.45 SECONDS + actions_types = list() + + spread = 7.5 + projectile_wound_bonus = -10 + +/obj/item/gun/ballistic/automatic/sol_rifle/Initialize(mapload) + . = ..() + + give_autofire() + +/// Separate proc for handling auto fire just because one of these subtypes isn't otomatica +/obj/item/gun/ballistic/automatic/sol_rifle/proc/give_autofire() + AddComponent(/datum/component/automatic_fire, fire_delay) + +/obj/item/gun/ballistic/automatic/sol_rifle/give_manufacturer_examine() + AddElement(/datum/element/manufacturer_examine, COMPANY_CARWO) + +/obj/item/gun/ballistic/automatic/sol_rifle/examine(mob/user) + . = ..() + . += span_notice("You can examine closer to learn a little more about this weapon.") + +/obj/item/gun/ballistic/automatic/sol_rifle/examine_more(mob/user) + . = ..() + + . += "The Carwo-Cawil rifles are built by Carwo for \ + use by SolFed's various infantry branches. Following the rather reasonable \ + military requirements of using the same few cartridges and magazines, \ + the lifespans of logistics coordinators and quartermasters everywhere \ + were lengthened by several years. While typically only for military sale \ + in the past, the recent collapse of certain unnamed weapons manufacturers \ + has caused Carwo to open many of its military weapons to civilian sale, \ + which includes this one." + + return . + +/obj/item/gun/ballistic/automatic/sol_rifle/no_mag + spawnwithmagazine = FALSE + +// Sol marksman rifle + +/obj/item/gun/ballistic/automatic/sol_rifle/marksman + name = "\improper Cawil Marksman Rifle" + desc = "A heavy marksman rifle commonly seen in the hands of SolFed military types. Accepts any standard SolFed rifle magazine." + + icon_state = "elite" + worn_icon_state = "elite" + inhand_icon_state = "elite" + + spawn_magazine_type = /obj/item/ammo_box/magazine/c40sol_rifle + + fire_delay = 0.75 SECONDS + + spread = 0 + projectile_damage_multiplier = 1.2 + projectile_wound_bonus = 10 + +/obj/item/gun/ballistic/automatic/sol_rifle/marksman/Initialize(mapload) + . = ..() + + AddComponent(/datum/component/scope, range_modifier = 2) + +/obj/item/gun/ballistic/automatic/sol_rifle/marksman/give_autofire() + return + +/obj/item/gun/ballistic/automatic/sol_rifle/marksman/examine_more(mob/user) + . = ..() + + . += "This particlar variant is a marksman rifle. \ + Automatic fire was forsaken for a semi-automatic setup, a more fitting \ + stock, and more often than not a scope. Typically also seen with smaller \ + magazines for convenience for the shooter, but as with any other Sol \ + rifle, all standard magazine types will work." + + return . + +/obj/item/gun/ballistic/automatic/sol_rifle/marksman/no_mag + spawnwithmagazine = FALSE + +// Machinegun based on the base Sol rifle + +/obj/item/gun/ballistic/automatic/sol_rifle/machinegun + name = "\improper Qarad Light Machinegun" + desc = "A hefty machinegun commonly seen in the hands of SolFed military types. Accepts any standard SolFed rifle magazine." + + icon_state = "outomaties" + worn_icon_state = "outomaties" + inhand_icon_state = "outomaties" + + bolt_type = BOLT_TYPE_OPEN + + spawn_magazine_type = /obj/item/ammo_box/magazine/c40sol_rifle/drum + + fire_delay = 0.1 SECONDS + + recoil = 1 + spread = 12.5 + projectile_wound_bonus = -20 + +/obj/item/gun/ballistic/automatic/sol_rifle/machinegun/examine_more(mob/user) + . = ..() + + . += "The 'Qarad' variant of the rifle, what you are looking at now, \ + is a modification to turn the weapon into a passable, if sub-optimal \ + light machinegun. To support the machinegun role, the internals were \ + converted to make the gun into an open bolt, faster firing machine. These \ + additions, combined with a battle rifle not meant to be used fully auto \ + much to begin with, made for a relatively unwieldy weapon. A machinegun, \ + however, is still a machinegun, no matter how hard it is to keep on target." + + return . + +/obj/item/gun/ballistic/automatic/sol_rifle/machinegun/no_mag + spawnwithmagazine = FALSE + +// Evil version of the rifle (nothing different its just black) + +/obj/item/gun/ballistic/automatic/sol_rifle/evil + desc = "A heavy battle rifle, this one seems to be painted tacticool black. Accepts any standard SolFed rifle magazine." + + icon_state = "infanterie_evil" + worn_icon_state = "infanterie_evil" + inhand_icon_state = "infanterie_evil" + +/obj/item/gun/ballistic/automatic/sol_rifle/evil/no_mag + spawnwithmagazine = FALSE + +// SolFed shotgun (this was gonna be in a proprietary shotgun shell type outside of 12ga at some point, wild right?) + +/obj/item/gun/ballistic/shotgun/riot/sol + name = "\improper Renoster Shotgun" + desc = "A twelve gauge shotgun with a six shell capacity underneath. Made for and used by SolFed's various military branches." + + icon = 'monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/carwo_defense_systems/guns48x.dmi' + icon_state = "renoster" + + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/carwo_defense_systems/guns_worn.dmi' + worn_icon_state = "renoster" + + lefthand_file = 'monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/carwo_defense_systems/guns_lefthand.dmi' + righthand_file = 'monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/carwo_defense_systems/guns_righthand.dmi' + inhand_icon_state = "renoster" + + inhand_x_dimension = 32 + inhand_y_dimension = 32 + + SET_BASE_PIXEL(-8, 0) + + fire_sound = 'monkestation/code/modules/blueshift/sounds/shotgun_heavy.ogg' + rack_sound = 'monkestation/code/modules/blueshift/sounds/shotgun_rack.ogg' + suppressed_sound = 'monkestation/code/modules/blueshift/sounds/suppressed_heavy.ogg' + can_suppress = TRUE + + suppressor_x_offset = 9 + + w_class = WEIGHT_CLASS_BULKY + slot_flags = ITEM_SLOT_BACK | ITEM_SLOT_SUITSTORE + +/obj/item/gun/ballistic/shotgun/riot/sol/give_manufacturer_examine() + AddElement(/datum/element/manufacturer_examine, COMPANY_CARWO) + +/obj/item/gun/ballistic/shotgun/riot/sol/examine(mob/user) + . = ..() + . += span_notice("You can examine closer to learn a little more about this weapon.") + +/obj/item/gun/ballistic/shotgun/riot/sol/examine_more(mob/user) + . = ..() + + . += "The Renoster was designed at its core as a police shotgun. \ + As consequence, it holds all the qualities a police force would want \ + in one. Large shell capacity, sturdy frame, while holding enough \ + capacity for modification to satiate even the most overfunded of \ + peacekeeper forces. Inevitably, the weapon made its way into civilian \ + markets alongside its sale to several military branches that also \ + saw value in having a heavy shotgun." + + return . + +/obj/item/gun/ballistic/shotgun/riot/sol/update_appearance(updates) + if(sawn_off) + suppressor_x_offset = 0 + SET_BASE_PIXEL(0, 0) + + . = ..() + +// Shotgun but EVIL! + +/obj/item/gun/ballistic/shotgun/riot/sol/evil + desc = "A twleve guage shotgun with an eight shell capacity underneath. This one is painted in a tacticool black." + + icon_state = "renoster_evil" + worn_icon_state = "renoster_evil" + inhand_icon_state = "renoster_evil" + +// Low caliber grenade launcher (fun & games) + +/obj/item/gun/ballistic/automatic/sol_grenade_launcher + name = "\improper Kiboko Grenade Launcher" + desc = "A unique grenade launcher firing .980 grenades. A laser sight system allows its user to specify a range for the grenades it fires to detonate at." + + icon = 'monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/carwo_defense_systems/guns48x.dmi' + icon_state = "kiboko" + + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/carwo_defense_systems/guns_worn.dmi' + worn_icon_state = "kiboko" + + lefthand_file = 'monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/carwo_defense_systems/guns_lefthand.dmi' + righthand_file = 'monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/carwo_defense_systems/guns_righthand.dmi' + inhand_icon_state = "kiboko" + + SET_BASE_PIXEL(-8, 0) + + special_mags = TRUE + + bolt_type = BOLT_TYPE_LOCKING + + w_class = WEIGHT_CLASS_BULKY + weapon_weight = WEAPON_HEAVY + slot_flags = ITEM_SLOT_BACK | ITEM_SLOT_SUITSTORE + + accepted_magazine_type = /obj/item/ammo_box/magazine/c980_grenade + + fire_sound = 'monkestation/code/modules/blueshift/sounds/grenade_launcher.ogg' + + can_suppress = FALSE + can_bayonet = FALSE + + burst_size = 1 + fire_delay = 5 + actions_types = list() + + /// The currently stored range to detonate shells at + var/target_range = 14 + /// The maximum range we can set grenades to detonate at, just to be safe + var/maximum_target_range = 14 + +/obj/item/gun/ballistic/automatic/sol_grenade_launcher/give_manufacturer_examine() + AddElement(/datum/element/manufacturer_examine, COMPANY_CARWO) + +/obj/item/gun/ballistic/automatic/sol_grenade_launcher/examine(mob/user) + . = ..() + . += span_notice("You can examine closer to learn a little more about this weapon.") + +/obj/item/gun/ballistic/automatic/sol_grenade_launcher/examine_more(mob/user) + . = ..() + + . += "The Kiboko is one of the strangest weapons Carwo offers. A grenade launcher, \ + though not in the standard grenade size. The much lighter .980 Tydhouer grenades \ + developed for the weapon offered many advantages over standard grenade launching \ + ammunition. For a start, it was significantly lighter, and easier to carry large \ + amounts of. What it also offered, however, and the reason SolFed funded the \ + project: Variable time fuze. Using the large and expensive ranging sight on the \ + launcher, its user can set an exact distance for the grenade to self detonate at. \ + The dream of militaries for decades, finally realized. The smaller shells do not, \ + however, make the weapon any more enjoyable to fire. The kick is only barely \ + manageable thanks to the massive muzzle brake at the front." + + return . + +/obj/item/gun/ballistic/automatic/sol_grenade_launcher/examine(mob/user) + . = ..() + + . += span_notice("With Right Click you can set the range that shells will detonate at.") + . += span_notice("A small indicator in the sight notes the current detonation range is: [target_range].") + +/obj/item/gun/ballistic/automatic/sol_grenade_launcher/afterattack_secondary(atom/target, mob/living/user, proximity_flag, click_parameters) + if(!target || !user) + return + + var/distance_ranged = get_dist(user, target) + if(distance_ranged > maximum_target_range) + user.balloon_alert(user, "out of range") + return + + target_range = distance_ranged + user.balloon_alert(user, "range set: [target_range]") + +/obj/item/gun/ballistic/automatic/sol_grenade_launcher/no_mag + spawnwithmagazine = FALSE + +// fun & games but evil this time + +/obj/item/gun/ballistic/automatic/sol_grenade_launcher/evil + icon_state = "kiboko_evil" + worn_icon_state = "kiboko_evil" + inhand_icon_state = "kiboko_evil" + + spawn_magazine_type = /obj/item/ammo_box/magazine/c980_grenade/drum + +/obj/item/gun/ballistic/automatic/sol_grenade_launcher/evil/no_mag + spawnwithmagazine = FALSE + +/* +* QM Sporter Rifle +*/ + +/obj/item/gun/ballistic/rifle/boltaction/sporterized + name = "\improper Rengo Precision Rifle" + desc = "A heavily modified Sakhno rifle, parts made by Xhihao light arms based around Jupiter herself. \ + Has a higher capacity than standard Sakhno rifles, fitting ten .310 cartridges." + icon = 'monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/xhihao_light_arms/guns40x.dmi' + icon_state = "rengo" + inhand_icon_state = "moistnugget" + accepted_magazine_type = /obj/item/ammo_box/magazine/internal/boltaction/bubba + can_be_sawn_off = FALSE + knife_x_offset = 35 + +/obj/item/gun/ballistic/rifle/boltaction/sporterized/Initialize(mapload) + . = ..() + + AddComponent(/datum/component/scope, range_modifier = 1.5) + +/obj/item/gun/ballistic/rifle/boltaction/sporterized/give_manufacturer_examine() + AddElement(/datum/element/manufacturer_examine, COMPANY_XHIHAO) + +/obj/item/gun/ballistic/rifle/boltaction/sporterized/examine(mob/user) + . = ..() + . += span_notice("You can examine closer to learn a little more about this weapon.") + +/obj/item/gun/ballistic/rifle/boltaction/sporterized/examine_more(mob/user) + . = ..() + + . += "The Xhihao 'Rengo' conversion rifle. Came as parts sold in a single kit by Xhihao Light Arms, \ + which can be swapped out with many of the outdated or simply old parts on a typical Sakhno rifle. \ + While not necessarily increasing performance in any way, the magazine is slightly longer. The weapon \ + is also overall a bit shorter, making it easier to handle for some people. Cannot be sawn off, cutting \ + really any part of this weapon off would make it non-functional." + + return . + +/obj/item/gun/ballistic/rifle/boltaction/sporterized/empty + bolt_locked = TRUE // so the bolt starts visibly open + accepted_magazine_type = /obj/item/ammo_box/magazine/internal/boltaction/bubba/empty + +/obj/item/ammo_box/magazine/internal/boltaction/bubba + name = "Sakhno extended internal magazine" + desc = "How did you get it out?" + ammo_type = /obj/item/ammo_casing/strilka310 + caliber = CALIBER_STRILKA310 + max_ammo = 8 + +/obj/item/ammo_box/magazine/internal/boltaction/bubba/empty + start_empty = TRUE + +/* +* Box that contains Sakhno rifles, but less soviet union since we don't have one of those +*/ + +/obj/item/storage/toolbox/guncase/soviet/sakhno + desc = "A weapon's case. This one is green and looks pretty old, but is otherwise in decent condition." + icon = 'icons/obj/storage/case.dmi' + material_flags = NONE // ????? Why do these have materials enabled?? + +// Evil .585 smg that blueshields spawn with that will throw your screen like hell but itll sure kill whoever threatens a head really good + +/obj/item/gun/ballistic/automatic/xhihao_smg + name = "\improper Bogseo Submachine Gun" + desc = "A weapon that could hardly be called a 'sub' machinegun, firing the monstrous .585 cartridge. \ + It provides enough kick to bruise a shoulder pretty bad if used without protection." + + icon = 'monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/xhihao_light_arms/guns32x.dmi' + icon_state = "bogseo" + + lefthand_file = 'monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/xhihao_light_arms/guns_lefthand.dmi' + righthand_file = 'monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/xhihao_light_arms/guns_righthand.dmi' + inhand_icon_state = "bogseo" + + special_mags = FALSE + + bolt_type = BOLT_TYPE_STANDARD + + w_class = WEIGHT_CLASS_BULKY + weapon_weight = WEAPON_HEAVY + slot_flags = ITEM_SLOT_SUITSTORE | ITEM_SLOT_BELT + + accepted_magazine_type = /obj/item/ammo_box/magazine/c585trappiste_pistol + + fire_sound = 'monkestation/code/modules/blueshift/sounds/smg_heavy.ogg' + can_suppress = TRUE + + can_bayonet = FALSE + + suppressor_x_offset = 9 + + burst_size = 1 + fire_delay = 0.15 SECONDS + actions_types = list() + + // Because we're firing a lot of these really fast, we want a lot less wound chance + projectile_wound_bonus = -20 + spread = 12.5 + // Hope you didn't need to see anytime soon + recoil = 2 + +/obj/item/gun/ballistic/automatic/xhihao_smg/give_manufacturer_examine() + AddElement(/datum/element/manufacturer_examine, COMPANY_XHIHAO) + AddComponent(/datum/component/automatic_fire, fire_delay) + +/obj/item/gun/ballistic/automatic/xhihao_smg/examine(mob/user) + . = ..() + . += span_notice("You can examine closer to learn a little more about this weapon.") + +/obj/item/gun/ballistic/automatic/xhihao_smg/examine_more(mob/user) + . = ..() + + . += "The Bogseo submachinegun is seen in highly different lights based on \ + who you ask. Ask a Jovian, and they'll go off all day about how they \ + love the thing so. A big weapon for shooting big targets, like the \ + fuel-stat raiders in their large suits of armor. Ask a space pirate, however \ + and you'll get a different story. That is thanks to many SolFed anti-piracy \ + units picking the Bogseo as their standard boarding weapon. What better \ + to ruin a brigand's day than a bullet large enough to turn them into \ + mist at full auto, after all?" + + return . + +/obj/item/gun/ballistic/automatic/xhihao_smg/no_mag + spawnwithmagazine = FALSE + +// .35 Sol mini revolver + +/obj/item/gun/ballistic/revolver/sol + name = "\improper Eland Revolver" + desc = "A small revolver with a comically short barrel and cylinder space for eight .35 Sol Short rounds." + + icon = 'monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/trappiste_fabriek/guns32x.dmi' + icon_state = "eland" + + accepted_magazine_type = /obj/item/ammo_box/magazine/internal/cylinder/c35sol + + suppressor_x_offset = 3 + + w_class = WEIGHT_CLASS_SMALL + + can_suppress = TRUE + +/obj/item/gun/ballistic/revolver/sol/give_manufacturer_examine() + AddElement(/datum/element/manufacturer_examine, COMPANY_TRAPPISTE) + +/obj/item/gun/ballistic/revolver/sol/examine(mob/user) + . = ..() + . += span_notice("You can examine closer to learn a little more about this weapon.") + +/obj/item/gun/ballistic/revolver/sol/examine_more(mob/user) + . = ..() + + . += "The Eland is one of the few Trappiste weapons not made for military contract. \ + Instead, the Eland started life as a police weapon, offered as a gun to finally \ + outmatch all others in the cheap police weapons market. Unfortunately, this \ + coincided with nearly every SolFed police force realising they are actually \ + comically overfunded. With military weapons bought for police forces taking \ + over the market, the Eland instead found home in the civilian personal defense \ + market. That is likely the reason you are looking at this one now." + + return . + +/obj/item/ammo_box/magazine/internal/cylinder/c35sol + ammo_type = /obj/item/ammo_casing/c35sol + caliber = CALIBER_SOL35SHORT + max_ammo = 8 + +// .585 super revolver + +/obj/item/gun/ballistic/revolver/takbok + name = "\improper Takbok Revolver" + desc = "A hefty revolver with an equally large cylinder capable of holding five .585 Trappiste rounds." + + icon = 'monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/trappiste_fabriek/guns32x.dmi' + icon_state = "takbok" + + fire_sound = 'monkestation/code/modules/blueshift/sounds/revolver_heavy.ogg' + suppressed_sound = 'monkestation/code/modules/blueshift/sounds/suppressed_heavy.ogg' + + accepted_magazine_type = /obj/item/ammo_box/magazine/internal/cylinder/c585trappiste + + suppressor_x_offset = 5 + + can_suppress = TRUE + + fire_delay = 1 SECONDS + recoil = 3 + +/obj/item/gun/ballistic/revolver/takbok/give_manufacturer_examine() + AddElement(/datum/element/manufacturer_examine, COMPANY_TRAPPISTE) + +/obj/item/gun/ballistic/revolver/takbok/examine(mob/user) + . = ..() + . += span_notice("You can examine closer to learn a little more about this weapon.") + +/obj/item/gun/ballistic/revolver/takbok/examine_more(mob/user) + . = ..() + + . += "The Takbok is a unique design for Trappiste for the sole reason that it \ + was made at first to be a one-off. Founder of partner company Carwo Defense, \ + Darmaan Khaali Carwo herself, requested a sporting revolver from Trappiste. \ + What was delivered wasn't a target revolver, it was a target crusher. The \ + weapon became popular as Carwo crushed many shooting competitions using \ + the Takbok, with the design going on several production runs up until \ + 2523 when the popularity of the gun fell off. Due to the number of revolvers \ + made, they are still easy enough to find if you look despite production \ + having already ceased many years ago." + + return . + +/obj/item/ammo_box/magazine/internal/cylinder/c585trappiste + ammo_type = /obj/item/ammo_casing/c585trappiste + caliber = CALIBER_585TRAPPISTE + max_ammo = 5 + +// .35 Sol pistol + +/obj/item/gun/ballistic/automatic/pistol/sol + name = "\improper Wespe Pistol" + desc = "The standard issue service pistol of SolFed's various military branches. Uses .35 Sol and comes with an attached light." + + icon = 'monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/trappiste_fabriek/guns32x.dmi' + icon_state = "wespe" + + fire_sound = 'monkestation/code/modules/blueshift/sounds/pistol_light.ogg' + + w_class = WEIGHT_CLASS_NORMAL + + accepted_magazine_type = /obj/item/ammo_box/magazine/c35sol_pistol + special_mags = TRUE + + suppressor_x_offset = 7 + suppressor_y_offset = 0 + + fire_delay = 0.3 SECONDS + +/obj/item/gun/ballistic/automatic/pistol/sol/give_manufacturer_examine() + AddElement(/datum/element/manufacturer_examine, COMPANY_TRAPPISTE) + +/obj/item/gun/ballistic/automatic/pistol/sol/add_seclight_point() + AddComponent(/datum/component/seclite_attachable, \ + starting_light = new /obj/item/flashlight/seclite(src), \ + is_light_removable = FALSE, \ + ) + +/obj/item/gun/ballistic/automatic/pistol/sol/examine(mob/user) + . = ..() + . += span_notice("You can examine closer to learn a little more about this weapon.") + +/obj/item/gun/ballistic/automatic/pistol/sol/examine_more(mob/user) + . = ..() + + . += "The Wespe is a pistol that was made entirely for military use. \ + Required to use a standard round, standard magazines, and be able \ + to function in all of the environments that SolFed operated in \ + commonly. These qualities just so happened to make the weapon \ + popular in frontier space and is likely why you are looking at \ + one now." + + return . + +/obj/item/gun/ballistic/automatic/pistol/sol/no_mag + spawnwithmagazine = FALSE + +// Sol pistol evil gun + +/obj/item/gun/ballistic/automatic/pistol/sol/evil + desc = "The standard issue service pistol of SolFed's various military branches. Comes with attached light. This one is painted tacticool black." + + icon_state = "wespe_evil" + +/obj/item/gun/ballistic/automatic/pistol/sol/evil/no_mag + spawnwithmagazine = FALSE + +// Trappiste high caliber pistol in .585 + +/obj/item/gun/ballistic/automatic/pistol/trappiste + name = "\improper Skild Pistol" + desc = "A somewhat rare to see Trappiste pistol firing the high caliber .585 developed by the same company. \ + Sees rare use mainly due to its tendency to cause severe wrist discomfort." + + icon = 'monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/trappiste_fabriek/guns32x.dmi' + icon_state = "skild" + + fire_sound = 'monkestation/code/modules/blueshift/sounds/pistol_heavy.ogg' + suppressed_sound = 'monkestation/code/modules/blueshift/sounds/suppressed_heavy.ogg' + + w_class = WEIGHT_CLASS_NORMAL + + accepted_magazine_type = /obj/item/ammo_box/magazine/c585trappiste_pistol + + suppressor_x_offset = 8 + suppressor_y_offset = 0 + + fire_delay = 1 SECONDS + + recoil = 3 + +/obj/item/gun/ballistic/automatic/pistol/trappiste/give_manufacturer_examine() + AddElement(/datum/element/manufacturer_examine, COMPANY_TRAPPISTE) + +/obj/item/gun/ballistic/automatic/pistol/sol/examine(mob/user) + . = ..() + . += span_notice("You can examine closer to learn a little more about this weapon.") + +/obj/item/gun/ballistic/automatic/pistol/trappiste/examine_more(mob/user) + . = ..() + + . += "The Skild only exists due to a widely known event that SolFed's military \ + would prefer wasn't anywhere near as popular. A general, name unknown as of now, \ + was recorded complaining about the lack of capability the Wespe provided to the \ + military, alongside several statements comparing the Wespe's lack of masculinity \ + to the, quote, 'unique lack of testosterone those NRI mongrels field'. While the \ + identities of both the general and people responsible for the leaking of the recording \ + are still classified, many high ranking SolFed military staff suspiciously have stopped \ + appearing in public, unlike the Skild. A lot of several thousand pistols, the first \ + of the weapons to ever exist, were not so silently shipped to SolFed's Plutonian \ + shipping hub from TRAPPIST. SolFed military command refuses to answer any \ + further questions about the incident to this day." + + return . + +/obj/item/gun/ballistic/automatic/pistol/trappiste/no_mag + spawnwithmagazine = FALSE + +// Rapid firing submachinegun firing .27-54 Cesarzowa + +/obj/item/gun/ballistic/automatic/miecz + name = "\improper Miecz Submachine Gun" + desc = "A short barrel, further compacted conversion of the 'Lanca' rifle to fire pistol caliber .27-54 cartridges. \ + Due to the intended purpose of the weapon, and less than optimal ranged performance of the projectile, it has \ + nothing more than basic glow-sights as opposed to the ranged scope Lanca users might be used to." + + icon = 'monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/szot_dynamica/guns_48.dmi' + icon_state = "miecz" + + inhand_icon_state = "c20r" + worn_icon_state = "gun" + + SET_BASE_PIXEL(-8, 0) + + special_mags = FALSE + + bolt_type = BOLT_TYPE_STANDARD + + w_class = WEIGHT_CLASS_BULKY + weapon_weight = WEAPON_MEDIUM + slot_flags = ITEM_SLOT_BELT | ITEM_SLOT_SUITSTORE + + accepted_magazine_type = /obj/item/ammo_box/magazine/miecz + + fire_sound = 'monkestation/code/modules/blueshift/sounds/smg_light.ogg' + can_suppress = TRUE + suppressor_x_offset = 0 + suppressor_y_offset = 0 + + can_bayonet = FALSE + + burst_size = 1 + fire_delay = 0.2 SECONDS + actions_types = list() + + spread = 5 + +/obj/item/gun/ballistic/automatic/miecz/Initialize(mapload) + . = ..() + AddComponent(/datum/component/automatic_fire, fire_delay) + +/obj/item/gun/ballistic/automatic/miecz/give_manufacturer_examine() + AddElement(/datum/element/manufacturer_examine, COMPANY_SZOT) + +/obj/item/gun/ballistic/automatic/miecz/examine(mob/user) + . = ..() + . += span_notice("You can examine closer to learn a little more about this weapon.") + +/obj/item/gun/ballistic/automatic/miecz/examine_more(mob/user) + . = ..() + + . += "The Meicz is one of the newest weapons to come out of CIN member state hands and \ + into the wild, typically the frontier. It was built alongside the round it fires, the \ + .27-54 Cesarzawa pistol round. Based on the proven Lanca design, it seeks to bring that \ + same reliable weapon design into the factor of a submachinegun. While it is significantly \ + larger than many comparable weapons in SolFed use, it more than makes up for it with ease \ + of control and significant firerate." + + return . + +/obj/item/gun/ballistic/automatic/miecz/no_mag + spawnwithmagazine = FALSE + +// Semi-automatic rifle firing .310 with reduced damage compared to a Sakhno + +/obj/item/gun/ballistic/automatic/lanca + name = "\improper Lanca Battle Rifle" + desc = "A relatively compact, long barreled bullpup battle rifle chambered for .310 Strilka. Has an integrated sight with \ + a surprisingly functional amount of magnification, given its place of origin." + + icon = 'monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/szot_dynamica/guns_48.dmi' + icon_state = "lanca" + + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/szot_dynamica/guns_worn.dmi' + worn_icon_state = "lanca" + + lefthand_file = 'monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/szot_dynamica/guns_lefthand.dmi' + righthand_file = 'monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/szot_dynamica/guns_righthand.dmi' + inhand_icon_state = "lanca" + + SET_BASE_PIXEL(-8, 0) + + special_mags = FALSE + + bolt_type = BOLT_TYPE_STANDARD + + w_class = WEIGHT_CLASS_BULKY + weapon_weight = WEAPON_HEAVY + slot_flags = ITEM_SLOT_BACK | ITEM_SLOT_SUITSTORE + + accepted_magazine_type = /obj/item/ammo_box/magazine/lanca + + fire_sound = 'monkestation/code/modules/blueshift/sounds/battle_rifle.ogg' + suppressed_sound = 'monkestation/code/modules/blueshift/sounds/suppressed_heavy.ogg' + can_suppress = TRUE + suppressor_x_offset = 0 + suppressor_y_offset = 0 + + can_bayonet = FALSE + + burst_size = 1 + fire_delay = 1.2 SECONDS + actions_types = list() + + recoil = 0.5 + spread = 2.5 + projectile_wound_bonus = -20 + +/obj/item/gun/ballistic/automatic/lanca/Initialize(mapload) + . = ..() + AddComponent(/datum/component/scope, range_modifier = 1.5) + +/obj/item/gun/ballistic/automatic/lanca/give_manufacturer_examine() + AddElement(/datum/element/manufacturer_examine, COMPANY_SZOT) + +/obj/item/gun/ballistic/automatic/lanca/examine(mob/user) + . = ..() + . += span_notice("You can examine closer to learn a little more about this weapon.") + +/obj/item/gun/ballistic/automatic/lanca/examine_more(mob/user) + . = ..() + + . += "The Lanca is a now relatively dated replacement for Kalashnikov pattern rifles \ + adopted by states now combining to form the CIN. While the rifle that came before them \ + had its benefits, leadership of many armies started to realize that the Kalashnikov-based \ + rifles were really showing their age once the variants began reaching the thousands in serial. \ + The solution was presented by a then new company, Szot Dynamica. This new rifle, not too \ + unlike the one you are seeing now, adopted all of the latest technology of the time. Lightweight \ + caseless ammunition, well known for its use in Sakhno rifles, as well as various electronics and \ + other incredible technological advancements. These advancements may have already been around since \ + before the creation of even the Sakhno, but the fact you're seeing this now fifty year old design \ + must mean something, right?" + + return . + +/obj/item/gun/ballistic/automatic/lanca/no_mag + spawnwithmagazine = FALSE + +// The AMR +// This sounds a lot scarier than it actually is, you'll just have to trust me here + +/obj/item/gun/ballistic/automatic/wylom + name = "\improper Wyłom Anti-Materiel Rifle" + desc = "A massive, outdated beast of an anti materiel rifle that was once in use by CIN military forces. Fires the devastating .60 Strela caseless round, \ + the massively overperforming penetration of which being the reason this weapon was discontinued." + icon = 'monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/szot_dynamica/guns_64.dmi' + base_pixel_x = -16 // This baby is 64 pixels wide + pixel_x = -16 + righthand_file = 'monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/szot_dynamica/inhands_64_left.dmi' + lefthand_file = 'monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/szot_dynamica/inhands_64_right.dmi' + inhand_x_dimension = 64 + inhand_y_dimension = 64 + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/szot_dynamica/guns_worn.dmi' + icon_state = "wylom" + inhand_icon_state = "wylom" + worn_icon_state = "wylom" + w_class = WEIGHT_CLASS_HUGE + slot_flags = ITEM_SLOT_BACK + + accepted_magazine_type = /obj/item/ammo_box/magazine/wylom + can_suppress = FALSE + can_bayonet = FALSE + + fire_sound = 'monkestation/code/modules/blueshift/sounds/amr_fire.ogg' + fire_sound_volume = 100 // BOOM BABY + + recoil = 4 + + weapon_weight = WEAPON_HEAVY + burst_size = 1 + fire_delay = 2 SECONDS + actions_types = list() + + force = 15 // I mean if you're gonna beat someone with the thing you might as well get damage appropriate for how big the fukken thing is + +/obj/item/gun/ballistic/automatic/wylom/give_manufacturer_examine() + AddElement(/datum/element/manufacturer_examine, COMPANY_SZOT) + AddElement(/datum/element/gun_launches_little_guys, throwing_force = 3, throwing_range = 5) + +/obj/item/gun/ballistic/automatic/wylom/examine(mob/user) + . = ..() + . += span_notice("You can examine closer to learn a little more about this weapon.") + +/obj/item/gun/ballistic/automatic/wylom/examine_more(mob/user) + . = ..() + + . += "The 'Wyłom' AMR was a weapon not originally made for unaided human hands. \ + The original rifle had mounting points for a specialized suit attachment system, \ + not too much unlike heavy smartguns that can be seen across the galaxy. CIN military \ + command, however, deemed that expensive exoskeletons and rigs for carrying an organic \ + anti material system were simply not needed, and that soldiers should simply 'deal with it'. \ + Unsurprisingly, soldiers assigned this weapon tend to not be a massive fan of that fact, \ + and smekalka within CIN ranks is common with troops finding novel ways to carry and use \ + their large rifles with as little effort as possible. Most of these novel methods, of course, \ + tend to shatter when the rifle is actually fired." + + return . + +// Plasma spewing pistol +// Sprays a wall of plasma that sucks against armor but fucks against unarmored targets + +/obj/item/gun/ballistic/automatic/pistol/plasma_thrower + name = "\improper Słońce Plasma Projector" + desc = "An outdated sidearm rarely seen in use by some members of the CIN. \ + Uses plasma power packs. \ + Spews an inaccurate stream of searing plasma out the magnetic barrel so long as it has power and the trigger is pulled." + icon = 'monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/szot_dynamica/guns_32.dmi' + icon_state = "slonce" + + fire_sound = 'monkestation/code/modules/blueshift/sounds/incinerate.ogg' + fire_sound_volume = 40 // This thing is comically loud otherwise + + w_class = WEIGHT_CLASS_NORMAL + accepted_magazine_type = /obj/item/ammo_box/magazine/recharge/plasma_battery + can_suppress = FALSE + show_bolt_icon = FALSE + casing_ejector = FALSE + empty_indicator = FALSE + bolt_type = BOLT_TYPE_OPEN + fire_delay = 0.1 SECONDS + spread = 15 + +/obj/item/gun/ballistic/automatic/pistol/plasma_thrower/Initialize(mapload) + . = ..() + + AddComponent(/datum/component/automatic_fire, autofire_shot_delay = fire_delay) + +/obj/item/gun/ballistic/automatic/pistol/plasma_thrower/give_manufacturer_examine() + AddElement(/datum/element/manufacturer_examine, COMPANY_SZOT) + +/obj/item/gun/ballistic/automatic/pistol/plasma_thrower/examine(mob/user) + . = ..() + . += span_notice("You can examine closer to learn a little more about this weapon.") + +/obj/item/gun/ballistic/automatic/pistol/plasma_thrower/examine_more(mob/user) + . = ..() + + . += "The 'Słońce' started life as an experiment in advancing the field of accelerated \ + plasma weaponry. Despite the design's obvious shortcomings in terms of accuracy and \ + range, the CIN combined military command (which we'll call the CMC from now on) took \ + interest in the weapon as a means to counter Sol's more advanced armor technology. \ + As it would turn out, the plasma globules created by the weapon were really not \ + as effective against armor as the CMC had hoped, quite the opposite actually. \ + What the plasma did do well however was inflict grevious burns upon anyone unfortunate \ + enough to get hit by it unprotected. For this reason, the 'Słońce' saw frequent use by \ + army officers and ship crews who needed a backup weapon to incinerate the odd space \ + pirate or prisoner of war." + + return . + +// Plasma sharpshooter pistol +// Shoots single, strong plasma blasts at a slow rate + +/obj/item/gun/ballistic/automatic/pistol/plasma_marksman + name = "\improper Gwiazda Plasma Sharpshooter" + desc = "An outdated sidearm rarely seen in use by some members of the CIN. \ + Uses plasma power packs. \ + Fires relatively accurate globs of searing plasma." + icon = 'monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/szot_dynamica/guns_32.dmi' + icon_state = "gwiazda" + + fire_sound = 'monkestation/code/modules/blueshift/sounds/burn.ogg' + fire_sound_volume = 40 // This thing is comically loud otherwise + + w_class = WEIGHT_CLASS_NORMAL + accepted_magazine_type = /obj/item/ammo_box/magazine/recharge/plasma_battery + can_suppress = FALSE + show_bolt_icon = FALSE + casing_ejector = FALSE + empty_indicator = FALSE + bolt_type = BOLT_TYPE_OPEN + fire_delay = 0.6 SECONDS + spread = 2.5 + + projectile_damage_multiplier = 3 // 30 damage a shot + projectile_wound_bonus = 10 // +55 of the base projectile, burn baby burn + +/obj/item/gun/ballistic/automatic/pistol/plasma_marksman/give_manufacturer_examine() + AddElement(/datum/element/manufacturer_examine, COMPANY_SZOT) + +/obj/item/gun/ballistic/automatic/pistol/plasma_marksman/examine(mob/user) + . = ..() + . += span_notice("You can examine closer to learn a little more about this weapon.") + +/obj/item/gun/ballistic/automatic/pistol/plasma_marksman/examine_more(mob/user) + . = ..() + + . += "The 'Gwiazda' is a further refinement of the 'Słońce' design. with improved \ + energy cycling, magnetic launchers built to higher precision, and an overall more \ + ergonomic design. While it still fails to perform against armor, the weapon is \ + significantly more accurate and higher power, at expense of a much lower firerate. \ + Opinions on this weapon within military service were highly mixed, with many preferring \ + the sheer stopping power a spray of plasma could produce, with others loving the new ability \ + to hit something in front of you for once." + + return . + +// A revolver, but it can hold shotgun shells +// Woe, buckshot be upon ye + +/obj/item/gun/ballistic/revolver/shotgun_revolver + name = "\improper Bóbr 12 GA revolver" + desc = "An outdated sidearm rarely seen in use by some members of the CIN. A revolver type design with a four shell cylinder. That's right, shell, this one shoots twelve guage." + accepted_magazine_type = /obj/item/ammo_box/magazine/internal/cylinder/rev12ga + recoil = SAWN_OFF_RECOIL + weapon_weight = WEAPON_MEDIUM + icon = 'monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/szot_dynamica/guns_32.dmi' + icon_state = "bobr" + fire_sound = 'monkestation/code/modules/blueshift/sounds/revolver_fire.ogg' + spread = SAWN_OFF_ACC_PENALTY + +/obj/item/gun/ballistic/revolver/shotgun_revolver/give_manufacturer_examine() + AddElement(/datum/element/manufacturer_examine, COMPANY_SZOT) + +/obj/item/gun/ballistic/revolver/shotgun_revolver/examine_more(mob/user) + . = ..() + + . += "The 'Bóbr' started development as a limited run sporting weapon before \ + the military took interest. The market quickly changed from sport shooting \ + targets, to sport shooting SolFed strike teams once the conflict broke out. \ + This pattern is different from the original civilian version, with a military \ + standard pistol grip and weather resistant finish. While the 'Bóbr' was not \ + a weapon standard issued to every CIN soldier, it was available for relatively \ + cheap, and thus became rather popular among the ranks." + + return . + +// Base Sol SMG + +/obj/item/gun/ballistic/automatic/sol_smg + name = "\improper Sindano Submachine Gun" + desc = "A small submachine gun firing .35 Sol. Commonly seen in the hands of PMCs and other unsavory corpos. Accepts any standard Sol pistol magazine." + + icon = 'monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/carwo_defense_systems/guns32x.dmi' + icon_state = "sindano" + + lefthand_file = 'monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/carwo_defense_systems/guns_lefthand.dmi' + righthand_file = 'monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/carwo_defense_systems/guns_righthand.dmi' + inhand_icon_state = "sindano" + + special_mags = TRUE + + bolt_type = BOLT_TYPE_OPEN + + w_class = WEIGHT_CLASS_NORMAL + weapon_weight = WEAPON_MEDIUM + slot_flags = ITEM_SLOT_SUITSTORE | ITEM_SLOT_BELT + + accepted_magazine_type = /obj/item/ammo_box/magazine/c35sol_pistol + spawn_magazine_type = /obj/item/ammo_box/magazine/c35sol_pistol/stendo + + fire_sound = 'monkestation/code/modules/blueshift/sounds/smg_light.ogg' + can_suppress = TRUE + + can_bayonet = FALSE + + suppressor_x_offset = 11 + + burst_size = 3 + fire_delay = 0.2 SECONDS + + spread = 7.5 + +/obj/item/gun/ballistic/automatic/sol_smg/give_manufacturer_examine() + AddElement(/datum/element/manufacturer_examine, COMPANY_CARWO) + +/obj/item/gun/ballistic/automatic/sol_smg/examine(mob/user) + . = ..() + . += span_notice("You can examine closer to learn a little more about this weapon.") + +/obj/item/gun/ballistic/automatic/sol_smg/examine_more(mob/user) + . = ..() + + . += "The Sindano submachinegun was originally produced for military contract. \ + These guns were seen in the hands of anyone from medics, ship techs, logistics officers, \ + and shuttle pilots often had several just to show off. Due to SolFed's quest to \ + extend the lifespans of their logistics officers and quartermasters, the weapon \ + uses the same standard pistol cartridge that most other miltiary weapons of \ + small caliber use. This results in interchangeable magazines between pistols \ + and submachineguns, neat!" + + return . + +/obj/item/gun/ballistic/automatic/sol_smg/no_mag + spawnwithmagazine = FALSE + +// Sindano (evil) + +/obj/item/gun/ballistic/automatic/sol_smg/evil + desc = "A small submachinegun, this one is painted in tacticool black. Accepts any standard Sol pistol magazine." + + icon_state = "sindano_evil" + inhand_icon_state = "sindano_evil" + +/obj/item/gun/ballistic/automatic/sol_smg/evil/no_mag + spawnwithmagazine = FALSE + +/// File location for the long gun's speech +#define LONG_MOD_LASER_SPEECH "nova/long_modular_laser.json" +/// File location for the short gun's speech +#define SHORT_MOD_LASER_SPEECH "nova/short_modular_laser.json" +/// How long the gun should wait between speaking to lessen spam +#define MOD_LASER_SPEECH_COOLDOWN 2 SECONDS +/// What color is the default kill mode for these guns, used to make sure the chat colors are right at roundstart +#define DEFAULT_RUNECHAT_GUN_COLOR "#cd4456" + +// Modular energy weapons, laser guns that can transform into different variants after a few seconds of waiting and animation +// Long version, takes both hands to use and doesn't fit in any bags out there +/obj/item/gun/energy/modular_laser_rifle + name = "\improper Hyeseong modular laser rifle" + desc = "A popular energy weapon system that can be reconfigured into many different variants on the fly. \ + Seen commonly amongst the Marsians who produce the weapon, with many different shapes and sizes to fit \ + the wide variety of modders the planet is home to." + base_icon_state = "hyeseong" + icon = 'monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/saibasan/guns48x.dmi' + icon_state = "hyeseong_kill" + lefthand_file = 'monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/saibasan/guns_lefthand.dmi' + righthand_file = 'monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/saibasan/guns_righthand.dmi' + inhand_icon_state = "hyeseong_kill" + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/company_and_or_faction_based/saibasan/guns_worn.dmi' + worn_icon_state = "hyeseong_kill" + cell_type = /obj/item/stock_parts/cell/hyeseong_internal_cell + modifystate = FALSE + ammo_type = list(/obj/item/ammo_casing/energy/cybersun_big_kill) + can_select = FALSE + ammo_x_offset = 0 + shaded_charge = TRUE + slot_flags = ITEM_SLOT_BACK + obj_flags = UNIQUE_RENAME + SET_BASE_PIXEL(-8, 0) + w_class = WEIGHT_CLASS_BULKY + weapon_weight = WEAPON_HEAVY + actions_types = list(/datum/action/item_action/toggle_personality) + fire_sound_volume = 50 + recoil = 0.25 // This isn't enough to mean ANYTHING aside from it jolting your screen the tiniest amount + /// What datums of weapon modes can we use? + var/list/weapon_mode_options = list( + /datum/laser_weapon_mode, + /datum/laser_weapon_mode/marksman, + /datum/laser_weapon_mode/disabler_machinegun, + /datum/laser_weapon_mode/launcher, + /datum/laser_weapon_mode/shotgun, + ) + /// Populates with a list of weapon mode names and their respective paths on init + var/list/weapon_mode_name_to_path = list() + /// Info for the radial menu for switching weapon mode + var/list/radial_menu_data = list() + /// Is the gun currently changing types? Prevents the gun from firing if yes + var/currently_switching_types = FALSE + /// How long transitioning takes before you're allowed to pick a weapon type + var/transition_duration = 1 SECONDS + /// What the currently selected weapon mode is, for quickly referencing for use in procs and whatnot + var/datum/laser_weapon_mode/currently_selected_mode + /// Name of the firing mode that is selected by default + var/default_selected_mode = "Kill" + /// Allows firing of the gun to be disabled for any reason, for example, if a gun has a melee mode + var/disabled_for_other_reasons = FALSE + /// The json file this gun pulls from when speaking + var/speech_json_file = LONG_MOD_LASER_SPEECH + /// Keeps track of the last processed charge, prevents message spam + var/last_charge = 0 + /// If the gun's personality speech thing is on, defaults to on because just listen to her + var/personality_mode = TRUE + /// Keeps track of our soulcatcher component + var/datum/component/soulcatcher/tracked_soulcatcher + /// What is this gun's extended examine, we only have to do this because the carbine is a subtype + var/expanded_examine_text = "The Hyeseong rifle is the first line of man-portable Marsian weapons platforms \ + from Cybersun Industries. Like her younger sister weapon, the Hoshi carbine, CI used funding aid provided \ + by SolFed to develop a portable weapon fueled by a proprietary generator rumored to be fueled by superstable plasma. \ + A rugged and hefty weapon, the Hyeseong stars in applications anywhere from medium to long ranges, though struggling \ + in CQB. Her onboard machine intelligence, at first devised to support the operator and manage the internal reactor, \ + is shipped with a more professional and understated personality-- since influenced by 'negligence' from users in \ + wiping the intelligence's memory before resale or transport." + /// A cooldown for when the weapon has last spoken, prevents messages from getting turbo spammed + COOLDOWN_DECLARE(last_speech) + +/obj/item/gun/energy/modular_laser_rifle/Initialize(mapload) + . = ..() + AddElement(/datum/element/manufacturer_examine, COMPANY_CYBERSUN) + chat_color = DEFAULT_RUNECHAT_GUN_COLOR + chat_color_darkened = process_chat_color(DEFAULT_RUNECHAT_GUN_COLOR, sat_shift = 0.85, lum_shift = 0.85) + last_charge = cell.charge + tracked_soulcatcher = AddComponent(/datum/component/soulcatcher/modular_laser) + create_weapon_mode_stuff() + +/obj/item/gun/energy/modular_laser_rifle/examine(mob/user) + . = ..() + . += span_notice("You can examine closer to learn a little more about this weapon.") + . += span_notice("You can Alt-Click this gun to access the internal soulcatcher.") + +/obj/item/gun/energy/modular_laser_rifle/examine_more(mob/user) + . = ..() + . += expanded_examine_text + return . + +/obj/item/gun/energy/modular_laser_rifle/Destroy() + QDEL_NULL(tracked_soulcatcher) + return ..() + +/obj/item/gun/energy/modular_laser_rifle/AltClick(mob/user) + tracked_soulcatcher?.ui_interact(user) + return + +/// Handles filling out all of the lists regarding weapon modes and radials around that +/obj/item/gun/energy/modular_laser_rifle/proc/create_weapon_mode_stuff() + if(length(weapon_mode_name_to_path) || length(radial_menu_data)) + return // We don't need to worry about it if there's already stuff here + for(var/datum/laser_weapon_mode/laser_mode as anything in weapon_mode_options) + weapon_mode_name_to_path["[initial(laser_mode.name)]"] = new laser_mode() + var/obj/projectile/mode_projectile = initial(laser_mode.casing.projectile_type) + radial_menu_data["[initial(laser_mode.name)]"] = image(icon = mode_projectile.icon, icon_state = mode_projectile.icon_state) + currently_selected_mode = weapon_mode_name_to_path["[default_selected_mode]"] + transform_gun(currently_selected_mode, FALSE, TRUE) + +/obj/item/gun/energy/modular_laser_rifle/attack_self(mob/living/user) + if(!currently_switching_types) + change_to_switch_mode(user) + return ..() + +/// Makes the gun inoperable, playing an animation and giving a prompt to switch gun modes after the transition_duration passes +/obj/item/gun/energy/modular_laser_rifle/proc/change_to_switch_mode(mob/living/user) + currently_switching_types = TRUE + flick("[base_icon_state]_switch_on", src) + cut_overlays() + playsound(src, 'sound/items/modsuit/ballin.ogg', 75, TRUE) + var/new_icon_state = "[base_icon_state]_switch" + icon_state = new_icon_state + inhand_icon_state = new_icon_state + worn_icon_state = new_icon_state + addtimer(CALLBACK(src, PROC_REF(show_radial_choice_menu), user), transition_duration) + +/// Shows the radial choice menu to the user, if the user doesnt exist or isnt holding the gun anymore, it reverts back to its last form +/obj/item/gun/energy/modular_laser_rifle/proc/show_radial_choice_menu(mob/living/user) + if(!user?.is_holding(src)) + flick("[base_icon_state]_switch_off", src) + transform_gun(currently_selected_mode, FALSE) + playsound(src, 'sound/items/modsuit/ballout.ogg', 75, TRUE) + return + + var/picked_choice = show_radial_menu( + user, + src, + radial_menu_data, + require_near = TRUE, + tooltips = TRUE, + ) + + if(isnull(picked_choice) || isnull(weapon_mode_name_to_path["[picked_choice]"])) + flick("[base_icon_state]_switch_off", src) + transform_gun(currently_selected_mode, FALSE) + playsound(src, 'sound/items/modsuit/ballout.ogg', 75, TRUE) + return + + var/new_weapon_mode = weapon_mode_name_to_path["[picked_choice]"] + transform_gun(new_weapon_mode, TRUE) + +/// Transforms the gun into a different type, if replacing is set to true then it'll make sure to remove any effects the prior gun type had +/obj/item/gun/energy/modular_laser_rifle/proc/transform_gun(datum/laser_weapon_mode/new_weapon_mode, replacing = TRUE, dont_speak = FALSE) + if(!new_weapon_mode) + stack_trace("transform_gun was called but didn't get a new weapon mode, meaning it couldn't work.") + return + if(replacing) + currently_selected_mode.remove_from_weapon(src) + currently_selected_mode = new_weapon_mode + flick("[base_icon_state]_switch_off", src) + currently_selected_mode.apply_stats(src) + currently_selected_mode.apply_to_weapon(src) + playsound(src, 'sound/items/modsuit/ballout.ogg', 75, TRUE) + if(!dont_speak) + speak_up(currently_selected_mode.json_speech_string, TRUE) + currently_switching_types = FALSE + +/obj/item/gun/energy/modular_laser_rifle/can_shoot() + if(!length(ammo_type)) + return FALSE + return ..() + +/obj/item/gun/energy/modular_laser_rifle/can_trigger_gun(mob/living/user, akimbo_usage) + . = ..() + if(currently_switching_types || disabled_for_other_reasons) + return FALSE + +/// Makes the gun speak with a sound effect and colored runetext based on the mode the gun is in, reads the gun's speech json as defined through variables +/obj/item/gun/energy/modular_laser_rifle/proc/speak_up(json_string, ignores_cooldown = FALSE, ignores_personality_toggle = FALSE) + if(!personality_mode && !ignores_personality_toggle) + return + if(!json_string) + return + if(!ignores_cooldown && !COOLDOWN_FINISHED(src, last_speech)) + return + say(pick_list_replacements(speech_json_file, json_string)) + playsound(src, 'sound/creatures/tourist/tourist_talk.ogg', 15, TRUE, SHORT_RANGE_SOUND_EXTRARANGE, frequency = rand(2, 2.2)) + Shake(2, 2, 1 SECONDS) + COOLDOWN_START(src, last_speech, MOD_LASER_SPEECH_COOLDOWN) + +/obj/item/gun/energy/modular_laser_rifle/equipped(mob/user, slot, initial) + . = ..() + if(slot & (ITEM_SLOT_BELT|ITEM_SLOT_BACK|ITEM_SLOT_SUITSTORE)) + speak_up("worn") + else if(slot & ITEM_SLOT_HANDS) + speak_up("pickup") + return + +/obj/item/gun/energy/modular_laser_rifle/dropped(mob/user, silent) + . = ..() + if(src in user.contents) + return // If they're still holding us or have us on them, dw about it + speak_up("putdown") + +/obj/item/gun/energy/modular_laser_rifle/process(seconds_per_tick) + . = ..() + var/cell_charge_quarter = cell.maxcharge / 4 + if((cell_charge_quarter > cell.charge) && !(last_charge < cell_charge_quarter)) + speak_up("lowcharge") + else if((cell.maxcharge == cell.charge) && !(last_charge == cell.maxcharge)) + speak_up("fullcharge") + last_charge = cell.charge + + +/obj/item/gun/energy/modular_laser_rifle/ui_action_click(mob/user, actiontype) + if(!istype(actiontype, /datum/action/item_action/toggle_personality)) + return ..() + playsound(src, 'sound/machines/beep.ogg', 30, TRUE) + personality_mode = !personality_mode + speak_up("[personality_mode ? "pickup" : "putdown"]", ignores_personality_toggle = TRUE) + return ..() + +// Power cell for the big rifle +/obj/item/stock_parts/cell/hyeseong_internal_cell + name = "\improper Hyeseong modular laser rifle internal cell" + desc = "These are usually supposed to be inside of the gun, you know." + maxcharge = 1000 * 2 + +/datum/action/item_action/toggle_personality + name = "Toggle Weapon Personality" + desc = "Toggles the weapon's personality core. Studies find that turning them off makes them quite sad, however." + background_icon_state = "bg_mod" + +/datum/component/soulcatcher/modular_laser + max_souls = 1 + communicate_as_parent = TRUE + +//Short version of the above modular rifle, has less charge and different modes +/obj/item/gun/energy/modular_laser_rifle/carbine + name = "\improper Hoshi modular laser carbine" + icon = 'monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/saibasan/guns32x.dmi' + icon_state = "hoshi_kill" + inhand_icon_state = "hoshi_kill" + worn_icon_state = "hoshi_kill" + base_icon_state = "hoshi" + charge_sections = 3 + cell_type = /obj/item/stock_parts/cell + ammo_type = list(/obj/item/ammo_casing/energy/cybersun_small_hellfire) + slot_flags = ITEM_SLOT_BACK | ITEM_SLOT_BELT + SET_BASE_PIXEL(0, 0) + weapon_weight = WEAPON_MEDIUM + w_class = WEIGHT_CLASS_NORMAL + weapon_mode_options = list( + /datum/laser_weapon_mode/hellfire, + /datum/laser_weapon_mode/sword, + /datum/laser_weapon_mode/flare, + /datum/laser_weapon_mode/shotgun_small, + /datum/laser_weapon_mode/trickshot_disabler, + ) + default_selected_mode = "Incinerate" + speech_json_file = SHORT_MOD_LASER_SPEECH + expanded_examine_text = "The Hoshi carbine is the latest line of man-portable Marsian weapons platforms from \ + Cybersun Industries. Like her older sister weapon, the Hyeseong rifle, CI used funding aid provided by SolFed \ + to develop a portable weapon fueled by a proprietary generator rumored to be fueled by superstable plasma. A \ + lithe and mobile weapon, the Hoshi stars in close-quarters battle, trickshots, and area-of-effect blasts; though \ + ineffective at ranged combat. Her onboard machine intelligence, at first devised to support the operator and \ + manage the internal reactor, was originally shipped with a more energetic personality-- since influenced by 'negligence' \ + from users in wiping the intelligence's memory before resale or transport." + +/obj/item/gun/energy/modular_laser_rifle/carbine/emp_act(severity) + . = ..() + speak_up("emp", TRUE) // She gets very upset if you emp her + +#undef LONG_MOD_LASER_SPEECH +#undef SHORT_MOD_LASER_SPEECH +#undef MOD_LASER_SPEECH_COOLDOWN +#undef DEFAULT_RUNECHAT_GUN_COLOR diff --git a/monkestation/code/modules/blueshift/items/conversion_kit.dm b/monkestation/code/modules/blueshift/items/conversion_kit.dm new file mode 100644 index 000000000000..a37b1fec4c0b --- /dev/null +++ b/monkestation/code/modules/blueshift/items/conversion_kit.dm @@ -0,0 +1,46 @@ +/obj/item/crafting_conversion_kit + name = "base conversion kit" + desc = "It's a set of parts, for something. This shouldn't be here, and you should probably throw this away, since it's not going to be very useful." + icon = 'icons/obj/storage/box.dmi' + icon_state = "secbox" + // the inhands are just what the box uses + inhand_icon_state = "syringe_kit" + lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' + drop_sound = 'sound/items/handling/component_drop.ogg' + pickup_sound = 'sound/items/handling/component_pickup.ogg' + +/obj/item/crafting_conversion_kit/mosin_pro + name = "\improper Xhihao 'Rengo' rifle conversion kit" + desc = "All the parts you need to make a 'Rengo' rifle, outside of the parts that make the gun actually a gun. \ + It looks like this stuff could fit on an old Sakhno rifle, if only you had one of those around." + icon = 'monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/cases.dmi' + icon_state = "xhihao_conversion_kit" + +/datum/crafting_recipe/mosin_pro + name = "Sakhno to Xhihao 'Rengo' Conversion" + desc = "It's actually really easy to change the stock on your Sakhno. Anyone can do it. It takes roughly thirty seconds and a screwdriver." + result = /obj/item/gun/ballistic/rifle/boltaction/sporterized/empty + reqs = list( + /obj/item/gun/ballistic/rifle/boltaction = 1, + /obj/item/crafting_conversion_kit/mosin_pro = 1 + ) + steps = list( + "Empty the rifle", + "Leave the bolt open" + ) + tool_behaviors = list(TOOL_SCREWDRIVER) + time = 30 SECONDS + category = CAT_WEAPON_RANGED + +/datum/crafting_recipe/mosin_pro/New() + ..() + blacklist |= subtypesof(/obj/item/gun/ballistic/rifle/boltaction) - list(/obj/item/gun/ballistic/rifle/boltaction/surplus) + +/datum/crafting_recipe/mosin_pro/check_requirements(mob/user, list/collected_requirements) + var/obj/item/gun/ballistic/rifle/boltaction/the_piece = collected_requirements[/obj/item/gun/ballistic/rifle/boltaction][1] + if(!the_piece.bolt_locked) + return FALSE + if(LAZYLEN(the_piece.magazine.stored_ammo)) + return FALSE + return ..() diff --git a/monkestation/code/modules/blueshift/items/deforest.dm b/monkestation/code/modules/blueshift/items/deforest.dm new file mode 100644 index 000000000000..1c621e2fdf54 --- /dev/null +++ b/monkestation/code/modules/blueshift/items/deforest.dm @@ -0,0 +1,1117 @@ +#define INSTANT_WOUND_HEAL_STAMINA_DAMAGE 80 +#define INSTANT_WOUND_HEAL_LIMB_DAMAGE 25 + +/obj/item/stack/medical/wound_recovery + name = "subdermal splint applicator" + desc = "A roll flexible material dotted with millions of micro-scale injectors on one side. \ + On application to a body part with a damaged bone structure, nanomachines stored within those \ + injectors will surround the wound and form a subdermal, self healing splint. While convenient \ + for keeping appearances and rapid healing, the nanomachines tend to leave their host particularly \ + vulnerable to new damage for several minutes after application." + icon = 'monkestation/code/modules/blueshift/icons/deforest/stack_items.dmi' + icon_state = "subsplint" + lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' + inhand_icon_state = "sampler" + gender = PLURAL + singular_name = "subdermal splint applicator" + self_delay = 10 SECONDS + other_delay = 5 SECONDS + novariants = TRUE + max_amount = 3 + amount = 3 + merge_type = /obj/item/stack/medical/wound_recovery + custom_price = PAYCHECK_COMMAND * 2.5 + /// If this checks for pain, used for synthetic repair foam + var/causes_pain = TRUE + /// The types of wounds that we work on, in list format + var/list/applicable_wounds = list( + /datum/wound/blunt/bone, + /datum/wound/muscle, + ) + /// The sound we play upon successfully treating the wound + var/treatment_sound = 'sound/items/duct_tape_rip.ogg' + +// This is only relevant for the types of wounds defined, we can't work if there are none +/obj/item/stack/medical/wound_recovery/try_heal(mob/living/patient, mob/user, silent, looping) + + if(patient.has_status_effect(/datum/status_effect/vulnerable_to_damage)) + patient.balloon_alert(user, "still recovering from last use!") + return + + var/treatment_delay = (user == patient ? self_delay : other_delay) + + var/obj/item/bodypart/limb = patient.get_bodypart(check_zone(user.zone_selected)) + if(!limb) + patient.balloon_alert(user, "missing limb!") + return + if(!LAZYLEN(limb.wounds)) + patient.balloon_alert(user, "no wounds!") + return + + var/splintable_wound = FALSE + var/datum/wound/woundies + for(var/found_wound in limb.wounds) + woundies = found_wound + if((woundies.wound_flags & ACCEPTS_GAUZE) && is_type_in_list(woundies, applicable_wounds)) + splintable_wound = TRUE + break + if(!splintable_wound) + patient.balloon_alert(user, "can't heal those!") + return + + if(HAS_TRAIT(woundies, TRAIT_WOUND_SCANNED)) + treatment_delay *= 0.5 + if(user == patient) + to_chat(user, span_notice("You keep in mind the indications from the holo-image about your injury, and expertly begin applying [src].")) + else + user.visible_message(span_warning("[user] begins expertly treating the wounds on [patient]'s [limb.plaintext_zone] with [src]..."), span_warning("You begin quickly treating the wounds on [patient]'s [limb.plaintext_zone] with [src], keeping the holo-image indications in mind...")) + else + user.visible_message(span_warning("[user] begins treating the wounds on [patient]'s [limb.plaintext_zone] with [src]..."), span_warning("You begin treating the wounds on [user == patient ? "your" : "[patient]'s"] [limb.plaintext_zone] with [src]...")) + + if(!do_after(user, treatment_delay, target = patient)) + return + + user.visible_message(span_green("[user] applies [src] to [patient]'s [limb.plaintext_zone]."), span_green("You treat the wounds on [user == patient ? "your" : "[patient]'s"] [limb.plaintext_zone].")) + playsound(patient, treatment_sound, 50, TRUE) + woundies.remove_wound() + if(!HAS_TRAIT(patient, TRAIT_ANALGESIA) || !causes_pain) + patient.emote("scream") + to_chat(patient, span_userdanger("Your [limb.plaintext_zone] burns like hell as the wounds on it are rapidly healed, fuck!")) + patient.add_mood_event("severe_surgery", /datum/mood_event/rapid_wound_healing) + limb.receive_damage(brute = INSTANT_WOUND_HEAL_LIMB_DAMAGE, wound_bonus = CANT_WOUND) + patient.stamina?.adjust(INSTANT_WOUND_HEAL_STAMINA_DAMAGE) + patient.apply_status_effect(/datum/status_effect/vulnerable_to_damage) + use(1) + +/datum/mood_event/rapid_wound_healing + description = "The wound is gone, but that pain was unbearable!\n" + mood_change = -3 + timeout = 5 MINUTES + +// Helps recover bleeding +/obj/item/stack/medical/wound_recovery/rapid_coagulant + name = "rapid coagulant applicator" + singular_name = "rapid coagulant applicator" + desc = "A small device filled with a fast acting coagulant of some type. \ + When used on a bleeding area, will nearly instantly stop all bleeding. \ + This rapid clotting action may result in temporary vulnerability to further \ + damage after application." + icon_state = "clotter" + inhand_icon_state = "implantcase" + applicable_wounds = list( + /datum/wound/slash/flesh, + /datum/wound/pierce/bleed, + ) + merge_type = /obj/item/stack/medical/wound_recovery/rapid_coagulant + +/obj/item/stack/medical/wound_recovery/rapid_coagulant/post_heal_effects(amount_healed, mob/living/carbon/healed_mob, mob/user) + . = ..() + healed_mob.reagents.add_reagent(/datum/reagent/medicine/coagulant/fabricated, 5) + +// Helps recover burn wounds much faster, while not healing much damage directly +/obj/item/stack/medical/ointment/red_sun + name = "red sun balm" + singular_name = "red sun balm" + desc = "A popular brand of ointment for handling anything under the red sun, which tends to be terrible burns. \ + Which red sun may this be referencing? Not even the producers of the balm are sure." + icon = 'monkestation/code/modules/blueshift/icons/deforest/stack_items.dmi' + icon_state = "balm" + lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' + inhand_icon_state = "bandage" + gender = PLURAL + novariants = TRUE + amount = 12 + max_amount = 12 + self_delay = 4 SECONDS + other_delay = 2 SECONDS + heal_burn = 5 + heal_brute = 5 + flesh_regeneration = 5 + sanitization = 3 + grind_results = list(/datum/reagent/medicine/oxandrolone = 3) + merge_type = /obj/item/stack/medical/ointment/red_sun + custom_price = PAYCHECK_LOWER * 1.5 + +/obj/item/stack/medical/ointment/red_sun/post_heal_effects(amount_healed, mob/living/carbon/healed_mob, mob/user) + . = ..() + healed_mob.reagents.add_reagent(/datum/reagent/medicine/lidocaine, 2) + +// Gauze that are especially good at treating burns, but are terrible splints +/obj/item/stack/medical/gauze/sterilized + name = "sealed aseptic gauze" + singular_name = "sealed aseptic gauze" + desc = "A small roll of elastic material specially treated to be entirely sterile, and sealed in plastic just to be sure. \ + These make excellent treatment against burn wounds, but due to their small nature are sub-par for serving as \ + bone wound wrapping." + icon = 'monkestation/code/modules/blueshift/icons/deforest/stack_items.dmi' + icon_state = "burndaid" + inhand_icon_state = null + novariants = TRUE + max_amount = 6 + amount = 6 + splint_factor = 1.2 + burn_cleanliness_bonus = 0.1 + merge_type = /obj/item/stack/medical/gauze/sterilized + custom_price = PAYCHECK_LOWER * 1.5 + +/obj/item/stack/medical/gauze/sterilized/post_heal_effects(amount_healed, mob/living/carbon/healed_mob, mob/user) + . = ..() + healed_mob.reagents.add_reagent(/datum/reagent/space_cleaner/sterilizine, 5) + healed_mob.reagents.expose(healed_mob, TOUCH, 1) + +// Works great at sealing bleed wounds, but does little to actually heal them +/obj/item/stack/medical/suture/coagulant + name = "coagulant-F packet" + singular_name = "coagulant-F packet" + desc = "A small packet of fabricated coagulant for bleeding. Not as effective as some \ + other methods of coagulating wounds, but is more effective than plain sutures. \ + The downsides? It repairs less of the actual damage that's there." + icon = 'monkestation/code/modules/blueshift/icons/deforest/stack_items.dmi' + icon_state = "clotter_slow" + inhand_icon_state = null + novariants = TRUE + amount = 12 + max_amount = 12 + repeating = FALSE + heal_brute = 0 + stop_bleeding = 2 + merge_type = /obj/item/stack/medical/suture/coagulant + custom_price = PAYCHECK_LOWER * 1.5 + +#undef INSTANT_WOUND_HEAL_STAMINA_DAMAGE +#undef INSTANT_WOUND_HEAL_LIMB_DAMAGE + +// Twitch, because having sandevistans be implants is for losers, just inject it! +/obj/item/reagent_containers/hypospray/medipen/deforest/twitch + name = "TWitch sensory stimulant injector" + desc = "A Deforest branded autoinjector, loaded with 'TWitch' among other reagents. This drug is known to make \ + those who take it 'see faster', whatever that means." + base_icon_state = "twitch" + icon_state = "twitch" + list_reagents = list( + /datum/reagent/drug/twitch = 10, + /datum/reagent/drug/maint/tar = 5, + /datum/reagent/medicine/silibinin = 5, + /datum/reagent/toxin/leadacetate = 5, + ) + custom_price = PAYCHECK_COMMAND * 3.5 + +// Demoneye, for when you feel the need to become "fucking invincible" +/obj/item/reagent_containers/hypospray/medipen/deforest/demoneye + name = "DemonEye steroid injector" + desc = "A Deforest branded autoinjector, loaded with 'DemonEye' among other reagents. This drug is known to make \ + those who take it numb to all pains and extremely difficult to kill as a result." + base_icon_state = "demoneye" + icon_state = "demoneye" + list_reagents = list( + /datum/reagent/drug/demoneye = 10, + /datum/reagent/drug/maint/sludge = 10, + /datum/reagent/toxin/leadacetate = 5, + ) + custom_price = PAYCHECK_COMMAND * 3.5 + +// Mix of many of the stamina damage regenerating drugs to provide a cocktail no baton could hope to beat +/obj/item/reagent_containers/hypospray/medipen/deforest/aranepaine + name = "aranepaine combat stimulant injector" + desc = "A Deforest branded autoinjector, loaded with a cocktail of drugs to make any who take it nearly \ + immune to exhaustion while its in their system." + base_icon_state = "aranepaine" + icon_state = "aranepaine" + list_reagents = list( + /datum/reagent/drug/aranesp = 5, + /datum/reagent/drug/kronkaine = 5, + /datum/reagent/drug/pumpup = 5, + /datum/reagent/medicine/diphenhydramine = 5, + /datum/reagent/impurity = 5, + ) + custom_price = PAYCHECK_COMMAND * 2.5 + +// Nothing inherently illegal, just a potentially very dangerous mix of chems to be able to inject into people +/obj/item/reagent_containers/hypospray/medipen/deforest/pentibinin + name = "pentibinin normalizant injector" + desc = "A Deforest branded autoinjector, loaded with a cocktail of drugs to make any who take it \ + recover from many different types of damages, with many unusual or undocumented side-effects." + base_icon_state = "pentibinin" + icon_state = "pentibinin" + list_reagents = list( + /datum/reagent/medicine/c2/penthrite = 5, + /datum/reagent/medicine/polypyr = 5, + /datum/reagent/medicine/silibinin = 5, + /datum/reagent/medicine/omnizine = 5, + /datum/reagent/inverse/healing/tirimol = 5, + ) + custom_price = PAYCHECK_COMMAND * 2.5 + +// Combat stimulant that makes you immune to slowdowns for a bit +/obj/item/reagent_containers/hypospray/medipen/deforest/synalvipitol + name = "synalvipitol muscle stimulant injector" + desc = "A Deforest branded autoinjector, loaded with a cocktail of drugs to make any who take it \ + nearly immune to the slowing effects of silly things like 'being tired' or 'facing muscle failure'." + base_icon_state = "synalvipitol" + icon_state = "synalvipitol" + list_reagents = list( + /datum/reagent/medicine/mine_salve = 5, + /datum/reagent/medicine/synaptizine = 10, + /datum/reagent/medicine/muscle_stimulant = 5, + /datum/reagent/impurity = 5, + ) + custom_price = PAYCHECK_COMMAND * 2.5 + +// Pen basetype where the icon is gotten from +/obj/item/reagent_containers/hypospray/medipen/deforest + name = "non-functional Deforest autoinjector" + desc = "A Deforest branded autoinjector, though this one seems to be both empty and non-functional." + icon = 'monkestation/code/modules/blueshift/icons/deforest/injectors.dmi' + icon_state = "default" + volume = 25 + list_reagents = list() + custom_price = PAYCHECK_COMMAND + /// If this pen has a timer for injecting others with, just for safety with some of the drugs in these + var/inject_others_time = 1.5 SECONDS + +/obj/item/reagent_containers/hypospray/medipen/deforest/Initialize(mapload) + . = ..() + amount_per_transfer_from_this = volume + +/obj/item/reagent_containers/hypospray/medipen/deforest/inject(mob/living/affected_mob, mob/user) + if(!reagents.total_volume) + to_chat(user, span_warning("[src] is empty!")) + return FALSE + if(!iscarbon(affected_mob)) + return FALSE + + //Always log attemped injects for admins + var/list/injected = list() + for(var/datum/reagent/injected_reagent in reagents.reagent_list) + injected += injected_reagent.name + var/contained = english_list(injected) + log_combat(user, affected_mob, "attempted to inject", src, "([contained])") + + if((affected_mob != user) && inject_others_time) + affected_mob.visible_message(span_danger("[user] is trying to inject [affected_mob]!"), \ + span_userdanger("[user] is trying to inject something into you!")) + if(!do_after(user, CHEM_INTERACT_DELAY(inject_others_time, user), affected_mob)) + return FALSE + + if(reagents.total_volume && (ignore_flags || affected_mob.try_inject(user, injection_flags = INJECT_TRY_SHOW_ERROR_MESSAGE))) // Ignore flag should be checked first or there will be an error message. + to_chat(affected_mob, span_warning("You feel a tiny prick!")) + to_chat(user, span_notice("You inject [affected_mob] with [src].")) + if(!stealthy) + playsound(affected_mob, 'sound/items/hypospray.ogg', 50, TRUE) + var/fraction = min(amount_per_transfer_from_this/reagents.total_volume, 1) + + if(affected_mob.reagents) + var/trans = 0 + if(!infinite) + trans = reagents.trans_to(affected_mob, amount_per_transfer_from_this, transfered_by = user, methods = INJECT) + else + reagents.expose(affected_mob, INJECT, fraction) + trans = reagents.copy_to(affected_mob, amount_per_transfer_from_this) + to_chat(user, span_notice("[trans] unit\s injected. [reagents.total_volume] unit\s remaining in [src].")) + log_combat(user, affected_mob, "injected", src, "([contained])") + return TRUE + return FALSE + +// Sensory restoration, heals eyes and ears with a bit of impurity +/obj/item/reagent_containers/hypospray/medipen/deforest/occuisate + name = "occuisate sensory restoration injector" + desc = "A Deforest branded autoinjector, loaded with a mix of reagents to restore your vision and hearing to operation." + base_icon_state = "occuisate" + icon_state = "occuisate" + list_reagents = list( + /datum/reagent/medicine/inacusiate = 7, + /datum/reagent/medicine/oculine = 7, + /datum/reagent/impurity/inacusiate = 3, + /datum/reagent/inverse/oculine = 3, + /datum/reagent/toxin/lipolicide = 5, + ) + +// Adrenaline, fills you with determination (and also stimulants) +/obj/item/reagent_containers/hypospray/medipen/deforest/adrenaline + name = "adrenaline injector" + desc = "A Deforest branded autoinjector, loaded with a mix of reagents to intentionally give yourself fight or flight on demand." + base_icon_state = "adrenaline" + icon_state = "adrenaline" + list_reagents = list( + /datum/reagent/medicine/synaptizine = 5, + /datum/reagent/medicine/inaprovaline = 5, + /datum/reagent/determination = 10, + /datum/reagent/toxin/histamine = 5, + ) + +// Morpital, heals a small amount of damage and kills pain for a bit +/obj/item/reagent_containers/hypospray/medipen/deforest/morpital + name = "morpital regenerative stimulant injector" + desc = "A Deforest branded autoinjector, loaded with a mix of reagents to numb pain and repair small amounts of physical damage." + base_icon_state = "morpital" + icon_state = "morpital" + list_reagents = list( + /datum/reagent/medicine/morphine = 5, + /datum/reagent/medicine/omnizine/protozine = 15, + /datum/reagent/toxin/staminatoxin = 5, + ) + +// Lipital, heals more damage than morpital but doesnt work much at higher damages +/obj/item/reagent_containers/hypospray/medipen/deforest/lipital + name = "lipital regenerative stimulant injector" + desc = "A Deforest branded autoinjector, loaded with a mix of reagents to numb pain and repair small amounts of physical damage. \ + Works most effectively against damaged caused by brute attacks." + base_icon_state = "lipital" + icon_state = "lipital" + list_reagents = list( + /datum/reagent/medicine/lidocaine = 5, + /datum/reagent/medicine/omnizine = 5, + /datum/reagent/medicine/c2/probital = 10, + ) + +// Anti-poisoning injector, with a little bit of radiation healing as a treat +/obj/item/reagent_containers/hypospray/medipen/deforest/meridine + name = "meridine antidote injector" + desc = "A Deforest branded autoinjector, loaded with a mix of reagents to serve as antidote to most galactic toxins. \ + A warning sticker notes it should not be used if the patient is physically damaged, as it may cause complications." + base_icon_state = "meridine" + icon_state = "meridine" + list_reagents = list( + /datum/reagent/medicine/c2/multiver = 10, + /datum/reagent/medicine/potass_iodide = 10, + /datum/reagent/nitrous_oxide = 5, + ) + +// Epinephrine and helps a little bit against stuns and stamina damage +/obj/item/reagent_containers/hypospray/medipen/deforest/synephrine + name = "synephrine emergency stimulant injector" + desc = "A Deforest branded autoinjector, loaded with a mix of reagents to stabilize critical condition and recover from stamina deficits." + base_icon_state = "synephrine" + icon_state = "synephrine" + list_reagents = list( + /datum/reagent/medicine/epinephrine = 10, + /datum/reagent/medicine/synaptizine = 5, + /datum/reagent/medicine/synaphydramine = 5, + ) + custom_price = PAYCHECK_COMMAND * 2.5 + +// Critical condition stabilizer +/obj/item/reagent_containers/hypospray/medipen/deforest/calopine + name = "calopine emergency stabilizant injector" + desc = "A Deforest branded autoinjector, loaded with a stabilizing mix of reagents to repair critical conditions." + base_icon_state = "calopine" + icon_state = "calopine" + list_reagents = list( + /datum/reagent/medicine/atropine = 10, + /datum/reagent/medicine/coagulant/fabricated = 5, + /datum/reagent/medicine/salbutamol = 5, + /datum/reagent/toxin/staminatoxin = 5, + ) + +// Coagulant, really not a whole lot more +/obj/item/reagent_containers/hypospray/medipen/deforest/coagulants + name = "coagulant-S injector" + desc = "A Deforest branded autoinjector, loaded with a mix of coagulants to prevent and stop bleeding." + base_icon_state = "coagulant" + icon_state = "coagulant" + list_reagents = list( + /datum/reagent/medicine/coagulant = 5, + /datum/reagent/medicine/salglu_solution = 15, + /datum/reagent/impurity = 5, + ) + +// Stimulant centered around ondansetron +/obj/item/reagent_containers/hypospray/medipen/deforest/krotozine + name = "krotozine manipulative stimulant injector" + desc = "A Deforest branded autoinjector, loaded with a mix of stimulants of weak healing agents." + base_icon_state = "krotozine" + icon_state = "krotozine" + list_reagents = list( + /datum/reagent/drug/kronkaine = 5, + /datum/reagent/medicine/omnizine/protozine = 10, + /datum/reagent/drug/maint/tar = 5, + ) + custom_price = PAYCHECK_COMMAND * 2.5 + +// Stuff really good at healing burn stuff and stabilizing temps +/obj/item/reagent_containers/hypospray/medipen/deforest/lepoturi + name = "lepoturi burn treatment injector" + desc = "A Deforest branded autoinjector, loaded with a mix of medicines to rapidly treat burns." + base_icon_state = "lepoturi" + icon_state = "lepoturi" + list_reagents = list( + /datum/reagent/medicine/mine_salve = 5, + /datum/reagent/medicine/leporazine = 5, + /datum/reagent/medicine/c2/lenturi = 10, + /datum/reagent/toxin/staminatoxin = 5, + ) + +// Stabilizes a lot of stats like drowsiness, sanity, dizziness, so on +/obj/item/reagent_containers/hypospray/medipen/deforest/psifinil + name = "psifinil personal recovery injector" + desc = "A Deforest branded autoinjector, loaded with a mix of medicines to remedy many common ailments, such as drowsiness, pain, instability, the like." + base_icon_state = "psifinil" + icon_state = "psifinil" + list_reagents = list( + /datum/reagent/medicine/modafinil = 10, + /datum/reagent/medicine/psicodine = 10, + /datum/reagent/medicine/leporazine = 5, + ) + +// Helps with liver failure and some drugs, also alcohol +/obj/item/reagent_containers/hypospray/medipen/deforest/halobinin + name = "halobinin soberant injector" + desc = "A Deforest branded autoinjector, loaded with a mix of medicines to remedy the effects of liver failure and common drugs." + base_icon_state = "halobinin" + icon_state = "halobinin" + list_reagents = list( + /datum/reagent/medicine/haloperidol = 5, + /datum/reagent/medicine/antihol = 5, + /datum/reagent/medicine/higadrite = 5, + /datum/reagent/medicine/silibinin = 5, + ) + +// Medpen for robots that fixes toxin damage and purges synth chems but slows them down for a bit +/obj/item/reagent_containers/hypospray/medipen/deforest/robot_system_cleaner + name = "synthetic cleaner autoinjector" + desc = "A Deforest branded autoinjector, loaded with system cleaner for purging synthetics of reagents." + base_icon_state = "robor" + icon_state = "robor" + list_reagents = list( + /datum/reagent/medicine/system_cleaner = 15, + /datum/reagent/dinitrogen_plasmide = 5, + ) + +// Medpen for robots that fixes brain damage but slows them down for a bit +/obj/item/reagent_containers/hypospray/medipen/deforest/robot_liquid_solder + name = "synthetic smart-solder autoinjector" + desc = "A Deforest branded autoinjector, loaded with liquid solder to repair synthetic processor core damage." + base_icon_state = "robor_brain" + icon_state = "robor_brain" + list_reagents = list( + /datum/reagent/medicine/liquid_solder = 15, + /datum/reagent/dinitrogen_plasmide = 5, + ) + +/atom/movable/screen/alert/status_effect/vulnerable_to_damage + name = "Vulnerable To Damage" + desc = "You will take more damage than normal while your body recovers from mending itself!" + icon_state = "terrified" + +/datum/status_effect/vulnerable_to_damage + id = "vulnerable_to_damage" + duration = 5 MINUTES + alert_type = /atom/movable/screen/alert/status_effect/vulnerable_to_damage + remove_on_fullheal = TRUE + /// The percentage damage modifier we give the mob we're applied to + var/damage_resistance_subtraction = 50 + /// How much extra bleeding the mob is given + var/bleed_modifier_addition = 1 + +/datum/status_effect/vulnerable_to_damage/on_apply() + to_chat(owner, span_userdanger("Your body suddenly feals weak and fragile!")) + var/mob/living/carbon/human/carbon_owner = owner + carbon_owner.physiology.damage_resistance -= damage_resistance_subtraction + carbon_owner.physiology.bleed_mod += bleed_modifier_addition + return ..() + +/datum/status_effect/vulnerable_to_damage/on_remove() + to_chat(owner, span_notice("You seem to have recovered from your unnatural fragility!")) + var/mob/living/carbon/human/carbon_recoverer = owner + carbon_recoverer.physiology.damage_resistance += damage_resistance_subtraction + carbon_recoverer.physiology.bleed_mod -= bleed_modifier_addition + return ..() + +// Giant 3x3 tile warning hologram that tells people they should probably stand outside of it + +/obj/structure/holosign/treatment_zone_warning + name = "treatment zone indicator" + desc = "A massive glowing holosign warning you to keep out of it, there's probably some important stuff happening in there!" + icon = 'monkestation/code/modules/blueshift/icons/deforest/telegraph_96x96.dmi' + icon_state = "treatment_zone" + layer = BELOW_OBJ_LAYER + pixel_x = -32 + pixel_y = -32 + use_vis_overlay = FALSE + +// Projector for the above mentioned treatment zone signs + +/obj/item/holosign_creator/medical/treatment_zone + name = "emergency treatment zone projector" + desc = "A holographic projector that creates a large, clearly marked treatment zone hologram, which warns outsiders that they ought to stay out of it." + holosign_type = /obj/structure/holosign/treatment_zone_warning + creation_time = 1 SECONDS + max_signs = 1 + +// Tech design for printing the projectors + +/datum/design/treatment_zone_projector + name = "Emergency Treatment Zone Projector" + desc = "A holographic projector that creates a large, clearly marked treatment zone hologram, which warns outsiders that they ought to stay out of it." + build_type = PROTOLATHE | AWAY_LATHE + build_path = /obj/item/holosign_creator/medical/treatment_zone + materials = list( + /datum/material/iron = SMALL_MATERIAL_AMOUNT * 5, + /datum/material/glass = SMALL_MATERIAL_AMOUNT * 5, + /datum/material/silver = SMALL_MATERIAL_AMOUNT, + ) + id = "treatment_zone_projector" + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_MEDICAL + ) + departmental_flags = DEPARTMENT_BITFLAG_MEDICAL + +/datum/techweb_node/biotech/New() + . = ..() + design_ids.Add("treatment_zone_projector") + +// Adds the funny projector to medical borgs + +/obj/item/robot_model/medical/New(loc, ...) + . = ..() + var/obj/item/holosign_creator/medical/treatment_zone/new_holosign = new(src) + basic_modules.Add(new_holosign) + + +// Synth repair patch, gives the synth a small amount of healing chems +/obj/item/reagent_containers/pill/robotic_patch + name = "robotic patch" + desc = "A chemical patch for touch-based applications on synthetics." + icon = 'monkestation/code/modules/blueshift/icons/deforest/stack_items.dmi' + icon_state = "synth_patch" + inhand_icon_state = null + possible_transfer_amounts = list() + volume = 40 + apply_type = PATCH + apply_method = "apply" + self_delay = 3 SECONDS + dissolvable = FALSE + +/obj/item/reagent_containers/pill/robotic_patch/attack(mob/living/L, mob/user) + if(ishuman(L)) + var/obj/item/bodypart/affecting = L.get_bodypart(check_zone(user.zone_selected)) + if(!affecting) + to_chat(user, span_warning("The limb is missing!")) + return + if(!IS_ROBOTIC_LIMB(affecting)) + to_chat(user, span_notice("Robotic patches won't work on an organic limb!")) + return + return ..() + +/obj/item/reagent_containers/pill/robotic_patch/canconsume(mob/eater, mob/user) + if(!iscarbon(eater)) + return FALSE + return TRUE + +// The actual patch +/obj/item/reagent_containers/pill/robotic_patch/synth_repair + name = "robotic repair patch" + desc = "A sealed patch with a small nanite swarm along with electrical coagulant reagents to repair small amounts of synthetic damage." + icon_state = "synth_patch" + list_reagents = list( + /datum/reagent/medicine/nanite_slurry = 10, + /datum/reagent/dinitrogen_plasmide = 5, + /datum/reagent/medicine/coagulant/fabricated = 10, + ) + +// Bottle of painkiller pills +/obj/item/storage/pill_bottle/painkiller + name = "amollin pill bottle" + desc = "It's an airtight container for storing medication. This one is all-white and has labels for containing amollin, a blend of Miner's Salve and Lidocaine." + icon = 'monkestation/code/modules/blueshift/icons/deforest/storage.dmi' + icon_state = "painkiller_bottle" + custom_price = PAYCHECK_CREW * 1.5 + +/obj/item/storage/pill_bottle/painkiller/PopulateContents() + for(var/i in 1 to 7) + new /obj/item/reagent_containers/pill/amollin(src) + +/obj/item/reagent_containers/pill/amollin + name = "amollin pill" + desc = "Neutralizes many common pains and ailments. A blend of Miner's Salve and Lidocaine." + icon_state = "pill9" + list_reagents = list( + /datum/reagent/medicine/mine_salve = 10, + /datum/reagent/medicine/lidocaine = 5, + /datum/reagent/consumable/sugar = 5, + ) + +// Narcolepsy quirk medicines +/obj/item/storage/pill_bottle/prescription_stimulant + name = "alifil pill bottle" + desc = "A special miniaturized pill bottle with an insert resembling a revolver cylinder, fitted for the inside of a 'civil defense'-class shell medkit. Holds five alifil pills, and is designed only to accept their proprietary DeForest(tm) shape. A big, bold yellow warning label on the side reads: 'FOLLOW DOSAGE DIRECTIONS'." + icon = 'monkestation/code/modules/blueshift/icons/deforest/storage.dmi' + icon_state = "painkiller_bottle" + w_class = WEIGHT_CLASS_TINY // this is fine because we hard limit what can go in this thing + +/obj/item/storage/pill_bottle/prescription_stimulant/Initialize(mapload) + . = ..() + // Make sure we can only hold alifil pills since this is nested inside a symptom support kit + atom_storage.max_slots = 5 + atom_storage.set_holdable(list( + /obj/item/reagent_containers/pill/prescription_stimulant, + )) + +/obj/item/storage/pill_bottle/prescription_stimulant/PopulateContents() + for(var/i in 1 to 5) + new /obj/item/reagent_containers/pill/prescription_stimulant(src) + +/obj/item/reagent_containers/pill/prescription_stimulant + name = "alifil pill" + desc = "Used to treat symptoms of drowsiness and sudden loss of consciousness. Contains a mix of sugar, synaptizine and modafinil. A warning label reads: Take in moderation." + icon_state = "pill15" + list_reagents = list( + /datum/reagent/consumable/sugar = 5, + /datum/reagent/medicine/synaptizine = 5, + /datum/reagent/medicine/modafinil = 3 + ) + +// Pre-packed civil defense medkit, with items to heal low damages inside +/obj/item/storage/medkit/civil_defense + name = "civil defense medical kit" + icon = 'monkestation/code/modules/blueshift/icons/deforest/storage.dmi' + icon_state = "poisoning_kit" + lefthand_file = 'monkestation/code/modules/blueshift/icons/deforest/inhands/cases_lefthand.dmi' + righthand_file = 'monkestation/code/modules/blueshift/icons/deforest/inhands/cases_righthand.dmi' + inhand_icon_state = "poisoning_kit" + desc = "A small medical kit that can only fit autoinjectors in it, these typically come with supplies to treat low level harm." + w_class = WEIGHT_CLASS_SMALL + drop_sound = 'sound/items/handling/ammobox_drop.ogg' + pickup_sound = 'sound/items/handling/ammobox_pickup.ogg' + custom_price = PAYCHECK_COMMAND * 3 + +/obj/item/storage/medkit/civil_defense/Initialize(mapload) + . = ..() + atom_storage.max_slots = 4 + atom_storage.set_holdable(list( + /obj/item/reagent_containers/hypospray/medipen, + /obj/item/storage/pill_bottle/prescription_stimulant, + /obj/item/food/cheese/firm_cheese_slice, //It's not called a cheese kit for nothing. + /obj/item/food/cheese/wedge, + )) + +/obj/item/storage/medkit/civil_defense/stocked + +/obj/item/storage/medkit/civil_defense/stocked/PopulateContents() + var/static/items_inside = list( + /obj/item/reagent_containers/hypospray/medipen/deforest/meridine = 1, + /obj/item/reagent_containers/hypospray/medipen/deforest/halobinin = 1, + /obj/item/reagent_containers/hypospray/medipen/deforest/lipital = 1, + /obj/item/reagent_containers/hypospray/medipen/deforest/calopine = 1, + ) + generate_items_inside(items_inside, src) + +/obj/item/storage/medkit/civil_defense/thunderdome + /// List of random medpens we can pick from + var/list/random_medpen_options = list( + /obj/item/reagent_containers/hypospray/medipen/deforest/twitch, + /obj/item/reagent_containers/hypospray/medipen/deforest/demoneye, + /obj/item/reagent_containers/hypospray/medipen/deforest/aranepaine, + /obj/item/reagent_containers/hypospray/medipen/deforest/pentibinin, + /obj/item/reagent_containers/hypospray/medipen/deforest/synalvipitol, + /obj/item/reagent_containers/hypospray/medipen/deforest/adrenaline, + /obj/item/reagent_containers/hypospray/medipen/deforest/morpital, + /obj/item/reagent_containers/hypospray/medipen/deforest/lipital, + /obj/item/reagent_containers/hypospray/medipen/deforest/synephrine, + /obj/item/reagent_containers/hypospray/medipen/deforest/calopine, + /obj/item/reagent_containers/hypospray/medipen/deforest/coagulants, + /obj/item/reagent_containers/hypospray/medipen/deforest/krotozine, + /obj/item/reagent_containers/hypospray/medipen/deforest/lepoturi, + ) + +/obj/item/storage/medkit/civil_defense/thunderdome/Initialize(mapload) + . = ..() + atom_storage.max_slots = 6 + +/obj/item/storage/medkit/civil_defense/thunderdome/PopulateContents() + for(var/pens in 1 to 6) + var/new_pen = pick(random_medpen_options) + new new_pen(src) + +// Variant on the civil defense medkit for spacer planetside personnel (or other people suffering from chronic illnesses) +/obj/item/storage/medkit/civil_defense/comfort + name = "civil defense symptom support kit" + desc = "A small, pocket-sized kit that can typically only fit autoinjectors in it. This variant on the classic 'cheese' civil defense kit contains supplies to address hindering symptomatic burden associated with common chronic diseases or adaptation syndromes, such as gravity sickness." + icon_state = "symptom_kit" + +/obj/item/storage/medkit/civil_defense/comfort/stocked + +/obj/item/storage/medkit/civil_defense/comfort/stocked/PopulateContents() + var/static/items_inside = list( + /obj/item/reagent_containers/hypospray/medipen/deforest/psifinil = 3, + /obj/item/storage/pill_bottle/prescription_stimulant = 1, + ) + generate_items_inside(items_inside, src) + +// Pre-packed frontier medkit, with supplies to repair most common frontier health issues +/obj/item/storage/medkit/frontier + name = "frontier medical kit" + desc = "A handy roll-top waterproof medkit often seen alongside those on the frontier, where medical support is less than optimal. \ + It has a clip for hooking onto your belt, handy!" + icon = 'monkestation/code/modules/blueshift/icons/deforest/storage.dmi' + icon_state = "frontier" + lefthand_file = 'monkestation/code/modules/blueshift/icons/deforest/inhands/cases_lefthand.dmi' + righthand_file = 'monkestation/code/modules/blueshift/icons/deforest/inhands/cases_righthand.dmi' + inhand_icon_state = "frontier" + worn_icon = 'monkestation/code/modules/blueshift/icons/deforest/worn/worn.dmi' + pickup_sound = 'sound/items/handling/cloth_pickup.ogg' + drop_sound = 'sound/items/handling/cloth_drop.ogg' + slot_flags = ITEM_SLOT_BELT + +/obj/item/storage/medkit/frontier/stocked + +/obj/item/storage/medkit/frontier/stocked/PopulateContents() + var/static/items_inside = list( + /obj/item/reagent_containers/hypospray/medipen/deforest/meridine = 1, + /obj/item/reagent_containers/hypospray/medipen/deforest/morpital = 1, + /obj/item/stack/medical/ointment = 1, + /obj/item/stack/medical/suture = 1, + /obj/item/stack/medical/suture/coagulant = 1, + /obj/item/stack/medical/gauze/sterilized = 1, + /obj/item/storage/pill_bottle/painkiller = 1, + ) + generate_items_inside(items_inside,src) + +// Pre-packed combat surgeon medkit, with items for fixing more specific injuries and wounds +/obj/item/storage/medkit/combat_surgeon + name = "combat surgeon medical kit" + desc = "A folding kit that is ideally filled with surgical tools and specialized treatment options for many harder-to-treat wounds." + icon = 'monkestation/code/modules/blueshift/icons/deforest/storage.dmi' + icon_state = "surgeon" + lefthand_file = 'monkestation/code/modules/blueshift/icons/deforest/inhands/cases_lefthand.dmi' + righthand_file = 'monkestation/code/modules/blueshift/icons/deforest/inhands/cases_righthand.dmi' + inhand_icon_state = "surgeon" + worn_icon = 'monkestation/code/modules/blueshift/icons/deforest/worn/worn.dmi' + worn_icon_state = "frontier" + pickup_sound = 'sound/items/handling/cloth_pickup.ogg' + drop_sound = 'sound/items/handling/cloth_drop.ogg' + +/obj/item/storage/medkit/combat_surgeon/Initialize(mapload) + . = ..() + atom_storage.max_specific_storage = WEIGHT_CLASS_NORMAL + +/obj/item/storage/medkit/combat_surgeon/stocked + +/obj/item/storage/medkit/combat_surgeon/stocked/PopulateContents() + var/static/items_inside = list( + /obj/item/bonesetter = 1, + /obj/item/hemostat = 1, + /obj/item/cautery = 1, + /obj/item/stack/medical/wound_recovery = 1, + /obj/item/stack/medical/wound_recovery/rapid_coagulant = 1, + /obj/item/stack/medical/gauze/sterilized = 1, + /obj/item/healthanalyzer/simple = 1, + ) + generate_items_inside(items_inside,src) + +// Big medical kit that can be worn like a bag, holds a LOT of medical items but works like a duffelbag +/obj/item/storage/backpack/duffelbag/deforest_medkit + name = "satchel medical kit" + desc = "A large orange satchel able to hold just about any piece of small medical equipment you could think of, you can even wear it on your back or belt!" + icon = 'monkestation/code/modules/blueshift/icons/deforest/storage.dmi' + icon_state = "satchel" + lefthand_file = 'monkestation/code/modules/blueshift/icons/deforest/inhands/cases_lefthand.dmi' + righthand_file = 'monkestation/code/modules/blueshift/icons/deforest/inhands/cases_righthand.dmi' + inhand_icon_state = "satchel" + worn_icon = 'monkestation/code/modules/blueshift/icons/deforest/worn/worn.dmi' + equip_sound = 'sound/items/equip/jumpsuit_equip.ogg' + pickup_sound = 'sound/items/handling/cloth_pickup.ogg' + drop_sound = 'sound/items/handling/cloth_drop.ogg' + slot_flags = ITEM_SLOT_BACK | ITEM_SLOT_BELT + storage_type = /datum/storage/duffel/deforest_medkit + +/obj/item/storage/backpack/duffelbag/deforest_medkit/stocked + +/obj/item/storage/backpack/duffelbag/deforest_medkit/stocked/PopulateContents() + var/static/items_inside = list( + /obj/item/reagent_containers/hypospray/medipen/deforest/morpital = 1, + /obj/item/reagent_containers/hypospray/medipen/deforest/lepoturi = 1, + /obj/item/reagent_containers/hypospray/medipen/deforest/lipital = 1, + /obj/item/reagent_containers/hypospray/medipen/deforest/meridine = 1, + /obj/item/reagent_containers/hypospray/medipen/deforest/calopine = 1, + /obj/item/reagent_containers/hypospray/medipen/deforest/coagulants = 1, + /obj/item/bonesetter = 1, + /obj/item/hemostat = 1, + /obj/item/cautery = 1, + /obj/item/stack/medical/wound_recovery = 1, + /obj/item/stack/medical/wound_recovery/rapid_coagulant = 1, + /obj/item/stack/medical/suture/coagulant = 1, + /obj/item/stack/medical/mesh = 2, + /obj/item/stack/medical/gauze/sterilized = 1, + /obj/item/stack/medical/gauze = 1, + /obj/item/stack/medical/ointment/red_sun = 1, + /obj/item/storage/pill_bottle/painkiller = 1, + /obj/item/healthanalyzer/simple = 1, + ) + generate_items_inside(items_inside,src) + +/datum/storage/duffel/deforest_medkit + max_specific_storage = WEIGHT_CLASS_SMALL + max_total_storage = 21 * WEIGHT_CLASS_SMALL + max_slots = 21 + +/datum/storage/duffel/deforest_medkit/New() + . = ..() + + can_hold = typecacheof(list( + /obj/item/bonesetter, + /obj/item/cautery, + /obj/item/clothing/neck/stethoscope, + /obj/item/clothing/mask/breath, + /obj/item/clothing/mask/muzzle, + /obj/item/clothing/mask/surgical, + /obj/item/dnainjector, + /obj/item/extinguisher/mini, + /obj/item/flashlight/pen, + /obj/item/geiger_counter, + /obj/item/healthanalyzer, + /obj/item/hemostat, + /obj/item/holosign_creator/medical, + /obj/item/implant, + /obj/item/implantcase, + /obj/item/implanter, + /obj/item/lazarus_injector, + /obj/item/lighter, + /obj/item/pinpointer/crew, + /obj/item/reagent_containers/blood, + /obj/item/reagent_containers/dropper, + /obj/item/reagent_containers/cup/beaker, + /obj/item/reagent_containers/cup/bottle, + /obj/item/reagent_containers/hypospray, + /obj/item/reagent_containers/medigel, + /obj/item/reagent_containers/pill, + /obj/item/reagent_containers/spray, + /obj/item/reagent_containers/syringe, + /obj/item/stack/medical, + /obj/item/stack/sticky_tape, + /obj/item/sensor_device, + /obj/item/storage/fancy/cigarettes, + /obj/item/storage/pill_bottle, + /obj/item/tank/internals/emergency_oxygen, + /obj/item/bodybag, + )) + +// Big surgical kit that can be worn like a bag, holds 14 normal items (more than what a backpack can do!) but works like a duffelbag +/obj/item/storage/backpack/duffelbag/deforest_surgical + name = "first responder surgical kit" + desc = "A large bag able to hold all the surgical tools and first response healing equipment you can think of, you can even wear it!" + icon = 'monkestation/code/modules/blueshift/icons/deforest/storage.dmi' + icon_state = "super_surgery" + lefthand_file = 'monkestation/code/modules/blueshift/icons/deforest/inhands/cases_lefthand.dmi' + righthand_file = 'monkestation/code/modules/blueshift/icons/deforest/inhands/cases_righthand.dmi' + inhand_icon_state = "super_surgery" + worn_icon = 'monkestation/code/modules/blueshift/icons/deforest/worn/worn.dmi' + equip_sound = 'sound/items/equip/jumpsuit_equip.ogg' + pickup_sound = 'sound/items/handling/cloth_pickup.ogg' + drop_sound = 'sound/items/handling/cloth_drop.ogg' + slot_flags = ITEM_SLOT_BACK | ITEM_SLOT_BELT + storage_type = /datum/storage/duffel/deforest_big_surgery + +/obj/item/storage/backpack/duffelbag/deforest_surgical/stocked + +/obj/item/storage/backpack/duffelbag/deforest_surgical/stocked/PopulateContents() + var/static/items_inside = list( + /obj/item/scalpel = 1, + /obj/item/hemostat = 1, + /obj/item/retractor = 1, + /obj/item/circular_saw = 1, + /obj/item/bonesetter = 1, + /obj/item/cautery = 1, + /obj/item/surgical_drapes = 1, + /obj/item/blood_filter = 1, + /obj/item/roller = 1, + /obj/item/stack/medical/gauze = 1, + /obj/item/stack/medical/gauze/sterilized = 1, + /obj/item/reagent_containers/medigel/sterilizine = 1, + /obj/item/stack/sticky_tape/surgical = 1, + /obj/item/stack/medical/bone_gel = 1, + ) + generate_items_inside(items_inside,src) + +/datum/storage/duffel/deforest_big_surgery + max_total_storage = 14 * WEIGHT_CLASS_NORMAL + max_slots = 14 + +/datum/storage/duffel/deforest_big_surgery/New() + . = ..() + + can_hold = typecacheof(list( + /obj/item/blood_filter, + /obj/item/bonesetter, + /obj/item/cautery, + /obj/item/circular_saw, + /obj/item/clothing/glasses, + /obj/item/clothing/gloves, + /obj/item/clothing/neck/stethoscope, + /obj/item/clothing/mask/breath, + /obj/item/clothing/mask/muzzle, + /obj/item/clothing/mask/surgical, + /obj/item/construction/plumbing, + /obj/item/dnainjector, + /obj/item/extinguisher/mini, + /obj/item/flashlight/pen, + /obj/item/geiger_counter, + /obj/item/gun/syringe/syndicate, + /obj/item/healthanalyzer, + /obj/item/hemostat, + /obj/item/holosign_creator/medical, + /obj/item/implant, + /obj/item/implantcase, + /obj/item/implanter, + /obj/item/lazarus_injector, + /obj/item/lighter, + /obj/item/pinpointer/crew, + /obj/item/plunger, + /obj/item/radio, + /obj/item/reagent_containers/blood, + /obj/item/reagent_containers/dropper, + /obj/item/reagent_containers/cup/beaker, + /obj/item/reagent_containers/cup/bottle, + /obj/item/reagent_containers/hypospray, + /obj/item/reagent_containers/medigel, + /obj/item/reagent_containers/pill, + /obj/item/reagent_containers/spray, + /obj/item/reagent_containers/syringe, + /obj/item/retractor, + /obj/item/scalpel, + /obj/item/shears, + /obj/item/stack/medical, + /obj/item/stack/sticky_tape, + /obj/item/stamp, + /obj/item/sensor_device, + /obj/item/storage/fancy/cigarettes, + /obj/item/storage/pill_bottle, + /obj/item/surgical_drapes, + /obj/item/surgicaldrill, + /obj/item/tank/internals/emergency_oxygen, + /obj/item/handheld_soulcatcher, + /obj/item/wrench/medical, + /obj/item/roller, + /obj/item/bodybag, + )) + +// Pre-packed medkit for healing synths and repairing their wounds rapidly in the field +/obj/item/storage/medkit/robotic_repair + name = "robotic repair equipment kit" + desc = "An industrial-strength plastic box filled with supplies for repairing synthetics from critical damage." + icon = 'monkestation/code/modules/blueshift/icons/deforest/storage.dmi' + icon_state = "synth_medkit" + inhand_icon_state = "medkit" + worn_icon = 'monkestation/code/modules/blueshift/icons/deforest/worn/worn.dmi' + worn_icon_state = "frontier" + drop_sound = 'sound/items/handling/ammobox_drop.ogg' + pickup_sound = 'sound/items/handling/ammobox_pickup.ogg' + +/obj/item/storage/medkit/robotic_repair/Initialize(mapload) + . = ..() + var/static/list/list_of_everything_mechanical_medkits_can_hold = list_of_everything_medkits_can_hold + list( + /obj/item/stack/cable_coil, + /obj/item/crowbar, + /obj/item/screwdriver, + /obj/item/wrench, + /obj/item/weldingtool, + /obj/item/wirecutters, + /obj/item/multitool, + /obj/item/plunger, + /obj/item/clothing/head/utility/welding, + /obj/item/clothing/glasses/welding, + ) + var/static/list/exception_cache = typecacheof( + /obj/item/clothing/head/utility/welding, + ) + + atom_storage.set_holdable(list_of_everything_mechanical_medkits_can_hold) + LAZYINITLIST(atom_storage.exception_hold) + atom_storage.exception_hold = atom_storage.exception_hold + exception_cache + atom_storage.max_specific_storage = WEIGHT_CLASS_NORMAL + +/obj/item/storage/medkit/robotic_repair/stocked + +/obj/item/storage/medkit/robotic_repair/stocked/PopulateContents() + var/static/items_inside = list( + /obj/item/stack/medical/gauze = 1, + /obj/item/reagent_containers/pill/robotic_patch/synth_repair = 2, + /obj/item/reagent_containers/hypospray/medipen/deforest/robot_system_cleaner = 1, + /obj/item/reagent_containers/hypospray/medipen/deforest/coagulants = 1, // Coagulants help electrical damage + /obj/item/healthanalyzer/simple = 1, + ) + generate_items_inside(items_inside,src) + +/obj/item/storage/medkit/robotic_repair/preemo + name = "premium robotic repair equipment kit" + desc = "An industrial-strength plastic box filled with supplies for repairing synthetics from critical damage. \ + This one has extra storage on the sides for even more equipment than the standard medkit model." + icon_state = "synth_medkit_super" + +/obj/item/storage/medkit/robotic_repair/preemo/Initialize(mapload) + . = ..() + atom_storage.max_specific_storage = WEIGHT_CLASS_NORMAL + atom_storage.max_slots = 12 + atom_storage.max_total_storage = 12 * WEIGHT_CLASS_NORMAL + +/obj/item/storage/medkit/robotic_repair/preemo/stocked + +/obj/item/storage/medkit/robotic_repair/preemo/stocked/PopulateContents() + var/static/items_inside = list( + /obj/item/stack/medical/gauze/twelve = 1, + /obj/item/stack/cable_coil/five = 1, + /obj/item/reagent_containers/pill/robotic_patch/synth_repair = 4, + /obj/item/reagent_containers/hypospray/medipen/deforest/robot_system_cleaner = 1, + /obj/item/reagent_containers/hypospray/medipen/deforest/robot_liquid_solder = 1, + /obj/item/reagent_containers/hypospray/medipen/deforest/coagulants = 1, + /obj/item/healthanalyzer/simple = 1, + ) + generate_items_inside(items_inside,src) + +/obj/machinery/biogenerator/medstation + name = "wall med-station" + desc = "An advanced machine seen in frontier outposts and colonies capable of turning organic plant matter into \ + various emergency medical supplies and injectors. You can find one of these in the medical sections of just about \ + any frontier installation." + icon = 'monkestation/code/modules/blueshift/icons/deforest/medstation.dmi' + circuit = null + anchored = TRUE + density = FALSE + efficiency = 1 + productivity = 1 + show_categories = list( + RND_CATEGORY_DEFOREST_MEDICAL, + RND_CATEGORY_DEFOREST_BLOOD, + ) + /// The item we turn into when repacked + var/repacked_type = /obj/item/wallframe/frontier_medstation + +MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/biogenerator/medstation, 29) + +/obj/machinery/biogenerator/medstation/RefreshParts() + . = ..() + efficiency = 1 + productivity = 1 + +/obj/machinery/biogenerator/medstation/default_unfasten_wrench(mob/user, obj/item/wrench/tool, time) + user.balloon_alert(user, "deconstructing...") + tool.play_tool_sound(src) + if(tool.use_tool(src, user, 1 SECONDS)) + playsound(loc, 'sound/items/deconstruct.ogg', 50, TRUE) + deconstruct(TRUE) + return + +/obj/machinery/biogenerator/medstation/on_deconstruction(disassembled) + if(disassembled) + new repacked_type(drop_location()) + +/obj/machinery/biogenerator/medstation/default_deconstruction_crowbar() + return + +// Deployable item for cargo for the medstation + +/obj/item/wallframe/frontier_medstation + name = "unmounted wall med-station" + desc = "The innovative technology of a biogenerator to print medical supplies, but able to be mounted neatly on a wall out of the way." + icon = 'monkestation/code/modules/blueshift/icons/deforest/medstation.dmi' + icon_state = "biogenerator_parts" + w_class = WEIGHT_CLASS_NORMAL + result_path = /obj/machinery/biogenerator/medstation + pixel_shift = 29 + custom_materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 5, + /datum/material/silver = SHEET_MATERIAL_AMOUNT * 3, + /datum/material/gold = SHEET_MATERIAL_AMOUNT, + ) diff --git a/monkestation/code/modules/blueshift/items/design_disks.dm b/monkestation/code/modules/blueshift/items/design_disks.dm new file mode 100644 index 000000000000..1b3f831c001b --- /dev/null +++ b/monkestation/code/modules/blueshift/items/design_disks.dm @@ -0,0 +1,30 @@ +/obj/item/disk/ammo_workbench + name = "munitions blueprint datadisk" + desc = "You shouldn't be seeing this!" + +/// For doing things when installed/downloaded onto an ammo bench. +/// Really only used for setting variables, but if someone expands the system to have disks per ammo type, I guess this could be more useful. +/obj/item/disk/ammo_workbench/proc/on_bench_install(obj/machinery/ammo_workbench/ammobench) + return + +/obj/item/disk/ammo_workbench/advanced + name = "advanced munitions datadisk" + desc = "An datadisk filled with advanced munition fabrication data for the ammunition workbench, including lethal ammotypes if not previously enabled. \ + No parties are liable for any incidents that occur if safeties were circumvented beforehand." + +/obj/item/disk/ammo_workbench/advanced/on_bench_install(obj/machinery/ammo_workbench/ammobench) + ammobench.allowed_harmful = TRUE + ammobench.allowed_advanced = TRUE + +/datum/design/disk/ammo_workbench_lethal + name = "Ammo Workbench Advanced Munitions Datadisk" + id = "ammoworkbench_disk_lethal" + build_type = PROTOLATHE | AWAY_LATHE + materials = list( + /datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT + ) + build_path = /obj/item/disk/ammo_workbench/advanced + category = list( + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_SECURITY, + ) + departmental_flags = DEPARTMENT_BITFLAG_SECURITY diff --git a/monkestation/code/modules/blueshift/items/field_medic.dm b/monkestation/code/modules/blueshift/items/field_medic.dm new file mode 100644 index 000000000000..e45430669d59 --- /dev/null +++ b/monkestation/code/modules/blueshift/items/field_medic.dm @@ -0,0 +1,152 @@ +//Gateway Medkit, no more combat defibs! +/obj/item/storage/medkit/expeditionary + name = "expeditionary medical kit" + desc = "Now with 100% less bullshit." + icon_state = "medkit_tactical" + damagetype_healed = "all" + +/obj/item/storage/medkit/expeditionary/PopulateContents() + if(empty) + return + new /obj/item/stack/medical/gauze(src) + new /obj/item/defibrillator/compact/loaded(src) + new /obj/item/reagent_containers/hypospray/combat(src) + new /obj/item/stack/medical/mesh/advanced(src) + new /obj/item/stack/medical/suture/medicated(src) + new /obj/item/clothing/glasses/hud/health(src) + +/obj/item/storage/medkit/expeditionary/surplus + desc = "Now with less bullshit. And more dust. But mainly less bullshit. If you have to use this, there's no way you've got insurance." + +/obj/item/storage/medkit/expeditionary/surplus/PopulateContents() + if(empty) + return + new /obj/item/stack/medical/gauze/twelve(src) + new /obj/item/reagent_containers/hypospray/combat(src) // epi/atro + lepo + omnizine + new /obj/item/stack/medical/suture/medicated(src) + new /obj/item/stack/medical/suture/medicated(src) + new /obj/item/stack/medical/mesh/advanced(src) + new /obj/item/stack/medical/mesh/advanced(src) + new /obj/item/clothing/glasses/hud/health(src) + +//Field Medic's weapon, no more tomahawk! +/obj/item/circular_saw/field_medic + name = "bone saw" + desc = "Did that sting? SAW-ry!" + force = 20 + icon_state = "bonesaw" + icon = 'monkestation/code/modules/blueshift/icons/bonesaw.dmi' + lefthand_file = 'monkestation/code/modules/blueshift/icons/bonesaw_l.dmi' + righthand_file = 'monkestation/code/modules/blueshift/icons/bonesaw_r.dmi' + inhand_icon_state = "bonesaw" + hitsound = 'sound/weapons/bladeslice.ogg' + toolspeed = 0.2 + throw_range = 3 + w_class = WEIGHT_CLASS_SMALL + +//Pointman's riot shield. Fixable with 1 plasteel, crafting recipe for broken shield +/obj/item/shield/riot/pointman + name = "pointman shield" + desc = "A shield fit for those that want to sprint headfirst into the unknown. Its heavy, unwieldy nature makes its defensive performance suffer when in the off-hand; \ + wielding will provide best results at the cost of reduced mobility." + icon_state = "riot" + icon = 'monkestation/code/modules/blueshift/icons/riot.dmi' + lefthand_file = 'monkestation/code/modules/blueshift/icons/riot_left.dmi' + righthand_file = 'monkestation/code/modules/blueshift/icons/riot_right.dmi' + force = 10 + throwforce = 5 + throw_speed = 1 + throw_range = 1 + block_chance = 15 + w_class = WEIGHT_CLASS_BULKY + attack_verb_continuous = list("slams", "bashes") + attack_verb_simple = list("slam", "bash") + transparent = FALSE + max_integrity = 200 + shield_break_leftover = /obj/item/pointman_broken + +/obj/item/shield/riot/pointman/Initialize(mapload) + . = ..() + AddComponent(/datum/component/two_handed, \ + force_unwielded=10, force_wielded=20, \ + wield_callback = CALLBACK(src, PROC_REF(shield_wield)), \ + unwield_callback = CALLBACK(src, PROC_REF(shield_unwield)), \ + ) + + +/// handles buffing the shield's defensive ability and nerfing user mobility +/obj/item/shield/riot/pointman/proc/shield_wield() + item_flags |= SLOWS_WHILE_IN_HAND + block_chance *= 5 // 15 * 5 = 75 + slowdown = 0.6 + +/// nerfs the shield's defensive ability, buffs user mobility +/obj/item/shield/riot/pointman/proc/shield_unwield() + item_flags &= ~SLOWS_WHILE_IN_HAND + block_chance /= 5 + slowdown = 0 + +/obj/item/pointman_broken + name = "broken pointman shield" + desc = "Enough of it is still intact that you could probably just weld more bits on." + icon_state = "riot_broken" + icon = 'monkestation/code/modules/blueshift/icons/riot.dmi' + w_class = WEIGHT_CLASS_BULKY + +/* +/obj/item/pointman_broken/Initialize(mapload) + . = ..() + var/static/list/slapcraft_recipe_list = list(/datum/crafting_recipe/pointman_repair) + AddComponent( + /datum/component/slapcrafting,\ + slapcraft_recipes = slapcraft_recipe_list,\ + ) +*/ + +//broken shield fixing +/datum/crafting_recipe/pointman_repair + name = "pointman shield (repaired)" + result = /obj/item/shield/riot/pointman + reqs = list(/obj/item/pointman_broken = 1, + /obj/item/stack/sheet/plasteel = 3, + /obj/item/stack/sheet/rglass = 3) + time = 5 SECONDS + category = CAT_MISC + tool_behaviors = list(TOOL_WELDER) + +//Marksman's throwing knife and a pouch for it +/obj/item/knife/combat/throwing + name = "throwing knife" + desc = "While very well weighted for throwing, the distribution of mass makes it unwieldy for use in melee." + icon = 'monkestation/code/modules/blueshift/icons/throwing.dmi' + icon_state = "throwing" + force = 12 // don't stab with this + throwforce = 30 // 38 force on embed? compare contrast with throwing stars. + throw_speed = 4 + embedding = list("pain_mult" = 4, "embed_chance" = 75, "fall_chance" = 10) // +10 embed chance up from combat knife's 65 + bayonet = FALSE // throwing knives probably aren't made for use as bayonets + +/obj/item/storage/pouch/ammo/marksman + name = "marksman's knife pouch" + unique_reskin = NONE + +/obj/item/storage/pouch/ammo/marksman/Initialize(mapload) + . = ..() + create_storage(storage_type = /datum/storage/marksman) + +/datum/storage/marksman + max_total_storage = 60 + max_slots = 10 + numerical_stacking = TRUE + quickdraw = TRUE + +/datum/storage/marksman/New() + . = ..() + can_hold = typecacheof(list(/obj/item/knife/combat)) + +/obj/item/storage/pouch/ammo/marksman/PopulateContents() //can kill most basic enemies with 5 knives, though marksmen shouldn't be soloing enemies anyways + new /obj/item/knife/combat/throwing(src) + new /obj/item/knife/combat/throwing(src) + new /obj/item/knife/combat/throwing(src) + new /obj/item/knife/combat/throwing(src) + new /obj/item/knife/combat/throwing(src) diff --git a/monkestation/code/modules/blueshift/items/gunset.dm b/monkestation/code/modules/blueshift/items/gunset.dm new file mode 100644 index 000000000000..67be4e71e14f --- /dev/null +++ b/monkestation/code/modules/blueshift/items/gunset.dm @@ -0,0 +1,317 @@ +/obj/item/storage/toolbox/guncase + name = "gun case" + desc = "A weapon's case. Has a blood-red 'S' stamped on the cover." + icon = 'icons/obj/storage/case.dmi' + icon_state = "infiltrator_case" + lefthand_file = 'icons/mob/inhands/equipment/toolbox_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/toolbox_righthand.dmi' + inhand_icon_state = "infiltrator_case" + has_latches = FALSE + var/weapon_to_spawn = /obj/item/gun/ballistic/automatic/pistol + var/extra_to_spawn = /obj/item/ammo_box/magazine/m9mm + +/obj/item/storage/toolbox/guncase/Initialize(mapload) + . = ..() + atom_storage.max_specific_storage = WEIGHT_CLASS_BULKY + atom_storage.max_total_storage = 7 //enough to hold ONE bulky gun and the ammo boxes + atom_storage.max_slots = 4 + +/obj/item/storage/toolbox/guncase/PopulateContents() + new weapon_to_spawn (src) + for(var/i in 1 to 3) + new extra_to_spawn (src) + +/obj/item/storage/toolbox/guncase/bulldog + name = "bulldog gun case" + weapon_to_spawn = /obj/item/gun/ballistic/shotgun/bulldog + extra_to_spawn = /obj/item/ammo_box/magazine/m12g + +/obj/item/storage/toolbox/guncase/c20r + name = "c-20r gun case" + weapon_to_spawn = /obj/item/gun/ballistic/automatic/c20r + extra_to_spawn = /obj/item/ammo_box/magazine/smgm45 + +/obj/item/storage/toolbox/guncase/clandestine + name = "clandestine gun case" + weapon_to_spawn = /obj/item/gun/ballistic/automatic/pistol/clandestine + extra_to_spawn = /obj/item/ammo_box/magazine/m10mm + +/obj/item/storage/toolbox/guncase/m90gl + name = "m-90gl gun case" + weapon_to_spawn = /obj/item/gun/ballistic/automatic/m90 + extra_to_spawn = /obj/item/ammo_box/magazine/m223 + +/obj/item/storage/toolbox/guncase/m90gl/PopulateContents() + new weapon_to_spawn (src) + for(var/i in 1 to 2) + new extra_to_spawn (src) + new /obj/item/ammo_box/a40mm/rubber (src) + +/obj/item/storage/toolbox/guncase/rocketlauncher + name = "rocket launcher gun case" + weapon_to_spawn = /obj/item/gun/ballistic/rocketlauncher + extra_to_spawn = /obj/item/ammo_box/rocket + +/obj/item/storage/toolbox/guncase/rocketlauncher/PopulateContents() + new weapon_to_spawn (src) + new extra_to_spawn (src) + +/obj/item/storage/toolbox/guncase/revolver + name = "revolver gun case" + weapon_to_spawn = /obj/item/gun/ballistic/revolver/syndicate/nuclear + extra_to_spawn = /obj/item/ammo_box/a357 + +/obj/item/storage/toolbox/guncase/sword_and_board + name = "energy sword and shield weapon case" + weapon_to_spawn = /obj/item/melee/energy/sword + extra_to_spawn = /obj/item/shield/energy + +/obj/item/storage/toolbox/guncase/sword_and_board/PopulateContents() + new weapon_to_spawn (src) + new extra_to_spawn (src) + +/obj/item/storage/toolbox/guncase/cqc + name = "\improper CQC equipment case" + weapon_to_spawn = /obj/item/book/granter/martial/cqc + extra_to_spawn = /obj/item/storage/box/syndie_kit/imp_stealth + +/obj/item/storage/toolbox/guncase/cqc/PopulateContents() + new weapon_to_spawn (src) + new extra_to_spawn (src) + new /obj/item/storage/fancy/cigarettes/cigpack_syndicate (src) + +/* +* GUNSET BOXES +*/ + +/obj/item/storage/toolbox/guncase/skyrat + desc = "A thick gun case with foam inserts laid out to fit a weapon, magazines, and gear securely." + + icon = 'monkestation/code/modules/blueshift/icons/obj/gunsets.dmi' + icon_state = "guncase" + + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/worn/cases.dmi' + worn_icon_state = "darkcase" + + slot_flags = ITEM_SLOT_BACK + + material_flags = NONE + + /// Is the case visually opened or not + var/opened = FALSE + +/obj/item/storage/toolbox/guncase/skyrat/Initialize(mapload) + . = ..() + atom_storage.max_total_storage = 14 // Technically means you could fit multiple large guns in here but its a case you cant backpack anyways so what it do + atom_storage.max_slots = 6 // We store some extra items in these so lets make a little extra room + +/obj/item/storage/toolbox/guncase/skyrat/update_icon() + . = ..() + if(opened) + icon_state = "[initial(icon_state)]-open" + else + icon_state = initial(icon_state) + +/obj/item/storage/toolbox/guncase/skyrat/AltClick(mob/user) + opened = !opened + update_icon() + +/obj/item/storage/toolbox/guncase/skyrat/attack_self(mob/user) + . = ..() + opened = !opened + update_icon() + +// Empty guncase + +/obj/item/storage/toolbox/guncase/skyrat/empty + +/obj/item/storage/toolbox/guncase/skyrat/empty/PopulateContents() + return + +// Small case for pistols and whatnot + +/obj/item/storage/toolbox/guncase/skyrat/pistol + name = "small gun case" + + icon_state = "guncase_s" + + slot_flags = NONE + + w_class = WEIGHT_CLASS_NORMAL + +/obj/item/storage/toolbox/guncase/skyrat/pistol/Initialize(mapload) + . = ..() + atom_storage.max_specific_storage = WEIGHT_CLASS_NORMAL + +// Empty pistol case + +/obj/item/storage/toolbox/guncase/skyrat/pistol/empty + +/obj/item/storage/toolbox/guncase/skyrat/pistol/empty/PopulateContents() + return + +// Base yellow carwo case + +/obj/item/storage/toolbox/guncase/skyrat/carwo_large_case + desc = "A thick yellow gun case with foam inserts laid out to fit a weapon, magazines, and gear securely." + + icon = 'monkestation/code/modules/blueshift/icons/obj/gunsets.dmi' + icon_state = "case_carwo" + + worn_icon_state = "yellowcase" + + lefthand_file = 'monkestation/code/modules/blueshift/icons/mob/inhands/cases_lefthand.dmi' + righthand_file = 'monkestation/code/modules/blueshift/icons/mob/inhands/cases_righthand.dmi' + inhand_icon_state = "yellowcase" + +// Empty version of the case + +/obj/item/storage/toolbox/guncase/skyrat/carwo_large_case/empty + +/obj/item/storage/toolbox/guncase/skyrat/carwo_large_case/empty/PopulateContents() + return + +// Sindano in a box, how innovative! + +/obj/item/storage/toolbox/guncase/skyrat/carwo_large_case/sindano + name = "\improper Carwo 'Sindano' gunset" + + weapon_to_spawn = /obj/item/gun/ballistic/automatic/sol_smg/no_mag + extra_to_spawn = /obj/item/ammo_box/magazine/c35sol_pistol/stendo + +/obj/item/storage/toolbox/guncase/skyrat/carwo_large_case/sindano/PopulateContents() + new weapon_to_spawn (src) + + generate_items_inside(list( + /obj/item/ammo_box/c35sol/incapacitator = 1, + /obj/item/ammo_box/c35sol = 1, + /obj/item/ammo_box/magazine/c35sol_pistol/stendo/starts_empty = 1, + /obj/item/ammo_box/magazine/c35sol_pistol/starts_empty = 2, + ), src) + +/obj/item/storage/toolbox/guncase/skyrat/carwo_large_case/sindano/evil + weapon_to_spawn = /obj/item/gun/ballistic/automatic/sol_smg/evil/no_mag + +// Boxed grenade launcher, grenades sold seperately on this one + +/obj/item/storage/toolbox/guncase/skyrat/carwo_large_case/kiboko_magless + name = "\improper Carwo 'Kiboko' gunset" + + weapon_to_spawn = /obj/item/gun/ballistic/automatic/sol_grenade_launcher/no_mag + extra_to_spawn = /obj/item/ammo_box/magazine/c980_grenade/starts_empty + + +/obj/structure/closet/secure_closet/armory_kiboko + name = "heavy equipment locker" + req_access = list(ACCESS_ARMORY) + icon_state = "shotguncase" + +/obj/structure/closet/secure_closet/armory_kiboko/PopulateContents() + . = ..() + + generate_items_inside(list( + /obj/item/storage/toolbox/guncase/skyrat/carwo_large_case/kiboko_magless = 1, + /obj/item/ammo_box/c980grenade = 2, + /obj/item/ammo_box/c980grenade/smoke = 1, + /obj/item/ammo_box/c980grenade/riot = 1, + ), src) + +/obj/structure/closet/secure_closet/armory_kiboko_but_evil + name = "heavy equipment locker" + icon = 'monkestation/code/modules/blueshift/icons/obj/closet.dmi' + icon_door = "riot" + icon_state = "riot" + req_access = list(ACCESS_SYNDICATE) + anchored = 1 + +/obj/structure/closet/secure_closet/armory_kiboko_but_evil/PopulateContents() + . = ..() + + generate_items_inside(list( + /obj/item/gun/ballistic/automatic/sol_grenade_launcher/evil/no_mag = 1, + /obj/item/ammo_box/magazine/c980_grenade/drum/starts_empty = 2, + /obj/item/ammo_box/c980grenade/shrapnel = 1, + /obj/item/ammo_box/c980grenade/shrapnel/phosphor = 1, + /obj/item/ammo_box/c980grenade/smoke = 1, + /obj/item/ammo_box/c980grenade/riot = 1, + ), src) + +// Base yellow carwo case + +/obj/item/storage/toolbox/guncase/skyrat/xhihao_large_case + + icon = 'monkestation/code/modules/blueshift/icons/obj/gunsets.dmi' + icon_state = "case_xhihao" + +// Empty version of the case + +/obj/item/storage/toolbox/guncase/skyrat/xhihao_large_case/empty + +/obj/item/storage/toolbox/guncase/skyrat/xhihao_large_case/empty/PopulateContents() + return + +// Contains the Bogseo submachinegun, excellent for breaking shoulders + +/obj/item/storage/toolbox/guncase/skyrat/xhihao_large_case/bogseo + name = "\improper Xhihao 'Bogseo' gunset" + + weapon_to_spawn = /obj/item/gun/ballistic/automatic/xhihao_smg/no_mag + extra_to_spawn = /obj/item/ammo_box/magazine/c585trappiste_pistol + +/obj/item/storage/toolbox/guncase/skyrat/xhihao_large_case/bogseo/PopulateContents() + new weapon_to_spawn (src) + + generate_items_inside(list( + /obj/item/ammo_box/c585trappiste/incapacitator = 1, + /obj/item/ammo_box/c585trappiste = 1, + /obj/item/ammo_box/magazine/c585trappiste_pistol/spawns_empty = 3, + ), src) + +// Base yellow with symbol trappiste case + +/obj/item/storage/toolbox/guncase/skyrat/pistol/trappiste_small_case + desc = "A thick yellow gun case with foam inserts laid out to fit a weapon, magazines, and gear securely. The five square grid of Trappiste Fabriek is displayed prominently on the top." + + icon = 'monkestation/code/modules/blueshift/icons/obj/gunsets.dmi' + icon_state = "case_trappiste" + + lefthand_file = 'monkestation/code/modules/blueshift/icons/mob/inhands/cases_lefthand.dmi' + righthand_file = 'monkestation/code/modules/blueshift/icons/mob/inhands/cases_righthand.dmi' + inhand_icon_state = "yellowcase" + +// Empty version of the case + +/obj/item/storage/toolbox/guncase/skyrat/pistol/trappiste_small_case/empty + +/obj/item/storage/toolbox/guncase/skyrat/pistol/trappiste_small_case/empty/PopulateContents() + return + +// Gunset for the Wespe pistol + +/obj/item/storage/toolbox/guncase/skyrat/pistol/trappiste_small_case/wespe + name = "Trappiste 'Wespe' gunset" + + weapon_to_spawn = /obj/item/gun/ballistic/automatic/pistol/sol/no_mag + extra_to_spawn = /obj/item/ammo_box/magazine/c35sol_pistol + +/obj/item/storage/toolbox/guncase/skyrat/pistol/trappiste_small_case/eland + name = "Trappiste 'Eland' gunset" + + weapon_to_spawn = /obj/item/gun/ballistic/revolver/sol + extra_to_spawn = /obj/item/ammo_box/c35sol/incapacitator + +// Gunset for the Skild heavy pistol + +/obj/item/storage/toolbox/guncase/skyrat/pistol/trappiste_small_case/skild + name = "Trappiste 'Skild' gunset" + + weapon_to_spawn = /obj/item/gun/ballistic/automatic/pistol/trappiste/no_mag + extra_to_spawn = /obj/item/ammo_box/magazine/c585trappiste_pistol + +// Gunset for the Takbok Revolver + +/obj/item/storage/toolbox/guncase/skyrat/pistol/trappiste_small_case/takbok + name = "Trappiste 'Takbok' gunset" + + weapon_to_spawn = /obj/item/gun/ballistic/revolver/takbok + extra_to_spawn = /obj/item/ammo_box/c585trappiste diff --git a/monkestation/code/modules/blueshift/items/handheld_soulcatcher.dm b/monkestation/code/modules/blueshift/items/handheld_soulcatcher.dm new file mode 100644 index 000000000000..518ab620408f --- /dev/null +++ b/monkestation/code/modules/blueshift/items/handheld_soulcatcher.dm @@ -0,0 +1,158 @@ +#define RSD_ATTEMPT_COOLDOWN 2 MINUTES + +/obj/item/handheld_soulcatcher + name = "\improper Evoker-type RSD" + desc = "The Evoker-Type Resonance Simulation Device is a sort of 'Soulcatcher' instrument that's been designated for handheld usage. These RSDs were designed with the Medical field in mind, a tool meant to offer comfort to the temporarily-departed while their bodies are being repaired, healed, or produced. The Evoker is essentially a very specialized handheld NIF, still using the same nanomachinery for the software and hardware. This careful instrument is able to host a virtual space for a great number of Engrams for an essentially indefinite amount of time in an unlimited variety of simulations, even able to transfer them to and from a NIF. However, it's best Medical practice to not lollygag." + icon = 'monkestation/code/modules/blueshift/icons/obj/devices.dmi' + icon_state = "soulcatcher-device" + inhand_icon_state = "electronic" + worn_icon_state = "electronic" + lefthand_file = 'icons/mob/inhands/items/devices_lefthand.dmi' + righthand_file = 'icons/mob/inhands/items/devices_righthand.dmi' + slot_flags = ITEM_SLOT_BELT + obj_flags = UNIQUE_RENAME + /// What soulcatcher datum is associated with this item? + var/datum/component/soulcatcher/linked_soulcatcher + /// The cooldown for the RSD on scanning a body if the ghost refuses. This is here to prevent spamming. + COOLDOWN_DECLARE(rsd_scan_cooldown) + +/obj/item/handheld_soulcatcher/Initialize(mapload) + . = ..() + name += " #[rand(0, 999)]" // If it works for monkeys, it surely works for soulcatchers. + SSpoints_of_interest.make_point_of_interest(src) + +/obj/item/handheld_soulcatcher/attack_self(mob/user, modifiers) + linked_soulcatcher.ui_interact(user) + +/obj/item/handheld_soulcatcher/New(loc, ...) + . = ..() + linked_soulcatcher = AddComponent(/datum/component/soulcatcher) + linked_soulcatcher.name = name + +/obj/item/handheld_soulcatcher/Destroy(force) + if(linked_soulcatcher) + qdel(linked_soulcatcher) + + return ..() + +/obj/item/handheld_soulcatcher/attack(mob/living/target_mob, mob/living/user, params) + if(!target_mob) + return ..() + + if(target_mob.GetComponent(/datum/component/previous_body)) + linked_soulcatcher.scan_body(target_mob, user) + return TRUE + + if(!target_mob.mind) + to_chat(user, span_warning("You are unable to remove a mind from an empty body.")) + return FALSE + + if(!COOLDOWN_FINISHED(src, rsd_scan_cooldown)) + var/time_left = round((COOLDOWN_TIMELEFT(src, rsd_scan_cooldown)) / (1 MINUTES), 0.01) + to_chat(user, span_warning("You are currently unable to grab the soul of [target_mob], please wait [time_left] minutes before trying again.")) + return FALSE + + if(target_mob.stat == DEAD) //We can temporarily store souls of dead mobs. + target_mob.ghostize(TRUE) //Incase they are staying in the body. + var/mob/dead/observer/target_ghost = target_mob.get_ghost(TRUE, TRUE) + if(!target_ghost) + to_chat(user, span_warning("You are unable to get the soul of [target_mob]!")) + return FALSE + + var/datum/soulcatcher_room/target_room = tgui_input_list(user, "Choose a room to send [target_mob]'s soul to.", name, linked_soulcatcher.soulcatcher_rooms, timeout = 30 SECONDS) + if(!target_room) + return FALSE + + SEND_SOUND(target_ghost, 'sound/misc/notice2.ogg') + window_flash(target_ghost.client) + + if(tgui_alert(target_ghost, "[user] wants to transfer you to [target_room] inside of a soulcatcher, do you accept?", name, list("Yes", "No"), 30 SECONDS, autofocus = FALSE) != "Yes") + to_chat(user, span_warning("[target_mob] doesn't seem to want to enter.")) + COOLDOWN_START(src, rsd_scan_cooldown, RSD_ATTEMPT_COOLDOWN) + return FALSE + + if(!target_room.add_soul_from_ghost(target_ghost)) + return FALSE + + if(!target_mob.GetComponent(/datum/component/previous_body)) + return FALSE + + var/turf/source_turf = get_turf(user) + log_admin("[key_name(user)] used [src] to put [key_name(target_mob)]'s mind into a soulcatcher at [AREACOORD(source_turf)]") + linked_soulcatcher.scan_body(target_mob, user) + return TRUE + + var/datum/soulcatcher_room/target_room = tgui_input_list(user, "Choose a room to send [target_mob]'s soul to.", name, linked_soulcatcher.soulcatcher_rooms, timeout = 30 SECONDS) + if(!target_room) + return FALSE + + SEND_SOUND(target_mob, 'sound/misc/notice2.ogg') + window_flash(target_mob.client) + + if((tgui_alert(target_mob, "Do you wish to enter [target_room]? This will remove you from your body until you leave.", name, list("Yes", "No"), 30 SECONDS, FALSE) != "Yes") || (tgui_alert(target_mob, "Are you sure about this?", name, list("Yes", "No"), 30 SECONDS, FALSE) != "Yes")) + COOLDOWN_START(src, rsd_scan_cooldown, RSD_ATTEMPT_COOLDOWN) + to_chat(user, span_warning("[target_mob] doesn't seem to want to enter.")) + return FALSE + + if(!target_mob.mind) + return FALSE + + target_room.add_soul(target_mob.mind, TRUE) + playsound(src, 'monkestation/code/modules/blueshift/sounds/default_good.ogg', 50, FALSE, ignore_walls = FALSE) + visible_message(span_notice("[src] beeps: [target_mob]'s mind transfer is now complete.")) + + if(!target_mob.GetComponent(/datum/component/previous_body)) + return FALSE + + linked_soulcatcher.scan_body(target_mob, user) + + var/turf/source_turf = get_turf(user) + log_admin("[key_name(user)] used [src] to put [key_name(target_mob)]'s mind into a soulcatcher while they were still alive at [AREACOORD(source_turf)]") + + return TRUE + +/obj/item/handheld_soulcatcher/attack_secondary(mob/living/carbon/human/target_mob, mob/living/user, params) + if(!istype(target_mob)) + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + + var/obj/item/organ/internal/brain/target_brain = target_mob.get_organ_slot(ORGAN_SLOT_BRAIN) + if(!istype(target_brain)) + to_chat(user, span_warning("[target_mob] lacks a brain!")) + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + + if(target_mob.mind || target_mob.ckey || GetComponent(/datum/component/previous_body)) + to_chat(user, span_warning("[target_mob] is not able to receive a soul")) + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + + var/list/soul_list = list() + for(var/datum/soulcatcher_room/room as anything in linked_soulcatcher.soulcatcher_rooms) + for(var/mob/living/soulcatcher_soul/soul as anything in room.current_souls) + if(!soul.round_participant || soul.body_scan_needed) + continue + + soul_list += soul + + if(!length(soul_list)) + to_chat(user, span_warning("There are no souls that can be transferred to [target_mob].")) + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + + var/mob/living/soulcatcher_soul/chosen_soul = tgui_input_list(user, "Choose a soul to transfer into the body", name, soul_list) + if(!chosen_soul) + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + + if(chosen_soul.previous_body) + var/mob/living/old_body = chosen_soul.previous_body.resolve() + if(!old_body) + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + + SEND_SIGNAL(old_body, COMSIG_SOULCATCHER_CHECK_SOUL, FALSE) + + chosen_soul.mind.transfer_to(target_mob, TRUE) + playsound(src, 'monkestation/code/modules/blueshift/sounds/default_good.ogg', 50, FALSE, ignore_walls = FALSE) + visible_message(span_notice("[src] beeps: Body transfer complete.")) + log_admin("[src] was used by [user] to transfer [chosen_soul]'s soulcatcher soul to [target_mob].") + + qdel(chosen_soul) + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + +#undef RSD_ATTEMPT_COOLDOWN diff --git a/monkestation/code/modules/blueshift/items/implants.dm b/monkestation/code/modules/blueshift/items/implants.dm new file mode 100644 index 000000000000..aa912b8bc24a --- /dev/null +++ b/monkestation/code/modules/blueshift/items/implants.dm @@ -0,0 +1,60 @@ +/obj/item/autosurgeon/toolset + starting_organ = /obj/item/organ/internal/cyberimp/arm/item_set/toolset + +/obj/item/autosurgeon/surgery + starting_organ = /obj/item/organ/internal/cyberimp/arm/item_set/surgery + +/obj/item/autosurgeon/botany + starting_organ = /obj/item/organ/internal/cyberimp/arm/item_set/botany + +/obj/item/autosurgeon/janitor + starting_organ = /obj/item/organ/internal/cyberimp/arm/item_set/janitor + +/obj/item/autosurgeon/muscle + starting_organ = /obj/item/organ/internal/cyberimp/arm/muscle + +//syndie + +/obj/item/autosurgeon/syndicate/esword_arm + starting_organ = /obj/item/organ/internal/cyberimp/arm/item_set/esword + +/obj/item/autosurgeon/syndicate/nodrop + starting_organ = /obj/item/organ/internal/cyberimp/brain/anti_drop + +/obj/item/autosurgeon/syndicate/baton + starting_organ = /obj/item/organ/internal/cyberimp/arm/item_set/baton + +/obj/item/autosurgeon/syndicate/flash + starting_organ = /obj/item/organ/internal/cyberimp/arm/item_set/flash + +//xeno-organs +/obj/item/autosurgeon/xeno + name = "strange autosurgeon" + icon = 'monkestation/code/modules/blueshift/icons/alien.dmi' + surgery_speed = 2 + organ_whitelist = list(/obj/item/organ/internal/alien) + +/obj/item/organ/internal/alien/plasmavessel/opfor + stored_plasma = 500 + max_plasma = 500 + plasma_rate = 10 + +/obj/item/storage/organbox/strange + name = "strange organ transport box" + icon = 'monkestation/code/modules/blueshift/icons/alien.dmi' + +/obj/item/storage/organbox/strange/Initialize(mapload) + . = ..() + reagents.add_reagent_list(list(/datum/reagent/cryostylane = 60)) + +/obj/item/storage/organbox/strange/PopulateContents() + new /obj/item/autosurgeon/xeno(src) + new /obj/item/organ/internal/alien/plasmavessel/opfor(src) + new /obj/item/organ/internal/alien/resinspinner(src) + new /obj/item/organ/internal/alien/acid(src) + new /obj/item/organ/internal/alien/neurotoxin(src) + new /obj/item/organ/internal/alien/hivenode(src) + +/obj/item/storage/organbox/strange/eggsac/PopulateContents() + . = ..() + new /obj/item/organ/internal/alien/eggsac(src) diff --git a/monkestation/code/modules/blueshift/items/knives.dm b/monkestation/code/modules/blueshift/items/knives.dm new file mode 100644 index 000000000000..9ba4837ef8b9 --- /dev/null +++ b/monkestation/code/modules/blueshift/items/knives.dm @@ -0,0 +1,55 @@ +//--- BOWIE'S KNIFE (bowie knife)--- + + +/obj/item/knife/bowie + name = "\improper Bowie knife" + desc = "A frontiersman's classic, closer to a shortsword than a knife. It boasts a full-tanged build, a brass handguard and pommel, a wicked sharp point, and a large, heavy blade, It's almost everything you could want in a knife, besides portability." + icon = 'monkestation/code/modules/blueshift/icons/bowie.dmi' + icon_state = "bowiehand" + inhand_icon_state = "bowiehand" + lefthand_file = 'monkestation/code/modules/blueshift/icons/bowie_lefthand.dmi' + righthand_file = 'monkestation/code/modules/blueshift/icons/bowie_righthand.dmi' + worn_icon_state = "knife" + force = 20 // Zoowee Momma! + w_class = WEIGHT_CLASS_NORMAL + throwforce = 15 + wound_bonus = 10 //scalpel tier + bare_wound_bonus = 20 // Very-bigly + +/obj/item/storage/belt/bowie_sheath + name = "\improper Bowie knife sheath" + desc = "A dressed-up leather sheath featuring a brass tip. It has a large pocket clip right in the center, for ease of carrying an otherwise burdensome knife." + icon = 'monkestation/code/modules/blueshift/icons/bowiepocket.dmi' + icon_state = "bowiesheath" + slot_flags = ITEM_SLOT_POCKETS + w_class = WEIGHT_CLASS_BULKY + resistance_flags = FLAMMABLE + +/obj/item/storage/belt/bowie_sheath/Initialize(mapload) + . = ..() + atom_storage.max_slots = 1 + atom_storage.max_total_storage = WEIGHT_CLASS_BULKY + atom_storage.set_holdable(list( + /obj/item/knife/bowie, + )) + +/obj/item/storage/belt/bowie_sheath/AltClick(mob/user) + if(length(contents)) + var/obj/item/knife = contents[1] + user.visible_message(span_notice("[user] takes [knife] out of [src]."), span_notice("You take [knife] out of [src].")) + user.put_in_hands(knife) + update_appearance() + return TRUE + else + to_chat(user, span_warning("[src] is empty!")) + return FALSE + +/obj/item/storage/belt/bowie_sheath/update_icon_state() + icon_state = initial(icon_state) + if(contents.len) + icon_state += "e-knife" + return ..() + +/obj/item/storage/belt/bowie_sheath/PopulateContents() + new /obj/item/knife/bowie(src) + update_appearance() diff --git a/monkestation/code/modules/blueshift/items/magazines.dm b/monkestation/code/modules/blueshift/items/magazines.dm new file mode 100644 index 000000000000..c1b4f6b5b15b --- /dev/null +++ b/monkestation/code/modules/blueshift/items/magazines.dm @@ -0,0 +1,207 @@ +// .35 Sol pistol magazines + +/obj/item/ammo_box/magazine/c35sol_pistol + name = "\improper Sol pistol magazine" + desc = "A standard size magazine for SolFed pistols, holds twelve rounds." + + icon = 'monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/carwo_defense_systems/ammo.dmi' + icon_state = "pistol_35_standard" + + multiple_sprites = AMMO_BOX_FULL_EMPTY + + w_class = WEIGHT_CLASS_TINY + + ammo_type = /obj/item/ammo_casing/c35sol + caliber = CALIBER_SOL35SHORT + max_ammo = 12 + +/obj/item/ammo_box/magazine/c35sol_pistol/starts_empty + start_empty = TRUE + +/obj/item/ammo_box/magazine/c35sol_pistol/stendo + name = "\improper Sol extended pistol magazine" + desc = "An extended magazine for SolFed pistols, holds twenty-four rounds." + + icon_state = "pistol_35_stended" + + w_class = WEIGHT_CLASS_NORMAL + + max_ammo = 24 + +/obj/item/ammo_box/magazine/c35sol_pistol/stendo/starts_empty + start_empty = TRUE + +// .40 Sol rifle magazines + +/obj/item/ammo_box/magazine/c40sol_rifle + name = "\improper Sol rifle short magazine" + desc = "A shortened magazine for SolFed rifles, holds fifteen rounds." + + icon = 'monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/carwo_defense_systems/ammo.dmi' + icon_state = "rifle_short" + + multiple_sprites = AMMO_BOX_FULL_EMPTY + + w_class = WEIGHT_CLASS_TINY + + ammo_type = /obj/item/ammo_casing/c40sol + caliber = CALIBER_SOL40LONG + max_ammo = 15 + +/obj/item/ammo_box/magazine/c40sol_rifle/starts_empty + + start_empty = TRUE + +/obj/item/ammo_box/magazine/c40sol_rifle/standard + name = "\improper Sol rifle magazine" + desc = "A standard size magazine for SolFed rifles, holds thirty rounds." + + icon_state = "rifle_standard" + + w_class = WEIGHT_CLASS_SMALL + + max_ammo = 30 + +/obj/item/ammo_box/magazine/c40sol_rifle/standard/starts_empty + start_empty = TRUE + + +/obj/item/ammo_box/magazine/c40sol_rifle/drum + name = "\improper Sol rifle drum magazine" + desc = "A massive drum magazine for SolFed rifles, holds sixty rounds." + + icon_state = "rifle_drum" + + w_class = WEIGHT_CLASS_BULKY + + max_ammo = 60 + +/obj/item/ammo_box/magazine/c40sol_rifle/drum/starts_empty + start_empty = TRUE + +// .980 grenade magazines + +/obj/item/ammo_box/magazine/c980_grenade + name = "\improper Kiboko grenade box" + desc = "A standard size box for .980 grenades, holds four shells." + + icon = 'monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/carwo_defense_systems/ammo.dmi' + icon_state = "granata_standard" + + multiple_sprites = AMMO_BOX_FULL_EMPTY + + w_class = WEIGHT_CLASS_SMALL + + ammo_type = /obj/item/ammo_casing/c980grenade + caliber = CALIBER_980TYDHOUER + max_ammo = 4 + +/obj/item/ammo_box/magazine/c980_grenade/starts_empty + start_empty = TRUE + +/obj/item/ammo_box/magazine/c980_grenade/drum + name = "\improper Kiboko grenade drum" + desc = "A drum for .980 grenades, holds six shells." + + icon_state = "granata_drum" + + w_class = WEIGHT_CLASS_NORMAL + + max_ammo = 6 + +/obj/item/ammo_box/magazine/c980_grenade/drum/starts_empty + start_empty = TRUE + +// .585 pistol magazines + +/obj/item/ammo_box/magazine/c585trappiste_pistol + name = "\improper Trappiste pistol magazine" + desc = "A standard size magazine for Trappiste pistols, holds six rounds." + + icon = 'monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/trappiste_fabriek/ammo.dmi' + icon_state = "pistol_585_standard" + + multiple_sprites = AMMO_BOX_FULL_EMPTY + + w_class = WEIGHT_CLASS_SMALL + + ammo_type = /obj/item/ammo_casing/c585trappiste + caliber = CALIBER_585TRAPPISTE + max_ammo = 6 + +/obj/item/ammo_box/magazine/c585trappiste_pistol/spawns_empty + start_empty = TRUE + +// .310 magazine for the Lanca rifle + +/obj/item/ammo_box/magazine/lanca + name = "\improper Lanca rifle magazine" + desc = "A standard size magazine for Lanca rifles, holds five rounds." + + icon = 'monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/szot_dynamica/ammo.dmi' + icon_state = "lanca_mag" + + multiple_sprites = AMMO_BOX_FULL_EMPTY + + ammo_type = /obj/item/ammo_casing/strilka310 + caliber = CALIBER_STRILKA310 + max_ammo = 5 + +/obj/item/ammo_box/magazine/lanca/spawns_empty + start_empty = TRUE + +// Magazine for the Miecz submachinegun + +/obj/item/ammo_box/magazine/miecz + name = "\improper Miecz submachinegun magazine" + desc = "A standard size magazine for Miecz submachineguns, holds eighteen rounds." + + icon = 'monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/szot_dynamica/ammo.dmi' + icon_state = "miecz_mag" + + multiple_sprites = AMMO_BOX_FULL_EMPTY + + ammo_type = /obj/item/ammo_casing/c27_54cesarzowa + caliber = CALIBER_CESARZOWA + max_ammo = 18 + +/obj/item/ammo_box/magazine/miecz/spawns_empty + start_empty = TRUE + +// Plasma thrower 'magazine' + +/obj/item/ammo_box/magazine/recharge/plasma_battery + name = "plasma power pack" + desc = "A rechargeable, detachable battery that serves as a power source for plasma projectors." + icon = 'monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/szot_dynamica/ammo.dmi' + base_icon_state = "plasma_battery" + icon_state = "plasma_battery" + multiple_sprites = AMMO_BOX_FULL_EMPTY + ammo_type = /obj/item/ammo_casing/energy/laser/plasma_glob + caliber = CALIBER_LASER + max_ammo = 15 + +/obj/item/ammo_box/magazine/recharge/plasma_battery/update_icon_state() // FUCK YOU /OBJ/ITEM/AMMO_BOX/MAGAZINE/RECHARGE + . = ..() + icon_state = base_icon_state + +// Shotgun revolver's cylinder + +/obj/item/ammo_box/magazine/internal/cylinder/rev12ga + name = "\improper 12 GA revolver cylinder" + ammo_type = /obj/item/ammo_casing/shotgun + caliber = CALIBER_SHOTGUN + max_ammo = 4 + multiload = FALSE + +// AMR magazine + +/obj/item/ammo_box/magazine/wylom + name = "anti-materiel magazine (.60 Strela)" + icon = 'monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/szot_dynamica/ammo.dmi' + icon_state = "wylom_mag" + base_icon_state = "wylom_mag" + multiple_sprites = AMMO_BOX_FULL_EMPTY + ammo_type = /obj/item/ammo_casing/p60strela + max_ammo = 3 + caliber = CALIBER_60STRELA diff --git a/monkestation/code/modules/blueshift/items/melee.dm b/monkestation/code/modules/blueshift/items/melee.dm new file mode 100644 index 000000000000..4b0660360d14 --- /dev/null +++ b/monkestation/code/modules/blueshift/items/melee.dm @@ -0,0 +1,30 @@ +// Sabres, including the cargo variety + +/obj/item/storage/belt/sabre/cargo + name = "authentic shamshir leather sheath" + desc = "A good-looking sheath that is advertised as being made of real Venusian black leather. It feels rather plastic-like to the touch, and it looks like it's made to fit a British cavalry sabre." + icon = 'monkestation/code/modules/blueshift/icons/obj/clothing/belts.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/mob/clothing/belt.dmi' + +/obj/item/storage/belt/sabre/cargo/PopulateContents() + new /obj/item/melee/sabre/cargo(src) + update_appearance() + +/obj/item/melee/sabre + force = 20 // Original: 15 + wound_bonus = 5 // Original: 10 + bare_wound_bonus = 20 // Original: 25 Both down slightly, to make up for the damage buff, since it'd get a bit wacky ontop of the armor pen. + +/obj/item/melee/sabre/cargo + name = "authentic shamshir sabre" + desc = "An expertly crafted historical human sword once used by the Persians which has recently gained traction due to Venusian historal recreation sports. One small flaw, the Taj-based company who produces these has mistaken them for British cavalry sabres akin to those used by high ranking Nanotrasen officials. Atleast it cuts the same way!" + icon = 'monkestation/code/modules/blueshift/icons/obj/melee.dmi' + //lefthand_file = 'monkestation/code/modules/blueshift/icons/mob/inhands/weapons/swords_lefthand.dmi' + //righthand_file = 'monkestation/code/modules/blueshift/icons/mob/inhands/weapons/swords_righthand.dmi' + block_chance = 20 + armour_penetration = 25 + + +// This is here so that people can't buy the Sabres and craft them into powercrepes +/datum/crafting_recipe/food/powercrepe + blacklist = list(/obj/item/melee/sabre/cargo) diff --git a/monkestation/code/modules/blueshift/items/nif.dm b/monkestation/code/modules/blueshift/items/nif.dm new file mode 100644 index 000000000000..b97df94f514f --- /dev/null +++ b/monkestation/code/modules/blueshift/items/nif.dm @@ -0,0 +1,529 @@ +#define NIF_CALIBRATION_STAGE_1 0 +#define NIF_CALIBRATION_STAGE_1_END 0.1 +#define NIF_CALIBRATION_STAGE_2 0.2 +#define NIF_CALIBRATION_STAGE_2_END 0.9 +#define NIF_CALIBRATION_STAGE_FINISHED 1 + +#define NIF_DURABILITY_LOSS_HALVED 2 +#define NIF_MINIMUM_DURABILITY 0 +#define NIF_MINIMUM_POWER_LEVEL 0 + +#define NIF_SETUP_BLINDNESS "nif_setup" +#define MAX_NIF_REWARDS_POINTS 2000 + +// This is the original NIF that other NIFs are based on. +/obj/item/organ/internal/cyberimp/brain/nif + name = "Nanite Implant Framework" + desc = "A brain implant that infuses the user with nanites." + icon = 'monkestation/code/modules/blueshift/icons/obj/nifs.dmi' + icon_state = "base_nif" + w_class = WEIGHT_CLASS_NORMAL + slot = ORGAN_SLOT_BRAIN_NIF + actions_types = list(/datum/action/item_action/nif/open_menu) + encode_info = AUGMENT_NO_REQ + + //User Variables + ///What user is currently linked with the NIF? + var/mob/living/carbon/human/linked_mob = null + ///What CKEY does the original user have? Used to prevent theft + var/stored_ckey + + //Calibration variables + ///Is the NIF properly calibrated yet? + var/is_calibrated = FALSE + ///Is the NIF currently being calibrated? + var/calibrating = FALSE + ///How long does each step in the calibration process take in total? + var/calibration_time = 3 MINUTES + ///How far through the calibration process is the NIF? Do not touch this outside of perform_calibration(), if you can at all help it. + var/calibration_duration + ///Determines the likelyhood of a side effect occuring each process cycle: 1 / side_effect_risk + var/side_effect_risk = 50 + + //Power Variables + ///What is the maximum power level of the NIF? + var/max_power_level = 1000 + ///How much power is currently inside of the NIF? + var/power_level = 0 + ///How much power is the NIF currently using? Negative usage will result in power being gained. + var/power_usage = 0 + + //Nutrition variables + ///Is power being drawn from nutrition? + var/nutrition_drain = FALSE + ///How fast is nutrition drained from the host? + var/nutrition_drain_rate = 1.5 + ///What is the rate of nutrition to power? + var/nutrition_conversion_rate = 5 + ///What is the minimum nutrition someone has to be at for the NIF to convert power? + var/minimum_nutrition = 25 + + //Blood variables + ///Is power being drawn through blood + var/blood_drain = FALSE + ///The rate of blood to energy + var/blood_conversion_rate = 5 //From full blood, this would get someone to 500 charge + ///How fast is blood being drained? + var/blood_drain_rate = 1 + ///When is blood draining disabled? + var/minimum_blood_level = BLOOD_VOLUME_SAFE + + //Durability and persistence variables + ///What is the maximum durability of the NIF? + var/max_durability = 100 + ///What level of durability is the NIF at? + var/durability = 100 + //How much durability is lost upon dying, if any. + var/death_durability_loss = 10 + ///Does the NIF stay between rounds? By default, they do. + var/nif_persistence = TRUE + ///Is the NIF completely broken? If this is true, the user won't be able to pull up the TGUI menu at all. + var/broken = FALSE + ///Does the NIF have theft protection? This should only be disabled if admins need to fix something. + var/theft_protection = TRUE + ///Is the NIF able to take damage? + var/durability_loss_vulnerable = TRUE + /// How many rewards points does the NIF currently have? + var/rewards_points = 0 + + //Software Variables + ///How many programs can the NIF store at once? + var/max_nifsofts = 5 + ///What programs are currently loaded onto the NIF? + var/list/loaded_nifsofts = list() + ///What programs come already installed on the NIF? + var/list/preinstalled_nifsofts = list(/datum/nifsoft/soul_poem) + ///What programs do we want to carry between rounds? + var/list/persistent_nifsofts = list() + ///This shows up in the NIF settings screen as a way to ICly display lore. + var/manufacturer_notes = "There is no data currently avalible for this product." + + //Appearance Variables + ///This is the sound that plays when doing most things! + var/good_sound ='monkestation/code/modules/blueshift/sounds/default_good.ogg' + ///This is the sound that plays if there is an issue going on. + var/bad_sound = 'monkestation/code/modules/blueshift/sounds/default_bad.ogg' + ///This is the sound that you would hear if you enable if you activate or enable something. + var/click_sound = 'monkestation/code/modules/blueshift/sounds/default_click.ogg' + ///What icon does the NIF display in chat when sending out alerts? Icon states are stored in 'monkestation/code/modules/blueshift/icons/chat.dmi' + var/chat_icon = "standard" + +/obj/item/organ/internal/cyberimp/brain/nif/Initialize(mapload) + . = ..() + + durability = max_durability + power_level = max_power_level + +/obj/item/organ/internal/cyberimp/brain/nif/Destroy() + if(linked_mob) + UnregisterSignal(linked_mob, COMSIG_LIVING_DEATH, PROC_REF(damage_on_death)) + + var/found_component = linked_mob.GetComponent(/datum/component/nif_examine) + if(found_component) + qdel(found_component) + + linked_mob = null + + QDEL_LIST(loaded_nifsofts) + return ..() + +/obj/item/organ/internal/cyberimp/brain/nif/Insert(mob/living/carbon/human/insertee, special = FALSE, drop_if_replaced = FALSE) + . = ..() + + if(linked_mob && stored_ckey != insertee.ckey && theft_protection) + insertee.audible_message(span_warning("[src] lets out a negative buzz before forcefully removing itself from [insertee]'s brain.")) + playsound(insertee, 'sound/machines/buzz-sigh.ogg', 30, TRUE) + Remove(insertee) + forceMove(get_turf(insertee)) + + return FALSE + + linked_mob = insertee + stored_ckey = linked_mob.ckey + + START_PROCESSING(SSobj, src) + + if(!is_calibrated) + send_message("The calibration process is starting.") + calibrating = TRUE + + linked_mob.AddComponent(/datum/component/nif_examine) + RegisterSignal(linked_mob, COMSIG_LIVING_DEATH, PROC_REF(damage_on_death)) + + if(preinstalled_nifsofts || persistent_nifsofts) + send_message("Loading preinstalled and stored NIFSofts, please wait...") + addtimer(CALLBACK(src, PROC_REF(install_preinstalled_nifsofts)), 3 SECONDS) + +/obj/item/organ/internal/cyberimp/brain/nif/Remove(mob/living/carbon/organ_owner, special = FALSE) + . = ..() + + organ_owner.log_message("'s [src] was removed from [organ_owner]", LOG_GAME) + STOP_PROCESSING(SSobj, src) + + var/found_component = organ_owner.GetComponent(/datum/component/nif_examine) + if(found_component) + qdel(found_component) + + if(linked_mob) + UnregisterSignal(linked_mob, COMSIG_LIVING_DEATH, PROC_REF(damage_on_death)) + + QDEL_LIST(loaded_nifsofts) + +///Installs preinstalled NIFSofts +/obj/item/organ/internal/cyberimp/brain/nif/proc/install_preinstalled_nifsofts() + if(!preinstalled_nifsofts) + return FALSE + + for(var/datum/nifsoft/preinstalled_nifsoft as anything in preinstalled_nifsofts) + new preinstalled_nifsoft(src) + + for(var/stored_nifsoft in persistent_nifsofts) + var/datum/nifsoft/new_stored_nifsoft = new stored_nifsoft(src) + new_stored_nifsoft.keep_installed = TRUE + + return TRUE + +/obj/item/organ/internal/cyberimp/brain/nif/process(seconds_per_tick) + . = ..() + + if(!linked_mob || broken || HAS_TRAIT(linked_mob, TRAIT_STASIS)) + return FALSE + + if(calibrating) + perform_calibration() + return + + if(nutrition_drain && linked_mob.nutrition < minimum_nutrition) //Turns nutrition drain off if nutrition is lower than minimum + toggle_nutrition_drain(TRUE) + + if(blood_drain && !blood_check()) //Disables blood draining if the mob fails the blood check + toggle_blood_drain(TRUE) + + if(blood_drain) + linked_mob.blood_volume -= blood_drain_rate + + if(power_usage > power_level) + for(var/datum/nifsoft/nifsoft as anything in loaded_nifsofts) + if(!nifsoft.active) + continue + + nifsoft.activate() + + change_power_level(power_usage) + +///Modifies power based off power_to_change. Negative numbers add charge, positive numbers remove charge +/obj/item/organ/internal/cyberimp/brain/nif/proc/change_power_level(power_to_change) + if(!power_to_change) + return TRUE + + if((!power_level && (power_to_change > 0)) || ((power_to_change < 0) && (power_level >= max_power_level))) + return FALSE + + if(power_to_change > 0) + power_level = max((power_level - power_to_change), NIF_MINIMUM_POWER_LEVEL) + return TRUE + + power_level = min((power_level - power_to_change), max_power_level) + return TRUE + +///Toggles nutrition drain as a power source on NIFs on/off. Bypass - Ignores the need to perform the nutirition_check() proc. +/obj/item/organ/internal/cyberimp/brain/nif/proc/toggle_nutrition_drain(bypass = FALSE) + if(!bypass && !nutrition_check()) + return FALSE + + var/hunger_modifier = linked_mob.physiology.hunger_mod + + if(nutrition_drain) + hunger_modifier = nutrition_drain_rate + power_usage += (nutrition_drain_rate * nutrition_conversion_rate) + nutrition_drain = FALSE + return TRUE + + hunger_modifier *= nutrition_drain_rate + power_usage -= (nutrition_drain_rate * nutrition_conversion_rate) + nutrition_drain = TRUE + return TRUE + +/// Checks to see if the mob has a nutrition that can be drain from +/obj/item/organ/internal/cyberimp/brain/nif/proc/nutrition_check() //This is a seperate proc so that TGUI can perform this check on the menu + if(!linked_mob || !linked_mob.nutrition) + return FALSE + + if(HAS_TRAIT(linked_mob, TRAIT_NOHUNGER)) //Hemophages HATE this one simple check. + return FALSE + + return linked_mob.nutrition >= minimum_nutrition + +///Toggles Blood Drain. Bypasss - Ignores the need to perform the blood_check proc. +/obj/item/organ/internal/cyberimp/brain/nif/proc/toggle_blood_drain(bypass = FALSE) + if(!bypass && !blood_check()) + return + + blood_drain = !blood_drain + + if(!blood_drain) + power_usage += (blood_drain_rate * blood_conversion_rate) + + balloon_alert(linked_mob, "Blood draining disabled") + return + + power_usage -= (blood_drain_rate * blood_conversion_rate) + balloon_alert(linked_mob, "Blood draining enabled") + +///Checks if the NIF is able to draw blood as a power source? +/obj/item/organ/internal/cyberimp/brain/nif/proc/blood_check() + if(!linked_mob || !linked_mob.blood_volume || (linked_mob.blood_volume <= minimum_blood_level)) + return FALSE + + return TRUE + +///Calibrates the Parent NIF, this is ran every time the parent NIF is first installed inside of someone. +/obj/item/organ/internal/cyberimp/brain/nif/proc/perform_calibration() + if(linked_mob.stat >= DEAD) + return FALSE + + if(!calibration_duration) + calibration_duration = world.time + calibration_time + + var/percentage_done = (world.time - (calibration_duration - (calibration_time))) / calibration_time + switch(percentage_done) + if(NIF_CALIBRATION_STAGE_1 to NIF_CALIBRATION_STAGE_1_END) + linked_mob.become_blind(NIF_SETUP_BLINDNESS) + + if(NIF_CALIBRATION_STAGE_2 to NIF_CALIBRATION_STAGE_2_END) + linked_mob.cure_blind(NIF_SETUP_BLINDNESS) + var/random_ailment = rand(1, side_effect_risk) + switch(random_ailment) + if(1) + to_chat(linked_mob, span_warning("You feel sick to your stomach!")) + linked_mob.adjust_disgust(25) + if(2) + to_chat(linked_mob, span_warning("You feel a wave of fatigue roll over you!")) + linked_mob.stamina?.adjust(-50) + + if(NIF_CALIBRATION_STAGE_FINISHED to INFINITY) + send_message("The calibration process is complete.") + + calibrating = FALSE + is_calibrated = TRUE + + if(!linked_mob.save_individual_persistence()) + stack_trace("persistence was not saved for [linked_mob]!") + +///Installs the loaded_nifsoft to the parent NIF. +/obj/item/organ/internal/cyberimp/brain/nif/proc/install_nifsoft(datum/nifsoft/loaded_nifsoft) + if(broken || calibrating) //NIFSofts can't be installed to a broken NIF + return FALSE + + if(length(loaded_nifsofts) >= max_nifsofts) + send_message("You cannot install any additional NIFSofts, please uninstall one to make room!", alert = TRUE) + return FALSE + + if(!is_type_in_list(src, loaded_nifsoft.compatible_nifs)) + send_message("[loaded_nifsoft] is incompatible with your NIF!", TRUE) + return FALSE + + for(var/datum/nifsoft/current_nifsoft as anything in loaded_nifsofts) + if(loaded_nifsoft.single_install && (loaded_nifsoft.type == current_nifsoft.type)) + send_message("Multiple of [loaded_nifsoft] cannot be installed.", TRUE) + return FALSE + + if(is_type_in_list(current_nifsoft, loaded_nifsoft.mutually_exclusive_programs)) + send_message("[current_nifsoft] is preventing [loaded_nifsoft] from being installed.", TRUE) + return FALSE + + loaded_nifsofts += loaded_nifsoft + loaded_nifsoft.parent_nif = WEAKREF(src) + loaded_nifsoft.linked_mob = linked_mob + rewards_points += (loaded_nifsoft.rewards_points_rate * loaded_nifsoft.purchase_price) + + rewards_points = min(rewards_points, MAX_NIF_REWARDS_POINTS) + + send_message("[loaded_nifsoft] has been added.") + update_static_data_for_all_viewers() + return TRUE + +///Removes a NIFSoft from a NIF. Silent - determines whether or not alerts will be given to the owner of the NIF +/obj/item/organ/internal/cyberimp/brain/nif/proc/remove_nifsoft(datum/nifsoft/removed_nifsoft, silent = FALSE) + if(!is_type_in_list(removed_nifsoft, loaded_nifsofts) || broken) + return FALSE + + if(!silent) + send_message("[removed_nifsoft.name] has been removed", alert = TRUE) + + qdel(removed_nifsoft) + update_static_data_for_all_viewers() + + return TRUE + +///Adjusts the NIF based on the adjustment_amount. Positive values repair, negative values damage +/obj/item/organ/internal/cyberimp/brain/nif/proc/adjust_durability(adjustment_amount) + if(!adjustment_amount || ((adjustment_amount > 0) && (durability >= max_durability) || ((adjustment_amount < 0) && (durability <= NIF_MINIMUM_DURABILITY)))) + return FALSE + + if(adjustment_amount < 0) + durability = max((durability + adjustment_amount), NIF_MINIMUM_DURABILITY) + return TRUE + + durability = min((durability + adjustment_amount), max_durability) + return TRUE + +///Sends a message to the owner of the NIF. Typically used for messages from the NIF itself or from NIFSofts. +/obj/item/organ/internal/cyberimp/brain/nif/proc/send_message(message_to_send, alert = FALSE) + var/datum/asset/spritesheet/sheet = get_asset_datum(/datum/asset/spritesheet/chat) + var/tag = sheet.icon_tag("nif-[chat_icon]") + var/nif_icon = "" + + if(tag) + nif_icon = tag + + if(alert) + to_chat(linked_mob, span_warning("[nif_icon] NIF Alert: [message_to_send]")) + linked_mob.playsound_local(linked_mob, bad_sound, 60, FALSE) + return + + to_chat(linked_mob, span_cyan("[nif_icon] NIF Message: [message_to_send]")) + linked_mob.playsound_local(linked_mob, good_sound, 60, FALSE) + + +///Changes the broken variable to be false. This does not relate to durability. +/obj/item/organ/internal/cyberimp/brain/nif/proc/fix_nif() + if(!broken) + return FALSE + + broken = FALSE + send_message("Your NIF is now in working condition!") + return TRUE + +///Re-enables the durability_loss_vulnerable variable, allowing the parent NIF to take durability damage again. +/obj/item/organ/internal/cyberimp/brain/nif/proc/make_vulnerable() + durability_loss_vulnerable = TRUE + +//This is here so that a TGUI can't be opened by using the implant while it isn't implanted. +/obj/item/organ/internal/cyberimp/brain/nif/attack_self(mob/user, modifiers) + return FALSE + +/obj/item/organ/internal/cyberimp/brain/nif/emp_act(severity) + . = ..() + if(!owner || . & EMP_PROTECT_SELF) + return + var/added_stun_duration = 200/severity // the previous stun duration added by the parent call + owner.AdjustStun(-added_stun_duration) // we want to negate that stun here + to_chat(owner, span_warning("You feel a stinging pain in your head!")) + if(!durability_loss_vulnerable) + return FALSE + + durability_loss_vulnerable = FALSE + + if(!broken) + broken = TRUE + addtimer(CALLBACK(src, PROC_REF(fix_nif)), 30 SECONDS) + + addtimer(CALLBACK(src, PROC_REF(make_vulnerable)), 3 MINUTES) + + switch(severity) + if(1) + adjust_durability(-death_durability_loss) + if(2) + adjust_durability(-death_durability_loss / NIF_DURABILITY_LOSS_HALVED) + + for(var/datum/nifsoft/installed_nifsoft as anything in loaded_nifsofts) + installed_nifsoft.on_emp(severity) + + send_message("ELECTROMAGNETIC INTERFERENCE DETECTED.", TRUE) + +///Applies damage to the parent NIF whenever the user dies. +/obj/item/organ/internal/cyberimp/brain/nif/proc/damage_on_death() + SIGNAL_HANDLER + + if(!durability_loss_vulnerable) + return FALSE + + adjust_durability(-death_durability_loss) + durability_loss_vulnerable = FALSE + + addtimer(CALLBACK(src, PROC_REF(make_vulnerable)), 20 MINUTES) //Players should have a decent grace period on this. + +/// Removes rewards points from the parent NIF. Returns FALSE if there are not enough points to remove, returns TRUE if the points have been succesfully removed. +/obj/item/organ/internal/cyberimp/brain/nif/proc/remove_rewards_points(points_to_remove) + if(points_to_remove > rewards_points) + return FALSE + + rewards_points -= points_to_remove + return TRUE + +/datum/component/nif_examine + ///What text is shown when examining someone with NIF Examine text? + var/nif_examine_text = "There's a certain spark to their eyes." + +/datum/component/nif_examine/New() + . = ..() + if(!ishuman(parent)) + return COMPONENT_INCOMPATIBLE + + RegisterSignal(parent, COMSIG_ATOM_EXAMINE, PROC_REF(add_examine)) + +/datum/component/nif_examine/Destroy(force) + UnregisterSignal(parent, COMSIG_MOB_EXAMINATE) + return ..() + +///Adds and examine based on the nif_examine_text of the nif_user +/datum/component/nif_examine/proc/add_examine(mob/nif_user, mob/looker, list/examine_texts) + SIGNAL_HANDLER + + examine_texts += span_purple("[EXAMINE_SECTION_BREAK][EXAMINE_HINT(nif_examine_text)]") + +///Checks to see if a human with a NIF has the nifsoft_to_find type of NIFSoft installed? +/mob/living/carbon/human/proc/find_nifsoft(datum/nifsoft/nifsoft_to_find) + var/obj/item/organ/internal/cyberimp/brain/nif/installed_nif = get_organ_by_type(/obj/item/organ/internal/cyberimp/brain/nif) + var/list/nifsoft_list = installed_nif?.loaded_nifsofts + + if(!nifsoft_list) + return FALSE + + var/datum/nifsoft/located_nifsoft = locate(nifsoft_to_find) in nifsoft_list + if(located_nifsoft) + return located_nifsoft + + return FALSE + +/datum/asset/spritesheet/chat/create_spritesheets() + . = ..() + + InsertAll("nif", 'monkestation/code/modules/blueshift/icons/chat.dmi') + +/obj/item/autosurgeon/organ/nif + starting_organ = /obj/item/organ/internal/cyberimp/brain/nif/standard + uses = 1 + +/obj/item/organ/internal/cyberimp/brain/nif/debug + is_calibrated = TRUE + +/obj/item/autosurgeon/organ/nif/debug + starting_organ = /obj/item/organ/internal/cyberimp/brain/nif/debug + uses = 1 + +/obj/item/storage/box/nif_ghost_box + name = "\improper NIF Starter Kit" + desc = "Contains a calibration-free NIF along with a variety of NIFSofts." + illustration = "disk_kit" + +/obj/item/storage/box/nif_ghost_box/PopulateContents() + new /obj/item/autosurgeon/organ/nif/ghost_role(src) + new /obj/item/disk/nifsoft_uploader/soulcatcher(src) + new /obj/item/disk/nifsoft_uploader/money_sense(src) + +/obj/item/storage/box/nif_ghost_box/ghost_role/PopulateContents() + . = ..() + new /obj/item/disk/nifsoft_uploader/hivemind(src) + +#undef NIF_CALIBRATION_STAGE_1 +#undef NIF_CALIBRATION_STAGE_1_END +#undef NIF_CALIBRATION_STAGE_2 +#undef NIF_CALIBRATION_STAGE_2_END +#undef NIF_CALIBRATION_STAGE_FINISHED +#undef NIF_DURABILITY_LOSS_HALVED +#undef NIF_MINIMUM_DURABILITY +#undef NIF_MINIMUM_POWER_LEVEL +#undef NIF_SETUP_BLINDNESS +#undef MAX_NIF_REWARDS_POINTS diff --git a/monkestation/code/modules/blueshift/items/nif_hud.dm b/monkestation/code/modules/blueshift/items/nif_hud.dm new file mode 100644 index 000000000000..d34131f9a748 --- /dev/null +++ b/monkestation/code/modules/blueshift/items/nif_hud.dm @@ -0,0 +1,171 @@ +/datum/nifsoft/hud + name = "Scrying Lens" + program_desc = "An umbrella term for all sorts of NIFsofts dealing with heads-up displays, this sort of technology dates back almost to the beginning of NIFsoft development. These 'softs are commonly used in the civilian field for integration with all sorts of activities; piloting, swordplay, scientific research, or even AI copiloting for important social interactions. While normally the nanomachines involved in the program's operation are used as a sort of artificial contact lens over the user's visual organs, NanoTrasen regulations have bid these particular forks to instead integrate with glasses the user's already wearing." + compatible_nifs = list(/obj/item/organ/internal/cyberimp/brain/nif/standard) + active_mode = TRUE + active_cost = 0.5 + ui_icon = "eye" + /// Do we need to check if the user is wearing compatible eyewear? + var/eyewear_check = TRUE + /// What kind of HUD are we adding when the NIFSoft is activated? + var/hud_type + /// What are the HUD traits we are adding when the NIFSoft is activated? + var/list/hud_traits + /// A list of traits that we want to add while the NIFSoft is active. This is here to emulate things like sci-goggles + var/list/added_eyewear_traits = list() + +/// Attemps to add the hud variables from the NIFSoft to the user. +/datum/nifsoft/hud/proc/add_huds() + if(hud_type) + var/datum/atom_hud/our_hud = GLOB.huds[hud_type] + our_hud.show_to(linked_mob) + + for(var/trait in hud_traits) + ADD_TRAIT(linked_mob, trait, GLASSES_TRAIT) + + for(var/trait as anything in added_eyewear_traits) + ADD_TRAIT(linked_mob, trait, TRAIT_NIFSOFT) + + linked_mob.update_sight() + +/// Attempts to remove the HUDs given to the user by the NIFSoft +/datum/nifsoft/hud/proc/remove_huds() + if(hud_type) + var/datum/atom_hud/hud = GLOB.huds[hud_type] + hud.hide_from(linked_mob) + + for(var/trait in hud_traits) + REMOVE_TRAIT(linked_mob, trait, TRAIT_NIFSOFT) + + for(var/trait in added_eyewear_traits) + REMOVE_TRAIT(linked_mob, trait, TRAIT_NIFSOFT) + + linked_mob.update_sight() + return TRUE + +/datum/nifsoft/hud/activate() + var/obj/item/clothing/glasses/worn_glasses = linked_mob.get_item_by_slot(ITEM_SLOT_EYES) + if(eyewear_check && !active && (!istype(worn_glasses) || !HAS_TRAIT(worn_glasses, TRAIT_NIFSOFT_HUD_GRANTER))) + linked_mob.balloon_alert(linked_mob, "no compatible eyewear!") + return FALSE + + . = ..() // active = !active + if(!.) + return FALSE + + if(!active) + remove_huds() + if(eyewear_check) + if(!istype(worn_glasses)) // Really non-ideal situation, but it's better than a runtime. + return FALSE + + UnregisterSignal(worn_glasses, COMSIG_ITEM_PRE_UNEQUIP) + + return TRUE + + add_huds() + if(eyewear_check) + RegisterSignal(worn_glasses, COMSIG_ITEM_PRE_UNEQUIP, PROC_REF(activate)) + + return TRUE + +/datum/element/nifsoft_hud/Attach(datum/target) + . = ..() + if(!istype(target, /obj/item/clothing/glasses)) + return ELEMENT_INCOMPATIBLE + + RegisterSignal(target, COMSIG_ATOM_EXAMINE, PROC_REF(on_examine)) + ADD_TRAIT(target, TRAIT_NIFSOFT_HUD_GRANTER, INNATE_TRAIT) + +/// Adds text to the examine text of the parent item, explaining that the item can be used to enable the use of NIFSoft HUDs +/datum/element/nifsoft_hud/proc/on_examine(datum/source, mob/user, list/examine_text) + SIGNAL_HANDLER + + examine_text += span_cyan("Wearing this item in your glasses slot will allow you to use NIFSoft HUDs.") + +/datum/element/nifsoft_hud/Detach(datum/target) + UnregisterSignal(target, COMSIG_ATOM_EXAMINE) + REMOVE_TRAIT(target, TRAIT_NIFSOFT_HUD_GRANTER, INNATE_TRAIT) + + return ..() + +/datum/nifsoft/hud/job + mutually_exclusive_programs = list(/datum/nifsoft/hud/job) //We don't want people stacking job HUDs + +// +// JOB NIFSOFT HUDS +// + +/datum/nifsoft/hud/job/medical + name = "Medical Scrying Lens" + ui_icon = "staff-snake" + hud_type = DATA_HUD_MEDICAL_ADVANCED + hud_traits = list(TRAIT_MEDICAL_HUD) + +/datum/nifsoft/hud/job/diagnostic + name = "Diagnostic Scrying Lens" + ui_icon = "robot" + hud_type = DATA_HUD_DIAGNOSTIC_BASIC + hud_traits = list(TRAIT_DIAGNOSTIC_HUD) + +/datum/nifsoft/hud/job/security + name = "Security Scrying Lens" + ui_icon = "shield" + hud_type = DATA_HUD_SECURITY_ADVANCED + hud_traits = list(TRAIT_SECURITY_HUD) + +/datum/nifsoft/hud/job/cargo_tech + name = "Permit Scrying Lens" + ui_icon = "gun" + hud_type = DATA_HUD_PERMIT + +/datum/nifsoft/hud/job/science + name = "Science Scrying Lens" + ui_icon = "flask" + added_eyewear_traits = list(TRAIT_REAGENT_SCANNER, TRAIT_RESEARCH_SCANNER) + +/datum/nifsoft/hud/job/meson + name = "Meson Scrying Lens" + ui_icon = "radiation" + added_eyewear_traits = list(TRAIT_MADNESS_IMMUNE, TRAIT_MESON_VISION) + +// +// UPLOADER DISKS +// + +/obj/item/disk/nifsoft_uploader/med_hud + name = "Medical Scrying Lens" + loaded_nifsoft = /datum/nifsoft/hud/job/medical + +/obj/item/disk/nifsoft_uploader/diag_hud + name = "Diagnostic Scrying Lens" + loaded_nifsoft = /datum/nifsoft/hud/job/diagnostic + +/obj/item/disk/nifsoft_uploader/sec_hud + name = "Security Scrying Lens" + loaded_nifsoft = /datum/nifsoft/hud/job/security + +/obj/item/disk/nifsoft_uploader/permit_hud + name = "Permit Scrying Lens" + loaded_nifsoft = /datum/nifsoft/hud/job/cargo_tech + +/obj/item/disk/nifsoft_uploader/sci_hud + name = "Science Scrying Lens" + loaded_nifsoft = /datum/nifsoft/hud/job/science + +/obj/item/disk/nifsoft_uploader/meson_hud + name = "Meson Scrying Lens" + loaded_nifsoft = /datum/nifsoft/hud/job/meson + +// +// NIFSOFT HUD GLASSES +// + +/obj/item/clothing/glasses/trickblindfold/obsolete/nif + name = "modernized fake blindfold" + desc = "A restored version of the obsolete fake blindfold, retrofitted with the proper electronics to work as a NIF HUD." + +/obj/item/clothing/glasses/trickblindfold/obsolete/nif/Initialize(mapload) + . = ..() + AddElement(/datum/element/nifsoft_hud) + diff --git a/monkestation/code/modules/blueshift/items/oxygen_candle.dm b/monkestation/code/modules/blueshift/items/oxygen_candle.dm new file mode 100644 index 000000000000..2ecc2d0c93f9 --- /dev/null +++ b/monkestation/code/modules/blueshift/items/oxygen_candle.dm @@ -0,0 +1,44 @@ +#define OXY_CANDLE_RELEASE_TEMP (T20C + 10) // 30 celsius, it's hot. Will be even hotter with hotspot expose + +/obj/item/oxygen_candle + name = "oxygen candle" + desc = "A steel tube with the words 'OXYGEN - PULL CORD TO IGNITE' stamped on the side.\nA small label reads 'WARNING: NOT FOR LIGHTING USE. WILL IGNITE FLAMMABLE GASSES'" + icon = 'monkestation/code/modules/blueshift/icons/obj/oxygen_candle.dmi' + icon_state = "oxycandle" + w_class = WEIGHT_CLASS_SMALL + light_color = LIGHT_COLOR_LAVA // Very warm chemical burn + var/pulled = FALSE + var/processing = FALSE + var/processes_left = 40 + +/obj/item/oxygen_candle/attack_self(mob/user) + if(!pulled) + playsound(src, 'sound/effects/fuse.ogg', 75, 1) + balloon_alert(user, "cord pulled") + icon_state = "oxycandle_burning" + pulled = TRUE + processing = TRUE + START_PROCESSING(SSobj, src) + set_light(2) + +/obj/item/oxygen_candle/process() + var/turf/pos = get_turf(src) + if(!pos) + return + pos.hotspot_expose(500, 100) + pos.atmos_spawn_air("o2=5;TEMP=[OXY_CANDLE_RELEASE_TEMP]") + processes_left-- + if(processes_left <= 0) + set_light(0) + STOP_PROCESSING(SSobj, src) + processing = FALSE + name = "burnt oxygen candle" + icon_state = "oxycandle_burnt" + desc += "\nThis tube has exhausted its chemicals." + +/obj/item/oxygen_candle/Destroy() + if(processing) + STOP_PROCESSING(SSobj, src) + return ..() + +#undef OXY_CANDLE_RELEASE_TEMP diff --git a/monkestation/code/modules/blueshift/items/pepperbell.dm b/monkestation/code/modules/blueshift/items/pepperbell.dm new file mode 100644 index 000000000000..72c27f442e50 --- /dev/null +++ b/monkestation/code/modules/blueshift/items/pepperbell.dm @@ -0,0 +1,89 @@ +/obj/item/gun/ballistic/automatic/pistol/pepperball + name = "\improper Bolt Pepperball AHG" + desc = "An incredibly mediocre 'firearm' designed to fire soft pepper balls meant to easily subdue targets." + icon = 'monkestation/code/modules/blueshift/icons/obj/pepperball/pepperball.dmi' + icon_state = "peppergun" + w_class = WEIGHT_CLASS_SMALL + accepted_magazine_type = /obj/item/ammo_box/magazine/pepperball + can_suppress = FALSE + fire_sound = 'sound/effects/pop_expl.ogg' + rack_sound = 'sound/weapons/gun/pistol/rack.ogg' + lock_back_sound = 'sound/weapons/gun/pistol/slide_lock.ogg' + bolt_drop_sound = 'sound/weapons/gun/pistol/slide_drop.ogg' + fire_sound_volume = 50 + +/obj/item/gun/ballistic/automatic/pistol/pepperball/give_manufacturer_examine() + AddElement(/datum/element/manufacturer_examine, COMPANY_BOLT) + +/obj/item/gun/ballistic/automatic/pistol/pepperball/add_seclight_point() + AddComponent(/datum/component/seclite_attachable, light_overlay_icon = 'icons/obj/weapons/guns/flashlights.dmi', light_overlay = "flight") + +/obj/item/ammo_box/magazine/pepperball + name = "pistol magazine (pepperball)" + desc = "A gun magazine filled with balls." + icon = 'monkestation/code/modules/blueshift/icons/obj/pepperball/pepperball.dmi' + icon_state = "pepperball" + ammo_type = /obj/item/ammo_casing/pepperball + caliber = CALIBER_PEPPERBALL + max_ammo = 8 + multiple_sprites = AMMO_BOX_FULL_EMPTY + +/obj/item/ammo_casing/pepperball + name = "pepperball" + desc = "A pepperball casing." + caliber = CALIBER_PEPPERBALL + projectile_type = /obj/projectile/bullet/pepperball + harmful = FALSE + +/obj/projectile/bullet/pepperball + name = "pepperball orb" + icon = 'monkestation/code/modules/blueshift/icons/obj/pepperball/projectiles.dmi' + icon_state = "pepperball" + damage = 0 + stamina = 5 + shrapnel_type = null + sharpness = NONE + embedding = null + impact_effect_type = /obj/effect/temp_visual/impact_effect + var/contained_reagent = /datum/reagent/consumable/condensedcapsaicin + var/reagent_volume = 5 + +/obj/projectile/bullet/pepperball/on_hit(atom/target, blocked = 0, pierce_hit) + if(isliving(target)) + var/mob/living/M = target + if(M.can_inject()) + var/datum/reagent/R = new contained_reagent + R.expose_mob(M, VAPOR, reagent_volume) + . = ..() + +/datum/design/pepperballs + name = "Pepperball Ammo Box" + id = "pepperballs" + build_type = AUTOLATHE | PROTOLATHE + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 3, + ) + build_path = /obj/item/ammo_box/advanced/pepperballs + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO, + ) + departmental_flags = DEPARTMENT_BITFLAG_SECURITY + +/obj/item/ammo_box/advanced/pepperballs + name = "pepperball ammo box" + icon = 'monkestation/code/modules/blueshift/icons/obj/pepperball/ammoboxes.dmi' + icon_state = "box10x24" + ammo_type = /obj/item/ammo_casing/pepperball + custom_materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 3, + ) + max_ammo = 15 + +// Gunset for the pepperball pistol + +/obj/item/storage/toolbox/guncase/skyrat/pistol/pepperball + name = "Pepperball AHG gunset" + + weapon_to_spawn = /obj/item/gun/ballistic/automatic/pistol/pepperball + extra_to_spawn = /obj/item/ammo_box/magazine/pepperball diff --git a/monkestation/code/modules/blueshift/items/retractable_armor.dm b/monkestation/code/modules/blueshift/items/retractable_armor.dm new file mode 100644 index 000000000000..7ff714607807 --- /dev/null +++ b/monkestation/code/modules/blueshift/items/retractable_armor.dm @@ -0,0 +1,13 @@ +/obj/item/mod/module/armor_booster/retractplates + name = "MOD retractive plates module" + desc = "A complex set of actuators, micro-seals and a simple guide on how to install it, This... \"Modification\" allows the plating around the joints to retract, giving minor protection and a bit better mobility." + removable = TRUE + complexity = 1 + speed_added = 0.25 + armor_mod = /datum/armor/retractive_plates + +/datum/armor/retractive_plates + melee = 20 + bullet = 25 + laser = 15 + energy = 20 diff --git a/monkestation/code/modules/blueshift/items/skillchip.dm b/monkestation/code/modules/blueshift/items/skillchip.dm new file mode 100644 index 000000000000..542114b5c3c0 --- /dev/null +++ b/monkestation/code/modules/blueshift/items/skillchip.dm @@ -0,0 +1,9 @@ +/obj/item/skillchip/chameleon/reload + name = "T.A.C.T.I.C00L skillchip" + desc = "If used, allows the user to perform tactical and instant reloads on all weapons with a magazine." + auto_traits = list(TRAIT_INSTANT_RELOAD) + skill_name = "Tactical Reloading" + skill_description = "Fine tune motor skills when performing reloads on weapons to reduce time taken." + skill_icon = "sitemap" + activate_message = span_notice("You suddenly learn the art of tactical reloading.") + deactivate_message = span_danger("You suddenly lose the ability to tactically reload.") diff --git a/monkestation/code/modules/blueshift/items/soul_catcher.dm b/monkestation/code/modules/blueshift/items/soul_catcher.dm new file mode 100644 index 000000000000..2bc51e191fa4 --- /dev/null +++ b/monkestation/code/modules/blueshift/items/soul_catcher.dm @@ -0,0 +1,250 @@ +// Give the detective the ability to see this stuff. +/datum/job/detective + mind_traits = list(TRAIT_DETECTIVE) + + +/obj/item + //The special description that is triggered when special_desc_requirements are met. Make sure you set the correct EXAMINE_CHECK! + var/special_desc = "" + + //The special affiliation type, basically overrides the "Syndicate Affiliation" for SYNDICATE check types. It will show whatever organisation you put here instead of "Syndicate Affiliation" + var/special_desc_affiliation = "" + + //The requirement setting for special descriptions. See examine_defines.dm for more info. + var/special_desc_requirement = EXAMINE_CHECK_NONE + + //The ROLE requirement setting if EXAMINE_CHECK_ROLE is set. E.g. ROLE_SYNDICATE. As you can see, it's a list. So when setting it, ensure you do = list(shit1, shit2) + var/list/special_desc_roles + + //The JOB requirement setting if EXAMINE_CHECK_JOB is set. E.g. JOB_SECURITY_OFFICER. As you can see, it's a list. So when setting it, ensure you do = list(shit1, shit2) + var/list/special_desc_jobs + + //The FACTION requirement setting if EXAMINE_CHECK_FACTION is set. E.g. "Syndicate". As you can see, it's a list. So when setting it, ensure you do = list(shit1, shit2) + var/list/special_desc_factions + +/obj/item/examine(mob/user) + . = ..() + if(special_desc_requirement == EXAMINE_CHECK_NONE && special_desc) + . += span_notice("This item could be examined further...") + +/obj/item/examine_more(mob/user) + . = ..() + if(special_desc) + var/composed_message + switch(special_desc_requirement) + //Will always show if set + if(EXAMINE_CHECK_NONE) + composed_message = "You note the following:
" + composed_message += special_desc + . += composed_message + //Mindshield checks + if(EXAMINE_CHECK_MINDSHIELD) + if(HAS_TRAIT(user, TRAIT_MINDSHIELD)) + composed_message = "You note the following because of your mindshield:
" + composed_message += special_desc + . += composed_message + //Standard syndicate checks + if(EXAMINE_CHECK_SYNDICATE) + if(user.mind) + var/datum/mind/M = user.mind + if((M.special_role == ROLE_TRAITOR) || (ROLE_SYNDICATE in user.faction)) + composed_message = "You note the following because of your [special_desc_affiliation ? special_desc_affiliation : "Syndicate Affiliation"]:
" + composed_message += special_desc + . += composed_message + else if(HAS_TRAIT(M, TRAIT_DETECTIVE)) //Useful detective! + composed_message = "You note the following because of your brilliant Detective skills:
" + composed_message += special_desc + . += composed_message + //As above, but with a toy desc for those looking at it + if(EXAMINE_CHECK_SYNDICATE_TOY) + if(user.mind) + var/datum/mind/M = user.mind + if((M.special_role == ROLE_TRAITOR) || (ROLE_SYNDICATE in user.faction)) + composed_message = "You note the following because of your [special_desc_affiliation ? special_desc_affiliation : "Syndicate Affiliation"]:
" + composed_message += special_desc + . += composed_message + else if(HAS_TRAIT(M, TRAIT_DETECTIVE)) //Useful detective! + composed_message = "You note the following because of your brilliant detective skills:
" + composed_message += special_desc + . += composed_message + else + composed_message = "The popular toy resembling [src] from your local arcade, suitable for children and adults alike." + . += composed_message + //Standard role checks + if(EXAMINE_CHECK_ROLE) + if(user.mind) + var/datum/mind/M = user.mind + for(var/role_i in special_desc_roles) + if(M.special_role == role_i) + composed_message = "You note the following because of your [role_i] role:
" + composed_message += special_desc + . += composed_message + //Standard job checks + if(EXAMINE_CHECK_JOB) + if(ishuman(user)) + var/mob/living/carbon/human/H = user + for(var/job_i in special_desc_jobs) + if(H.job == job_i) + composed_message = "You note the following because of your job as a [job_i]:
" + composed_message += special_desc + . += composed_message + //Standard faction checks + if(EXAMINE_CHECK_FACTION) + for(var/faction_i in special_desc_factions) + if(faction_i in user.faction) + composed_message = "You note the following because of your loyalty to [faction_i]:
" + composed_message += special_desc + . += composed_message + //If they are a syndicate contractor or a syndicate + if(EXAMINE_CHECK_CONTRACTOR) + var/mob/living/carbon/human/human_user = user + if(human_user.mind.special_role == ROLE_DRIFTING_CONTRACTOR) + composed_message = "You note the following because of your [span_red("Contractor Status")]:
" + composed_message += special_desc + . += composed_message + else if(HAS_TRAIT(human_user, TRAIT_DETECTIVE)) //Useful detective! + composed_message = "You note the following because of your brilliant Detective skills:
" + composed_message += special_desc + . += composed_message + else if((human_user.mind.special_role == ROLE_TRAITOR) || (ROLE_SYNDICATE in human_user.faction)) + composed_message = "You note the following because of your [span_red("[special_desc_affiliation ? special_desc_affiliation : "Syndicate Affiliation"]")]:
" + composed_message += special_desc + . += composed_message + +/obj/item/disk/nifsoft_uploader/soulcatcher + name = "Soulcatcher" + loaded_nifsoft = /datum/nifsoft/soulcatcher + +/datum/nifsoft/soulcatcher + name = "Soulcatcher" + program_desc = "The 'Soulcatcher' coreware is a near-complete upgrade of the nanomachine systems in a NIF, meant for one purpose; supposedly, channeling the dead. This upgrade, in truth, functions as a Resonance Simulation Device; an RSD for short, an instrument capable of hosting someone's consciousness, context or otherwise. 'Resonance', a term for the specific pattern of neural activity that gives way to someone's consciousness, was discovered in the early 2500s by researchers Yun-Seo Jin and Kamakshi Padmanabhan, coining what is now called 'Jin-Padmanabhan Resonance,' or 'JP/Soul Resonance.' This 'Resonance' gives off a sophont's consciousness, their sense of continuation, and their 'I am me.' This Resonance can vary in structure and 'strength' from person to person, and even change over someone's life. When the brain of a sophont undergoes death and stops neural activity, then Resonance dissipates entirely and lingering consciousness becomes essentially an echo, rapidly fading over time.\n\nThe earliest RSDs were massive machines, drawing incredible power and utilizing bleeding-edge, clunky software to 'play' someone's Resonance at 1:1 accuracy with their original brain. However, complications arose that are still being studied. Resonance is replicable and can be re-created artificially; however, like trying to duplicate genetic code, the capture needs to be extremely accurate, and rapidly put into place. Instruments such as RSDs are capable of picking up on lingering consciousness after the end of Resonance, and resuming it through artificial neural activity can give it strength to continue once more. RSDs such as Soulcatchers can only work at such a distance, otherwise running the risk of the Resonance essentially corrupting due to poor signal.\n\nIt is currently impossible to run Resonance in two places at once, because the same Resonance over two places experiences interference; like noise canceling headphones. Slimes and other gestalt consciousnesses can modulate their harmonics to a degree, bearing a partial disconnect and bringing themselves into constructive interference with similar harmonic signatures. A deepscan of the person's brain is necessary to give their consciousness 'context;' running their Resonance and capturing their consciousness alone results in a person with their same original intelligence, but zero memories or identity. These scans rapidly become outdated due to the growth of the brain, and it is prohibitively complex to store them in their entirety.\n\nThe first portable RSD, or Soulcatcher, was developed by the Spider Clan. These were initially designed for the captive interrogation of a person's consciousness without having to worry about the struggling of their body, and for dead or aging members of the mysterious group of orbital shinobi to be able to guide field operatives. These Soulcatchers are the main instrument to play Resonance, but recent advances in medical science have been leading to more. Occasionally, it is known for unusual sources of 'wild' Resonance, called Phantoms, to end up inside of the nearest Soulcatcher, a key finding its own lock; with a wide array of theories as to how these come into existence. Much as how some people intentionally become stable Engrams to achieve digital immortality, such as the witches of the Altspace Coven, it is possible for others to forcibly enter a Soulcatcher and act as a sort of Phantom by hacking their way in." + purchase_price = 150 //RP tool + persistence = TRUE + able_to_keep = TRUE + ui_icon = "ghost" + + /// What is the linked soulcatcher datum used by this NIFSoft? + var/datum/weakref/linked_soulcatcher + /// What action to bring up the soulcatcher is linked with this NIFSoft? + var/datum/action/innate/soulcatcher/soulcatcher_action + /// a list containing saved soulcatcher rooms + var/list/saved_soulcatcher_rooms = list() + /// The item we are using to store the souls + var/obj/item/soulcatcher_holder/soul_holder + +/datum/nifsoft/soulcatcher/New() + . = ..() + soulcatcher_action = new(linked_mob) + soulcatcher_action.Grant(linked_mob) + soulcatcher_action.parent_nifsoft = WEAKREF(src) + + soul_holder = new(linked_mob) + var/datum/component/soulcatcher/new_soulcatcher = soul_holder.AddComponent(/datum/component/soulcatcher/nifsoft) + soul_holder.name = linked_mob.name + + for(var/room in saved_soulcatcher_rooms) + new_soulcatcher.create_room(room, saved_soulcatcher_rooms[room]) + + if(length(new_soulcatcher.soulcatcher_rooms) > 1) //We don't need the default room anymore. + new_soulcatcher.soulcatcher_rooms -= new_soulcatcher.soulcatcher_rooms[1] + + new_soulcatcher.name = "[linked_mob]" + + RegisterSignal(new_soulcatcher, COMSIG_QDELETING, PROC_REF(no_soulcatcher_component)) + linked_soulcatcher = WEAKREF(new_soulcatcher) + update_theme() // because we have to do this after the soulcatcher is linked + +/datum/nifsoft/soulcatcher/activate() + . = ..() + if(!linked_soulcatcher) + return FALSE + + var/datum/component/soulcatcher/current_soulcatcher = linked_soulcatcher.resolve() + if(!current_soulcatcher) + return FALSE + + current_soulcatcher.ui_interact(linked_mob) + return TRUE + +/// If the linked soulcatcher is being deleted we want to set the current linked soulcatcher to `FALSE` +/datum/nifsoft/soulcatcher/proc/no_soulcatcher_component() + SIGNAL_HANDLER + + linked_soulcatcher = null + +/datum/nifsoft/soulcatcher/Destroy() + if(soulcatcher_action) + soulcatcher_action.Remove() + qdel(soulcatcher_action) + + if(linked_soulcatcher) + var/datum/component/soulcatcher/current_soulcatcher = linked_soulcatcher.resolve() + if(current_soulcatcher) + qdel(current_soulcatcher) + + qdel(soul_holder) + + return ..() + +/datum/nifsoft/soulcatcher/load_persistence_data() + . = ..() + var/datum/modular_persistence/persistence = . + if(!persistence) + return FALSE + + saved_soulcatcher_rooms = params2list(persistence.nif_soulcatcher_rooms) + return TRUE + +/datum/nifsoft/soulcatcher/save_persistence_data(datum/modular_persistence/persistence) + . = ..() + if(!.) + return FALSE + + var/list/room_list = list() + var/datum/component/soulcatcher/current_soulcatcher = linked_soulcatcher.resolve() + for(var/datum/soulcatcher_room/room in current_soulcatcher.soulcatcher_rooms) + room_list[room.name] = room.room_description + + persistence.nif_soulcatcher_rooms = list2params(room_list) + return TRUE + +/datum/nifsoft/soulcatcher/update_theme() + . = ..() + if(!.) + return FALSE // uhoh + + if(isnull(linked_soulcatcher)) + return FALSE + + var/datum/component/soulcatcher/current_soulcatcher = linked_soulcatcher.resolve() + if(!istype(current_soulcatcher)) + stack_trace("[src] ([REF(src)]) tried to update its theme when it was missing a linked_soulcatcher component!") + return FALSE + current_soulcatcher.ui_theme = ui_theme + +/datum/modular_persistence + ///A param string containing soulcatcher rooms + var/nif_soulcatcher_rooms = "" + +/datum/action/innate/soulcatcher + name = "Soulcatcher" + background_icon = 'monkestation/code/modules/blueshift/icons/mob/actions/action_backgrounds.dmi' + background_icon_state = "android" + button_icon = 'monkestation/code/modules/blueshift/icons/mob/actions/actions_nif.dmi' + button_icon_state = "soulcatcher" + /// The weakref of the parent NIFSoft we belong to. + var/datum/weakref/parent_nifsoft + +/datum/action/innate/soulcatcher/Activate() + . = ..() + var/datum/nifsoft/soulcatcher/soulcatcher_nifsoft = parent_nifsoft.resolve() + if(!soulcatcher_nifsoft) + return FALSE + + soulcatcher_nifsoft.activate() + +/// This is the object we use if we give a mob soulcatcher. Having the souls directly parented could cause issues. +/obj/item/soulcatcher_holder + name = "Soul Holder" + desc = "You probably shouldn't be seeing this..." + diff --git a/monkestation/code/modules/blueshift/items/survival_pack.dm b/monkestation/code/modules/blueshift/items/survival_pack.dm new file mode 100644 index 000000000000..3c1bc025e45e --- /dev/null +++ b/monkestation/code/modules/blueshift/items/survival_pack.dm @@ -0,0 +1,40 @@ +/obj/item/storage/box/nri_survival_pack + name = "NRI survival pack" + desc = "A box filled with useful emergency items, supplied by the NRI." + icon_state = "survival_pack" + icon = 'monkestation/code/modules/blueshift/icons/survival_pack.dmi' + illustration = null + +/obj/item/storage/box/nri_survival_pack/PopulateContents() + new /obj/item/oxygen_candle(src) + new /obj/item/tank/internals/emergency_oxygen/double(src) + new /obj/item/stack/spacecash/c1000(src) + new /obj/item/storage/pill_bottle/iron(src) + new /obj/item/storage/box/nri_pens(src) + new /obj/item/storage/box/nri_flares(src) + new /obj/item/crowbar/red(src) + +/obj/item/storage/box/nri_pens + name = "box of injectors" + desc = "A box full of first aid and combat MediPens." + illustration = "epipen" + +/obj/item/storage/box/nri_pens/PopulateContents() + new /obj/item/reagent_containers/hypospray/medipen/ekit(src) + new /obj/item/reagent_containers/hypospray/medipen/stimpack/traitor(src) + new /obj/item/reagent_containers/hypospray/medipen/oxandrolone(src) + new /obj/item/reagent_containers/hypospray/medipen/salacid(src) + new /obj/item/reagent_containers/hypospray/medipen/salacid(src) + new /obj/item/reagent_containers/hypospray/medipen/penacid(src) + new /obj/item/reagent_containers/hypospray/medipen/salbutamol(src) + new /obj/item/reagent_containers/hypospray/medipen/atropine(src) + new /obj/item/reagent_containers/hypospray/medipen/blood_loss(src) + +/obj/item/storage/box/nri_flares + name = "box of flares" + desc = "A box full of red emergency flares." + illustration = "firecracker" + +/obj/item/storage/box/nri_flares/PopulateContents() + for(var/i in 1 to 7) + new /obj/item/flashlight/flare(src) diff --git a/monkestation/code/modules/blueshift/items/syndicate.dm b/monkestation/code/modules/blueshift/items/syndicate.dm new file mode 100644 index 000000000000..0be0098a0f41 --- /dev/null +++ b/monkestation/code/modules/blueshift/items/syndicate.dm @@ -0,0 +1,340 @@ +/obj/item/uplink/old_radio + name = "old radio" + desc = "A dusty and old looking radio." + +/obj/item/uplink/old_radio/Initialize(mapload, owner, tc_amount = 0) + . = ..() + var/datum/component/uplink/hidden_uplink = GetComponent(/datum/component/uplink) + hidden_uplink.name = "old radio" + +//Unrestricted MODs +/obj/item/mod/control/pre_equipped/elite/unrestricted + req_access = null + +//Syndie wep charger kit +/obj/item/storage/box/syndie_kit/recharger + name = "boxed recharger kit" + desc = "A sleek, sturdy box used to hold all parts to build a weapons recharger." + icon_state = "syndiebox" + +/obj/item/storage/box/syndie_kit/recharger/PopulateContents() + new /obj/item/circuitboard/machine/recharger(src) + new /obj/item/stock_parts/capacitor/quadratic(src) + new /obj/item/stack/sheet/iron/five(src) + new /obj/item/stack/cable_coil/five(src) + new /obj/item/screwdriver/nuke(src) + new /obj/item/wrench(src) + +//Back-up space suit +/obj/item/storage/box/syndie_kit/space_suit + name = "boxed space suit and helmet" + desc = "A sleek, sturdy box used to hold an emergency spacesuit." + icon_state = "syndiebox" + illustration = "syndiesuit" + +/obj/item/storage/box/syndie_kit/space_suit/Initialize(mapload) + . = ..() + atom_storage.max_specific_storage = WEIGHT_CLASS_BULKY + atom_storage.max_slots = 2 + atom_storage.set_holdable(list( + /obj/item/clothing/head/helmet/space/syndicate, + /obj/item/clothing/suit/space/syndicate, + )) + +/obj/item/storage/box/syndie_kit/space_suit/PopulateContents() + switch(pick(list("red", "green", "dgreen", "blue", "orange", "black"))) + if("green") + new /obj/item/clothing/head/helmet/space/syndicate/green(src) + new /obj/item/clothing/suit/space/syndicate/green(src) + if("dgreen") + new /obj/item/clothing/head/helmet/space/syndicate/green/dark(src) + new /obj/item/clothing/suit/space/syndicate/green/dark(src) + if("blue") + new /obj/item/clothing/head/helmet/space/syndicate/blue(src) + new /obj/item/clothing/suit/space/syndicate/blue(src) + if("red") + new /obj/item/clothing/head/helmet/space/syndicate(src) + new /obj/item/clothing/suit/space/syndicate(src) + if("orange") + new /obj/item/clothing/head/helmet/space/syndicate/orange(src) + new /obj/item/clothing/suit/space/syndicate/orange(src) + if("black") + new /obj/item/clothing/head/helmet/space/syndicate/black(src) + new /obj/item/clothing/suit/space/syndicate/black(src) + +//Spy +/obj/item/clothing/suit/jacket/det_suit/noir/armoured + armor_type = /datum/armor/heister + +/obj/item/clothing/head/frenchberet/armoured + armor_type = /datum/armor/cosmetic_sec + +/obj/item/clothing/under/suit/black/armoured + armor_type = /datum/armor/clothing_under/syndicate + +/obj/item/clothing/under/suit/black/skirt/armoured + armor_type = /datum/armor/clothing_under/syndicate + +/obj/item/storage/belt/holster/detective/dark + name = "dark leather holster" + icon_state = "syndicate_holster" + +/obj/item/storage/box/syndie_kit/gunman_outfit + name = "gunman clothing bundle" + desc = "A box filled with armored and stylish clothing for the aspiring gunmans." + +/obj/item/clothing/suit/jacket/trenchcoat/gunman + name = "leather overcoat" + desc = "An armored leather overcoat, intended as the go-to wear for any aspiring gunman." + body_parts_covered = CHEST|GROIN|ARMS + armor_type = /datum/armor/leather_gunman + +/datum/armor/leather_gunman + melee = 45 + bullet = 40 + laser = 40 + energy = 50 + bomb = 25 + fire = 50 + acid = 50 + wound = 10 + +/obj/item/clothing/under/pants/track/robohand + name = "badass pants" + desc = "Strangely firm yet soft black pants, these appear to have some armor padding for added protection." + armor_type = /datum/armor/clothing_under/robohand + +/datum/armor/clothing_under/robohand + melee = 20 + bullet = 20 + laser = 20 + energy = 20 + bomb = 20 + +/obj/item/clothing/glasses/sunglasses/robohand + name = "badass sunglasses" + desc = "Strangely ancient technology used to help provide rudimentary eye cover. Enhanced shielding blocks flashes. These ones seem to be bulletproof?" + body_parts_covered = HEAD //What do you mean glasses don't protect your head? Of course they do. Cyberpunk has flying cars(mostly intentional)! + armor_type = /datum/armor/sunglasses_robohand + +/datum/armor/sunglasses_robohand + melee = 20 + bullet = 60 + laser = 20 + energy = 20 + bomb = 20 + wound = 5 + +//More items +/obj/item/guardian_creator/tech/choose/traitor/opfor + allow_changeling = TRUE + +/obj/item/codeword_granter + name = "codeword manual" + desc = "A black manual with a red S lovingly inscribed on the cover by only the finest of presses from a factory." + icon = 'monkestation/code/modules/blueshift/opfor/icons/items.dmi' + icon_state = "codeword_book" + /// Number of charges the book has, limits the number of times it can be used. + var/charges = 1 + + +/obj/item/codeword_granter/attack_self(mob/living/user) + if(!isliving(user)) + return + + to_chat(user, span_boldannounce("You start skimming through [src], and feel suddenly imparted with the knowledge of the following code words:")) + + user.AddComponent(/datum/component/codeword_hearing, GLOB.syndicate_code_phrase_regex, "blue", src) + user.AddComponent(/datum/component/codeword_hearing, GLOB.syndicate_code_response_regex, "red", src) + to_chat(user, "Code Phrases: [jointext(GLOB.syndicate_code_phrase, ", ")]") + to_chat(user, "Code Responses: [span_red("[jointext(GLOB.syndicate_code_response, ", ")]")]") + + use_charge(user) + + +/obj/item/codeword_granter/attack(mob/living/attacked_mob, mob/living/user) + if(!istype(attacked_mob) || !istype(user)) + return + + if(attacked_mob == user) + attack_self(user) + return + + playsound(loc, SFX_PUNCH, 25, TRUE, -1) + + if(attacked_mob.stat == DEAD) + attacked_mob.visible_message(span_danger("[user] smacks [attacked_mob]'s lifeless corpse with [src]."), span_userdanger("[user] smacks your lifeless corpse with [src]."), span_hear("You hear smacking.")) + else + attacked_mob.visible_message(span_notice("[user] teaches [attacked_mob] by beating [attacked_mob.p_them()] over the head with [src]!"), span_boldnotice("As [user] hits you with [src], you feel suddenly imparted with the knowledge of some [span_red("specific words")]."), span_hear("You hear smacking.")) + attacked_mob.AddComponent(/datum/component/codeword_hearing, GLOB.syndicate_code_phrase_regex, "blue", src) + attacked_mob.AddComponent(/datum/component/codeword_hearing, GLOB.syndicate_code_response_regex, "red", src) + to_chat(attacked_mob, span_boldnotice("You feel suddenly imparted with the knowledge of the following code words:")) + to_chat(attacked_mob, "Code Phrases: [span_blue("[jointext(GLOB.syndicate_code_phrase, ", ")]")]") + to_chat(attacked_mob, "Code Responses: [span_red("[jointext(GLOB.syndicate_code_response, ", ")]")]") + use_charge(user) + + +/obj/item/codeword_granter/proc/use_charge(mob/user) + charges-- + + if(!charges) + var/turf/src_turf = get_turf(src) + src_turf.visible_message(span_warning("The cover and contents of [src] start shifting and changing! It slips out of your hands!")) + new /obj/item/book/manual/random(src_turf) + qdel(src) + + +/obj/item/antag_granter + icon = 'monkestation/code/modules/blueshift/opfor/icons/items.dmi' + /// What antag datum to give + var/antag_datum = /datum/antagonist/traitor + /// What to tell the user when they use the granter + var/user_message = "" + + +/obj/item/antag_granter/attack(mob/living/target_mob, mob/living/user, params) + . = ..() + + if(target_mob != user) // As long as you're attacking yourself it counts. + return + attack_self(user) + + +/obj/item/antag_granter/attack_self(mob/user, modifiers) + . = ..() + if(!isliving(user) || !user.mind) + return FALSE + + to_chat(user, span_notice(user_message)) + user.mind.add_antag_datum(antag_datum) + qdel(src) + return TRUE + +/obj/item/antag_granter/changeling + name = "viral injector" + desc = "A blue injector filled with some viscous, red substance. It has no markings apart from an orange warning stripe near the large needle." + icon_state = "changeling_injector" + antag_datum = /datum/antagonist/changeling + user_message = "As you inject the substance into yourself, you start to feel... better." + + +/obj/item/antag_granter/heretic + name = "strange book" + desc = "A purple book with a green eye on the cover. You swear it's looking at you...." + icon_state = "heretic_granter" + antag_datum = /datum/antagonist/heretic + user_message = "As you open the book, you see a great flash as the world becomes all the clearer for you." + +/obj/item/antag_granter/clock_cultist + name = "brass contraption" + desc = "A cogwheel-shaped device of brass, with a glass lens floating, suspended in the center." + icon = 'monkestation/icons/obj/clock_cult/clockwork_objects.dmi' + icon_state = "vanguard_cogwheel" + antag_datum = /datum/antagonist/clock_cultist/solo + user_message = "A whirring fills your ears as knowledge of His Eminence fills your mind." + +/obj/item/antag_granter/clock_cultist/attack_self(mob/user, modifiers) + . = ..() + if(!.) + return FALSE + + var/obj/item/clockwork/clockwork_slab/slab = new + user.put_in_hands(slab, FALSE) + +#define INFINITE_CHARGES -1 + +/obj/item/device/traitor_announcer + name = "odd device" + desc = "Hmm... what is this for?" + special_desc_requirement = EXAMINE_CHECK_SYNDICATE + special_desc = "A remote that can be used to transmit a fake announcement of your own design." + icon = 'icons/obj/device.dmi' + lefthand_file = 'icons/mob/inhands/items/devices_lefthand.dmi' + righthand_file = 'icons/mob/inhands/items/devices_righthand.dmi' + icon_state = "inspector" + worn_icon_state = "salestagger" + inhand_icon_state = "electronic" + ///How many uses does it have? -1 for infinite + var/uses = 1 + +/obj/item/device/traitor_announcer/attack_self(mob/living/user, modifiers) + . = ..() + + //can we use this? + if(!isliving(user) || (uses == 0)) + balloon_alert(user, "no uses left!") + return + + //build our announcement + var/origin = sanitize_text(reject_bad_text(tgui_input_text(user, "Who is announcing, or where is the announcement coming from?", "Announcement Origin", get_area_name(user), max_length = 56), ascii_only = FALSE)) + if(!origin) + balloon_alert(user, "bad origin!") + return + + var/audio_key = tgui_input_list(user, "Which announcement audio key should play? ('Intercept' is default)", "Announcement Audio", GLOB.announcer_keys, ANNOUNCER_INTERCEPT) + if(!audio_key) + balloon_alert(user, "bad audio!") + return + + var/color = tgui_input_list(user, "Which color should the announcement be?", "Announcement Hue", ANNOUNCEMENT_COLORS, "default") + if(!color) + balloon_alert(user, "bad color!") + return + + var/title = sanitize_text(reject_bad_text(tgui_input_text(user, "Choose the title of the announcement.", "Announcement Title", max_length = 84), ascii_only = FALSE)) + if(!title) + balloon_alert(user, "bad title!") + return + + var/input = sanitize_text(reject_bad_text(tgui_input_text(user, "Choose the bodytext of the announcement.", "Announcement Text", multiline = TRUE), ascii_only = FALSE)) + if(!input) + balloon_alert(user, "bad text!") + return + + //treat voice + var/list/message_data = user.treat_message(input) + + //send + priority_announce( + text = message_data["message"], + title = title, + sound = audio_key, + sender_override = origin, + color_override = color, + has_important_message = TRUE, + encode_title = FALSE, + encode_text = FALSE, + ) + + if(uses != INFINITE_CHARGES) + uses-- + + deadchat_broadcast(" made a fake priority announcement from [span_name("[get_area_name(usr, TRUE)]")].", span_name("[user.real_name]"), user, message_type=DEADCHAT_ANNOUNCEMENT) + user.log_talk("\[Message title\]: [title], \[Message\]: [input], \[Audio key\]: [audio_key]", LOG_TELECOMMS, tag = "priority announcement") + message_admins("[ADMIN_LOOKUPFLW(user)] has used [src] to make a fake announcement of [input].") + +// Adminbus +/obj/item/device/traitor_announcer/infinite + uses = -1 + +#undef INFINITE_CHARGES + +/obj/item/reagent_containers/cup/glass/drinkingglass/shotglass/syndicate + name = "shot glass" + desc = "A shot glass - the universal symbol for terrible decisions." + icon_state = "shotglass" + base_icon_state = "shotglass" + gulp_size = 50 + amount_per_transfer_from_this = 50 + possible_transfer_amounts = list(50) + volume = 50 + reagent_flags = REFILLABLE | DRAINABLE + +/obj/item/storage/box/syndieshotglasses + name = "box of shot glasses" + desc = "It has a picture of shot glasses on it." + illustration = "drinkglass" + +/obj/item/storage/box/syndieshotglasses/PopulateContents() + for(var/i in 1 to 7) + new /obj/item/reagent_containers/cup/glass/drinkingglass/shotglass/syndicate(src) diff --git a/monkestation/code/modules/blueshift/items/tools.dm b/monkestation/code/modules/blueshift/items/tools.dm new file mode 100644 index 000000000000..a9caf5044c0b --- /dev/null +++ b/monkestation/code/modules/blueshift/items/tools.dm @@ -0,0 +1,236 @@ +// Like the power drill, except no speed buff but has wirecutters as well? Just trust me on this one. + +/obj/item/screwdriver/omni_drill + name = "powered driver" + desc = "The ultimate in multi purpose construction tools. With heads for wire cutting, bolt driving, and driving \ + screws, what's not to love? Well, the slow speed. Compared to other power drills these tend to be \ + not much quicker than unpowered tools." + icon = 'monkestation/code/modules/blueshift/icons/tools.dmi' + icon_state = "drill" + belt_icon_state = null + inhand_icon_state = "drill" + worn_icon_state = "drill" + lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' + custom_materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 1.75, + /datum/material/silver = HALF_SHEET_MATERIAL_AMOUNT * 1.5, + /datum/material/titanium = HALF_SHEET_MATERIAL_AMOUNT, + ) + force = 10 + throwforce = 8 + throw_speed = 2 + throw_range = 3 + attack_verb_continuous = list("drills", "screws", "jabs", "whacks") + attack_verb_simple = list("drill", "screw", "jab", "whack") + hitsound = 'sound/items/drill_hit.ogg' + usesound = 'sound/items/drill_use.ogg' + w_class = WEIGHT_CLASS_SMALL + toolspeed = 1 + random_color = FALSE + greyscale_config = null + greyscale_config_belt = null + greyscale_config_inhand_left = null + greyscale_config_inhand_right = null + /// Used on Initialize, how much time to cut cable restraints and zipties. + var/snap_time_weak_handcuffs = 0 SECONDS + /// Used on Initialize, how much time to cut real handcuffs. Null means it can't. + var/snap_time_strong_handcuffs = null + +/obj/item/screwdriver/omni_drill/Initialize(mapload) + . = ..() + AddElement(/datum/element/manufacturer_examine, COMPANY_FRONTIER) + +/obj/item/screwdriver/omni_drill/get_all_tool_behaviours() + return list(TOOL_WIRECUTTER, TOOL_SCREWDRIVER, TOOL_WRENCH) + +/obj/item/screwdriver/omni_drill/examine(mob/user) + . = ..() + . += span_notice("Use in hand to switch configuration.\n") + . += span_notice("It functions as a [tool_behaviour] tool.") + +/obj/item/screwdriver/omni_drill/update_icon_state() + . = ..() + switch(tool_behaviour) + if(TOOL_SCREWDRIVER) + icon_state = initial(icon_state) + if(TOOL_WRENCH) + icon_state = "[initial(icon_state)]_bolt" + if(TOOL_WIRECUTTER) + icon_state = "[initial(icon_state)]_cut" + +/obj/item/screwdriver/omni_drill/attack_self(mob/user, modifiers) + . = ..() + if(!user) + return + var/list/tool_list = list( + "Screwdriver" = image(icon = icon, icon_state = "drill"), + "Wrench" = image(icon = icon, icon_state = "drill_bolt"), + "Wirecutters" = image(icon = icon, icon_state = "drill_cut"), + ) + var/tool_result = show_radial_menu(user, src, tool_list, custom_check = CALLBACK(src, PROC_REF(check_menu), user), require_near = TRUE, tooltips = TRUE) + if(!check_menu(user) || !tool_result) + return + RemoveElement(/datum/element/cuffsnapping, snap_time_weak_handcuffs, snap_time_strong_handcuffs) + switch(tool_result) + if("Wrench") + tool_behaviour = TOOL_WRENCH + sharpness = NONE + if("Wirecutters") + tool_behaviour = TOOL_WIRECUTTER + sharpness = NONE + AddElement(/datum/element/cuffsnapping, snap_time_weak_handcuffs, snap_time_strong_handcuffs) + if("Screwdriver") + tool_behaviour = TOOL_SCREWDRIVER + sharpness = SHARP_POINTY + playsound(src, 'sound/items/change_drill.ogg', 50, vary = TRUE) + update_appearance(UPDATE_ICON) + +/obj/item/screwdriver/omni_drill/proc/check_menu(mob/user) + if(!istype(user)) + return FALSE + if(user.incapacitated() || !user.Adjacent(src)) + return FALSE + return TRUE + +// Just a completely normal crowbar except its normal sized and can force doors like jaws of life can + +/obj/item/crowbar/large/doorforcer + name = "prybar" + desc = "A large, sturdy crowbar, painted orange. This one just happens to be tough enough to \ + survive forcing doors open." + icon = 'monkestation/code/modules/blueshift/icons/tools.dmi' + icon_state = "prybar" + toolspeed = 1.3 + force_opens = TRUE + custom_materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 1.75, + /datum/material/titanium = HALF_SHEET_MATERIAL_AMOUNT, + ) + +/obj/item/crowbar/large/doorforcer/Initialize(mapload) + . = ..() + AddElement(/datum/element/manufacturer_examine, COMPANY_FRONTIER) + +// Backpackable mining drill + +/obj/item/pickaxe/drill/compact + name = "compact mining drill" + desc = "A powered mining drill, it drills all over the place. Compact enough to hopefully fit in a backpack." + icon = 'monkestation/code/modules/blueshift/icons/tools.dmi' + icon_state = "drilla" + worn_icon_state = "drill" + w_class = WEIGHT_CLASS_NORMAL + toolspeed = 0.6 + custom_materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 3, + /datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, + ) + +/obj/item/pickaxe/drill/compact/Initialize(mapload) + . = ..() + AddElement(/datum/element/manufacturer_examine, COMPANY_FRONTIER) + +// Electric welder but not quite as strong + +/obj/item/weldingtool/electric/arc_welder + name = "arc welding tool" + desc = "A specialized welding tool utilizing high powered arcs of electricity to weld things together. \ + Compared to other electrically-powered welders, this model is slow and highly power inefficient, \ + but it still gets the job done and chances are you printed this bad boy off for free." + icon = 'monkestation/code/modules/blueshift/icons/tools.dmi' + icon_state = "arc_welder" + usesound = 'monkestation/code/modules/blueshift/sounds/arc_welder/arc_welder.ogg' + light_outer_range = 2 + light_power = 0.75 + toolspeed = 1 + power_use_amount = 100 + +/obj/item/weldingtool/electric/arc_welder/Initialize(mapload) + . = ..() + AddElement(/datum/element/manufacturer_examine, COMPANY_FRONTIER) + +/obj/item/weldingtool/electric + name = "electrical welding tool" + desc = "An experimental welding tool capable of welding functionality through the use of electricity. The flame seems almost cold." + icon = 'monkestation/code/modules/blueshift/icons/tools.dmi' + icon_state = "arc_welder" + light_power = 1 + light_color = LIGHT_COLOR_HALOGEN + tool_behaviour = NONE + toolspeed = 0.2 + power_use_amount = 25 + // We don't use fuel + change_icons = FALSE + var/cell_override = /obj/item/stock_parts/cell/high + var/powered = FALSE + max_fuel = 20 + +/obj/item/weldingtool/electric/Initialize(mapload) + . = ..() + AddComponent(/datum/component/cell, cell_override, CALLBACK(src, PROC_REF(switched_off))) + +/obj/item/weldingtool/electric/attack_self(mob/user, modifiers) + . = ..() + if(!powered) + if(!(item_use_power(power_use_amount, user, TRUE) & COMPONENT_POWER_SUCCESS)) + return + powered = !powered + playsound(src, 'sound/effects/sparks4.ogg', 100, TRUE) + if(powered) + to_chat(user, span_notice("You turn [src] on.")) + switched_on() + return + to_chat(user, span_notice("You turn [src] off.")) + switched_off() + +/obj/item/weldingtool/electric/switched_on(mob/user) + welding = TRUE + tool_behaviour = TOOL_WELDER + light_on = TRUE + force = 15 + damtype = BURN + hitsound = 'sound/items/welder.ogg' + set_light_on(powered) + update_appearance() + START_PROCESSING(SSobj, src) + +/obj/item/weldingtool/electric/switched_off(mob/user) + powered = FALSE + welding = FALSE + light_on = FALSE + force = initial(force) + damtype = BRUTE + set_light_on(powered) + tool_behaviour = NONE + update_appearance() + STOP_PROCESSING(SSobj, src) + +/obj/item/weldingtool/electric/process(seconds_per_tick) + if(!powered) + switched_off() + return + if(!(item_use_power(power_use_amount) & COMPONENT_POWER_SUCCESS)) + switched_off() + return + +// We don't need to know how much fuel it has, because it doesn't use any. +/obj/item/weldingtool/electric/examine(mob/user) + . = ..() + . -= "It contains [get_fuel()] unit\s of fuel out of [max_fuel]." + +// This is what uses fuel in the parent. We override it here to not use fuel +/obj/item/weldingtool/electric/use(used = 0) + return isOn() + +/obj/item/weldingtool/electric/examine() + . = ..() + . += "[src] is currently [powered ? "powered" : "unpowered"]." + +/obj/item/weldingtool/electric/update_icon_state() + if(powered) + inhand_icon_state = "[initial(inhand_icon_state)]1" + else + inhand_icon_state = "[initial(inhand_icon_state)]" + return ..() + diff --git a/monkestation/code/modules/blueshift/looping_sounds/flatpack.dm b/monkestation/code/modules/blueshift/looping_sounds/flatpack.dm new file mode 100644 index 000000000000..42dfcbfbb2cc --- /dev/null +++ b/monkestation/code/modules/blueshift/looping_sounds/flatpack.dm @@ -0,0 +1,49 @@ +/datum/looping_sound/colony_fabricator_running + start_sound = 'monkestation/code/modules/blueshift/sounds/fabricator/fabricator_start.wav' + start_length = 1 + mid_sounds = list( + 'monkestation/code/modules/blueshift/sounds/fabricator/fabricator_mid_1.wav' = 1, + 'monkestation/code/modules/blueshift/sounds/fabricator/fabricator_mid_2.wav' = 1, + 'monkestation/code/modules/blueshift/sounds/fabricator/fabricator_mid_3.wav' = 1, + 'monkestation/code/modules/blueshift/sounds/fabricator/fabricator_mid_4.wav' = 1, + ) + mid_length = 3 SECONDS + end_sound = 'monkestation/code/modules/blueshift/sounds/fabricator/fabricator_end.wav' + volume = 100 + falloff_exponent = 3 + +/datum/looping_sound/arc_furnace_running + mid_sounds = list( + 'monkestation/code/modules/blueshift/sounds/arc_furnace/arc_furnace_mid_1.wav' = 1, + 'monkestation/code/modules/blueshift/sounds/arc_furnace/arc_furnace_mid_2.wav' = 1, + 'monkestation/code/modules/blueshift/sounds/arc_furnace/arc_furnace_mid_3.wav' = 1, + 'monkestation/code/modules/blueshift/sounds/arc_furnace/arc_furnace_mid_4.wav' = 1, + ) + mid_length = 1 SECONDS + volume = 200 // This sound effect is very quiet I've noticed + falloff_exponent = 2 + +/datum/looping_sound/conditioner_running + mid_sounds = list( + 'monkestation/code/modules/blueshift/sounds/conditioner/conditioner_1.wav' = 1, + 'monkestation/code/modules/blueshift/sounds/conditioner/conditioner_2.wav' = 1, + 'monkestation/code/modules/blueshift/sounds/conditioner/conditioner_3.wav' = 1, + 'monkestation/code/modules/blueshift/sounds/conditioner/conditioner_4.wav' = 1, + ) + mid_length = 3 SECONDS + volume = 40 + falloff_exponent = 3 + +/datum/looping_sound/ore_thumper_fan + start_sound = 'monkestation/code/modules/blueshift/sounds/thumper_fan/fan_start.wav' + start_length = 3 + mid_sounds = list( + 'monkestation/code/modules/blueshift/sounds/thumper_fan/fan_mid_1.wav' = 1, + 'monkestation/code/modules/blueshift/sounds/thumper_fan/fan_mid_2.wav' = 1, + 'monkestation/code/modules/blueshift/sounds/thumper_fan/fan_mid_3.wav' = 1, + 'monkestation/code/modules/blueshift/sounds/thumper_fan/fan_mid_4.wav' = 1, + ) + mid_length = 3 SECONDS + end_sound = 'monkestation/code/modules/blueshift/sounds/thumper_fan/fan_end.wav' + volume = 100 + falloff_exponent = 3 diff --git a/monkestation/code/modules/blueshift/machines/access_vending.dm b/monkestation/code/modules/blueshift/machines/access_vending.dm new file mode 100644 index 000000000000..d2dffab7409d --- /dev/null +++ b/monkestation/code/modules/blueshift/machines/access_vending.dm @@ -0,0 +1,244 @@ +/** + * This vending machine supports a list of items that changes based on the user/card's access. + */ +/obj/machinery/vending/access + name = "access-based vending machine" + /// Internal variable to store our access list + var/list/access_lists + /// Should we auto build our product list? 0 means no + var/auto_build_products = 0 + +/** + * This is where you generate the list to store what items each access grants. + * Should be an assosciative list where the key is the access as a string and the value is the items typepath. + * You can also set it to TRUE instead of a list to allow them to purchase anything. + */ +/obj/machinery/vending/access/proc/build_access_list(list/access_lists) + return + +/obj/machinery/vending/access/Initialize(mapload) + var/list/_list = new + build_access_list(_list) + access_lists = _list + if(auto_build_products) + products = list() + for(var/access in access_lists) + for(var/item in (access_lists[access])) + if(!ispath(item)) + continue + if(item in products) + continue + products[item] = auto_build_products + return ..() + +/obj/machinery/vending/access/ui_static_data(mob/user) + . = ..() + if(issilicon(user)) + return // Silicons get to view all items regardless + + .["product_records"] = list() // Vending machine code is bad; I hate it + if(!iscarbon(user)) + return + + var/mob/living/carbon/carbon_user = user + var/obj/item/card/id/user_id = carbon_user.get_idcard(TRUE) + if(onstation && !user_id && !(obj_flags & EMAGGED)) + return + + // Alright so, this is the EXACT SAME LOOP as our base proc; however we check to see if the user is allowed to purchase it first. + for (var/datum/data/vending_product/record in product_records) + if(!allow_purchase(user_id, record.product_path)) + continue + var/list/data = list( + path = replacetext(replacetext("[record.product_path]", "/obj/item/", ""), "/", "-"), + name = record.name, + price = record.custom_price || default_price, + max_amount = record.max_amount, + ref = REF(record) + ) + .["product_records"] += list(data) + +/// Check if the list of given access is allowed to purchase the given product +/obj/machinery/vending/access/proc/allow_purchase(var/obj/item/card/id/user_id, product_path) + if(obj_flags & EMAGGED || !onstation) + return TRUE + . = FALSE + var/list/access = user_id.access + for(var/acc in access) + acc = "[acc]" // U G L Y + if(!((acc) in access_lists)) + continue + + if(isnum(access_lists[acc]) && access_lists[acc]) + return access_lists[acc] + + if(product_path in (access_lists[acc])) + return TRUE + +/// Debug version to verify access checking is working and functional +/obj/machinery/vending/access/debug + auto_build_products = TRUE + +/obj/machinery/vending/access/debug/build_access_list(list/access_lists) + access_lists["[ACCESS_ENGINEERING]"] = TRUE + access_lists["[ACCESS_EVA]"] = list(/obj/item/crowbar) + access_lists["[ACCESS_SECURITY]"] = list(/obj/item/wrench, /obj/item/gun/ballistic/revolver/mateba) + +/obj/machinery/vending/access/command + name = "\improper Command Outfitting Station" + desc = "A vending machine for specialised clothing for members of Command." + product_ads = "File paperwork in style!;It's red so you can't see the blood!;You have the right to be fashionable!;Now you can be the fashion police you always wanted to be!" + icon = 'monkestation/code/modules/blueshift/icons/vending.dmi' + icon_state = "commdrobe" + light_mask = "wardrobe-light-mask" + vend_reply = "Thank you for using the CommDrobe!" + auto_build_products = TRUE + payment_department = ACCOUNT_CMD + + refill_canister = /obj/item/vending_refill/wardrobe/comm_wardrobe + payment_department = ACCOUNT_CMD + light_color = COLOR_COMMAND_BLUE + +/obj/item/vending_refill/wardrobe/comm_wardrobe + machine_name = "CommDrobe" + +/obj/machinery/vending/access/command/build_access_list(list/access_lists) + access_lists["[ACCESS_CAPTAIN]"] = list( + // CAPTAIN + /obj/item/clothing/head/hats/caphat = 1, + /obj/item/clothing/head/caphat/beret = 1, + /obj/item/clothing/head/caphat/beret/alt = 1, + /obj/item/clothing/head/hats/imperial/cap = 1, + /obj/item/clothing/under/rank/captain = 1, + /obj/item/clothing/under/rank/captain/skirt = 1, + /obj/item/clothing/under/rank/captain/dress = 1, + /obj/item/clothing/under/rank/captain/nova/kilt = 1, + /obj/item/clothing/under/rank/captain/nova/imperial = 1, + /obj/item/clothing/head/hats/caphat/parade = 1, + /obj/item/clothing/under/rank/captain/parade = 1, + /obj/item/clothing/suit/armor/vest/capcarapace/captains_formal = 1, + /obj/item/clothing/suit/armor/vest/capcarapace/jacket = 1, + /obj/item/clothing/suit/jacket/capjacket = 1, + /obj/item/clothing/neck/cloak/cap = 1, + /obj/item/clothing/neck/mantle/capmantle = 1, + /obj/item/storage/backpack/captain = 1, + /obj/item/storage/backpack/satchel/cap = 1, + /obj/item/storage/backpack/duffelbag/captain = 1, + /obj/item/clothing/shoes/sneakers/brown = 1, + + // BLUESHIELD + /obj/item/clothing/head/beret/blueshield = 1, + /obj/item/clothing/head/beret/blueshield/navy = 1, + /obj/item/clothing/under/rank/blueshield = 1, + /obj/item/clothing/under/rank/blueshield/skirt = 1, + /obj/item/clothing/under/rank/blueshield/turtleneck = 1, + /obj/item/clothing/under/rank/blueshield/turtleneck/skirt = 1, + /obj/item/clothing/suit/armor/vest/blueshield = 1, + /obj/item/clothing/suit/armor/vest/blueshield/jacket = 1, + /obj/item/clothing/neck/mantle/bsmantle = 1, + /obj/item/storage/backpack/blueshield = 1, + /obj/item/storage/backpack/satchel/blueshield = 1, + /obj/item/storage/backpack/duffelbag/blueshield = 1, + /obj/item/clothing/shoes/laceup = 1, + ) + access_lists["[ACCESS_HOP]"] = list( // Best head btw + /obj/item/clothing/head/hats/hopcap = 1, + /obj/item/clothing/head/hopcap/beret = 1, + /obj/item/clothing/head/hopcap/beret/alt = 1, + /obj/item/clothing/head/hats/imperial/hop = 1, + /obj/item/clothing/under/rank/civilian/head_of_personnel = 1, + /obj/item/clothing/under/rank/civilian/head_of_personnel/skirt = 1, + /obj/item/clothing/under/rank/civilian/head_of_personnel/nova/turtleneck = 1, + /obj/item/clothing/under/rank/civilian/head_of_personnel/nova/turtleneck/skirt = 1, + /obj/item/clothing/under/rank/civilian/head_of_personnel/nova/parade = 1, + /obj/item/clothing/under/rank/civilian/head_of_personnel/nova/parade/female = 1, + /obj/item/clothing/under/rank/civilian/head_of_personnel/nova/imperial = 1, + /obj/item/clothing/suit/armor/vest/hop/hop_formal = 1, + /obj/item/clothing/neck/cloak/hop = 1, + /obj/item/clothing/neck/mantle/hopmantle = 1, + /obj/item/storage/backpack/head_of_personnel = 1, + /obj/item/storage/backpack/satchel/head_of_personnel = 1, + /obj/item/storage/backpack/duffelbag/head_of_personnel = 1, + /obj/item/clothing/shoes/sneakers/brown = 1, + ) + access_lists["[ACCESS_CMO]"] = list( + /obj/item/clothing/head/beret/medical/cmo = 1, + /obj/item/clothing/head/beret/medical/cmo/alt = 1, + /obj/item/clothing/head/hats/imperial/cmo = 1, + /obj/item/clothing/under/rank/medical/chief_medical_officer = 1, + /obj/item/clothing/under/rank/medical/chief_medical_officer/skirt = 1, + /obj/item/clothing/under/rank/medical/chief_medical_officer/turtleneck = 1, + /obj/item/clothing/under/rank/medical/chief_medical_officer/nova/imperial = 1, + /obj/item/clothing/neck/cloak/cmo = 1, + /obj/item/clothing/neck/mantle/cmomantle = 1, + /obj/item/clothing/shoes/sneakers/brown = 1, + ) + access_lists["[ACCESS_RD]"] = list( + /obj/item/clothing/head/beret/science/rd = 1, + /obj/item/clothing/head/beret/science/rd/alt = 1, + /obj/item/clothing/under/rank/rnd/research_director = 1, + /obj/item/clothing/under/rank/rnd/research_director/skirt = 1, + /obj/item/clothing/under/rank/rnd/research_director/alt = 1, + /obj/item/clothing/under/rank/rnd/research_director/turtleneck = 1, + /obj/item/clothing/under/rank/rnd/research_director/turtleneck/skirt = 1, + /obj/item/clothing/under/rank/rnd/research_director/nova/imperial = 1, + /obj/item/clothing/neck/cloak/rd = 1, + /obj/item/clothing/neck/mantle/rdmantle = 1, + /obj/item/clothing/suit/toggle/labcoat = 1, + /obj/item/clothing/shoes/sneakers/brown = 1, + ) + access_lists["[ACCESS_CE]"] = list( + /obj/item/clothing/head/beret/engi/ce = 1, + /obj/item/clothing/head/hats/imperial/ce = 1, + /obj/item/clothing/under/rank/engineering/chief_engineer = 1, + /obj/item/clothing/under/rank/engineering/chief_engineer/skirt = 1, + /obj/item/clothing/under/rank/engineering/chief_engineer/nova/imperial = 1, + /obj/item/clothing/neck/cloak/ce = 1, + /obj/item/clothing/neck/mantle/cemantle = 1, + /obj/item/clothing/shoes/sneakers/brown = 1, + ) + access_lists["[ACCESS_HOS]"] = list( + /obj/item/clothing/head/hats/hos/cap = 1, + /obj/item/clothing/head/hats/hos/beret/navyhos = 1, + /obj/item/clothing/head/hats/imperial/hos = 1, + /obj/item/clothing/under/rank/security/head_of_security/peacekeeper = 1, + /obj/item/clothing/under/rank/security/head_of_security/alt = 1, + /obj/item/clothing/under/rank/security/head_of_security/alt/skirt = 1, + /obj/item/clothing/under/rank/security/head_of_security/nova/imperial = 1, + /obj/item/clothing/suit/jacket/hos/blue = 1, + /obj/item/clothing/under/rank/security/head_of_security/parade = 1, + /obj/item/clothing/suit/armor/hos/hos_formal = 1, + /obj/item/clothing/neck/cloak/hos = 1, + /obj/item/clothing/neck/mantle/hosmantle = 1, + /obj/item/clothing/shoes/sneakers/brown = 1, + ) + access_lists["[ACCESS_QM]"] = list( + /obj/item/clothing/head/beret/cargo/qm = 1, + /obj/item/clothing/head/beret/cargo/qm/alt = 1, + /obj/item/clothing/neck/cloak/qm = 1, + /obj/item/clothing/neck/mantle/qm = 1, + /obj/item/clothing/under/rank/cargo/qm = 1, + /obj/item/clothing/under/rank/cargo/qm/skirt = 1, + /obj/item/clothing/under/rank/cargo/qm/nova/gorka = 1, + /obj/item/clothing/under/rank/cargo/qm/nova/turtleneck = 1, + /obj/item/clothing/under/rank/cargo/qm/nova/turtleneck/skirt = 1, + /obj/item/clothing/suit/brownfurrich = 1, + /obj/item/clothing/under/rank/cargo/qm/nova/casual = 1, + /obj/item/clothing/suit/toggle/jacket/supply/head = 1, + /obj/item/clothing/under/rank/cargo/qm/nova/formal = 1, + /obj/item/clothing/under/rank/cargo/qm/nova/formal/skirt = 1, + /obj/item/clothing/shoes/sneakers/brown = 1, + ) + + access_lists["[ACCESS_COMMAND]"] = list( + /obj/item/clothing/head/hats/imperial = 5, + /obj/item/clothing/head/hats/imperial/grey = 5, + /obj/item/clothing/head/hats/imperial/white = 2, + /obj/item/clothing/head/hats/imperial/red = 5, + /obj/item/clothing/head/hats/imperial/helmet = 5, + /obj/item/clothing/under/rank/captain/nova/imperial/generic = 5, + /obj/item/clothing/under/rank/captain/nova/imperial/generic/grey = 5, + /obj/item/clothing/under/rank/captain/nova/imperial/generic/pants = 5, + /obj/item/clothing/under/rank/captain/nova/imperial/generic/red = 5, + ) + diff --git a/monkestation/code/modules/blueshift/machines/anesthetic_machine.dm b/monkestation/code/modules/blueshift/machines/anesthetic_machine.dm new file mode 100644 index 000000000000..b8e5ed0d21a7 --- /dev/null +++ b/monkestation/code/modules/blueshift/machines/anesthetic_machine.dm @@ -0,0 +1,233 @@ +//Credit to Beestation for the original anesthetic machine code: https://github.com/BeeStation/BeeStation-Hornet/pull/3753 + +/obj/machinery/anesthetic_machine + name = "portable anesthetic tank stand" + desc = "A stand on wheels, similar to an IV drip, that can hold a canister of anesthetic along with a gas mask." + icon = 'monkestation/code/modules/blueshift/icons/obj/machinery.dmi' + icon_state = "breath_machine" + anchored = FALSE + mouse_drag_pointer = MOUSE_ACTIVE_POINTER + use_power = NO_POWER_USE + /// The mask attached to the anesthetic machine + var/obj/item/clothing/mask/breath/anesthetic/attached_mask + /// the tank attached to the anesthetic machine, by default it does not come with one. + var/obj/item/tank/attached_tank = null + /// Is the attached mask currently out? + var/mask_out = FALSE + +/obj/machinery/anesthetic_machine/examine(mob/user) + . = ..() + + . += "Right-clicking with a wrench will deconstruct the stand, if there is no tank attached." + if(mask_out) + . += "Click on the stand to retract the mask, if the mask is currently out" + if(attached_tank) + . += "Alt + Click to remove [attached_tank]." + +/obj/machinery/anesthetic_machine/Initialize(mapload) + . = ..() + attached_mask = new /obj/item/clothing/mask/breath/anesthetic(src) + update_icon() + +/obj/machinery/anesthetic_machine/wrench_act_secondary(mob/living/user, obj/item/tool) + if(user.istate & ISTATE_HARM) + return ..() + + if(mask_out) + to_chat(user, span_warning("There is someone currently attached to the [src]!")) + return TRUE + + if(attached_tank) + to_chat(user, span_warning("[attached_tank] must be removed from [src] first!")) + return TRUE + + new /obj/item/anesthetic_machine_kit(get_turf(src)) + tool.play_tool_sound(user) + to_chat(user, span_notice("You deconstruct the [src].")) + qdel(src) + return TRUE + +/obj/machinery/anesthetic_machine/update_icon() + . = ..() + + cut_overlays() + + if(attached_tank) + add_overlay("tank_on") + + if(mask_out) + add_overlay("mask_off") + return + add_overlay("mask_on") + +/obj/machinery/anesthetic_machine/attack_hand(mob/living/user) + . = ..() + if(!retract_mask()) + return FALSE + visible_message(span_notice("[user] retracts [attached_mask] back into [src].")) + +/obj/machinery/anesthetic_machine/attackby(obj/item/attacking_item, mob/user, params) + if(!istype(attacking_item, /obj/item/tank)) + return ..() + + if(attached_tank) // If there is an attached tank, remove it and drop it on the floor + attached_tank.forceMove(loc) + + attacking_item.forceMove(src) // Put new tank in, set it as attached tank + visible_message(span_notice("[user] inserts [attacking_item] into [src].")) + attached_tank = attacking_item + update_icon() + +/obj/machinery/anesthetic_machine/AltClick(mob/user) + if(!attached_tank) + return + + attached_tank.forceMove(loc) + to_chat(user, span_notice("You remove the [attached_tank].")) + attached_tank = null + update_icon() + if(mask_out) + retract_mask() + return TRUE + +///Retracts the attached_mask back into the machine +/obj/machinery/anesthetic_machine/proc/retract_mask() + if(!mask_out) + return FALSE + + if(iscarbon(attached_mask.loc)) // If mask is on a mob + var/mob/living/carbon/attached_mob = attached_mask.loc + // Close external air tank + if (attached_mob.external) + attached_mob.close_externals() + attached_mob.transferItemToLoc(attached_mask, src, TRUE) + else + attached_mask.forceMove(src) + + mask_out = FALSE + update_icon() + return TRUE + +/obj/machinery/anesthetic_machine/MouseDrop_T(mob/living/carbon/over, mob/living/user) + . = ..() + if(!istype(over)) + return + + if((!Adjacent(over)) || !(user.Adjacent(over))) + return FALSE + + if(!attached_tank || mask_out) + to_chat(user, span_warning("[mask_out ? "The machine is already in use!" : "The machine has no attached tank!"]")) + return FALSE + + // if we somehow lost the mask, let's just make a brand new one. the wonders of technology! + if(QDELETED(attached_mask)) + attached_mask = new /obj/item/clothing/mask/breath/anesthetic(src) + update_icon() + + user.visible_message(span_warning("[user] attemps to attach the [attached_mask] to [over]."), span_notice("You attempt to attach the [attached_mask] to [over]")) + if(!do_after(user, 5 SECONDS, over)) + return + if(!over.equip_to_appropriate_slot(attached_mask)) + to_chat(user, span_warning("You are unable to attach the [attached_mask] to [over]!")) + return + + user.visible_message(span_warning("[user] attaches the [attached_mask] to [over]."), span_notice("You attach the [attached_mask] to [over]")) + + // Open the tank externally + over.open_internals(attached_tank, is_external = TRUE) + mask_out = TRUE + START_PROCESSING(SSmachines, src) + update_icon() + +/obj/machinery/anesthetic_machine/process() + if(!mask_out) // If not on someone, stop processing + return PROCESS_KILL + + var/mob/living/carbon/carbon_target = attached_mask.loc + if(get_dist(src, get_turf(attached_mask)) > 1) // If too far away, detach + to_chat(carbon_target, span_warning("[attached_mask] is ripped off of your face!")) + retract_mask() + return PROCESS_KILL + + // Attempt to restart airflow if it was temporarily interrupted after mask adjustment. + if(attached_tank && istype(carbon_target) && !carbon_target.external && !attached_mask.up) + carbon_target.open_internals(attached_tank, is_external = TRUE) + +/obj/machinery/anesthetic_machine/Destroy() + if(mask_out) + retract_mask() + + if(attached_tank) + attached_tank.forceMove(loc) + attached_tank = null + + QDEL_NULL(attached_mask) + return ..() + +/// This a special version of the breath mask used for the anesthetic machine. +/obj/item/clothing/mask/breath/anesthetic + /// What machine is the mask currently attached to? + var/datum/weakref/attached_machine + +/obj/item/clothing/mask/breath/anesthetic/Initialize(mapload) + . = ..() + ADD_TRAIT(src, TRAIT_NODROP, ABSTRACT_ITEM_TRAIT) + + // Make sure we are not spawning outside of a machine + if(istype(loc, /obj/machinery/anesthetic_machine)) + attached_machine = WEAKREF(loc) + + var/obj/machinery/anesthetic_machine/our_machine + if(attached_machine) + our_machine = attached_machine.resolve() + + if(!our_machine) + attached_machine = null + if(mapload) + stack_trace("Abstract, undroppable item [name] spawned at ([loc]) at [AREACOORD(src)] in \the [get_area(src)]. \ + Please remove it. This item should only ever be created by the anesthetic machine.") + return INITIALIZE_HINT_QDEL + +/obj/item/clothing/mask/breath/anesthetic/Destroy() + attached_machine = null + return ..() + +/obj/item/clothing/mask/breath/anesthetic/dropped(mob/user) + . = ..() + + if(isnull(attached_machine)) + return + + var/obj/machinery/anesthetic_machine/our_machine = attached_machine.resolve() + // no machine, then delete it + if(!our_machine) + attached_machine = null + qdel(src) + return + + if(loc != our_machine) //If it isn't in the machine, then it retracts when dropped + to_chat(user, span_notice("[src] retracts back into the [our_machine].")) + our_machine.retract_mask() + +/obj/item/clothing/mask/breath/anesthetic/adjustmask(mob/living/carbon/user) + . = ..() + // Air only goes through the mask, so temporarily pause airflow if mask is getting adjusted. + // Since the mask is NODROP, the only possible user is the wearer + var/mob/living/carbon/carbon_target = loc + if(up && carbon_target.external) + carbon_target.close_externals() + +/// A boxed version of the Anesthetic Machine. This is what is printed from the medical prolathe. +/obj/item/anesthetic_machine_kit + name = "anesthetic stand parts kit" + desc = "Contains all of the parts needed to assemble a portable anesthetic stand. Use in hand to construct." + w_class = WEIGHT_CLASS_BULKY + icon = 'icons/obj/storage/box.dmi' + icon_state = "plasticbox" + +/obj/item/anesthetic_machine_kit/attack_self(mob/user) + new /obj/machinery/anesthetic_machine(user.loc) + + playsound(get_turf(user), 'sound/weapons/circsawhit.ogg', 50, TRUE) + qdel(src) diff --git a/monkestation/code/modules/blueshift/machines/arc_furnace.dm b/monkestation/code/modules/blueshift/machines/arc_furnace.dm new file mode 100644 index 000000000000..28e6ecfa8de8 --- /dev/null +++ b/monkestation/code/modules/blueshift/machines/arc_furnace.dm @@ -0,0 +1,231 @@ +#define RADIAL_CHOICE_USE "use" +#define RADIAL_CHOICE_EJECT "eject" + +#define ARC_FURNACE_ORE_MULTIPLIER 1.5 + +/obj/machinery/arc_furnace + name = "arc furnace" + desc = "An arc furnace, a specialist machine that can rapidly smelt ores using, as the name implies, massive \ + amounts of electricity. While not nearly as fast and efficient as other ore refining methods, the arc furnace is \ + capable of returning larger amounts of refined material than a standard refining process can. \ + A sticker on the side notes that this may exhaust waste gasses to the air during operation." + icon = 'monkestation/code/modules/blueshift/icons/machines.dmi' + icon_state = "arc_furnace" + base_icon_state = "arc_furnace" + appearance_flags = KEEP_TOGETHER | LONG_GLIDE | PIXEL_SCALE + layer = BELOW_OBJ_LAYER + density = TRUE + circuit = null + light_color = LIGHT_COLOR_BRIGHT_YELLOW + light_power = 10 + active_power_usage = BASE_MACHINE_ACTIVE_CONSUMPTION * 10 // This baby consumes so much power + /// The item we turn into when repacked + var/repacked_type = /obj/item/flatpacked_machine/arc_furnace + /// If the furnace is currently working on smelting something + var/operating = FALSE + /// Image for the radial eject button + var/static/radial_eject = image(icon = 'icons/hud/radial.dmi', icon_state = "radial_eject") + /// Image for the radial use button + var/static/radial_use = image(icon = 'icons/hud/radial.dmi', icon_state = "radial_use") + /// Radial options for using the arc furnace + var/static/list/radial_options = list(RADIAL_CHOICE_EJECT = radial_eject, RADIAL_CHOICE_USE = radial_use) + /// Soundloop for while we are smelting ores + var/datum/looping_sound/arc_furnace_running/soundloop + +/obj/machinery/arc_furnace/Initialize(mapload) + . = ..() + soundloop = new(src, FALSE) + AddElement(/datum/element/repackable, repacked_type, 2 SECONDS) + AddElement(/datum/element/manufacturer_examine, COMPANY_FRONTIER) + if(!mapload) + flick("arc_furnace_deploy", src) + +/obj/machinery/arc_furnace/examine(mob/user) + . = ..() + if(length(contents)) + . += span_notice("It has [contents[1]] sitting in it.") + +// previously NO_DECONSTRUCTION +/obj/machinery/arc_furnace/default_deconstruction_screwdriver(mob/user, icon_state_open, icon_state_closed, obj/item/screwdriver) + return NONE + +/obj/machinery/arc_furnace/default_deconstruction_crowbar(obj/item/crowbar, ignore_panel, custom_deconstruct) + return NONE + +/obj/machinery/arc_furnace/default_pry_open(obj/item/crowbar, close_after_pry, open_density, closed_density) + return NONE + +/obj/machinery/arc_furnace/on_deconstruction(disassembled) + eject_contents() + +/obj/machinery/arc_furnace/update_appearance() + . = ..() + cut_overlays() + + if(length(contents)) + var/image/overlayed_item = image(icon = contents[1].icon, icon_state = contents[1].icon_state) + overlayed_item.transform = matrix(, 0, 0, 0, 0.8, 0) + add_overlay(overlayed_item) + + var/image/furnace_front_overlay = image(icon = icon, icon_state = "[operating ? "[base_icon_state]_overlay_active" : "[base_icon_state]_overlay"]") + add_overlay(furnace_front_overlay) + +/obj/machinery/arc_furnace/attackby(obj/item/attacking_item, mob/living/user, params) + if(operating) + balloon_alert(user, "furnace busy") + return TRUE + + if(length(contents)) + balloon_alert(user, "furnace full") + return TRUE + + if(istype(attacking_item, /obj/item/stack/ore)) + attacking_item.forceMove(src) + balloon_alert(user, "ore added") + update_appearance() + return TRUE + + return ..() + +/obj/machinery/arc_furnace/ui_interact(mob/user) + . = ..() + + if(operating || !user.can_perform_action(src, ALLOW_SILICON_REACH)) + return + if(isAI(user) && (machine_stat & NOPOWER)) + return + + if(!length(contents)) + balloon_alert(user, "it's empty!") + return + + var/choice = show_radial_menu(user, src, radial_options, require_near = !issilicon(user)) + + // post choice verification + if(operating || !user.can_perform_action(src, ALLOW_SILICON_REACH)) + return + if(isAI(user) && (machine_stat & NOPOWER)) + return + + switch(choice) + if(RADIAL_CHOICE_EJECT) + eject_contents() + if(RADIAL_CHOICE_USE) + smelt_it_up(user) + +/// Removes the first item in the contents list which should only ever be ore and if its not, we have problems +/obj/machinery/arc_furnace/proc/eject_contents() + if(operating) + return + + playsound(loc, 'sound/machines/click.ogg', 15, TRUE, -3) + + if(!length(contents)) + return + + var/atom/movable/thing_inside = contents[1] + thing_inside.forceMove(drop_location()) + update_appearance() + +/// Starts the smelting process, checking if the machine has power or if its broken at all +/obj/machinery/arc_furnace/proc/smelt_it_up(mob/user) + if(machine_stat & (NOPOWER|BROKEN)) + balloon_alert(user, "button doesn't respond") + return + if(operating) + balloon_alert(user, "already smelting") + return + + var/obj/item/stack/ore/ore_to_smelt = contents[1] + if(!istype(ore_to_smelt)) + balloon_alert(user, "nothing to smelt") + + operating = TRUE + /// How long the smelting is going to take based off the stack size + var/smelting_time = ore_to_smelt.amount * 1 SECONDS + loop(smelting_time) + + soundloop.start() + set_light(l_outer_range = 1.5) + + update_appearance() + +/// The smelting loop for checking if we're done smelting or not. If we are, then we succeed smelting. If we have to stop for whatever reason, we stop. +/obj/machinery/arc_furnace/proc/loop(time) + if(machine_stat & (NOPOWER|BROKEN)) + end_smelting() + return + + if(!length(contents)) + end_smelting() + return + + if(time <= 0) + succeed_smelting() + return + + time -= 1 SECONDS + use_power(active_power_usage) + + var/turf/where_we_spawn_air = get_turf(src) + var/obj/item/stack/ore/ore_stack_to_check = contents[1] + switch(ore_stack_to_check.refined_type) + if(/obj/item/stack/sheet/mineral/silver) + where_we_spawn_air.atmos_spawn_air("n2=10;TEMP=1200") + if(/obj/item/stack/sheet/mineral/uranium) + where_we_spawn_air.atmos_spawn_air("co2=50;TEMP=1200") + if(/obj/item/stack/sheet/mineral/titanium) + where_we_spawn_air.atmos_spawn_air("n2=10;co2=10;TEMP=1200") + if(/obj/item/stack/sheet/mineral/plasma) + where_we_spawn_air.atmos_spawn_air("co2=75;TEMP=2000") + else + where_we_spawn_air.atmos_spawn_air("co2=20;TEMP=1200") + + addtimer(CALLBACK(src, PROC_REF(loop), time), 1 SECONDS) + +/// Takes the ore contained and turns it into an equal stack amount of its smelt result +/obj/machinery/arc_furnace/proc/succeed_smelting() + var/obj/item/stack/ore/ore_to_smelt = contents[1] + if(!istype(ore_to_smelt)) + end_smelting() + + // We collect how many sheets of material we will need to spawn with the multiplier, whole sheets only! + var/how_much_material_to_spawn = round(ore_to_smelt.amount * ARC_FURNACE_ORE_MULTIPLIER) + // We also grab what the resulting refined type will be + var/obj/item/stack/ore_refined_type = ore_to_smelt.refined_type + + // While the materials to spawn are greater than or equal to the max stack amount of the product, we can just safely spawn the max amount + // Variable with the max stack amount just for futureproofing, because why not? + while(how_much_material_to_spawn >= ore_refined_type.max_amount) + new ore_refined_type(drop_location(), ore_refined_type.max_amount) + how_much_material_to_spawn -= ore_refined_type.max_amount + + // Now, we spawn a stack with whatever's left, if there is anything left + if(how_much_material_to_spawn) + new ore_refined_type(drop_location(), how_much_material_to_spawn) + + qdel(ore_to_smelt) + end_smelting() + +/// Turns the arc furnace off, removing its lights, sounds, so on. +/obj/machinery/arc_furnace/proc/end_smelting() + operating = FALSE + soundloop.stop() + set_light(l_outer_range = 0) + update_appearance() + +// Item for creating the arc furnace or carrying it around + +/obj/item/flatpacked_machine/arc_furnace + name = "flat-packed arc furnace" + icon_state = "arc_furnace_folded" + type_to_deploy = /obj/machinery/arc_furnace + custom_materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 7.5, + /datum/material/glass = SHEET_MATERIAL_AMOUNT * 3, + ) + +#undef RADIAL_CHOICE_USE +#undef RADIAL_CHOICE_EJECT + +#undef ARC_FURNACE_ORE_MULTIPLIER diff --git a/monkestation/code/modules/blueshift/machines/bullet_drive.dm b/monkestation/code/modules/blueshift/machines/bullet_drive.dm new file mode 100644 index 000000000000..670dd60d4e04 --- /dev/null +++ b/monkestation/code/modules/blueshift/machines/bullet_drive.dm @@ -0,0 +1,67 @@ +/obj/machinery/dish_drive/bullet + name = "bullet drive" + desc = "A modified verison of the dish drive, for security. Because they're lazy." + icon = 'monkestation/code/modules/blueshift/icons/misc/bulletdrive.dmi' + icon_state = "synthesizer" + density = TRUE + circuit = /obj/item/circuitboard/machine/dish_drive/bullet + collectable_items = list(/obj/item/ammo_casing) + suck_distance = 8 + binrange = 10 + +/obj/item/circuitboard/machine/dish_drive/bullet + name = "Bullet Drive (Machine Board)" + greyscale_colors = CIRCUIT_COLOR_SERVICE + build_path = /obj/machinery/dish_drive/bullet + req_components = list( + /obj/item/stack/sheet/glass = 1, + /datum/stock_part/manipulator = 1, + /datum/stock_part/matter_bin = 2, + ) + needs_anchored = TRUE + +/obj/machinery/dish_drive/bullet/do_the_dishes(manual) + if(!LAZYLEN(dish_drive_contents)) + if(manual) + visible_message(span_notice("[src] is empty!")) + return + var/obj/machinery/disposal/bin/bin = locate() in view(binrange, src) //NOVA EDIT CHANGE + if(!bin) + if(manual) + visible_message(span_warning("[src] buzzes. There are no disposal bins in range!")) + playsound(src, 'sound/machines/buzz-sigh.ogg', 50, TRUE) + return + var/disposed = 0 + for(var/obj/item/ammo_casing/A in dish_drive_contents) + if(!A.loaded_projectile) + LAZYREMOVE(dish_drive_contents, A) + qdel(A) + use_power(active_power_usage) + disposed++ + if(disposed) + visible_message(span_notice("[src] [pick("whooshes", "bwooms", "fwooms", "pshooms")] and demoleculizes [disposed] stored item\s into the nearby void.")) + playsound(src, 'sound/items/pshoom.ogg', 50, TRUE) + playsound(bin, 'sound/items/pshoom.ogg', 50, TRUE) + flick("synthesizer_beam", src) + else + visible_message(span_notice("There are no disposable items in [src]!")) + time_since_dishes = world.time + 600 + +/obj/machinery/dish_drive/bullet/process() + if(time_since_dishes <= world.time && transmit_enabled) + do_the_dishes() + if(!suction_enabled) + return + for(var/obj/item/I in view(2 + suck_distance, src)) + if(istype(I, /obj/machinery/dish_drive/bullet)) + visible_message(span_userdanger("[src] has detected another bullet drive nearby, and is sad!")) + break + if(is_type_in_list(I, collectable_items) && I.loc != src && (!I.reagents || !I.reagents.total_volume)) + if(I.Adjacent(src)) + LAZYADD(dish_drive_contents, I) + visible_message(span_notice("[src] beams up [I]!")) + I.moveToNullspace() + playsound(src, 'sound/items/pshoom.ogg', 50, TRUE) + flick("synthesizer_beam", src) + else + step_towards(I, src) diff --git a/monkestation/code/modules/blueshift/machines/good_assistant.dm b/monkestation/code/modules/blueshift/machines/good_assistant.dm new file mode 100644 index 000000000000..d65ed39c267f --- /dev/null +++ b/monkestation/code/modules/blueshift/machines/good_assistant.dm @@ -0,0 +1,189 @@ +#define GBP_PUNCH_REWARD 100 + +/obj/item/card/id + COOLDOWN_DECLARE(gbp_redeem_cooldown) + +/obj/item/gbp_punchcard + name = "Good Assistant Points punchcard" + desc = "The Good Assistant Points program is designed to supplement the income of otherwise unemployed or unpaid individuals on board Nanotrasen vessels and colonies.
\ + Simply get your punchcard stamped by a Head of Staff to earn 100 credits per punch upon turn-in at a Good Assistant Point machine!
\ + Maximum of six punches per any given card. Card replaced upon redemption of existing card. Do not lose your punchcard." + icon = 'monkestation/code/modules/blueshift/icons/punchcard.dmi' + icon_state = "punchcard_0" + w_class = WEIGHT_CLASS_TINY + var/max_punches = 6 + var/punches = 0 + COOLDOWN_DECLARE(gbp_punch_cooldown) + +/obj/item/gbp_punchcard/starting + icon_state = "punchcard_1" + punches = 1 // GBP_PUNCH_REWARD credits by default + +/obj/item/gbp_punchcard/attackby(obj/item/attacking_item, mob/user, params) + . = ..() + if(istype(attacking_item, /obj/item/gbp_puncher)) + if(!COOLDOWN_FINISHED(src, gbp_punch_cooldown)) + balloon_alert(user, "cooldown! [DisplayTimeText(COOLDOWN_TIMELEFT(src, gbp_punch_cooldown))]") + return + if(punches < max_punches) + punches++ + icon_state = "punchcard_[punches]" + COOLDOWN_START(src, gbp_punch_cooldown, 90 SECONDS) + log_econ("[user] punched a GAP card that is now at [punches]/[max_punches] punches.") + playsound(attacking_item, 'sound/items/boxcutter_activate.ogg', 100) + if(punches == max_punches) + playsound(src, 'sound/items/party_horn.ogg', 100) + say("Congratulations, you have finished your punchcard!") + else + balloon_alert(user, "no room!") + +/obj/item/gbp_puncher + name = "Good Assistant Points puncher" + desc = "A puncher for use with the Good Assistant Points system. Use it on a punchcard to punch a hole. Expect to be hassled for punches by assistants." + icon = 'monkestation/code/modules/blueshift/icons/punchcard.dmi' + icon_state = "puncher" + w_class = WEIGHT_CLASS_TINY + +/obj/machinery/gbp_redemption + name = "Good Assistant Points Redemption Machine" + desc = "Turn your Good Assistant Points punchcards in here for a payout based on the amount of punches you have, and get a new card!" + icon = 'monkestation/code/modules/blueshift/icons/punchcard.dmi' + icon_state = "gbp_machine" + density = TRUE + circuit = /obj/item/circuitboard/machine/gbp_redemption + +/obj/machinery/gbp_redemption/wrench_act(mob/living/user, obj/item/tool) + . = ..() + default_unfasten_wrench(user, tool) + return + +/obj/machinery/gbp_redemption/attackby(obj/item/attacking_item, mob/user, params) + if(default_deconstruction_screwdriver(user, "gbp_machine_open", "gbp_machine", attacking_item)) + return + + if(default_pry_open(attacking_item, close_after_pry = TRUE)) + return + + if(default_deconstruction_crowbar(attacking_item)) + return + + if(istype(attacking_item, /obj/item/gbp_punchcard)) + var/obj/item/gbp_punchcard/punchcard = attacking_item + var/amount_to_reward = punchcard.punches * GBP_PUNCH_REWARD + if(!punchcard.punches) + playsound(src, 'sound/machines/scanbuzz.ogg', 100) + say("You can't redeem an unpunched card!") + return + + var/obj/item/card/id/card_used + if(isliving(user)) + var/mob/living/living_user = user + card_used = living_user.get_idcard(TRUE) + + if(isnull(card_used)) + return + + if(!COOLDOWN_FINISHED(card_used, gbp_redeem_cooldown)) + balloon_alert(user, "cooldown! [DisplayTimeText(COOLDOWN_TIMELEFT(card_used, gbp_redeem_cooldown))]") + return + + if(!card_used.registered_account || !istype(card_used.registered_account.account_job, /datum/job/assistant)) + playsound(src, 'sound/machines/scanbuzz.ogg', 100) + say("You cannot redeem a punchcard without a valid assistant bank account!") + return + + if(punchcard.punches < punchcard.max_punches) + if(tgui_alert(user, "You haven't finished the punchcard! Are you sure you want to redeem, starting the 15 minute timer?", "A real goof effort right here", list("No", "Yes")) != "Yes") + return + + if(!punchcard.punches) // check to see if someone left the dialog open to redeem a card twice + return + + var/validated_punches = punchcard.punches + punchcard.punches = 0 + playsound(src, 'sound/machines/printer.ogg', 100) + card_used.registered_account.adjust_money(amount_to_reward, "GAP: [validated_punches] punches") + log_econ("[amount_to_reward] credits were rewarded to [card_used.registered_account.account_holder]'s account for redeeming a GAP card.") + say("Rewarded [amount_to_reward] to your account, and dispensed a ration pack! Thank you for being a Good Assistant! Please take your new punchcard.") + COOLDOWN_START(card_used, gbp_redeem_cooldown, 12 MINUTES) + user.temporarilyRemoveItemFromInventory(punchcard) + qdel(punchcard) + var/obj/item/storage/fancy/nugget_box/nuggies = new(get_turf(src)) + var/obj/item/gbp_punchcard/replacement_card = new(get_turf(src)) + user.put_in_hands(nuggies) + user.put_in_hands(replacement_card) + return + + return ..() + +/obj/item/circuitboard/machine/gbp_redemption + name = "Good Assistant Point Redemption Machine" + greyscale_colors = CIRCUIT_COLOR_SUPPLY + build_path = /obj/machinery/gbp_redemption + req_components = list( + /datum/stock_part/manipulator = 1) + + +/datum/outfit/job/rd/pre_equip(mob/living/carbon/human/human, visualsOnly) + . = ..() + backpack_contents += list( + /obj/item/gbp_puncher = 1 + ) + +/datum/outfit/job/hos/pre_equip(mob/living/carbon/human/human, visualsOnly) + . = ..() + backpack_contents += list( + /obj/item/gbp_puncher = 1, + ) + +/datum/outfit/job/hop/pre_equip(mob/living/carbon/human/human, visualsOnly) + . = ..() + backpack_contents += list( + /obj/item/gbp_puncher = 1, + ) + +/datum/outfit/job/ce/pre_equip(mob/living/carbon/human/human, visualsOnly) + . = ..() + backpack_contents += list( + /obj/item/gbp_puncher = 1, + ) + +/datum/outfit/job/cmo/pre_equip(mob/living/carbon/human/human, visualsOnly) + . = ..() + backpack_contents += list( + /obj/item/gbp_puncher = 1, + ) + +/datum/outfit/job/captain/pre_equip(mob/living/carbon/human/human, visualsOnly) + . = ..() + backpack_contents += list( + /obj/item/gbp_puncher = 1, + ) + +/datum/outfit/job/quartermaster/pre_equip(mob/living/carbon/human/human, visualsOnly) + . = ..() + backpack_contents += list( + /obj/item/gbp_puncher = 1, + ) + +/datum/outfit/job/assistant/pre_equip(mob/living/carbon/human/human, visualsOnly) + . = ..() + backpack_contents += list(/obj/item/gbp_punchcard/starting) + +/datum/design/board/gbp_machine + name = "Good Assistant Points Redemption Machine Board" + desc = "The circuit board for a Good Assistant Points Redemption Machine." + id = "gbp_machine" + build_path = /obj/item/circuitboard/machine/gbp_redemption + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_CARGO + ) + departmental_flags = DEPARTMENT_BITFLAG_CARGO + +//Base Nodes +/datum/techweb_node/base/New() + design_ids += list( + "polarizer", + "gbp_machine", + ) + return ..() diff --git a/monkestation/code/modules/blueshift/machines/misc.dm b/monkestation/code/modules/blueshift/machines/misc.dm new file mode 100644 index 000000000000..ce3fa1ef613b --- /dev/null +++ b/monkestation/code/modules/blueshift/machines/misc.dm @@ -0,0 +1,2 @@ +/obj/machinery/power/smes/full + charge = 50 * 1 MW diff --git a/monkestation/code/modules/blueshift/machines/ore_silo.dm b/monkestation/code/modules/blueshift/machines/ore_silo.dm new file mode 100644 index 000000000000..9763c8826307 --- /dev/null +++ b/monkestation/code/modules/blueshift/machines/ore_silo.dm @@ -0,0 +1,27 @@ +/obj/machinery/ore_silo/colony_lathe + name = "colony ore silo" + desc = "An all-in-one materials management solution. Connects resource-using machines \ + through a network of distribution systems." + icon = 'monkestation/code/modules/blueshift/icons/ore_silo.dmi' + circuit = null + /// What this packs into + var/packed_type = /obj/item/flatpacked_machine/ore_silo + +/obj/machinery/ore_silo/colony_lathe/silo_log(obj/machinery/machinery_in_question, action, amount, noun, list/mats) + . = ..() + playsound(src, 'sound/machines/beep.ogg', 30, TRUE) + AddElement(/datum/element/repackable, packed_type, 10 SECONDS) + +/obj/machinery/ore_silo/colony_lathe/default_deconstruction_crowbar() + return + +// Item for deploying ore silos +/obj/item/flatpacked_machine/ore_silo + name = "flat-packed ore silo" + icon = 'monkestation/code/modules/blueshift/icons/ore_silo.dmi' + icon_state = "ore_silo" + type_to_deploy = /obj/machinery/ore_silo/colony_lathe + custom_materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 5, + /datum/material/glass = SHEET_MATERIAL_AMOUNT * 5, + ) diff --git a/monkestation/code/modules/blueshift/machines/posi_alert.dm b/monkestation/code/modules/blueshift/machines/posi_alert.dm new file mode 100644 index 000000000000..7deedaad63c7 --- /dev/null +++ b/monkestation/code/modules/blueshift/machines/posi_alert.dm @@ -0,0 +1,64 @@ +/obj/machinery/posialert + name = "automated positronic alert console" + desc = "A console that will ping when a positronic personality is available for download." + icon = 'monkestation/code/modules/blueshift/icons/terminals.dmi' + icon_state = "posialert" + // to create a cooldown so if roboticists are tired of ghosts + COOLDOWN_DECLARE(robotics_cooldown) + /// the reason that the console is muted (player decided) + var/mute_reason + // to create a cooldown so ghosts cannot spam it + COOLDOWN_DECLARE(ghost_cooldown) + /// The encryption key typepath that will be used by the console. + var/radio_key = /obj/item/encryptionkey/headset_sci + /// The radio used to send messages over the science channel. + var/obj/item/radio/radio + +MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/posialert, 28) + +/obj/machinery/posialert/examine(mob/user) + . = ..() + if(!COOLDOWN_FINISHED(src, robotics_cooldown)) + . += span_notice("Remaining time on mute is [COOLDOWN_TIMELEFT(src, robotics_cooldown) * 0.1] seconds.") + . += span_notice("Mute reason: [mute_reason]") + . += span_notice("Press the screen to mute or unmute the console.") + +/obj/machinery/posialert/Initialize(mapload) + . = ..() + radio = new(src) + radio.keyslot = new radio_key + radio.set_listening(FALSE) + radio.recalculateChannels() + +/obj/machinery/posialert/Destroy() + QDEL_NULL(radio) + . = ..() + +/obj/machinery/posialert/attack_hand(mob/living/user, list/modifiers) + . = ..() + if(!COOLDOWN_FINISHED(src, robotics_cooldown)) + COOLDOWN_RESET(src, robotics_cooldown) + to_chat(user, span_notice("You have removed the mute on [src].")) + return + mute_reason = null + mute_reason = stripped_input(user, "What would the reason for the mute be? (max characters is 20)", "Mute Reason", "", 20) + if(!mute_reason) + to_chat(user, span_warning("[src] requires a reason to mute!")) + return + COOLDOWN_START(src, robotics_cooldown, 5 MINUTES) + to_chat(user, span_notice("You have muted [src] for five minutes.")) + +/obj/machinery/posialert/attack_ghost(mob/user) + . = ..() + if(!COOLDOWN_FINISHED(src, robotics_cooldown)) + to_chat(user, span_warning("[src] has been muted! Remaining time on mute is [COOLDOWN_TIMELEFT(src, robotics_cooldown) * 0.1] seconds.")) + to_chat(user, span_warning("[src]'s mute reason: [mute_reason]")) + return + if(!COOLDOWN_FINISHED(src, ghost_cooldown)) + to_chat(user, span_warning("[src] is currently still on cooldown! Remaining time on cooldown is [COOLDOWN_TIMELEFT(src, ghost_cooldown) * 0.1] seconds.")) + return + COOLDOWN_START(src, ghost_cooldown, 30 SECONDS) + flick("posialertflash",src) + say("There are positronic personalities available.") + radio.talk_into(src, "There are positronic personalities available.", RADIO_CHANNEL_SCIENCE) + playsound(loc, 'sound/machines/ping.ogg', 50) diff --git a/monkestation/code/modules/blueshift/machines/power_storage_unit.dm b/monkestation/code/modules/blueshift/machines/power_storage_unit.dm new file mode 100644 index 000000000000..80bb35db84d3 --- /dev/null +++ b/monkestation/code/modules/blueshift/machines/power_storage_unit.dm @@ -0,0 +1,101 @@ +/obj/machinery/power/smes/battery_pack + name = "stationary battery" + desc = "An about table-height block of power storage, commonly seen in low storage high output power applications. \ + Smaller units such as these tend to have a respectively smaller energy storage, though also are capable of \ + higher maximum output than some larger units. Most commonly seen being used not for their ability to store \ + power, but rather for use in regulating power input and output." + icon = 'monkestation/code/modules/blueshift/icons/power_storage_unit/small_battery.dmi' + capacity = 750 * 1000 + input_level_max = 400 * 1000 + output_level_max = 400 * 1000 + circuit = null + /// The item we turn into when repacked + var/repacked_type = /obj/item/flatpacked_machine/station_battery + +/obj/machinery/power/smes/battery_pack/Initialize(mapload) + . = ..() + AddElement(/datum/element/repackable, repacked_type, 5 SECONDS) + AddElement(/datum/element/manufacturer_examine, COMPANY_FRONTIER) + if(!mapload) + flick("smes_deploy", src) + +/obj/machinery/power/smes/battery_pack/default_deconstruction_screwdriver(mob/user, icon_state_open, icon_state_closed, obj/item/screwdriver) + if(screwdriver.tool_behaviour != TOOL_SCREWDRIVER) + return FALSE + + screwdriver.play_tool_sound(src, 50) + toggle_panel_open() + if(panel_open) + icon_state = icon_state_open + to_chat(user, span_notice("You open the maintenance hatch of [src].")) + else + icon_state = icon_state_closed + to_chat(user, span_notice("You close the maintenance hatch of [src].")) + return TRUE + +// previously NO_DECONSTRUCTION +/obj/machinery/power/smes/battery_pack/default_deconstruction_crowbar(obj/item/crowbar, ignore_panel, custom_deconstruct) + return NONE + +/obj/machinery/power/smes/battery_pack/default_pry_open(obj/item/crowbar, close_after_pry, open_density, closed_density) + return NONE + +// We don't care about the parts updates because we don't want them to change +/obj/machinery/power/smes/battery_pack/RefreshParts() + return + +// We also don't need to bother with fuddling with charging power cells, there are none to remove +/obj/machinery/power/smes/battery_pack/on_deconstruction() + return + +// Automatically set themselves to be completely charged on init + +/obj/machinery/power/smes/battery_pack/precharged + +/obj/machinery/power/smes/battery_pack/precharged/Initialize(mapload) + . = ..() + charge = capacity + +// Item for creating the small battery and carrying it around + +/obj/item/flatpacked_machine/station_battery + name = "flat-packed stationary battery" + icon_state = "battery_small_packed" + type_to_deploy = /obj/machinery/power/smes/battery_pack + custom_materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 7, + /datum/material/glass = SHEET_MATERIAL_AMOUNT * 2, + /datum/material/silver = HALF_SHEET_MATERIAL_AMOUNT, + ) + +// Larger station batteries, hold more but have less in/output + +/obj/machinery/power/smes/battery_pack/large + name = "large stationary battery" + desc = "A massive block of power storage, commonly seen in high storage low output power applications. \ + Larger units such as these tend to have a respectively larger energy storage, though only capable of \ + low maximum output compared to smaller units. Most commonly seen as large backup batteries, or simply \ + for large power storage where throughput is not a concern." + icon = 'monkestation/code/modules/blueshift/icons/power_storage_unit/large_battery.dmi' + capacity = 10000 * 1000 + input_level_max = 50 * 1000 + output_level_max = 50 * 1000 + repacked_type = /obj/item/flatpacked_machine/large_station_battery + +// Automatically set themselves to be completely charged on init + +/obj/machinery/power/smes/battery_pack/large/precharged + +/obj/machinery/power/smes/battery_pack/large/precharged/Initialize(mapload) + . = ..() + charge = capacity + +/obj/item/flatpacked_machine/large_station_battery + name = "flat-packed large stationary battery" + icon_state = "battery_large_packed" + type_to_deploy = /obj/machinery/power/smes/battery_pack/large + custom_materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 12, + /datum/material/glass = SHEET_MATERIAL_AMOUNT * 4, + /datum/material/gold = SHEET_MATERIAL_AMOUNT, + ) diff --git a/monkestation/code/modules/blueshift/machines/rtg.dm b/monkestation/code/modules/blueshift/machines/rtg.dm new file mode 100644 index 000000000000..7107b1ba53c6 --- /dev/null +++ b/monkestation/code/modules/blueshift/machines/rtg.dm @@ -0,0 +1,41 @@ +/obj/machinery/power/rtg/portable + name = "radioisotope thermoelectric generator" + desc = "The ultimate in 'middle of nowhere' power generation. Unlike standard RTGs, this particular \ + design of generator has forgone the heavy radiation shielding that most RTG designs include. \ + In better news, these tend to be pretty good with making a passable trickle of power for any \ + application." + icon = 'monkestation/code/modules/blueshift/icons/machines.dmi' + circuit = null + power_gen = 7500 + /// What we turn into when we are repacked + var/repacked_type = /obj/item/flatpacked_machine/rtg + +/obj/machinery/power/rtg/portable/Initialize(mapload) + . = ..() + AddElement(/datum/element/repackable, repacked_type, 2 SECONDS) + AddElement(/datum/element/radioactive) + AddElement(/datum/element/manufacturer_examine, COMPANY_FRONTIER) + if(!mapload) + flick("rtg_deploy", src) + +// previously NO_DECONSTRUCTION +/obj/machinery/power/rtg/portable/default_deconstruction_screwdriver(mob/user, icon_state_open, icon_state_closed, obj/item/screwdriver) + return NONE + +/obj/machinery/power/rtg/portable/default_deconstruction_crowbar(obj/item/crowbar, ignore_panel, custom_deconstruct) + return NONE + +/obj/machinery/power/rtg/portable/default_pry_open(obj/item/crowbar, close_after_pry, open_density, closed_density) + return NONE + +// Item for creating the arc furnace or carrying it around +/obj/item/flatpacked_machine/rtg + name = "flat-packed radioisotope thermoelectric generator" + icon_state = "rtg_packed" + type_to_deploy = /obj/machinery/power/rtg/portable + custom_materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 15, + /datum/material/uranium = SHEET_MATERIAL_AMOUNT * 5, + /datum/material/plasma = HALF_SHEET_MATERIAL_AMOUNT, + /datum/material/gold = HALF_SHEET_MATERIAL_AMOUNT, + ) diff --git a/monkestation/code/modules/blueshift/machines/smes.dm b/monkestation/code/modules/blueshift/machines/smes.dm new file mode 100644 index 000000000000..4bbbf7b31f08 --- /dev/null +++ b/monkestation/code/modules/blueshift/machines/smes.dm @@ -0,0 +1,8 @@ +// Variant of SMES that starts with super power cells for higher longevity +/obj/machinery/power/smes/super + name = "super capacity power storage unit" + desc = "A super-capacity superconducting magnetic energy storage (SMES) unit. Relatively rare, and typically installed in long-range outposts where minimal maintenance is expected." + capacity = 100 * 1 MEGA + +/obj/machinery/power/smes/super/full + charge = 100 * 1 MEGA diff --git a/monkestation/code/modules/blueshift/machines/solar_panel.dm b/monkestation/code/modules/blueshift/machines/solar_panel.dm new file mode 100644 index 000000000000..c41150c6b582 --- /dev/null +++ b/monkestation/code/modules/blueshift/machines/solar_panel.dm @@ -0,0 +1,88 @@ +// Solar panels + +/obj/machinery/power/solar/deployable + icon = 'monkestation/code/modules/blueshift/icons/machines.dmi' + flags_1 = parent_type::flags_1 | NODECONSTRUCT_1 + /// The item we turn into when repacked + var/repacked_type = /obj/item/flatpacked_machine/solar + +/obj/machinery/power/solar/deployable/Initialize(mapload) + . = ..() + AddElement(/datum/element/repackable, repacked_type, 1 SECONDS) + AddElement(/datum/element/manufacturer_examine, COMPANY_FRONTIER) + +/obj/machinery/power/solar/deployable/crowbar_act(mob/user, obj/item/I) + return + +/obj/machinery/power/solar/deployable/deconstruct(disassembled) + var/obj/item/solar_assembly/assembly = locate() in src + if(assembly) + qdel(assembly) + return ..() + +// previously NO_DECONSTRUCTION +/obj/machinery/power/solar/deployable/default_deconstruction_screwdriver(mob/user, icon_state_open, icon_state_closed, obj/item/screwdriver) + return NONE + +/obj/machinery/power/solar/deployable/default_deconstruction_crowbar(obj/item/crowbar, ignore_panel, custom_deconstruct) + return NONE + +/obj/machinery/power/solar/deployable/default_pry_open(obj/item/crowbar, close_after_pry, open_density, closed_density) + return NONE + +// Solar panel deployable item + +/obj/item/flatpacked_machine/solar + name = "flat-packed solar panel" + icon_state = "solar_panel_packed" + type_to_deploy = /obj/machinery/power/solar/deployable + deploy_time = 2 SECONDS + w_class = WEIGHT_CLASS_NORMAL + custom_materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 1.75, + /datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT * 3, + ) + +// Solar trackers + +/obj/machinery/power/tracker/deployable + icon = 'monkestation/code/modules/blueshift/icons/machines.dmi' + /// The item we turn into when repacked + var/repacked_type = /obj/item/flatpacked_machine/solar_tracker + +/obj/machinery/power/tracker/deployable/Initialize(mapload) + . = ..() + AddElement(/datum/element/repackable, repacked_type, 1 SECONDS) + AddElement(/datum/element/manufacturer_examine, COMPANY_FRONTIER) + +/obj/machinery/power/tracker/deployable/crowbar_act(mob/user, obj/item/item_acting) + return NONE + +// previously NO_DECONSTRUCTION +/obj/machinery/power/tracker/deployable/default_deconstruction_screwdriver(mob/user, icon_state_open, icon_state_closed, obj/item/screwdriver) + return NONE + +/obj/machinery/power/tracker/deployable/default_deconstruction_crowbar(obj/item/crowbar, ignore_panel, custom_deconstruct) + return NONE + +/obj/machinery/power/tracker/deployable/default_pry_open(obj/item/crowbar, close_after_pry, open_density, closed_density) + return NONE + +/obj/machinery/power/tracker/deployable/on_deconstruction(disassembled) + var/obj/item/solar_assembly/assembly = locate() in src + if(assembly) + qdel(assembly) + return ..() + +// Solar tracker deployable item + +/obj/item/flatpacked_machine/solar_tracker + name = "flat-packed solar tracker" + icon_state = "solar_tracker_packed" + type_to_deploy = /obj/machinery/power/tracker/deployable + deploy_time = 3 SECONDS + w_class = WEIGHT_CLASS_NORMAL + custom_materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 2, + /datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT * 3.5, + ) diff --git a/monkestation/code/modules/blueshift/machines/solid_fuel_generator.dm b/monkestation/code/modules/blueshift/machines/solid_fuel_generator.dm new file mode 100644 index 000000000000..772d3798cf0f --- /dev/null +++ b/monkestation/code/modules/blueshift/machines/solid_fuel_generator.dm @@ -0,0 +1,61 @@ +/obj/machinery/power/port_gen/pacman/solid_fuel + name = "\improper S.O.F.I.E.-type portable generator" + desc = "The second most common generator design in the galaxy, second only to the P.A.C.M.A.N. \ + The S.O.F.I.E. (Stationary Operating Fuel Ignition Engine) is similar to other generators in \ + burning sheets of plasma in order to produce power. \ + Unlike other generators however, this one isn't as portable, or as safe to operate, \ + but at least it makes a hell of a lot more power. Must be bolted to the ground \ + and attached to a wire before use. A massive warning label wants you to know that this generator \ + outputs waste heat and gasses to the air around it." + icon = 'monkestation/code/modules/blueshift/icons/machines.dmi' + icon_state = "fuel_generator_0" + base_icon_state = "fuel_generator" + circuit = null + anchored = TRUE + max_sheets = 25 + time_per_sheet = 100 + power_gen = 12500 + drag_slowdown = 1.5 + sheet_path = /obj/item/stack/sheet/mineral/plasma + /// The item we turn into when repacked + var/repacked_type = /obj/item/flatpacked_machine/fuel_generator + +/obj/machinery/power/port_gen/pacman/solid_fuel/Initialize(mapload) + . = ..() + AddElement(/datum/element/repackable, repacked_type, 1 SECONDS) + AddElement(/datum/element/manufacturer_examine, COMPANY_FRONTIER) + if(!mapload) + flick("fuel_generator_deploy", src) + +// previously NO_DECONSTRUCTION +/obj/machinery/power/port_gen/pacman/solid_fuel/default_deconstruction_screwdriver(mob/user, icon_state_open, icon_state_closed, obj/item/screwdriver) + return NONE + +/obj/machinery/power/port_gen/pacman/solid_fuel/default_deconstruction_crowbar(obj/item/crowbar, ignore_panel, custom_deconstruct) + return NONE + +/obj/machinery/power/port_gen/pacman/solid_fuel/default_pry_open(obj/item/crowbar, close_after_pry, open_density, closed_density) + return NONE + +// We don't need to worry about the board, this machine doesn't have one! +/obj/machinery/power/port_gen/pacman/solid_fuel/on_construction(mob/user) + return + +/obj/machinery/power/port_gen/pacman/solid_fuel/process() + . = ..() + if(active) + var/turf/where_we_spawn_air = get_turf(src) + where_we_spawn_air.atmos_spawn_air("co2=10;TEMP=480") // Standard UK diesel engine operating temp is about 220 celsius or ~473 K + +// Item for creating the generator or carrying it around + +/obj/item/flatpacked_machine/fuel_generator + name = "flat-packed S.O.F.I.E.-type portable generator" + icon_state = "fuel_generator_packed" + type_to_deploy = /obj/machinery/power/port_gen/pacman/solid_fuel + custom_materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 5, + /datum/material/glass = SHEET_MATERIAL_AMOUNT, + /datum/material/titanium = SHEET_MATERIAL_AMOUNT, + /datum/material/gold = HALF_SHEET_MATERIAL_AMOUNT, + ) diff --git a/monkestation/code/modules/blueshift/machines/station_armament.dm b/monkestation/code/modules/blueshift/machines/station_armament.dm new file mode 100644 index 000000000000..efda34c95c60 --- /dev/null +++ b/monkestation/code/modules/blueshift/machines/station_armament.dm @@ -0,0 +1,84 @@ +/** + * Armament Station + * + * These are the stations designed to be used by players to outfit themselves. + * They are a container for the armament component, which must be supplied with a type path of armament entries, and optionally a list of required accesses to use the vendor. + * + * If you plan on making your own station, it is strongly recommended you use your own armament entries for whatever it is you're doing. + * + * Never directly edit an armament entry as this will be carried through all other vendors. + * + * @author Gandalf2k15 + */ +/obj/machinery/armament_station + name = "Armament Outfitting Station" + desc = "A versatile station for equipping your weapons." + icon = 'icons/obj/vending.dmi' + icon_state = "liberationstation" + density = TRUE + /// The armament entry type path that will fill the armament station's list. + var/armament_type + /// The access needed to use the vendor + var/list/required_access = list(ACCESS_SYNDICATE) + +/obj/machinery/armament_station/Initialize(mapload) + . = ..() + if(!armament_type) + return + AddComponent(/datum/component/armament, subtypesof(armament_type), required_access) + + +/** + * Armament points card + * + * To be used with the armaments vendor. + */ +/obj/item/armament_points_card + name = "armament points card" + desc = "A points card that can be used at an Armaments Station or Armaments Dealer." + icon = 'monkestation/code/modules/blueshift/icons/armaments.dmi' + icon_state = "armament_card" + w_class = WEIGHT_CLASS_TINY + /// How many points does this card have to use at the vendor? + var/points = 10 + +/obj/item/armament_points_card/Initialize(mapload) + . = ..() + maptext = span_maptext("
[points]
") + +/obj/item/armament_points_card/examine(mob/user) + . = ..() + . += span_notice("It has [points] points left.") + +/obj/item/armament_points_card/proc/use_points(points_to_use) + if(points_to_use > points) + return FALSE + + points -= points_to_use + + update_maptext() + + return TRUE + +/obj/item/armament_points_card/proc/update_maptext() + maptext = span_maptext("
[points]
") + +/obj/item/armament_points_card/attackby(obj/item/attacking_item, mob/user, params) + . = ..() + if(istype(attacking_item, /obj/item/armament_points_card)) + var/obj/item/armament_points_card/attacking_card = attacking_item + if(!attacking_card.points) + to_chat(user, span_warning("No points left on [attacking_card]!")) + return + var/points_to_transfer = clamp(tgui_input_number(user, "How many points do you want to transfer?", "Transfer Points", 1, attacking_card.points, 1), 0, attacking_card.points) + + if(!points_to_transfer) + return + + if(attacking_card.loc != user) // Preventing exploits. + return + + if(attacking_card.use_points(points_to_transfer)) + points += points_to_transfer + update_maptext() + to_chat(user, span_notice("You transfer [points_to_transfer] onto [src]!")) diff --git a/monkestation/code/modules/blueshift/machines/sterling_generator.dm b/monkestation/code/modules/blueshift/machines/sterling_generator.dm new file mode 100644 index 000000000000..18d185de4a06 --- /dev/null +++ b/monkestation/code/modules/blueshift/machines/sterling_generator.dm @@ -0,0 +1,281 @@ +///To be used when there is the need of an atmos connection without repathing everything (eg: cryo.dm) +/datum/gas_machine_connector + + var/obj/machinery/connected_machine + var/obj/machinery/atmospherics/components/unary/gas_connector + +/datum/gas_machine_connector/New(location, obj/machinery/connecting_machine = null, direction = SOUTH, gas_volume) + connected_machine = connecting_machine + if(!connected_machine) + qdel(src) + return + + gas_connector = new(location) + gas_connector.dir = connected_machine.dir + gas_connector.airs[1].volume = gas_volume + + SSair.start_processing_machine(connected_machine) + register_with_machine() + gas_connector.set_init_directions() + gas_connector.atmos_init() + SSair.add_to_rebuild_queue(gas_connector) + RegisterSignal(gas_connector, COMSIG_QDELETING, PROC_REF(connector_deleted)) + +/datum/gas_machine_connector/Destroy() + connected_machine = null + QDEL_NULL(gas_connector) + return ..() + +/datum/gas_machine_connector/proc/connector_deleted() + SIGNAL_HANDLER + gas_connector = null + if(!QDELETED(connected_machine)) + qdel(connected_machine) + +/** + * Register various signals that are required for the proper work of the connector + */ +/datum/gas_machine_connector/proc/register_with_machine() + RegisterSignal(connected_machine, COMSIG_MOVABLE_PRE_MOVE, PROC_REF(pre_move_connected_machine)) + RegisterSignal(connected_machine, COMSIG_MOVABLE_MOVED, PROC_REF(moved_connected_machine)) + RegisterSignal(connected_machine, COMSIG_MACHINERY_DEFAULT_ROTATE_WRENCH, PROC_REF(wrenched_connected_machine)) + RegisterSignal(connected_machine, COMSIG_OBJ_DECONSTRUCT, PROC_REF(deconstruct_connected_machine)) + RegisterSignal(connected_machine, COMSIG_QDELETING, PROC_REF(destroy_connected_machine)) + +/** + * Unregister the signals previously registered + */ +/datum/gas_machine_connector/proc/unregister_from_machine() + UnregisterSignal(connected_machine, list( + COMSIG_MOVABLE_MOVED, + COMSIG_MOVABLE_PRE_MOVE, + COMSIG_MACHINERY_DEFAULT_ROTATE_WRENCH, + COMSIG_OBJ_DECONSTRUCT, + COMSIG_QDELETING + )) + +/** + * Called when the machine has been moved, reconnect to the pipe network + */ +/datum/gas_machine_connector/proc/moved_connected_machine() + SIGNAL_HANDLER + gas_connector.forceMove(get_turf(connected_machine)) + reconnect_connector() + +/** + * Called before the machine moves, disconnect from the pipe network + */ +/datum/gas_machine_connector/proc/pre_move_connected_machine() + SIGNAL_HANDLER + disconnect_connector() + +/** + * Called when the machine has been rotated, resets the connection to the pipe network with the new direction + */ +/datum/gas_machine_connector/proc/wrenched_connected_machine() + SIGNAL_HANDLER + disconnect_connector() + reconnect_connector() + +/** + * Called when the machine has been deconstructed + */ +/datum/gas_machine_connector/proc/deconstruct_connected_machine() + SIGNAL_HANDLER + + relocate_airs() + +/** + * Called when the machine has been destroyed + */ +/datum/gas_machine_connector/proc/destroy_connected_machine() + SIGNAL_HANDLER + + disconnect_connector() + SSair.stop_processing_machine(connected_machine) + unregister_from_machine() + qdel(src) + +/** + * Handles the disconnection from the pipe network + */ +/datum/gas_machine_connector/proc/disconnect_connector() + var/obj/machinery/atmospherics/node = gas_connector.nodes[1] + if(node) + if(gas_connector in node.nodes) //Only if it's actually connected. On-pipe version would is one-sided. + node.disconnect(gas_connector) + gas_connector.nodes[1] = null + if(gas_connector.parents[1]) + gas_connector.nullify_pipenet(gas_connector.parents[1]) + +/** + * Handles the reconnection to the pipe network + */ +/datum/gas_machine_connector/proc/reconnect_connector() + gas_connector.dir = connected_machine.dir + gas_connector.set_init_directions() + var/obj/machinery/atmospherics/node = gas_connector.nodes[1] + gas_connector.atmos_init() + node = gas_connector.nodes[1] + if(node) + node.atmos_init() + node.add_member(gas_connector) + gas_connector.update_parents() + SSair.add_to_rebuild_queue(gas_connector) + +/** + * Handles air relocation to the pipe network/environment + */ +/datum/gas_machine_connector/proc/relocate_airs(mob/user) + var/turf/local_turf = get_turf(connected_machine) + var/datum/gas_mixture/inside_air = gas_connector.airs[1] + if(inside_air.total_moles() > 0) + if(!gas_connector.nodes[1]) + local_turf.assume_air(inside_air) + return + var/datum/gas_mixture/parents_air = gas_connector.parents[1].air + if(istype(gas_connector.nodes[1], /obj/machinery/atmospherics/components/unary/portables_connector)) + var/obj/machinery/atmospherics/components/unary/portables_connector/portable_devices_connector = gas_connector.nodes[1] + if(!portable_devices_connector.connected_device) + local_turf.assume_air(inside_air) + return + parents_air.merge(inside_air) + +// Stirling generator, like a miniature TEG, pipe hot air in, and keep the air around it cold + +/obj/machinery/power/stirling_generator + name = "stirling generator" + desc = "An industrial scale stirling generator. Stirling generators operate by intaking \ + hot gasses through their inlet pipes, and being cooled by the ambient air around them. \ + The cycling compression and expansion caused by this creates power, and this one is made \ + to make power on the scale of small stations and outposts." + icon = 'monkestation/code/modules/blueshift/icons/stirling_generator/big_generator.dmi' + icon_state = "stirling" + density = TRUE + use_power = NO_POWER_USE + circuit = null + max_integrity = 300 + armor_type = /datum/armor/unary_thermomachine + set_dir_on_move = FALSE + can_change_cable_layer = TRUE + /// Reference to the datum connector we're using to interface with the pipe network + var/datum/gas_machine_connector/connected_chamber + /// What this thing deconstructs into + var/deconstruction_type = /obj/item/flatpacked_machine/stirling_generator + /// Maximum efficient heat difference, at what heat difference does more difference stop meaning anything for power? + var/max_efficient_heat_difference = 8000 + /// Maximum power output from this machine + var/max_power_output = 100 * 1000 + /// How much power the generator is currently making + var/current_power_generation + /// Our looping fan sound that we play when turned on + var/datum/looping_sound/ore_thumper_fan/soundloop + + +/obj/machinery/power/stirling_generator/Initialize(mapload) + . = ..() + soundloop = new(src, FALSE) + connected_chamber = new(loc, src, dir, CELL_VOLUME * 0.5) + connect_to_network() + AddElement(/datum/element/repackable, deconstruction_type, 10 SECONDS) + AddElement(/datum/element/manufacturer_examine, COMPANY_FRONTIER) + // This is just to make sure our atmos connection spawns facing the right way + setDir(dir) + + +/obj/machinery/power/stirling_generator/examine(mob/user) + . = ..() + . += span_notice("You can use a wrench with Left-Click to rotate the generator.") + . += span_notice("It will not work in a vacuum as it must be cooled by the gas around it.") + . += span_notice("It is currently generating [current_power_generation / 1000] kW of power.") + . += span_notice("It has a maximum power output of [max_power_output / 1000] kW at a temperature difference of [max_efficient_heat_difference] K.") + + +/obj/machinery/power/stirling_generator/Destroy() + QDEL_NULL(connected_chamber) + return ..() + + +/obj/machinery/power/stirling_generator/process_atmos() + if(!powernet) + connect_to_network() + if(!powernet) + return + + var/turf/our_turf = get_turf(src) + + var/datum/gas_mixture/hot_air_from_pipe = connected_chamber.gas_connector.airs[1] + var/datum/gas_mixture/environment = our_turf.return_air() + + if(!QUANTIZE(hot_air_from_pipe.total_moles()) || !QUANTIZE(environment.total_moles())) //Don't transfer if there's no gas + return + + var/gas_temperature_delta = hot_air_from_pipe.temperature - environment.temperature + + if(!(gas_temperature_delta > 0)) + current_power_generation = 0 + return + + var/input_capacity = hot_air_from_pipe.heat_capacity() + var/output_capacity = environment.heat_capacity() + var/cooling_heat_amount = CALCULATE_CONDUCTION_ENERGY(gas_temperature_delta, input_capacity, output_capacity) + hot_air_from_pipe.temperature = max(hot_air_from_pipe.temperature - (cooling_heat_amount / input_capacity), TCMB) + + /// Takes the amount of heat moved, and divides it by the maximum temperature difference we expect, creating a number to divide power generation by + var/effective_energy_transfer = round((max_efficient_heat_difference / min(gas_temperature_delta, max_efficient_heat_difference)), 0.01) + current_power_generation = round(max_power_output / effective_energy_transfer) + + +/obj/machinery/power/stirling_generator/process() + var/power_output = round(current_power_generation) + add_avail(power_output) + var/new_icon_state = (power_output ? "stirling_on" : "stirling") + icon_state = new_icon_state + if(soundloop.is_active() && !power_output) + soundloop.stop() + else if(!soundloop.is_active() && power_output) + soundloop.start() + + +/obj/machinery/power/stirling_generator/default_deconstruction_screwdriver(mob/user, icon_state_open, icon_state_closed, obj/item/screwdriver) + return + + +/obj/machinery/power/stirling_generator/default_deconstruction_crowbar(obj/item/crowbar, ignore_panel, custom_deconstruct) + return + + +/obj/machinery/power/stirling_generator/wrench_act(mob/living/user, obj/item/tool) + return default_change_direction_wrench(user, tool) + + +/obj/machinery/power/stirling_generator/default_change_direction_wrench(mob/user, obj/item/wrench) + if(wrench.tool_behaviour != TOOL_WRENCH) + return FALSE + + wrench.play_tool_sound(src, 50) + setDir(turn(dir,-90)) + to_chat(user, span_notice("You rotate [src].")) + SEND_SIGNAL(src, COMSIG_MACHINERY_DEFAULT_ROTATE_WRENCH, user, wrench) + return TRUE + + +/obj/machinery/power/stirling_generator/Destroy() + QDEL_NULL(connected_chamber) + return ..() + + +// Item for creating stirling generators + +/obj/item/flatpacked_machine/stirling_generator + name = "flat-packed stirling generator" + icon = 'monkestation/code/modules/blueshift/icons/stirling_generator/packed_machines.dmi' + icon_state = "stirling" + type_to_deploy = /obj/machinery/power/stirling_generator + custom_materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 15, + /datum/material/glass = SHEET_MATERIAL_AMOUNT * 5, + /datum/material/plasma = SHEET_MATERIAL_AMOUNT * 10, + /datum/material/titanium = SHEET_MATERIAL_AMOUNT * 5, + /datum/material/gold = SHEET_MATERIAL_AMOUNT * 5, + ) diff --git a/monkestation/code/modules/blueshift/machines/thermomachine.dm b/monkestation/code/modules/blueshift/machines/thermomachine.dm new file mode 100644 index 000000000000..f6f6cccf933d --- /dev/null +++ b/monkestation/code/modules/blueshift/machines/thermomachine.dm @@ -0,0 +1,63 @@ +/obj/machinery/atmospherics/components/unary/thermomachine/deployable + icon = 'monkestation/code/modules/blueshift/icons/thermomachine.dmi' + name = "atmospheric temperature regulator" + desc = "A much more tame variant of the thermomachines commonly seen in station scale temperature control devices. \ + Its upper and lower bounds for temperature are highly limited, though it has a higher than standard heat capacity \ + and the benefit of being undeployable when you're done with it." + circuit = null + greyscale_config = /datum/greyscale_config/thermomachine/deployable + min_temperature = T0C + max_temperature = FIRE_MINIMUM_TEMPERATURE_TO_SPREAD + 50 + heat_capacity = 10000 + /// The item we turn into when repacked + var/repacked_type = /obj/item/flatpacked_machine/thermomachine + /// Soundloop for while the thermomachine is turned on + var/datum/looping_sound/conditioner_running/soundloop + +/obj/machinery/atmospherics/components/unary/thermomachine/deployable/Initialize(mapload) + . = ..() + soundloop = new(src, FALSE) + AddElement(/datum/element/repackable, repacked_type, 2 SECONDS) + AddElement(/datum/element/manufacturer_examine, COMPANY_FRONTIER) + flick("thermo_deploy", src) + + // Makes for certain that we are visually facing the correct way + setDir(dir) + update_appearance() + +/obj/machinery/atmospherics/components/unary/thermomachine/deployable/RefreshParts() + . = ..() + heat_capacity = 10000 + min_temperature = T0C + max_temperature = FIRE_MINIMUM_TEMPERATURE_TO_SPREAD + 50 + +/obj/machinery/atmospherics/components/unary/thermomachine/deployable/default_deconstruction_crowbar() + return + +/obj/machinery/atmospherics/components/unary/thermomachine/deployable/process_atmos() + if(on && !soundloop.loop_started) + soundloop.start() + else if(soundloop.loop_started) + soundloop.stop() + . = ..() + +// Item for creating the regulator and carrying it about + +/obj/item/flatpacked_machine/thermomachine + name = "flat-packed atmospheric temperature regulator" + icon_state = "thermomachine_packed" + type_to_deploy = /obj/machinery/atmospherics/components/unary/thermomachine/deployable + custom_materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 7.5, + /datum/material/glass = SHEET_MATERIAL_AMOUNT, + ) + +// This prevents some weird visual bugs with the inlet +/obj/item/flatpacked_machine/thermomachine/give_deployable_component() + AddComponent(/datum/component/deployable, deploy_time, type_to_deploy) + +// Greyscale config for the light on this machine + +/datum/greyscale_config/thermomachine/deployable + name = "Deployable Thermomachine" + icon_file = 'monkestation/code/modules/blueshift/icons/thermomachine.dmi' diff --git a/monkestation/code/modules/blueshift/machines/thumper.dm b/monkestation/code/modules/blueshift/machines/thumper.dm new file mode 100644 index 000000000000..9531db06035c --- /dev/null +++ b/monkestation/code/modules/blueshift/machines/thumper.dm @@ -0,0 +1,273 @@ +#define SLAM_JAM_DELAY 15 SECONDS + +/obj/machinery/power/colony_ore_thumper + name = "ore thumper" + desc = "A frame with a heavy block of metal suspended atop a pipe. \ + Must be deployed outdoors and given a wired power connection. \ + Forces pressurized gas into the ground which brings up buried resources." + icon = 'monkestation/code/modules/blueshift/icons/ore_thumper.dmi' + icon_state = "thumper_idle" + density = TRUE + max_integrity = 250 + idle_power_usage = 0 + active_power_usage = BASE_MACHINE_ACTIVE_CONSUMPTION * 50 // Should be 50 kw or an entire SOFIE generator's power production + anchored = TRUE + can_change_cable_layer = FALSE + circuit = null + layer = ABOVE_MOB_LAYER + /// Are we currently working? + var/thumping = FALSE + /// Our looping fan sound that we play when turned on + var/datum/looping_sound/ore_thumper_fan/soundloop + /// How many times we've slammed, counts up until the number is high enough to make a box of materials + var/slam_jams = 0 + /// How many times we need to slam in order to produce a box of materials + var/slam_jams_needed = 30 + /// List of the thumping sounds we can choose from + var/static/list/list_of_thumper_sounds = list( + 'monkestation/code/modules/blueshift/sounds/thumper_thump/punch_press_1.wav', + 'monkestation/code/modules/blueshift/sounds/thumper_thump/punch_press_2.wav', + ) + /// Keeps track of the callback timer to make sure we don't have more than one + var/callback_tracker + /// Weighted list of the ores we can spawn + var/static/list/ore_weight_list = list( + /obj/item/stack/ore/iron = 5, + /obj/item/stack/ore/glass/basalt = 5, + /obj/item/stack/ore/plasma = 4, + /obj/item/stack/ore/uranium = 3, + /obj/item/stack/ore/silver = 3, + /obj/item/stack/ore/gold = 3, + /obj/item/stack/ore/titanium = 3, + /obj/item/stack/ore/diamond = 2, + /obj/item/stack/ore/bluespace_crystal = 1, + ) + /// How much of the listed types of ores should we spawn when spawning ore + var/static/list/ore_spawn_values = list( + /obj/item/stack/ore/iron = 25, + /obj/item/stack/ore/glass/basalt = 25, + /obj/item/stack/ore/plasma = 15, + /obj/item/stack/ore/uranium = 10, + /obj/item/stack/ore/silver = 10, + /obj/item/stack/ore/gold = 10, + /obj/item/stack/ore/titanium = 10, + /obj/item/stack/ore/diamond = 5, + /obj/item/stack/ore/bluespace_crystal = 1, + ) + /// What's the limit for ore near us? Counts by stacks, not individual amounts of ore + var/nearby_ore_limit = 5 + /// How far away does ore spawn? + var/ore_spawn_range = 2 + /// What do we undeploy into + var/undeploy_type = /obj/item/flatpacked_machine/ore_thumper + +/obj/machinery/power/colony_ore_thumper/Initialize(mapload) + . = ..() + soundloop = new(src, FALSE) + AddElement(/datum/element/repackable, undeploy_type, 4 SECONDS) + AddElement(/datum/element/manufacturer_examine, COMPANY_KAHRAMAN) + +/obj/machinery/power/colony_ore_thumper/add_context( + atom/source, + list/context, + obj/item/held_item, + mob/living/user, +) + + if(isnull(held_item)) + if(panel_open) + context[SCREENTIP_CONTEXT_LMB] = "Activate Thumper" + return CONTEXTUAL_SCREENTIP_SET + return NONE + + +/obj/machinery/power/colony_ore_thumper/examine(mob/user) + . = ..() + var/area/thumper_area = get_area(src) + if(!thumper_area.outdoors) + . += span_notice("Its must be constructed outdoors to function.") + if(!istype(get_turf(src), /turf/open/misc)) + . += span_notice("It must be constructed on suitable terrain, like ash, snow, or sand.") + . += span_notice("It must have a powered, wired connection running beneath it with [display_power(active_power_usage)] of excess power to function.") + . += span_notice("It will produce a box of materials after it has slammed [slam_jams_needed] times.") + . += span_notice("Currently, it has slammed [slam_jams] / [slam_jams_needed] times needed.") + . += span_notice("It will stop producing resources if there are too many piles of ore near it.") + . += span_notice("The thumper cannot work if it is too close to another thumper, needing at least [ore_spawn_range] spaces in all directions between it another thumper.") + + +/obj/machinery/power/colony_ore_thumper/process() + var/turf/our_turf = get_turf(src) + var/obj/structure/cable/cable_under_us = locate() in our_turf + var/energy_needed = active_power_usage + if(!cable_under_us && powernet) + disconnect_from_network() + else if(cable_under_us && !powernet) + connect_to_network() + if(thumping) + if(!see_if_we_can_work(our_turf)) + balloon_alert_to_viewers("invalid location!") + cut_that_out() + return + if(avail(energy_needed)) + add_load(energy_needed) + else + balloon_alert_to_viewers("not enough power!") + cut_that_out() + + +/// Checks the turf we are on to make sure we are outdoors and on a misc turf +/obj/machinery/power/colony_ore_thumper/proc/see_if_we_can_work(turf/our_turf) + var/area/our_current_area = get_area(src) + if(!our_current_area.outdoors) + return FALSE + if(!istype(get_turf(src), /turf/open/misc)) + return FALSE + return TRUE + + +/obj/machinery/power/colony_ore_thumper/attack_hand(mob/user, list/modifiers) + . = ..() + if(.) + return + + to_chat(user, span_notice("You toggle [src]'s power button.")) + + if(thumping) + cut_that_out(user) + return + start_her_up(user) + + +/obj/machinery/power/colony_ore_thumper/attack_ai(mob/user) + return attack_hand(user) + + +/obj/machinery/power/colony_ore_thumper/attack_robot(mob/user) + return attack_hand(user) + + +/// Attempts turning the thumper on, failing if any of the conditions aren't met +/obj/machinery/power/colony_ore_thumper/proc/start_her_up(mob/user) + var/turf/our_turf = get_turf(src) + var/obj/structure/cable/cable_under_us = locate() in our_turf + if(!cable_under_us && powernet) + balloon_alert(user, "not connected to wire") + return + if(!avail(active_power_usage)) + balloon_alert(user, "not enough power") + return + + thumping = TRUE + soundloop.start() + + if(callback_tracker) + deltimer(callback_tracker) + + balloon_alert(user, "thumper started") + + callback_tracker = addtimer(CALLBACK(src, PROC_REF(slam_it_down)), SLAM_JAM_DELAY, TIMER_DELETE_ME | TIMER_STOPPABLE) + + +/// Attempts to shut the thumper down +/obj/machinery/power/colony_ore_thumper/proc/cut_that_out(mob/user) + thumping = FALSE + soundloop.stop() + if(user) + balloon_alert(user, "thumper stopped") + + +/// Makes the machine slam down, producing a box of ore if it has been slamming long enough +/obj/machinery/power/colony_ore_thumper/proc/slam_it_down() + if(!thumping) + return + var/turf/our_turf = get_turf(src) + if(!see_if_we_can_work(our_turf)) + balloon_alert_to_viewers("invalid location!") + cut_that_out() + return + // Down we go + flick("thumper_slam", src) + playsound(src, pick(list_of_thumper_sounds), 80, TRUE) + if(slam_jams < (slam_jams_needed + 1)) + slam_jams += 1 + + if(callback_tracker) + deltimer(callback_tracker) + + callback_tracker = addtimer(CALLBACK(src, PROC_REF(slam_it_down)), SLAM_JAM_DELAY, TIMER_DELETE_ME | TIMER_STOPPABLE,) + + // If the number of slams is less than that of what we need, then we can stop here + if(!(slam_jams >= slam_jams_needed)) + return + + var/nearby_ore = 0 + var/is_there_a_thumper_too = FALSE + for(var/turf/nearby_turf in orange(ore_spawn_range, src)) + for(var/ore as anything in nearby_turf.contents) + if(istype(ore, /obj/item/stack/ore)) + nearby_ore += 1 + continue + if(istype(ore, /obj/machinery/power/colony_ore_thumper)) + if(ore == src) + continue + is_there_a_thumper_too = TRUE + break + + if(nearby_ore > nearby_ore_limit) + balloon_alert_to_viewers("nearby ore too saturated") + // Makes the thumper rumble around when something's wrong + Shake(2, 2, 2 SECONDS) + return + + if(is_there_a_thumper_too) + balloon_alert_to_viewers("too close to another thumper") + // Makes the thumper rumble around when something's wrong + Shake(2, 2, 2 SECONDS) + return + + addtimer(CALLBACK(src, PROC_REF(make_some_ore)), 3 SECONDS, TIMER_DELETE_ME) + + +/// Spawns an ore box on top of the thumper +/obj/machinery/power/colony_ore_thumper/proc/make_some_ore() + var/list/nearby_valid_turfs = list() + for(var/turf/nearby_turf in orange(ore_spawn_range, src)) + if(nearby_turf.is_blocked_turf(TRUE)) + continue + if(!ismiscturf(nearby_turf)) + continue + nearby_valid_turfs.Add(nearby_turf) + // Fallback in case somehow there are no valid nearby turfs + if(!length(nearby_valid_turfs)) + nearby_valid_turfs.Add(get_turf(src)) + + for(var/iteration in 1 to rand(2, 4)) + var/turf/target_turf = pick(nearby_valid_turfs) + var/obj/item/stack/new_ore = pick_weight(ore_weight_list) + new new_ore(target_turf, ore_spawn_values[new_ore.type]) + + slam_jams -= slam_jams_needed + + +// Item for deploying ore thumpers +/obj/item/flatpacked_machine/ore_thumper + name = "flat-packed ore thumper" + icon = 'monkestation/code/modules/blueshift/icons/ore_thumper_item.dmi' + icon_state = "thumper_packed" + type_to_deploy = /obj/machinery/power/colony_ore_thumper + custom_materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 15, + /datum/material/glass = SHEET_MATERIAL_AMOUNT * 5, + /datum/material/titanium = SHEET_MATERIAL_AMOUNT * 5, + /datum/material/silver = SHEET_MATERIAL_AMOUNT, + /datum/material/gold = HALF_SHEET_MATERIAL_AMOUNT, + ) + +/obj/item/flatpacked_machine/ore_thumper/examine(mob/user) + . = ..() + . += span_notice("Its must be constructed outdoors to function.") + . += span_notice("It must be constructed on suitable terrain, like ash, snow, or sand.") + . += span_notice("It must have a powered, wired connection running beneath it to function.") + +/obj/item/flatpacked_machine/ore_thumper/give_manufacturer_examine() + AddElement(/datum/element/manufacturer_examine, COMPANY_KAHRAMAN) diff --git a/monkestation/code/modules/blueshift/machines/vending_additions.dm b/monkestation/code/modules/blueshift/machines/vending_additions.dm new file mode 100644 index 000000000000..e18c7246febe --- /dev/null +++ b/monkestation/code/modules/blueshift/machines/vending_additions.dm @@ -0,0 +1,388 @@ +#define MINIMUM_CLOTHING_STOCK 5 + +/obj/machinery/vending + /// Additions to the `products` list of the vending machine, modularly. Will become null after Initialize, to free up memory. + var/list/products_monke + /// Additions to the `product_categories` list of the vending machine, modularly. Will become null after Initialize, to free up memory. + var/list/product_categories_monke + /// Additions to the `premium` list of the vending machine, modularly. Will become null after Initialize, to free up memory. + var/list/premium_monke + /// Additions to the `contraband` list of the vending machine, modularly. Will become null after Initialize, to free up memory. + var/list/contraband_monke + +/obj/machinery/vending/Initialize(mapload) + if(products_monke) + // We need this, because duplicates screw up the spritesheet! + for(var/item_to_add in products_monke) + products[item_to_add] = products_monke[item_to_add] + + if(product_categories_monke) + for(var/category in product_categories_monke) + var/already_exists = FALSE + for(var/existing_category in product_categories) + if(existing_category["name"] == category["name"]) + existing_category["products"] += category["products"] + already_exists = TRUE + break + + if(!already_exists) + product_categories += category + + if(premium_monke) + // We need this, because duplicates screw up the spritesheet! + for(var/item_to_add in premium_monke) + premium[item_to_add] = premium_monke[item_to_add] + + if(contraband_monke) + // We need this, because duplicates screw up the spritesheet! + for(var/item_to_add in contraband_monke) + contraband[item_to_add] = contraband_monke[item_to_add] + + // Time to make clothes amounts consistent! + for (var/obj/item/clothing/item in products) + if(products[item] < MINIMUM_CLOTHING_STOCK && allow_increase(item)) + products[item] = MINIMUM_CLOTHING_STOCK + + for (var/category in product_categories) + for(var/obj/item/clothing/item in category["products"]) + if(category["products"][item] < MINIMUM_CLOTHING_STOCK && allow_increase(item)) + category["products"][item] = MINIMUM_CLOTHING_STOCK + + for (var/obj/item/clothing/item in premium) + if(premium[item] < MINIMUM_CLOTHING_STOCK && allow_increase(item)) + premium[item] = MINIMUM_CLOTHING_STOCK + + QDEL_NULL(products_monke) + QDEL_NULL(product_categories_monke) + QDEL_NULL(premium_monke) + QDEL_NULL(contraband_monke) + return ..() + +/// This proc checks for forbidden traits cause it'd be pretty bad to have 5 insuls available to assistants roundstart at the vendor! +/obj/machinery/vending/proc/allow_increase(obj/item/clothing/clothing_path) + var/obj/item/clothing/clothing = new clothing_path() + + // Ignore earmuffs! + if(TRAIT_DEAF in clothing.clothing_traits) + return FALSE + // Don't touch sunglasses or welding helmets! + if(clothing.flash_protect == FLASH_PROTECTION_WELDER) + return FALSE + // Don't touch bodyarmour! + if(ispath(clothing, /obj/item/clothing/suit/armor)) + return FALSE + // Don't touch protective helmets, like riot helmets! + if(ispath(clothing, /obj/item/clothing/head/helmet)) + return FALSE + // Ignore all gloves, because it's almost impossible to check what they do... + if(ispath(clothing, /obj/item/clothing/gloves)) + return FALSE + return TRUE + +#undef MINIMUM_CLOTHING_STOCK + + +/obj/machinery/vending/wardrobe/medi_wardrobe + products_monke = list( + /obj/item/radio/headset/headset_med = 3, + /obj/item/clothing/gloves/latex/nitrile = 2, + /obj/item/clothing/under/rank/engineering/engineer/nova/hazard_chem/emt = 2, + /obj/item/clothing/under/rank/medical/scrubs/nova/red = 4, + /obj/item/clothing/under/rank/medical/scrubs/nova/white = 4, + /obj/item/clothing/under/rank/medical/doctor/nova/utility = 4, + ) + +/obj/machinery/vending/wardrobe/engi_wardrobe + products_monke = list( + /obj/item/radio/headset/headset_eng = 3, + /obj/item/clothing/under/rank/engineering/engineer/nova/trouser = 3, + /obj/item/clothing/under/rank/engineering/engineer/nova/utility = 3, + /obj/item/clothing/under/rank/engineering/engineer/nova/hazard_chem = 3, + /obj/item/clothing/under/misc/overalls = 3, + /obj/item/clothing/suit/toggle/jacket/engi = 3, + /obj/item/clothing/head/utility/hardhat/orange = 2, + /obj/item/clothing/head/utility/hardhat/welding/orange = 2, + /obj/item/clothing/head/utility/hardhat/dblue = 2, + /obj/item/clothing/head/utility/hardhat/welding/dblue = 2, + /obj/item/clothing/head/utility/hardhat/red = 2, + ) + +/obj/machinery/vending/wardrobe/atmos_wardrobe + products_monke = list( + /obj/item/clothing/glasses/meson/engine = 2, + /obj/item/clothing/head/beret/atmos = 4, + ) + +/obj/machinery/vending/wardrobe/cargo_wardrobe + products_monke = list( + /obj/item/clothing/under/rank/cargo/tech/nova/long = 3, + /obj/item/clothing/under/rank/cargo/tech/nova/gorka = 3, + /obj/item/clothing/under/rank/cargo/tech/nova/turtleneck = 3, + /obj/item/clothing/under/rank/cargo/tech/nova/turtleneck/skirt = 3, + /obj/item/clothing/under/rank/cargo/tech/nova/utility = 3, + /obj/item/clothing/under/rank/cargo/tech/nova/casualman = 3, + /obj/item/clothing/suit/toggle/jacket/supply = 3, + ) + + contraband_monke = list( + /obj/item/clothing/under/suit/nova/scarface = 2, + /obj/item/clothing/under/rank/cargo/tech/nova/evil = 2, + ) + +/obj/machinery/vending/wardrobe/robo_wardrobe + products_monke = list( + /obj/item/clothing/head/beret/science/fancy/robo = 2, + /obj/item/tank/internals/anesthetic = 2, + /obj/item/clothing/mask/breath = 2, + /obj/item/reagent_containers/cup/bottle/morphine = 2, + /obj/item/reagent_containers/syringe = 2, + /obj/item/clothing/gloves/color/black = 2, // fire resistant, allows the robo to painlessly mold metal. also its down here because its a treatment item + /obj/item/bonesetter = 2, // for dislocations + /obj/item/stack/medical/gauze = 4, // for ALL wounds + /obj/item/healthanalyzer/simple = 2, + ) + +/obj/machinery/vending/wardrobe/science_wardrobe + products_monke = list( + /obj/item/clothing/under/rank/rnd/scientist/nova/hlscience = 3, + /obj/item/clothing/under/rank/rnd/scientist/nova/utility = 3, + /obj/item/clothing/suit/toggle/jacket/sci = 3, + ) + +/obj/machinery/vending/wardrobe/hydro_wardrobe + contraband_monke = list( + /obj/item/clothing/under/suit/nova/scarface = 2, + ) + +/obj/machinery/vending/wardrobe/bar_wardrobe + products_monke = list( + /obj/item/storage/fancy/candle_box/vanilla = 1, + /obj/item/storage/fancy/candle_box/pear = 1, + /obj/item/storage/fancy/candle_box/amber = 1, + /obj/item/storage/fancy/candle_box/jasmine = 1, + /obj/item/storage/fancy/candle_box/mint = 1, + ) + +/obj/machinery/vending/wardrobe/chap_wardrobe + products_monke = list( + /obj/item/clothing/suit/costume/nemes = 1, + /obj/item/clothing/head/costume/nemes = 1, + /obj/item/clothing/head/costume/pharaoh = 1, //dont google camel by camel worst mistake of my life + ) + +/obj/machinery/vending/cart + products_monke = list( + /obj/item/radio/headset/headset_srv = 3, + ) + +/obj/machinery/vending/wardrobe/chem_wardrobe + products_monke = list( + /obj/item/clothing/under/rank/medical/chemist/nova/formal = 2, + /obj/item/clothing/under/rank/medical/chemist/nova/formal/skirt = 2, + ) + +/obj/machinery/vending/wardrobe/viro_wardrobe + products_monke = list( + /obj/item/clothing/head/beret/medical/virologist = 2, + ) + +/obj/machinery/vending/wardrobe/det_wardrobe + products_monke = list( + /obj/item/clothing/head/fedora/beige = 2, + /obj/item/clothing/head/fedora/white = 2, + /obj/item/clothing/under/costume/cybersleek = 2, + /obj/item/clothing/under/costume/cybersleek/long = 2, + /obj/item/clothing/head/fedora/det_hat/cybergoggles = 2, + ) + +/obj/machinery/vending/wardrobe/law_wardrobe + products_monke = list( + /obj/item/clothing/under/suit/nova/black_really_collared = 3, + /obj/item/clothing/under/suit/nova/black_really_collared/skirt = 3, + /obj/item/clothing/under/suit/nova/inferno = 3, + /obj/item/clothing/under/suit/nova/inferno/skirt = 3, + /obj/item/clothing/under/suit/nova/inferno/beeze = 2, + ) + + +/// Removes given list of products. Must be called before build_inventory() to actually prevent the records from being created. +/obj/machinery/vending/proc/remove_products(list/paths_to_remove) + if(!length(paths_to_remove)) + return + for(var/typepath as anything in products) + for(var/to_remove as anything in paths_to_remove) + if(ispath(typepath, to_remove)) + products.Remove(typepath) + +/obj/machinery/vending/ + /// list of products to exclude when building the vending machine's inventory + var/list/excluded_products + +/obj/machinery/vending/Initialize(mapload) + remove_products(excluded_products) + return ..() + +/obj/machinery/vending/clothing + product_categories_monke = list( + list( + "name" = "Head", + "icon" = "hat-cowboy", + "products" = list( + /obj/item/clothing/head/beret/badge = 5, + /obj/item/clothing/head/colourable_flatcap= 5, + /obj/item/clothing/head/cowboy/nova/cattleman = 5, + /obj/item/clothing/head/cowboy/nova/cattleman/wide = 5, + /obj/item/clothing/head/cowboy/nova/wide = 5, + /obj/item/clothing/head/cowboy/nova/wide/feathered = 5, + /obj/item/clothing/head/cowboy/nova/flat = 5, + /obj/item/clothing/head/cowboy/nova/flat/cowl = 5, + /obj/item/clothing/head/cowboy/nova/flat/sheriff = 5, + /obj/item/clothing/head/cowboy/nova/flat/deputy = 5, + /obj/item/clothing/head/cowboy/nova/flat/cowl/sheriff = 5, + /obj/item/clothing/head/fedora= 5, + /obj/item/clothing/head/fedora/brown = 5, + /obj/item/clothing/head/fedora/beige = 5, + /obj/item/clothing/head/fedora/white = 5, + /obj/item/clothing/head/standalone_hood = 5, + /obj/item/clothing/head/small_bow = 5, + /obj/item/clothing/head/large_bow = 5, + /obj/item/clothing/head/back_bow = 5, + /obj/item/clothing/head/sweet_bow = 5, + ), + ), + + list( + "name" = "Accessories", + "icon" = "glasses", + "products" = list( + /obj/item/clothing/neck/ranger_poncho = 5, + /obj/item/clothing/neck/cloak/colourable = 5, + /obj/item/clothing/neck/cloak/colourable/veil = 5, + /obj/item/clothing/neck/cloak/colourable/shroud = 5, + /obj/item/clothing/neck/cloak/colourable/boat = 5, + /obj/item/clothing/neck/mantle/recolorable = 5, + /obj/item/clothing/neck/long_cape = 5, + /obj/item/clothing/neck/wide_cape = 5, + /obj/item/clothing/neck/robe_cape = 5, + /obj/item/clothing/glasses/regular/betterunshit = 5, + /obj/item/clothing/glasses/thin = 5, + /obj/item/clothing/neck/face_scarf = 5, + ), + ), + + list( + "name" = "Under", + "icon" = "shirt", + "products" = list( + /obj/item/clothing/under/pants/nova/jeans_ripped = 5, + /obj/item/clothing/under/shorts/nova/shorts_ripped = 5, + /obj/item/clothing/under/pants/nova/yoga = 5, + /obj/item/clothing/under/misc/nova/mechanic = 5, + /obj/item/clothing/under/misc/bluetracksuit = 5, + /obj/item/clothing/under/suit/nova/recolorable = 5, + /obj/item/clothing/under/suit/nova/recolorable/skirt = 5, + /obj/item/clothing/under/pants/nova/kilt = 5, + /obj/item/clothing/under/suit/fancy = 5, + /obj/item/clothing/under/texas = 5, + /obj/item/clothing/under/sweater = 5, + /obj/item/clothing/under/sweater/keyhole = 5, + /obj/item/clothing/under/tachawaiian = 5, + /obj/item/clothing/under/tachawaiian/purple = 5, + /obj/item/clothing/under/tachawaiian/green = 5, + /obj/item/clothing/under/tachawaiian/blue = 5, + /obj/item/clothing/under/suit/nova/black_really_collared = 3, + /obj/item/clothing/under/suit/nova/black_really_collared/skirt = 3, + /obj/item/clothing/under/suit/nova/pencil = 3, + /obj/item/clothing/under/suit/nova/pencil/black_really = 3, + /obj/item/clothing/under/suit/nova/pencil/charcoal = 3, + /obj/item/clothing/under/suit/nova/pencil/navy = 3, + /obj/item/clothing/under/suit/nova/pencil/burgandy = 3, + /obj/item/clothing/under/suit/nova/pencil/checkered = 3, + /obj/item/clothing/under/suit/nova/pencil/tan = 3, + /obj/item/clothing/under/suit/nova/pencil/green = 3, + /obj/item/clothing/under/suit/nova/inferno = 3, + /obj/item/clothing/under/suit/nova/inferno/skirt = 3, + /obj/item/clothing/under/suit/nova/helltaker = 3, + /obj/item/clothing/under/suit/nova/helltaker/skirt = 3, + /obj/item/clothing/under/dress/skirt/nova/medium = 5, + /obj/item/clothing/under/dress/skirt/nova/long = 5, + ), + ), + + list( + "name" = "Suits & Skirts", + "icon" = "vest", + "products" = list( + /obj/item/clothing/under/dress/skirt/nova/lone_skirt = 5, + /obj/item/clothing/under/dress/skirt/nova/turtleskirt_knit = 5, + /obj/item/clothing/under/dress/nova/short_dress = 5, + /obj/item/clothing/under/dress/nova/pinktutu = 5, + /obj/item/clothing/under/dress/skirt/nova/jean = 5, + /obj/item/clothing/under/dress/nova/flower = 5, + /obj/item/clothing/under/dress/nova/strapless = 5, + /obj/item/clothing/under/dress/nova/pentagram = 5, + /obj/item/clothing/suit/varsity = 5, + /obj/item/clothing/suit/toggle/jacket = 5, + /obj/item/clothing/suit/toggle/jacket/flannel/gags = 5, + /obj/item/clothing/suit/toggle/jacket/flannel = 5, + /obj/item/clothing/suit/toggle/jacket/flannel/red = 5, + /obj/item/clothing/suit/toggle/jacket/flannel/aqua = 5, + /obj/item/clothing/suit/toggle/jacket/flannel/brown = 5, + /obj/item/clothing/suit/toggle/jacket/hoodie = 5, + /obj/item/clothing/suit/toggle/jacket/hoodie/trim = 5, + /obj/item/clothing/suit/toggle/jacket/hoodie/trim/alt = 5, + /obj/item/clothing/suit/toggle/jacket/hoodie/branded = 5, + /obj/item/clothing/suit/toggle/jacket/hoodie/branded/cti = 5, + /obj/item/clothing/suit/toggle/jacket/hoodie/branded/mu = 5, + /obj/item/clothing/suit/toggle/jacket/hoodie/branded/smw = 5, + /obj/item/clothing/suit/toggle/jacket/hoodie/branded/nrti = 5, + /obj/item/clothing/suit/toggle/jacket/cardigan = 5, + /obj/item/clothing/suit/toggle/peacoat = 5, + /obj/item/clothing/suit/toggle/trackjacket = 5, + /obj/item/clothing/suit/toggle/lawyer/white = 5, + /obj/item/clothing/suit/urban = 5, + /obj/item/clothing/suit/duster = 5, + /obj/item/clothing/suit/fallsparka = 5, + /obj/item/clothing/suit/jacket/croptop = 5, + /obj/item/clothing/suit/modernwintercoatthing = 5, + /obj/item/clothing/suit/apron/chef/colorable_apron = 5, + /obj/item/clothing/suit/warm_coat = 5, + /obj/item/clothing/suit/warm_sweater = 5, + /obj/item/clothing/suit/heart_sweater = 5, + /obj/item/clothing/suit/crop_jacket = 5, + ), + ), + + list( + "name" = "Shoes", + "icon" = "socks", + "products" = list( + /obj/item/clothing/shoes/colorable_laceups = 5, + /obj/item/clothing/shoes/colorable_sandals = 5, + /obj/item/clothing/shoes/sports = 5, + /obj/item/clothing/shoes/wraps/colourable = 5, + /obj/item/clothing/shoes/wraps/cloth = 5, + /obj/item/clothing/shoes/jungleboots = 5, + /obj/item/clothing/shoes/jackboots/knee = 5, + /obj/item/clothing/shoes/jackboots/recolorable = 5, + ), + ), + + //Only put clothing in Special thats either Families or exteremly out-of-place + list( + "name" = "Special", + "icon" = "star", + "products" = list( + /obj/item/clothing/under/costume/deckers/alt = 5, + /obj/item/clothing/under/costume/nova/bathrobe = 5, + ) + ) + ) + + premium_monke = list( //being here means you're artificially rare, congratulations + /obj/item/clothing/shoes/jackboots/timbs = 2, + /obj/item/clothing/head/soft/yankee = 3, + /obj/item/clothing/suit/brownbattlecoat = 1, + /obj/item/clothing/suit/blackfurrich = 1, + /obj/item/clothing/suit/frenchtrench = 1, + ) diff --git a/monkestation/code/modules/blueshift/mobs/bumbles.dm b/monkestation/code/modules/blueshift/mobs/bumbles.dm new file mode 100644 index 000000000000..f01e361d11fd --- /dev/null +++ b/monkestation/code/modules/blueshift/mobs/bumbles.dm @@ -0,0 +1,176 @@ +/mob/living/basic/pet/bumbles + name = "Bumbles" + desc = "Bumbles, the very humble bumblebee." + icon = 'monkestation/code/modules/blueshift/icons/mob/pets.dmi' + icon_state = "bumbles" + icon_living = "bumbles" + icon_dead = "bumbles_dead" + maxHealth = 15 + health = 15 + response_help_continuous = "pets" + response_help_simple = "pet" + response_disarm_continuous = "brushes aside" + response_help_simple = "brush aside" + response_harm_continuous = "squashes" + response_harm_simple = "squash" + speak_emote = list("buzzes") + friendly_verb_continuous = "bzzs" + friendly_verb_simple = "bzz" + butcher_results = list(/obj/item/reagent_containers/honeycomb = 2) + density = FALSE + mobility_flags = MOBILITY_FLAGS_REST_CAPABLE_DEFAULT + pass_flags = PASSTABLE | PASSGRILLE | PASSMOB + mob_size = MOB_SIZE_TINY + mob_biotypes = MOB_ORGANIC|MOB_BEAST + gold_core_spawnable = FRIENDLY_SPAWN + verb_say = "buzzs" + verb_ask = "buzzes inquisitively" + verb_exclaim = "buzzes intensely" + verb_yell = "buzzes intensely" + unique_name = TRUE + ai_controller = /datum/ai_controller/basic_controller/bumbles + + /// List of flower types that can be attacked to smell, or are targetted by AI. + var/list/flower_types = list( + /obj/item/bouquet, + /obj/item/food/grown/poppy, + /obj/item/food/grown/sunflower, + /obj/item/food/grown/moonflower, + /obj/item/food/grown/rose, + /obj/item/food/grown/harebell, + ) + +/mob/living/basic/pet/bumbles/Initialize(mapload) + . = ..() + + AddElement(/datum/element/simple_flying) + add_verb(src, /mob/living/proc/toggle_resting) + + ai_controller.set_blackboard_key(BB_BASIC_FOODS, flower_types) + + RegisterSignal(src, COMSIG_HOSTILE_PRE_ATTACKINGTARGET, PROC_REF(smell_flower)) + +/mob/living/basic/pet/bumbles/update_resting() + if(stat == DEAD) + return ..() + + if (resting) + icon_state = "[icon_living]_rest" + + ai_controller.idle_behavior = null + + manual_emote(pick("curls up on the surface below.", "is looking very sleepy.", "buzzes happily.", "looks around for a flower nap.")) + REMOVE_TRAIT(src, TRAIT_MOVE_FLYING, ROUNDSTART_TRAIT) + else + icon_state = "[icon_living]" + + var/idle_behavior_type = initial(ai_controller.idle_behavior) + if(idle_behavior_type) + ai_controller.idle_behavior = new idle_behavior_type() + + manual_emote(pick("wakes up with a smiling buzz.", "rolls upside down before waking up.", "stops resting.")) + ADD_TRAIT(src, TRAIT_MOVE_FLYING, ROUNDSTART_TRAIT) + + regenerate_icons() + return ..() + +/mob/living/basic/pet/bumbles/bee_friendly() + return TRUE // treaty signed at the Beeneeva convention + +/mob/living/basic/pet/bumbles/UnarmedAttack(atom/attack_target, proximity_flag, list/modifiers) + . = ..() + if(!. || !proximity_flag || (istate & ISTATE_HARM)) + return + + smell_flower(src, attack_target) + +/** + * Smell a flower, either via AI or unarmed attack. + * + * Arguments: + * * source - Signal source. Will be the same as src. + * * target - The thing being attacked. + */ +/mob/living/basic/pet/bumbles/proc/smell_flower(atom/source, atom/target) + SIGNAL_HANDLER + + if(!is_type_in_list(target, flower_types)) + return + + manual_emote(pick("smells [target].", "sniffs [target].", "collects some nectar.")) + + // Clear the target, if any or we'll stunlock on a flower. + ai_controller.clear_blackboard_key(BB_BASIC_MOB_CURRENT_TARGET) + + return TRUE + +/mob/living/basic/pet/bumbles/Moved(atom/old_loc, movement_dir, forced, list/old_locs, momentum_change) + . = ..() + + if(resting) + set_resting(FALSE) + +/////////////////////////////// +// Bumbles AI below. +/////////////////////////////// + +// Bumble AI controller that adds find flowers, resting, and buzzing subtrees. +/datum/ai_controller/basic_controller/bumbles + blackboard = list( + BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic/allow_items, + ) + + ai_traits = STOP_MOVING_WHEN_PULLED + ai_movement = /datum/ai_movement/basic_avoidance + idle_behavior = /datum/idle_behavior/idle_random_walk + + planning_subtrees = list( + /datum/ai_planning_subtree/find_food, + /datum/ai_planning_subtree/basic_melee_attack_subtree/bumbles, + /datum/ai_planning_subtree/bumbles_rest, + /datum/ai_planning_subtree/random_speech/bumbles, + ) + +/// Attack with a 30 second cooldown. +/datum/ai_planning_subtree/basic_melee_attack_subtree/bumbles + melee_attack_behavior = /datum/ai_behavior/basic_melee_attack/bumbles + +/// Attack with a 30 second cooldown. +/datum/ai_behavior/basic_melee_attack/bumbles + action_cooldown = 30 SECONDS + +/// Plan to rest or sit up. +/datum/ai_planning_subtree/bumbles_rest + var/chance = 0.5 + +/datum/ai_planning_subtree/bumbles_rest/SelectBehaviors(datum/ai_controller/controller, seconds_per_tick) + . = ..() + + var/mob/living/living_pawn = controller.pawn + if(!istype(living_pawn)) + return + + if(living_pawn.buckled || !SPT_PROB(chance, seconds_per_tick)) + return + + controller.queue_behavior(/datum/ai_behavior/bumbles_rest) + +/// Bumbles rests or sits up. +/datum/ai_behavior/bumbles_rest + +/datum/ai_behavior/bumbles_rest/perform(seconds_per_tick, datum/ai_controller/controller) + . = ..() + + var/mob/living/living_pawn = controller.pawn + if(!istype(living_pawn)) + return + + living_pawn.set_resting(!living_pawn.resting) + finish_action(controller, TRUE) + +/// Buzz +/datum/ai_planning_subtree/random_speech/bumbles + speech_chance = 1 + + emote_hear = list("buzzes.", "makes a loud buzz.", "buzzes happily.") + emote_see = list("rolls several times.") diff --git a/monkestation/code/modules/blueshift/mobs/kiwi.dm b/monkestation/code/modules/blueshift/mobs/kiwi.dm new file mode 100644 index 000000000000..c53488b6f995 --- /dev/null +++ b/monkestation/code/modules/blueshift/mobs/kiwi.dm @@ -0,0 +1,51 @@ +/mob/living/basic/kiwi + name = "kiwi" + desc = "It's a kiwi!" + icon = 'monkestation/code/modules/blueshift/icons/mob/newmobs.dmi' + icon_state = "kiwi" + icon_living = "kiwi" + icon_dead = "kiwi_dead" + maxHealth = 15 + health = 15 + density = FALSE + mobility_flags = MOBILITY_FLAGS_REST_CAPABLE_DEFAULT + pass_flags = PASSTABLE | PASSGRILLE | PASSMOB + mob_size = MOB_SIZE_LARGE + mob_biotypes = MOB_ORGANIC|MOB_BEAST + gold_core_spawnable = FRIENDLY_SPAWN + + response_help_continuous = "pets" + response_help_simple = "pet" + response_disarm_continuous = "moves aside" + response_disarm_simple = "move aside" + response_harm_continuous = "smacks" + response_harm_simple = "smack" + friendly_verb_continuous = "boops" + friendly_verb_simple = "boop" + verb_say = "cheep" + verb_ask = "cheeps inquisitively" + verb_exclaim = "cheeps loudly" + verb_yell = "screeches" + + ai_controller = /datum/ai_controller/basic_controller/kiwi + +/mob/living/basic/kiwi/Initialize(mapload) + . = ..() + AddElement(/datum/element/pet_bonus, "cheeps happily!") + +/datum/ai_controller/basic_controller/kiwi + blackboard = list() + + ai_traits = STOP_MOVING_WHEN_PULLED + ai_movement = /datum/ai_movement/basic_avoidance + idle_behavior = /datum/idle_behavior/idle_random_walk + + planning_subtrees = list( + /datum/ai_planning_subtree/random_speech/kiwi, + ) + +/datum/ai_planning_subtree/random_speech/kiwi + speech_chance = 5 + emote_hear = list("makes a loud cheep.", "cheeps happily.") + emote_see = list("runs around.") + speak = list("cheep", "cheep cheep!") diff --git a/monkestation/code/modules/blueshift/mobs/misc_pets.dm b/monkestation/code/modules/blueshift/mobs/misc_pets.dm new file mode 100644 index 000000000000..7e5b7efafc4c --- /dev/null +++ b/monkestation/code/modules/blueshift/mobs/misc_pets.dm @@ -0,0 +1,72 @@ +/mob/living/simple_animal/pet/gondola/funky + name = "Funky" + real_name = "Funky" + desc = "Gondola is the silent walker. Having no hands he embodies the Taoist principle of wu-wei (non-action) while his smiling facial expression shows his utter and complete acceptance of the world as it is. Its hide is extremely valuable. This one seems a little skinny and attached to the Theater." + loot = list(/obj/effect/decal/cleanable/blood/gibs) + +/mob/living/basic/pet/dog/dobermann/walter + name = "Walter" + real_name = "Walter" + desc = "It's Walter, he bites criminals just as well as he bites toddlers." + +/mob/living/basic/rabbit/daisy + name = "Daisy" + real_name = "Daisy" + desc = "The Curator's pet bnuuy." + gender = FEMALE + +/mob/living/basic/bear/wojtek + name = "Wojtek" + real_name = "Wojtek" + desc = "The bearer of Bluespace Artillery." + faction = list(FACTION_NEUTRAL) + gender = MALE + +/mob/living/basic/chicken/teshari + name = "Teshari" + real_name = "Teshari" + desc = "A timeless classic." + unsuitable_atmos_damage = 0 + minimum_survivable_temperature = 0 + maximum_survivable_temperature = 30000 + +///Wild carp that just vibe ya know +/mob/living/basic/carp/passive + name = "passive carp" + desc = "A timid, sucker-bearing creature that resembles a fish. " + + attack_verb_continuous = "suckers" + attack_verb_simple = "suck" + + melee_damage_lower = 4 + melee_damage_upper = 4 + ai_controller = /datum/ai_controller/basic_controller/carp/passive + +/mob/living/basic/carp/passive/Initialize(mapload) + . = ..() + AddElement(/datum/element/ai_retaliate) + AddElement(/datum/element/pet_bonus, "bloops happily!") + +/** + * Carp which bites back, but doesn't look for targets and doesnt do as much damage + * Still migrate and stuff + */ +/datum/ai_controller/basic_controller/carp/passive + blackboard = list( + BB_BASIC_MOB_STOP_FLEEING = TRUE, + BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic, + BB_PET_TARGETING_STRATEGY = /datum/targeting_strategy/basic/not_friends, + ) + ai_traits = STOP_MOVING_WHEN_PULLED + planning_subtrees = list( + /datum/ai_planning_subtree/pet_planning, + /datum/ai_planning_subtree/simple_find_nearest_target_to_flee, + /datum/ai_planning_subtree/make_carp_rift/panic_teleport, + /datum/ai_planning_subtree/flee_target, + /datum/ai_planning_subtree/find_food, + /datum/ai_planning_subtree/attack_obstacle_in_path/carp, + /datum/ai_planning_subtree/shortcut_to_target_through_carp_rift, + /datum/ai_planning_subtree/make_carp_rift/aggressive_teleport, + /datum/ai_planning_subtree/basic_melee_attack_subtree, + /datum/ai_planning_subtree/carp_migration, + ) diff --git a/monkestation/code/modules/blueshift/mobs/poppy.dm b/monkestation/code/modules/blueshift/mobs/poppy.dm new file mode 100644 index 000000000000..72d8564a941f --- /dev/null +++ b/monkestation/code/modules/blueshift/mobs/poppy.dm @@ -0,0 +1,143 @@ +/mob/living/basic/pet/poppy + name = "Poppy the Safety Inspector" + desc = "Safety first!" + icon = 'monkestation/code/modules/blueshift/icons/mob/pets.dmi' + icon_state = "poppypossum" + icon_living = "poppypossum" + icon_dead = "poppypossum_dead" + gender = FEMALE + unique_pet = TRUE + maxHealth = 30 + health = 30 + speak_emote = list("hisses") + /// Is the inspection currently being passed? + var/safety_inspection = TRUE + /// Are they scared already? + var/upset = FALSE + /// Are they near the supermatter? + var/near_engine = FALSE + response_help_continuous = "pets" + response_help_simple = "pet" + response_disarm_continuous = "gently pushes aside" + response_disarm_simple = "gently push aside" + response_harm_continuous = "stamps on" + response_harm_simple = "stamp" + density = FALSE + mobility_flags = MOBILITY_FLAGS_REST_CAPABLE_DEFAULT + pass_flags = PASSTABLE | PASSGRILLE | PASSMOB + mob_size = MOB_SIZE_TINY + mob_biotypes = MOB_ORGANIC|MOB_BEAST + gold_core_spawnable = NO_SPAWN + light_system = OVERLAY_LIGHT_DIRECTIONAL + light_color = LIGHT_COLOR_BRIGHT_YELLOW + light_outer_range = 2 + light_power = 0.8 + light_on = TRUE + +/datum/ai_controller/basic_controller/poppy + blackboard = list( + BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic, + ) + + ai_traits = STOP_MOVING_WHEN_PULLED + ai_movement = /datum/ai_movement/basic_avoidance + idle_behavior = /datum/idle_behavior/idle_random_walk + + planning_subtrees = list( + /datum/ai_planning_subtree/random_speech/poppy, + ) + +/datum/ai_planning_subtree/random_speech/poppy + speak = list("Hiss!", "HISS!", "Hissss?") + emote_hear = list("hisses.") + emote_see = list("runs in a circle.", "shakes.") + speech_chance = 1 + +/mob/living/basic/pet/poppy/Initialize(mapload) + . = ..() + add_verb(src, /mob/living/proc/toggle_resting) + become_area_sensitive(INNATE_TRAIT) + + ADD_TRAIT(src, TRAIT_VENTCRAWLER_ALWAYS, INNATE_TRAIT) + RegisterSignal(src, COMSIG_ENTER_AREA, PROC_REF(check_area)) + + qdel(GetComponent(/datum/component/butchering)) + + var/datum/component/overlay_lighting/lighting_object = src.GetComponent(/datum/component/overlay_lighting) + var/image/cone = lighting_object.cone + cone.transform = cone.transform.Translate(0, -16) // adjust the little headlamp + +/mob/living/basic/pet/poppy/death() + lose_area_sensitivity(INNATE_TRAIT) + set_light_on(FALSE) + + if(safety_inspection) + var/list/sm_chamber = get_area_turfs(/area/station/engineering/supermatter) + if(src.loc in sm_chamber) + safety_inspection = FALSE + priority_announce("This is a generated message due to an automated signal regarding the safety standards of the engineering department onboard [station_name()]. Due to the station engineers failing to meet the standard set by Central Command, each of them are now at risk of being forcefully enrolled in a re-evaluation program at later notice...", "Concerning the results of a safety inspection", type = "Priority") + // It's just flavor, no tangible punishment + return ..() + +/mob/living/basic/pet/poppy/revive(full_heal_flags = NONE, excess_healing = 0, force_grab_ghost = FALSE) + become_area_sensitive(INNATE_TRAIT) + set_light_on(TRUE) + ..() + +/mob/living/basic/pet/poppy/update_resting() + . = ..() + if(resting) + icon_state = "[icon_living]_rest" + set_light_on(FALSE) + else + icon_state = "[icon_living]" + set_light_on(TRUE) + regenerate_icons() + +/mob/living/basic/pet/poppy/Life(seconds_per_tick = SSMOBS_DT, times_fired) + if(client || stat) + return + + if(pulledby) + set_resting(FALSE) + + if(near_engine) + near_engine = FALSE + panic() + + if(!SPT_PROB(0.5, seconds_per_tick)) + return + if(!resting) + manual_emote(pick("lets out a hiss before resting.", "catches a break.", "gives a simmering hiss before lounging.", "exams her surroundings before relaxing.")) + set_resting(TRUE) + return + else + manual_emote(pick("stretches her claws, rising...", "diligently gets up, ready to inspect!", "stops her resting.")) + set_resting(FALSE) + + return ..() + +/mob/living/basic/pet/poppy/proc/check_area() + SIGNAL_HANDLER + if(safety_inspection && !upset) + var/list/sm_room = get_area_turfs(/area/station/engineering/supermatter/room) + if(src.loc in sm_room) + near_engine = TRUE + +/mob/living/basic/pet/poppy/proc/panic() + upset = TRUE + icon_state = "poppypossum_aaa" + + emote("sweatdrop") + do_jitter_animation(60) + manual_emote("'s fur stands up, [src.p_their()] body trembling...") + + notify_ghosts("[src] was startled by the supermatter!", + source = src, + header = "Safety Inspection!", + ) + addtimer(CALLBACK(src, PROC_REF(calm_down)), 60 SECONDS) + +/mob/living/basic/pet/poppy/proc/calm_down() + upset = FALSE + icon_state = initial(icon_state) diff --git a/monkestation/code/modules/blueshift/mobs/soulcatcher.dm b/monkestation/code/modules/blueshift/mobs/soulcatcher.dm new file mode 100644 index 000000000000..6f5195c12799 --- /dev/null +++ b/monkestation/code/modules/blueshift/mobs/soulcatcher.dm @@ -0,0 +1,285 @@ +/mob/living/soulcatcher_soul + /// What does our soul look like? + var/soul_desc = "It's a soul." + /// What are the ooc notes for the soul? + var/ooc_notes = "" + + /// Assuming we died inside of the round? What is our previous body? + var/datum/weakref/previous_body + /// What is the weakref of the soulcatcher room are we currently in? + var/datum/weakref/current_room + + /// Is the soul able to see things in the outside world? + var/outside_sight = TRUE + /// Is the soul able to hear things from the outside world? + var/outside_hearing = TRUE + /// Is the soul able to "see" things from inside of the soulcatcher? + var/internal_sight = TRUE + /// Is the soul able to "hear" things from inside of the soulcatcher? + var/internal_hearing = TRUE + /// Is the soul able to emote inside the soulcatcher room? + var/able_to_emote = TRUE + /// Is the soul able to speak inside the soulcatcher room? + var/able_to_speak = TRUE + /// Is the soul able to change their own name? + var/able_to_rename = TRUE + /// Is the soul able to speak as the object it is inside? + var/able_to_speak_as_container = TRUE + /// Is the soul able to emote as the object it is inside? + var/able_to_emote_as_container = TRUE + /// Are emote's and Say's done through the container the mob is in? + var/communicating_externally = FALSE + + /// Is the soul able to leave the soulcatcher? + var/able_to_leave = TRUE + /// Did the soul live within the round? This is checked if we want to transfer the soul to another body. + var/round_participant = FALSE + /// Does the body need scanned? + var/body_scan_needed = FALSE + +/mob/living/soulcatcher_soul/Initialize(mapload) + . = ..() + if(!outside_sight) + become_blind(NO_EYES) + + if(!outside_hearing) + ADD_TRAIT(src, TRAIT_DEAF, INNATE_TRAIT) + + var/datum/action/innate/leave_soulcatcher/leave_action = new(src) + leave_action.Grant(src) + + var/datum/action/innate/soulcatcher_user/soulcatcher_action = new(src) + soulcatcher_action.Grant(src) + var/datum/component/soulcatcher_user/user_component = AddComponent(/datum/component/soulcatcher_user) + soulcatcher_action.soulcatcher_user_component = WEAKREF(user_component) + +/// Toggles whether or not the soul inside the soulcatcher can see the outside world. Returns the state of the `outside_sight` variable. +/mob/living/soulcatcher_soul/proc/toggle_sight() + outside_sight = !outside_sight + if(outside_sight) + cure_blind(NO_EYES) + else + become_blind(NO_EYES) + + return outside_sight + +/// Toggles whether or not the soul inside the soulcatcher can see the outside world. Returns the state of the `outside_hearing` variable. +/mob/living/soulcatcher_soul/proc/toggle_hearing() + outside_hearing = !outside_hearing + if(outside_hearing) + REMOVE_TRAIT(src, TRAIT_DEAF, INNATE_TRAIT) + else + ADD_TRAIT(src, TRAIT_DEAF, INNATE_TRAIT) + + return outside_hearing + +/// Changes the soul's name based off `new_name`. Returns `TRUE` if the name has been changed, otherwise returns `FALSE`. +/mob/living/soulcatcher_soul/proc/change_name(new_name) + if(!new_name || (round_participant && body_scan_needed)) + return FALSE + + name = new_name + return TRUE + +/// Attempts to reset the soul's name to it's name in prefs. Returns `TRUE` if the name is reset, otherwise returns `FALSE`. +/mob/living/soulcatcher_soul/proc/reset_name() + if(!mind?.name || change_name(mind.name)) + return FALSE + + return TRUE + +/// Checks if the mob wants to leave the soulcatcher. If they do and are able to leave, they are booted out. +/mob/living/soulcatcher_soul/verb/leave_soulcatcher() + set name = "Leave Soulcatcher" + set category = "IC" + + if(!able_to_leave) + to_chat(src, span_warning("You are unable to leave the soulcatcher.")) + return FALSE + + if(tgui_alert(src, "Are you sure you wish to leave the soulcatcher? IF you had a body, this will return you to your body", "Soulcatcher", list("Yes", "No")) != "Yes") + return FALSE + + if(tgui_alert(src, "Are you really sure about this?", "Soulcatcher", list("Yes", "No")) != "Yes") + return FALSE + + return_to_body() + qdel(src) + +/mob/living/soulcatcher_soul/ghost() + . = ..() + return_to_body() + qdel(src) + +/mob/living/soulcatcher_soul/say( + message, + bubble_type, + list/spans = list(), + sanitize = TRUE, + datum/language/language, + ignore_spam = FALSE, + forced, + filterproof = FALSE, + message_range = 7, + datum/saymode/saymode, + list/message_mods = list(), +) + message = trim(copytext_char(sanitize(message), 1, MAX_MESSAGE_LEN)) + if(!message || message == "") + return + + if((!able_to_speak && !communicating_externally) || (!able_to_speak_as_container && communicating_externally)) + to_chat(src, span_warning("You are unable to speak!")) + return FALSE + + var/datum/soulcatcher_room/room = current_room.resolve() + if(!room) + return FALSE + + room.send_message(message, src, FALSE) + return TRUE + +/mob/living/soulcatcher_soul/me_verb(message as text|null) + message = trim(copytext_char(sanitize(message), 1, MAX_MESSAGE_LEN)) + if(!message) + return FALSE + + if((!able_to_emote && !communicating_externally) || (!able_to_emote_as_container && communicating_externally)) + to_chat(src, span_warning("You are unable to emote!")) + return FALSE + + var/datum/soulcatcher_room/room = current_room.resolve() + if(!room) + return FALSE + + room.send_message(message, src, TRUE) + return TRUE + + +/mob/living/soulcatcher_soul/whisper_verb() + set hidden = TRUE + return FALSE + +/mob/living/soulcatcher_soul/resist() + set hidden = TRUE + return FALSE + +/// Assuming we have a previous body a present mind on our soul, we are going to transfer the mind back to the old body. +/mob/living/soulcatcher_soul/proc/return_to_body() + if(!previous_body || !mind) + return FALSE + + var/mob/target_body = previous_body.resolve() + if(!target_body) + return FALSE + + mind.transfer_to(target_body) + SEND_SIGNAL(target_body, COMSIG_SOULCATCHER_CHECK_SOUL, FALSE) + + if(target_body.stat != DEAD) + target_body.grab_ghost(TRUE) + +/mob/living/soulcatcher_soul/Destroy() + log_message("[key_name(src)] has exited a soulcatcher.", LOG_GAME) + if(current_room) + var/datum/soulcatcher_room/room = current_room.resolve() + if(room) + room.current_souls -= src + + current_room = null + + return ..() + +/datum/emote/living + mob_type_blacklist_typecache = list(/mob/living/brain, /mob/living/soulcatcher_soul) + +/datum/action/innate/leave_soulcatcher + name = "Leave Soulcatcher" + background_icon = 'monkestation/code/modules/blueshift/icons/mob/actions/action_backgrounds.dmi' + background_icon_state = "android" + button_icon = 'monkestation/code/modules/blueshift/icons/mob/actions/actions_nif.dmi' + button_icon_state = "soulcatcher_exit" + +/datum/action/innate/leave_soulcatcher/Activate() + . = ..() + var/mob/living/soulcatcher_soul/parent_soul = owner + if(!parent_soul) + return FALSE + + parent_soul.leave_soulcatcher() + +/datum/action/innate/soulcatcher_user + name = "Soulcatcher" + background_icon = 'monkestation/code/modules/blueshift/icons/mob/actions/action_backgrounds.dmi' + background_icon_state = "android" + button_icon = 'monkestation/code/modules/blueshift/icons/mob/actions/actions_nif.dmi' + button_icon_state = "soulcatcher" + /// What soulcatcher user component are we bringing up the menu for? + var/datum/weakref/soulcatcher_user_component + +/datum/action/innate/soulcatcher_user/Activate() + . = ..() + var/datum/component/soulcatcher_user/user_component = soulcatcher_user_component.resolve() + if(!user_component) + return FALSE + + user_component.ui_interact(owner) + +/// Prompts the parent mob to send a say message to the soulcatcher. Returns False if no soulcatcher or message could be found. +/mob/living/proc/soulcatcher_say() + set name = "Soul Say" + set category = "IC" + set desc = "Send a Say message to your currently targeted soulcatcher room." + var/datum/component/soulcatcher/target_soulcatcher = find_soulcatcher() + if(!target_soulcatcher || !target_soulcatcher.targeted_soulcatcher_room) + return FALSE + + var/message_to_send = tgui_input_text(usr, "Input the message you want to send", "Soulcatcher", multiline = TRUE) + if(!message_to_send) + return FALSE + + target_soulcatcher.targeted_soulcatcher_room.send_message(message_to_send, target_soulcatcher.targeted_soulcatcher_room.outside_voice) + return TRUE + +/// Prompts the parent mob to send a emote to the soulcatcher. Returns False if no soulcatcher or emote could be found. +/mob/living/proc/soulcatcher_emote() + set name = "Soul Me" + set category = "IC" + set desc = "Send an emote to your currently targeted soulcatcher room." + var/datum/component/soulcatcher/target_soulcatcher = find_soulcatcher() + if(!target_soulcatcher || !target_soulcatcher.targeted_soulcatcher_room) + return FALSE + + var/message_to_send = tgui_input_text(usr, "Input the emote you want to send", "Soulcatcher", multiline = TRUE) + if(!message_to_send) + return FALSE + + target_soulcatcher.targeted_soulcatcher_room.send_message(message_to_send, target_soulcatcher.targeted_soulcatcher_room.outside_voice, TRUE) + return TRUE + +/// Attempts to find and return the soulcatcher the parent mob is currently using. If none can be found, returns `FALSE` +/mob/living/proc/find_soulcatcher() + var/obj/item/soulcatcher_holder/soul_holder = locate(/obj/item/soulcatcher_holder) in contents + if(!soul_holder) + return FALSE + + var/datum/component/soulcatcher/target_soulcatcher = soul_holder.GetComponent(/datum/component/soulcatcher) + if(!target_soulcatcher) + return FALSE + + return target_soulcatcher + +/mob/living/carbon/human/find_soulcatcher() + . = ..() + if(.) // No need to go searching further if we've already found one. + return . + + var/datum/nifsoft/soulcatcher/souclatcher_nifsoft = find_nifsoft(/datum/nifsoft/soulcatcher) + if(!souclatcher_nifsoft) + return FALSE + + var/datum/component/soulcatcher/target_soulcatcher = souclatcher_nifsoft.linked_soulcatcher.resolve() + if(!target_soulcatcher) + return FALSE + + return target_soulcatcher diff --git a/monkestation/code/modules/blueshift/nifsoft/_base.dm b/monkestation/code/modules/blueshift/nifsoft/_base.dm new file mode 100644 index 000000000000..d9f27ee423f3 --- /dev/null +++ b/monkestation/code/modules/blueshift/nifsoft/_base.dm @@ -0,0 +1,852 @@ +GLOBAL_LIST_INIT(purchasable_nifsofts, list( + /datum/nifsoft/hivemind, + /datum/nifsoft/soul_poem, + /datum/nifsoft/soulcatcher, +)) + +/datum/computer_file/program/nifsoft_downloader + filename = "nifsoftcatalog" + filedesc = "NIFSoft Catalog" + extended_desc = "A virtual storefront that allows the user to install NIFSofts and purchase various NIF related products" + category = PROGRAM_CATEGORY_DEVICE + size = 3 + tgui_id = "NtosNifsoftCatalog" + program_icon = "bag-shopping" + usage_flags = PROGRAM_TABLET + ///What bank account is money being drawn out of? + var/datum/bank_account/paying_account + ///What NIF are the NIFSofts being sent to? + var/datum/weakref/target_nif + +/datum/computer_file/program/nifsoft_downloader/Destroy(force) + paying_account = null + target_nif = null + + return ..() + +//TGUI STUFF + +/datum/computer_file/program/nifsoft_downloader/ui_data(mob/user) + var/list/data = list() + + paying_account = computer.computer_id_slot?.registered_account || null + data["paying_account"] = paying_account + data["current_balance"] = computer.computer_id_slot?.registered_account?.account_balance + + var/rewards_points = 0 + + if(target_nif) + var/obj/item/organ/internal/cyberimp/brain/nif/buyer_nif = target_nif.resolve() + if(buyer_nif) + rewards_points = buyer_nif.rewards_points + + data["rewards_points"] = rewards_points + return data + +/datum/computer_file/program/nifsoft_downloader/ui_static_data(mob/user) + var/list/data = list() + var/list/product_list = list() + + var/mob/living/carbon/human/nif_user = user + if(!ishuman(nif_user)) + target_nif = null + + else + var/obj/item/organ/internal/cyberimp/brain/nif/user_nif = nif_user.get_organ_by_type(/obj/item/organ/internal/cyberimp/brain/nif) + if(!user_nif) + target_nif = null + + if(!target_nif || user_nif != target_nif.resolve()) + target_nif = WEAKREF(user_nif) + + data["target_nif"] = target_nif + + for(var/datum/nifsoft/buyable_nifsoft as anything in GLOB.purchasable_nifsofts) + if(!buyable_nifsoft) + continue + + var/list/nifsoft_details = list( + "name" = initial(buyable_nifsoft.name), + "desc" = initial(buyable_nifsoft.program_desc), + "price" = initial(buyable_nifsoft.purchase_price), + "rewards_points_rate" = initial(buyable_nifsoft.rewards_points_rate), + "points_purchasable" = initial(buyable_nifsoft.rewards_points_eligible), + "category" = initial(buyable_nifsoft.buying_category), + "ui_icon" = initial(buyable_nifsoft.ui_icon), + "reference" = buyable_nifsoft, + "keepable" = initial(buyable_nifsoft.able_to_keep), + ) + var/category = nifsoft_details["category"] + if(!(category in product_list)) + product_list[category] += (list(name = category, products = list())) + + product_list[category]["products"] += list(nifsoft_details) + + for(var/product_category in product_list) + data["product_list"] += list(product_list[product_category]) + + return data + +/datum/computer_file/program/nifsoft_downloader/ui_act(action, list/params) + . = ..() + if(.) + return + + switch(action) + if("purchase_product") + var/datum/nifsoft/product_to_buy = text2path(params["product_to_buy"]) + if(!product_to_buy || !paying_account) + return FALSE + + var/amount_to_charge = (params["product_cost"]) + var/rewards_purchase = (params["rewards_purchase"]) + + if(!target_nif) + paying_account.bank_card_talk("You need a NIF implant to purchase this.") + return FALSE + + var/obj/item/organ/internal/cyberimp/brain/nif/buyer_nif = target_nif.resolve() + + if(rewards_purchase) + if(buyer_nif.rewards_points < amount_to_charge) + buyer_nif.send_message("You don't have enough reward points to buy this.", alert = TRUE) + return FALSE + + else if(!paying_account.has_money(amount_to_charge)) + paying_account.bank_card_talk("You lack the money to make this purchase.") + return FALSE + + if(!ispath(product_to_buy, /datum/nifsoft) || !buyer_nif) + paying_account.bank_card_talk("You are unable to buy this.") + return FALSE + + var/datum/nifsoft/installed_nifsoft = new product_to_buy(buyer_nif, rewards_purchase) + if(!installed_nifsoft.parent_nif) + paying_account.bank_card_talk("Install failed, your purchase has been refunded.") + return FALSE + + if(rewards_purchase) + buyer_nif.remove_rewards_points(amount_to_charge) + buyer_nif.send_message("Purchase completed, [amount_to_charge] reward points have been removed from your NIF") + else + paying_account.adjust_money(-amount_to_charge, "NIFSoft purchase") + paying_account.bank_card_talk("Transaction complete, you have been charged [amount_to_charge]cr.") + + return TRUE + +#define DEFAULT_NIFSOFT_COOLDOWN 5 SECONDS + +///The base NIFSoft +/datum/nifsoft + ///What is the name of the NIFSoft? + var/name = "Generic NIFsoft" + ///What is the name of the program when looking at the program from inside of a NIF? This is good if you want to mask a NIFSoft's name. + var/program_name + ///A description of what the program does. This is used when looking at programs in the NIF, along with installing them from the store. + var/program_desc = "This program does stuff!" + //What NIF does this program belong to? + var/datum/weakref/parent_nif + ///Who is the NIF currently linked to? + var/mob/living/carbon/human/linked_mob + ///How much does the program cost to buy in credits? + var/purchase_price = 300 + ///What catagory is the NIFSoft under? + var/buying_category = NIFSOFT_CATEGORY_GENERAL + ///What font awesome icon is shown next to the name of the nifsoft? + var/ui_icon = "floppy-disk" + ///What UI theme do we want to display to users if this NIFSoft has TGUI? + var/ui_theme = "default" + + ///Can the program be installed with other instances of itself? + var/single_install = TRUE + ///Is the program mutually exclusive with another program? + var/list/mutually_exclusive_programs = list() + + ///Does the program have an active mode? + var/active_mode = FALSE + ///Is the program active? + var/active = FALSE + ///Does the what power cost does the program have while active? + var/active_cost = 0 + ///What is the power cost to activate the program? + var/activation_cost = 0 + ///Does the NIFSoft have a cooldown? + var/cooldown = FALSE + ///Is the NIFSoft currently on cooldown? + var/on_cooldown = FALSE + ///How long is the cooldown for? + var/cooldown_duration = DEFAULT_NIFSOFT_COOLDOWN + ///What NIF models can this software be installed on? + var/list/compatible_nifs = list(/obj/item/organ/internal/cyberimp/brain/nif) + + /// How much of the NIFSoft's purchase price is paid out as reward points, if any? + var/rewards_points_rate = 0.5 + /// Can this item be purchased with reward points? + var/rewards_points_eligible = TRUE + ///Does the NIFSoft have anything that is saved cross-round? + var/persistence = FALSE + /// Is the NIFSoft something that we want to allow the user to keep? + var/able_to_keep = FALSE + /// Are we keeping the NIFSoft installed between rounds? This is decided by the user + var/keep_installed = FALSE + +/datum/nifsoft/New(obj/item/organ/internal/cyberimp/brain/nif/recepient_nif, no_rewards_points = FALSE) + . = ..() + + if(no_rewards_points) //This is mostly so that credits can't be farmed through printed or stolen NIFSoft disks + rewards_points_rate = 0 + + compatible_nifs += /obj/item/organ/internal/cyberimp/brain/nif/debug + program_name = name + + if(!recepient_nif.install_nifsoft(src)) + qdel(src) + + load_persistence_data() + update_theme() + +/datum/nifsoft/Destroy() + if(active) + activate() + + linked_mob = null + + var/obj/item/organ/internal/cyberimp/brain/nif/installed_nif = parent_nif?.resolve() + if(installed_nif) + installed_nif.loaded_nifsofts.Remove(src) + + return ..() + +/// Activates the parent NIFSoft +/datum/nifsoft/proc/activate() + var/obj/item/organ/internal/cyberimp/brain/nif/installed_nif = parent_nif?.resolve() + + if(!installed_nif) + stack_trace("NIFSoft [src] activated on a null parent!") // NIFSoft is -really- broken + return FALSE + + if(installed_nif.broken) + installed_nif.balloon_alert(installed_nif.linked_mob, "your NIF is broken") + return FALSE + + if(cooldown && on_cooldown) + installed_nif.balloon_alert(installed_nif.linked_mob, "[src.name] is currently on cooldown.") + return FALSE + + if(active) + active = FALSE + installed_nif.balloon_alert(installed_nif.linked_mob, "[src.name] is no longer running") + installed_nif.power_usage -= active_cost + return TRUE + + if(!installed_nif.change_power_level(activation_cost)) + return FALSE + + if(active_mode) + installed_nif.balloon_alert(installed_nif.linked_mob, "[src.name] is now running") + installed_nif.power_usage += active_cost + active = TRUE + + if(cooldown) + addtimer(CALLBACK(src, PROC_REF(remove_cooldown)), cooldown_duration) + on_cooldown = TRUE + + return TRUE + +///Refunds the activation cost of a NIFSoft. +/datum/nifsoft/proc/refund_activation_cost() + var/obj/item/organ/internal/cyberimp/brain/nif/installed_nif = parent_nif?.resolve() + if(!installed_nif) + return + installed_nif.change_power_level(-activation_cost) + +///Removes the cooldown from a NIFSoft +/datum/nifsoft/proc/remove_cooldown() + on_cooldown = FALSE + +///Restores the name of the NIFSoft to default. +/datum/nifsoft/proc/restore_name() + program_name = initial(name) + +///How does the NIFSoft react if the user is EMP'ed? +/datum/nifsoft/proc/on_emp(emp_severity) + if(active) + activate() + + var/list/random_characters = list("#","!","%","^","*","$","@","^","A","b","c","D","F","W","H","Y","z","U","O","o") + var/scrambled_name = "!" + + for(var/i in 1 to length(program_name)) + scrambled_name += pick(random_characters) + + program_name = scrambled_name + addtimer(CALLBACK(src, PROC_REF(restore_name)), 60 SECONDS) + +/datum/nifsoft/ui_state(mob/user) + return GLOB.conscious_state + +/// Updates the theme of the NIFSoft to match the parent NIF +/datum/nifsoft/proc/update_theme() + var/obj/item/organ/internal/cyberimp/brain/nif/target_nif = parent_nif.resolve() + if(!target_nif) + return FALSE + + ui_theme = target_nif.current_theme + return TRUE + +/// A disk that can upload NIFSofts to a recpient with a NIFSoft installed. +/obj/item/disk/nifsoft_uploader + name = "Generic NIFSoft datadisk" + desc = "A datadisk that can be used to upload a loaded NIFSoft to the user's NIF" + icon = 'monkestation/code/modules/blueshift/icons/obj/disks.dmi' + icon_state = "base_disk" + ///What NIFSoft is currently loaded in? + var/datum/nifsoft/loaded_nifsoft = /datum/nifsoft + ///Is the datadisk reusable? + var/reusable = FALSE + +/obj/item/disk/nifsoft_uploader/Initialize(mapload) + . = ..() + + name = "[initial(loaded_nifsoft.name)] datadisk" + +/obj/item/disk/nifsoft_uploader/examine(mob/user) + . = ..() + + var/nifsoft_desc = initial(loaded_nifsoft.program_desc) + + if(nifsoft_desc) + . += span_cyan("Program description: [nifsoft_desc]") + + +/// Attempts to install the NIFSoft on the disk to the target +/obj/item/disk/nifsoft_uploader/proc/attempt_software_install(mob/living/carbon/human/target) + var/obj/item/organ/internal/cyberimp/brain/nif/installed_nif = target.get_organ_by_type(/obj/item/organ/internal/cyberimp/brain/nif) + + if(!ishuman(target) || !installed_nif) + return FALSE + + var/datum/nifsoft/installed_nifsoft = new loaded_nifsoft(installed_nif, TRUE) + + if(!installed_nifsoft.parent_nif) + balloon_alert(target, "installation failed") + return FALSE + + if(!reusable) + qdel(src) + +/obj/item/disk/nifsoft_uploader/attack_self(mob/user, modifiers) + attempt_software_install(user) + +/obj/item/disk/nifsoft_uploader/attack(mob/living/mob, mob/living/user, params) + if(mob != user && !do_after(user, 5 SECONDS, mob)) + balloon_alert(user, "installation failed") + return FALSE + + attempt_software_install(mob) + +#undef DEFAULT_NIFSOFT_COOLDOWN + +/obj/item/organ/internal/cyberimp/brain/nif + ///Currently Avalible themese for the NIFs + var/static/list/ui_themes = list( + "abductor", + "cardtable", + "hackerman", + "malfunction", + "default", + "ntos", + "ntos_darkmode", + "ntOS95", + "ntos_synth", + "ntos_terminal", + "wizard", + ) + ///What theme is currently being used on the NIF? + var/current_theme = "default" + +/obj/item/organ/internal/cyberimp/brain/nif/ui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + + if(!ui) + ui = new(user, src, "NifPanel", name) + ui.open() + +/obj/item/organ/internal/cyberimp/brain/nif/ui_state(mob/user) + return GLOB.conscious_state + +/obj/item/organ/internal/cyberimp/brain/nif/ui_status(mob/user) + if(user == linked_mob) + return UI_INTERACTIVE + return UI_CLOSE + +/obj/item/organ/internal/cyberimp/brain/nif/ui_static_data(mob/user) + var/list/data = list() + + data["loaded_nifsofts"] = list() + for(var/datum/nifsoft/nifsoft as anything in loaded_nifsofts) + var/list/nifsoft_data = list( + "name" = nifsoft.program_name, + "desc" = nifsoft.program_desc, + "active" = nifsoft.active, + "active_mode" = nifsoft.active_mode, + "activation_cost" = nifsoft.activation_cost, + "active_cost" = nifsoft.active_cost, + "reference" = REF(nifsoft), + "ui_icon" = nifsoft.ui_icon, + "able_to_keep" = nifsoft.able_to_keep, + "keep_installed" = nifsoft.keep_installed, + ) + data["loaded_nifsofts"] += list(nifsoft_data) + + data["ui_themes"] = ui_themes + data["max_nifsofts"] = max_nifsofts + data["max_durability"] = max_durability + data["max_power"] = max_power_level + data["max_blood_level"] = linked_mob.blood_volume + data["product_notes"] = manufacturer_notes + data["stored_points"] = rewards_points + + return data + +/obj/item/organ/internal/cyberimp/brain/nif/ui_data(mob/user) + var/list/data = list() + //User Preference Variables + data["linked_mob_name"] = linked_mob.name + data["current_theme"] = current_theme + + //Power Variables + data["power_level"] = power_level + data["power_usage"] = power_usage + + data["nutrition_drain"] = nutrition_drain + data["nutrition_level"] = linked_mob.nutrition + + data["blood_level"] = linked_mob.blood_volume + data["blood_drain"] = blood_drain + data["minimum_blood_level"] = minimum_blood_level + + //Durability Variables. + data["durability"] = durability + + return data + +/obj/item/organ/internal/cyberimp/brain/nif/ui_act(action, list/params) + . = ..() + if(.) + return + + switch(action) + if("toggle_nutrition_drain") + toggle_nutrition_drain() + + if("toggle_blood_drain") + toggle_blood_drain() + + if("change_examine_text") + var/text_to_use = html_encode(params["new_text"]) + var/datum/component/nif_examine/examine_datum = linked_mob.GetComponent(/datum/component/nif_examine) + + if(!examine_datum) + return FALSE + + if(!text_to_use || length(text_to_use) <= 6) + examine_datum.nif_examine_text = "There's a certain spark to their eyes." + return FALSE + + examine_datum.nif_examine_text = text_to_use + + if("uninstall_nifsoft") + var/nifsoft_to_remove = locate(params["nifsoft_to_remove"]) in loaded_nifsofts + if(!nifsoft_to_remove) + return FALSE + + remove_nifsoft(nifsoft_to_remove) + + if("change_theme") + var/target_theme = params["target_theme"] + + if(!target_theme || !(target_theme in ui_themes)) + return FALSE + + current_theme = target_theme + for(var/datum/nifsoft/installed_nifsoft as anything in loaded_nifsofts) + installed_nifsoft.update_theme() + + if("activate_nifsoft") + var/datum/nifsoft/activated_nifsoft = locate(params["activated_nifsoft"]) in loaded_nifsofts + if(!activated_nifsoft) + return FALSE + + activated_nifsoft.activate() + + if("toggle_keeping_nifsoft") + var/datum/nifsoft/nifsoft_to_keep = locate(params["nifsoft_to_keep"]) in loaded_nifsofts + if(!nifsoft_to_keep || !nifsoft_to_keep.able_to_keep) + return FALSE + + nifsoft_to_keep.keep_installed = !nifsoft_to_keep.keep_installed + update_static_data_for_all_viewers() + +/// How much damage is done to the NIF if the user ends the round with it uninstalled? +#define LOSS_WITH_NIF_UNINSTALLED 25 + +/datum/modular_persistence + // These are not handled by the prefs system. They are just stored here for convienience. + /// The path to the current implanted NIF. Can be null. + var/nif_path + /// The current durability of the implanted NIF. Can be null. + var/nif_durability + /// The extra examine text for the user of the NIF. Can be null. + var/nif_examine_text + /// The theme of the implanted NIF. Can be null. + var/nif_theme + /// Whether the NIF is calibrated for use or not. Can be null. + var/nif_is_calibrated + /// How many rewards points does the NIF have stored on it? + var/stored_rewards_points + /// A string containing programs that are transfered from one round to the next. + var/persistent_nifsofts + +/// Saves the NIF data for a individual user. +/mob/living/carbon/human/proc/save_nif_data(datum/modular_persistence/persistence, remove_nif = FALSE) + var/obj/item/organ/internal/cyberimp/brain/nif/installed_nif = get_organ_by_type(/obj/item/organ/internal/cyberimp/brain/nif) + + if(HAS_TRAIT(src, TRAIT_GHOSTROLE)) //Nothing is lost from playing a ghost role + return FALSE + + if(remove_nif) + qdel(installed_nif) + persistence.nif_path = null + persistence.nif_examine_text = null + return + + if(!installed_nif || (installed_nif && !installed_nif.nif_persistence) || (installed_nif.durability <= 0)) // If you have a NIF on file but leave the round without one installed, you only take a durability loss instead of losing the implant. + if(persistence.nif_path) + if(persistence.nif_durability <= 0) //There is one round to repair the NIF after it breaks, otherwise it will be lost. + persistence.nif_path = null + persistence.nif_examine_text = null + persistence.nif_durability = null + return + + persistence.nif_durability = max((persistence.nif_durability - LOSS_WITH_NIF_UNINSTALLED), 0) + return + + persistence.nif_path = null + persistence.nif_examine_text = null + return + + persistence.nif_path = installed_nif.type + persistence.nif_durability = installed_nif.durability + persistence.nif_theme = installed_nif.current_theme + persistence.nif_is_calibrated = installed_nif.is_calibrated + persistence.stored_rewards_points = installed_nif.rewards_points + + var/datum/component/nif_examine/examine_component = GetComponent(/datum/component/nif_examine) + persistence.nif_examine_text = examine_component?.nif_examine_text + + var/persistent_nifsoft_paths = "" // We need to convert all of the paths in the list into a single string + for(var/datum/nifsoft/nifsoft as anything in installed_nif.loaded_nifsofts) + if(nifsoft.persistence) + nifsoft.save_persistence_data(persistence) + + if(!nifsoft.able_to_keep || !nifsoft.keep_installed) + continue + + persistent_nifsoft_paths += "&[(nifsoft.type)]" + + persistence.persistent_nifsofts = persistent_nifsoft_paths + +/// Loads the NIF data for an individual user. +/mob/living/carbon/human/proc/load_nif_data(datum/modular_persistence/persistence) + if(HAS_TRAIT(src, TRAIT_GHOSTROLE)) + return FALSE + + if(!persistence.nif_path) + return + + var/obj/item/organ/internal/cyberimp/brain/nif/new_nif = new persistence.nif_path + + new_nif.durability = persistence.nif_durability + new_nif.current_theme = persistence.nif_theme + new_nif.is_calibrated = persistence.nif_is_calibrated + new_nif.rewards_points = persistence.stored_rewards_points + + var/list/persistent_nifsoft_paths = list() + for(var/text as anything in splittext(persistence.persistent_nifsofts, "&")) + var/datum/nifsoft/nifsoft_to_add = text2path(text) + if(!ispath(nifsoft_to_add, /datum/nifsoft) || !initial(nifsoft_to_add.able_to_keep)) + continue + + persistent_nifsoft_paths.Add(nifsoft_to_add) + + new_nif.persistent_nifsofts = persistent_nifsoft_paths.Copy() + new_nif.Insert(src) + + var/datum/component/nif_examine/examine_component = GetComponent(/datum/component/nif_examine) + if(examine_component) + examine_component.nif_examine_text = persistence.nif_examine_text + + var/obj/item/modular_computer/pda/found_pda = locate(/obj/item/modular_computer/pda) in contents + if(!found_pda) + return FALSE + + var/datum/computer_file/program/nifsoft_downloader/downloaded_app = new + found_pda.store_file(downloaded_app) + +/// Loads the modular persistence data for a NIFSoft +/datum/nifsoft/proc/load_persistence_data() + if(!linked_mob || !persistence) + return FALSE + var/obj/item/organ/internal/brain/linked_brain = linked_mob.get_organ_slot(ORGAN_SLOT_BRAIN) + if(!linked_brain || !linked_brain.modular_persistence) + return FALSE + + return linked_brain.modular_persistence + + +/// Saves the modular persistence data for a NIFSoft +/datum/nifsoft/proc/save_persistence_data(datum/modular_persistence/persistence) + if(!persistence) + return FALSE + + return TRUE + +#undef LOSS_WITH_NIF_UNINSTALLED + +///This is the standard 'baseline' NIF model. +/obj/item/organ/internal/cyberimp/brain/nif/standard + name = "Standard Type NIF" + desc = "'Standard-Type' is a classification for high-quality Nanite Implant Frameworks. This category primarily includes Framework patterns with high reliability, seamless bonding with a user, and a combination of storage space and processing power to run a wide array of programs." + manufacturer_notes = "While countless manufacturers produce their own implementation of NIFs, open-source or not, there's less than a thousand Standard-Type models out there in the galaxy. These are the results of almost five years of improvements on older models of Frameworks, and are rather coveted due to being extremely difficult to 'homebrew." + +/obj/item/organ/internal/cyberimp/brain/nif/roleplay_model + name = "Econo-Deck Type NIF" + desc = "'Econo-Deck' is a classification for lower-quality Nanite Implant Frameworks. Typically, these are off-brand 'economical' bootlegs of higher-quality Frameworks featuring lower-grade power cells, outdated and risky construction patterns, and far rougher calibration with a user." + manufacturer_notes = "Most webspaces for hobbyists or hardcore users, Corpo neurologists, and developers of 'softs such as the Altspace Coven recommend against their purchase. Despite their affordability by the layman, it's a common notion in Framework user circles that a device directly hooked into a user's nervous system is never something which should be skimped on; hence, Econo-Decks typically find themselves in the hands of the truly desperate, criminals, or coming out of workshops as 'homebrews.'" + + max_power_level = 500 + max_nifsofts = 3 + calibration_time = 1 MINUTES + max_durability = 50 + death_durability_loss = 10 + + +/obj/item/organ/internal/cyberimp/brain/nif/roleplay_model/cheap + name = "Trial-Lite Type NIF" + desc = "'Trial-Lite' is a classification for temporary Nanite Implant Frameworks. These are typically distributed at promotional events, for the use of single-purpose NIFsofts, or at some Corporate dealerships to offer prospective users a look into the scene. Normally, Trial-Lite frameworks do not actually 'bond' with their user, forming an extremely loose connection before dissolving into scattered and dead nanomachines within a few hours, typically exhaled." + manufacturer_notes = "Normally, Trial-Lite frameworks do not actually 'bond' with their user, forming an extremely loose connection before dissolving into scattered and dead nanomachines within a few hours, typically exhaled. It's so far been impossible to extend the lifespan of a Trial-Lite NIF, owing to their far inferior construction and programming." + nif_persistence = FALSE + +/obj/item/autosurgeon/organ/nif/disposable //Disposable, as in the fact that this only lasts for one shift + name = "Econo-Deck Type Autosurgeon" + starting_organ = /obj/item/organ/internal/cyberimp/brain/nif/roleplay_model/cheap + uses = 1 + +/obj/item/organ/internal/cyberimp/brain/nif/standard/ghost_role + nif_persistence = FALSE + is_calibrated = TRUE + +/obj/item/autosurgeon/organ/nif/ghost_role + name = "Enhanced Standard Type NIF Autosurgeon" + starting_organ = /obj/item/organ/internal/cyberimp/brain/nif/standard/ghost_role + uses = 1 + +/// Action used to pull up the NIF menu +/datum/action/item_action/nif + background_icon = 'monkestation/code/modules/blueshift/icons/mob/actions/action_backgrounds.dmi' + background_icon_state = "android" + button_icon = 'monkestation/code/modules/blueshift/icons/mob/actions/actions_nif.dmi' + check_flags = AB_CHECK_CONSCIOUS + +/datum/action/item_action/nif/open_menu + name = "Open NIF Menu" + button_icon_state = "user" + +/datum/action/item_action/nif/open_menu/Trigger(trigger_flags) + . = ..() + var/obj/item/organ/internal/cyberimp/brain/nif/target_nif = target + + if(target_nif.calibrating) + target_nif.send_message("The NIF is still calibrating, please wait!", TRUE) + return FALSE + + if(target_nif.durability < 1) + target_nif.send_message("Durability low!", TRUE) + return FALSE + + if(target_nif.broken) + target_nif.send_message("The NIF is unable to be used at this time!", TRUE) + return FALSE + + if(!.) + return + + target_nif.ui_interact(usr) + + +///NIFSoft Remover. This is mostly here so that security and antags have a way to remove NIFSofts from someome +/obj/item/nifsoft_remover + name = "Lopland 'Wrangler' NIF-Cutter" + desc = "A small device that lets the user remove NIFSofts from a NIF user" + special_desc = "Given the relatively recent and sudden proliferation of NIFs, their use in crime both petty and organized has skyrocketed in recent years. \ + The existence of nanomachine-based real-time burst communication that cannot be effectively monitored or hacked into has given most PMCs cause enough for concern \ + to invent their own devices. This one is a 'Wrangler' model NIF-Cutter, used for crudely wiping programs directly off a user's Framework." + icon = 'monkestation/code/modules/blueshift/icons/obj/devices.dmi' + icon_state = "nifsoft_remover" + + ///Is a disk with the corresponding NIFSoft created when said NIFSoft is removed? + var/create_disk = FALSE + +/obj/item/nifsoft_remover/attack(mob/living/carbon/human/target_mob, mob/living/user) + . = ..() + var/obj/item/organ/internal/cyberimp/brain/nif/target_nif = target_mob.get_organ_by_type(/obj/item/organ/internal/cyberimp/brain/nif) + + if(!target_nif || !length(target_nif.loaded_nifsofts)) + balloon_alert(user, "[target_mob] has no NIFSofts!") + return + + var/list/installed_nifsofts = target_nif.loaded_nifsofts + var/datum/nifsoft/nifsoft_to_remove = tgui_input_list(user, "Chose a NIFSoft to remove.", "[src]", installed_nifsofts) + + if(!nifsoft_to_remove) + return FALSE + + user.visible_message(span_warning("[user] starts to use [src] on [target_mob]"), span_notice("You start to use [src] on [target_mob]")) + if(!do_after(user, 5 SECONDS, target_mob)) + balloon_alert(user, "removal cancelled!") + return FALSE + + if(!target_nif.remove_nifsoft(nifsoft_to_remove)) + balloon_alert(user, "removal failed!") + return FALSE + + to_chat(user, span_notice("You successfully remove [nifsoft_to_remove].")) + user.log_message("removed [nifsoft_to_remove] from [target_mob]" ,LOG_GAME) + + if(create_disk) + var/obj/item/disk/nifsoft_uploader/new_disk = new + new_disk.loaded_nifsoft = nifsoft_to_remove.type + new_disk.name = "[nifsoft_to_remove] datadisk" + + user.put_in_hands(new_disk) + + qdel(nifsoft_to_remove) + + return TRUE + +/obj/item/nifsoft_remover/syndie + name = "Cybersun 'Scalpel' NIF-Cutter" + desc = "A modified version of a NIFSoft remover that allows the user to remove a NIFSoft and have a blank copy of the removed NIFSoft saved to a disk." + special_desc = "In the upper echelons of the corporate world, Nanite Implant Frameworks are everywhere. Valuable targets will almost always be in constant NIF communication with at least one or two points of contact in the event of an emergency. To bypass this unfortunate conundrum, Cybersun Industries invented the 'Scalpel' NIF-Cutter. A device no larger than a PDA, this gift to the field of neurological theft is capable of extracting specific programs from a target in five seconds or less. On top of that, high-grade programming allows for the tool to copy the specific 'soft to a disk for the wielder's own use." + icon_state = "nifsoft_remover_syndie" + create_disk = TRUE + +/datum/uplink_item/device_tools/nifsoft_remover + name = "Cybersun 'Scalpel' NIF-Cutter" + desc = "A modified version of a NIFSoft remover that allows the user to remove a NIFSoft and have a blank copy of the removed NIFSoft saved to a disk." + item = /obj/item/nifsoft_remover/syndie + cost = 3 + +///NIF Repair Kit. +/obj/item/nif_repair_kit + name = "Cerulean NIF Regenerator" + desc = "A repair kit that allows for NIFs to be repaired without the use of surgery" + special_desc = "The effects of capitalism and industry run deep, and they run within the Nanite Implant Framework industry as well. \ + Frameworks, complicated devices as they are, are normally locked at the firmware level to requiring specific 'approved' brands of repair paste or repair-docks. \ + This hacked-kit has been developed by the Altspace Coven as a freeware alternative, spread far and wide throughout extra-Solarian space for quality of life \ + for users located on the peripheries of society." + icon = 'monkestation/code/modules/blueshift/icons/obj/devices.dmi' + icon_state = "repair_paste" + w_class = WEIGHT_CLASS_SMALL + ///How much does this repair each time it is used? + var/repair_amount = 20 + ///How many times can this be used? + var/uses = 5 + +/obj/item/nif_repair_kit/attack(mob/living/carbon/human/mob_to_repair, mob/living/user) + . = ..() + + var/obj/item/organ/internal/cyberimp/brain/nif/installed_nif = mob_to_repair.get_organ_by_type(/obj/item/organ/internal/cyberimp/brain/nif) + if(!installed_nif) + balloon_alert(user, "[mob_to_repair] lacks a NIF") + + if(!do_after(user, 5 SECONDS, mob_to_repair)) + balloon_alert(user, "repair cancelled") + return FALSE + + if(!installed_nif.adjust_durability(repair_amount)) + balloon_alert(user, "target NIF is at max duarbility") + return FALSE + + to_chat(user, span_notice("You successfully repair [mob_to_repair]'s NIF")) + to_chat(mob_to_repair, span_notice("[user] successfully repairs your NIF")) + + uses -= 1 + if(!uses) + qdel(src) + +/obj/item/nif_hud_adapter + name = "Scrying Lens Adapter" + desc = "A kit that modifies select glasses to display HUDs for NIFs" + icon = 'monkestation/code/modules/blueshift/icons/donator/obj/kits.dmi' + icon_state = "partskit" + + /// Can this item be used multiple times? If not, it will delete itself after being used. + var/multiple_uses = FALSE + /// List containing all of the glasses that we want to work with this. + var/static/list/glasses_whitelist = list( + /obj/item/clothing/glasses/trickblindfold, + /obj/item/clothing/glasses/monocle, + /obj/item/clothing/glasses/fake_sunglasses, + /obj/item/clothing/glasses/regular, + /obj/item/clothing/glasses/eyepatch, + /obj/item/clothing/glasses/osi, + /obj/item/clothing/glasses/phantom, + /obj/item/clothing/glasses/salesman, // Now's your chance. + /obj/item/clothing/glasses/thin, + /obj/item/clothing/glasses/biker, + /obj/item/clothing/glasses/sunglasses/gar, + /obj/item/clothing/glasses/heat, + /obj/item/clothing/glasses/cold, + /obj/item/clothing/glasses/orange, + /obj/item/clothing/glasses/red, + /obj/item/clothing/glasses/psych, + ) + +/obj/item/nif_hud_adapter/examine(mob/user) + . = ..() + var/list/compatible_glasses_names = list() + for(var/obj/item/glasses_type as anything in glasses_whitelist) + var/glasses_name = initial(glasses_type.name) + if(!glasses_name) + continue + + compatible_glasses_names += glasses_name + + if(length(compatible_glasses_names)) + . += span_cyan("\n This item will work on the following glasses: [english_list(compatible_glasses_names)].") + + return . + +/obj/item/nif_hud_adapter/afterattack(obj/item/clothing/glasses/target_glasses, mob/user, proximity_flag, click_parameters) + . = ..() + if(!proximity_flag || !istype(target_glasses)) + return FALSE + + if(!is_type_in_list(target_glasses, glasses_whitelist)) + balloon_alert("incompatible!") + return FALSE + + if(HAS_TRAIT(target_glasses, TRAIT_NIFSOFT_HUD_GRANTER)) + balloon_alert("already upgraded!") + return FALSE + + user.visible_message(span_notice("[user] upgrades [target_glasses] with [src]."), span_notice("You upgrade [target_glasses] to be NIF HUD compatible.")) + target_glasses.name = "\improper HUD-upgraded " + target_glasses.name + target_glasses.AddElement(/datum/element/nifsoft_hud) + playsound(target_glasses.loc, 'sound/weapons/circsawhit.ogg', 50, vary = TRUE) + + if(!multiple_uses) + qdel(src) + diff --git a/monkestation/code/modules/blueshift/nifsoft/types.dm b/monkestation/code/modules/blueshift/nifsoft/types.dm new file mode 100644 index 000000000000..295bc9aee9a5 --- /dev/null +++ b/monkestation/code/modules/blueshift/nifsoft/types.dm @@ -0,0 +1,614 @@ +/// This type of NIFSoft grants the user an action when active. +/datum/nifsoft/action_granter + active_mode = TRUE + activation_cost = 10 + active_cost = 1 + /// What is the path of the action that we want to grant? + var/action_to_grant = /datum/action/innate + /// What action are we giving the user of the NIFSoft? + var/datum/action/innate/granted_action + +/datum/nifsoft/action_granter/activate() + . = ..() + if(active) + granted_action = new action_to_grant(linked_mob) + granted_action.Grant(linked_mob) + return + + if(granted_action) + granted_action.Remove(linked_mob) + +/datum/nifsoft/action_granter/Destroy() + if(granted_action) + QDEL_NULL(granted_action) + return ..() + +///A list containing users of the Hivemind NIFSoft +GLOBAL_LIST_EMPTY(hivemind_users) + +/obj/item/disk/nifsoft_uploader/hivemind + name = "Hivemind" + loaded_nifsoft = /datum/nifsoft/hivemind + +/datum/nifsoft/hivemind + name = "Hivemind" + program_desc = "Hivemind is a program developed as a more reliable simulacrum of the mysterious means of communication that some varieties of slime share. It's built on a specific configuration of the NIF capable of generating a localized subspace network; the content the user's very thoughts, serving as a high-tech means of telepathic communication between NIF users." + activation_cost = 10 + active_mode = TRUE + active_cost = 0.2 + purchase_price = 350 + buying_category = NIFSOFT_CATEGORY_UTILITY + ui_icon = "users" + + ///The network that the user is currently hosting + var/datum/component/mind_linker/active_linking/nif/user_network + ///What networks are the user connected to? + var/list/network_list = list() + ///What network is the user sending messages to? This is saved from the keyboard so the user doesn't have to change the channel every time. + var/datum/component/mind_linker/active_linking/nif/active_network + ///The physical keyboard item being used to send messages + var/obj/item/hivemind_keyboard/linked_keyboard + ///What action is being used to summon the Keyboard? + var/datum/action/innate/hivemind_keyboard/keyboard_action + +/datum/nifsoft/hivemind/New() + . = ..() + + user_network = linked_mob.AddComponent(/datum/component/mind_linker/active_linking/nif, \ + network_name = "Hivemind Link", \ + linker_action_path = /datum/action/innate/hivemind_config, \ + ) + + keyboard_action = new(linked_mob) + keyboard_action.Grant(linked_mob) + + active_network = user_network + network_list += user_network + GLOB.hivemind_users += linked_mob + +/datum/nifsoft/hivemind/Destroy() + if(linked_mob in GLOB.hivemind_users) + GLOB.hivemind_users -= linked_mob + + if(keyboard_action) + keyboard_action.Remove() + QDEL_NULL(keyboard_action) + + if(linked_keyboard) + qdel(linked_keyboard) + + linked_keyboard = null + + for(var/datum/component/mind_linker/active_linking/nif/hivemind as anything in network_list) + hivemind.linked_mobs -= linked_mob + var/mob/living/hivemind_owner = hivemind.parent + + to_chat(hivemind_owner, span_abductor("[linked_mob] has left your Hivemind.")) + to_chat(linked_mob, span_abductor("You have left [hivemind_owner]'s Hivemind.")) + + qdel(user_network) + return ..() + +/datum/nifsoft/hivemind/activate() + . = ..() + if(!active) + if(linked_keyboard) + qdel(linked_keyboard) + linked_keyboard = null + + return TRUE + + linked_keyboard = new + linked_keyboard.connected_network = active_network + linked_mob.put_in_hands(linked_keyboard) + linked_keyboard.source_user = linked_mob + + linked_mob.visible_message(span_notice("The [linked_keyboard] materializes in [linked_mob]'s hands."), span_notice("The [linked_keyboard] appears in your hands.")) + return TRUE + +/datum/action/innate/hivemind_config + name = "Hivemind Configuration Settings" + background_icon = 'monkestation/code/modules/blueshift/icons/mob/actions/action_backgrounds.dmi' + background_icon_state = "android" + button_icon = 'monkestation/code/modules/blueshift/icons/mob/actions/actions_nif.dmi' + button_icon_state = "phone_settings" + +/datum/action/innate/hivemind_config/Activate() + . = ..() + var/datum/component/mind_linker/active_linking/nif/link = target + + var/choice = tgui_input_list(owner, "Chose your option", "Hivemind Configuration Menu", list("Link a user","Remove a user","Change Hivemind color","Change active Hivemind","Leave a Hivemind", "Toggle invites")) + if(!choice) + return + + switch(choice) + if("Link a user") + link.invite_user() + + if("Remove a user") + link.remove_user() + + if("Leave a Hivemind") + leave_hivemind() + + if("Change active Hivemind") + change_hivemind() + + if("Change Hivemind color") + link.change_chat_color() + + if("Toggle invites") + toggle_invites() + +/datum/action/innate/hivemind_config/proc/change_hivemind() + var/mob/living/carbon/human/user = owner + var/datum/nifsoft/hivemind/hivemind = user.find_nifsoft(/datum/nifsoft/hivemind) + + var/datum/component/mind_linker/active_linking/nif/new_active_hivemind = tgui_input_list(user, "Choose a Hivemind to set as active.", "Switch Hivemind", hivemind.network_list) + if(!new_active_hivemind) + return FALSE + + hivemind.active_network = new_active_hivemind + to_chat(user, span_abductor("You are now sending messages to [new_active_hivemind.name].")) + + if(hivemind.active) + hivemind.activate() + hivemind.activate() + +/datum/action/innate/hivemind_config/proc/leave_hivemind() + var/mob/living/carbon/human/user = owner + var/datum/nifsoft/hivemind/hivemind = user.find_nifsoft(/datum/nifsoft/hivemind) + + var/list/network_list = hivemind.network_list + network_list -= hivemind.user_network + + var/datum/component/mind_linker/active_linking/nif/hivemind_to_leave = tgui_input_list(user, "Choose a Hivemind to disconnect from.", "Remove Hivemind", network_list) + if(!hivemind_to_leave) + return FALSE + + to_chat(hivemind_to_leave.parent, span_abductor("[user] has been removed from your Hivemind.")) + to_chat(user, span_abductor("You have left [hivemind_to_leave.parent]'s Hivemind.")) + + hivemind.network_list -= hivemind_to_leave + hivemind_to_leave.linked_mobs -= user + + +/datum/action/innate/hivemind_config/proc/toggle_invites() + var/mob/living/carbon/human/user = owner + if(user in GLOB.hivemind_users) + GLOB.hivemind_users -= user + to_chat(user, span_abductor("You are now unable to receive invites.")) + return + + GLOB.hivemind_users += user + to_chat(user, span_abductor("You are now able to receive invites.")) + +/datum/action/innate/hivemind_keyboard + name = "Hivemind Keyboard" + background_icon = 'monkestation/code/modules/blueshift/icons/mob/actions/action_backgrounds.dmi' + background_icon_state = "android" + button_icon = 'monkestation/code/modules/blueshift/icons/mob/actions/actions_nif.dmi' + button_icon_state = "phone" + +/datum/action/innate/hivemind_keyboard/Activate() + . = ..() + var/mob/living/carbon/human/user = owner + var/datum/nifsoft/hivemind/hivemind_nifsoft = user.find_nifsoft(/datum/nifsoft/hivemind) + + if(!hivemind_nifsoft) + return FALSE + + hivemind_nifsoft.activate() + +/datum/component/mind_linker + ///Is does the component give an action to speak? By default, yes + var/speech_action = TRUE + ///Does the component check to see if the person being linked has a mindshield or anti-magic? + var/linking_protection = TRUE + +/datum/component/mind_linker/active_linking/nif + speech_action = FALSE + linking_protection = FALSE + + ///What is the name of the hivemind? This is mostly here for the TGUI selection menus. + var/name = "" + +/datum/component/mind_linker/active_linking/nif/New() + . = ..() + + var/mob/living/owner = parent + name = owner.name + "'s " + network_name + +///Lets the user add someone to their Hivemind through a choice menu that shows everyone that has the Hivemind NIFSoft. +/datum/component/mind_linker/active_linking/nif/proc/invite_user() + var/list/hivemind_users = GLOB.hivemind_users.Copy() + var/mob/living/carbon/human/owner = parent + + //This way people already linked don't show up in the selection menu + for(var/mob/living/user as anything in linked_mobs) + if(user in hivemind_users) + hivemind_users -= user + + hivemind_users -= owner + + var/mob/living/carbon/human/person_to_add = tgui_input_list(owner, "Choose a person to invite to your Hivemind.", "Invite User", hivemind_users) + if(!person_to_add) + return + + if(tgui_alert(person_to_add, "[owner] wishes to add you to their Hivemind, do you accept?", "Incoming Hivemind Invite", list("Accept", "Reject")) != "Accept") + to_chat(owner, span_warning("[person_to_add] denied the request to join your Hivemind.")) + return + + linked_mobs += person_to_add + + var/datum/nifsoft/hivemind/target_hivemind = person_to_add.find_nifsoft(/datum/nifsoft/hivemind) + + if(!target_hivemind) + return FALSE + + target_hivemind.network_list += src + to_chat(person_to_add, span_abductor("You have now been added to [owner]'s Hivemind")) + to_chat(owner, span_abductor("[person_to_add] has now been added to your Hivemind")) + +///Removes a user from the list of connected people within a hivemind +/datum/component/mind_linker/active_linking/nif/proc/remove_user() + var/mob/living/carbon/human/owner = parent + var/mob/living/carbon/human/person_to_remove = tgui_input_list(owner, "Choose a person to remove from your Hivemind.", "Remove User", linked_mobs) + + if(!person_to_remove) + return + + var/datum/nifsoft/hivemind/target_hivemind + target_hivemind = person_to_remove.find_nifsoft(/datum/nifsoft/hivemind) + + if(!target_hivemind) + return FALSE + + linked_mobs -= person_to_remove + target_hivemind.network_list -= src + to_chat(person_to_remove, span_abductor("You have now been removed from [owner]'s Hivemind.")) + to_chat(owner, span_abductor("[person_to_remove] has now been removed from your Hivemind.")) + +/datum/component/mind_linker/active_linking/nif/proc/change_chat_color() + var/mob/living/carbon/human/owner = parent + var/new_chat_color = input(owner, "", "Choose Color", COLOR_ASSEMBLY_GREEN) as color + + if(!new_chat_color) + return FALSE + + chat_color = new_chat_color + +/obj/item/hivemind_keyboard + name = "Hivemind Interface Device" + desc = "A holographic gesture controller, hooked to hand and finger signals of the user's own choice. This is paired with the Hivemind program itself, used as a means of filtering out unwanted thoughts from being added to the network, ensuring that only intentional thoughts of communication can go through." + icon = 'icons/obj/devices/remote.dmi' + icon_state = "generic_delivery" + lefthand_file = 'icons/mob/inhands/items/devices_lefthand.dmi' + righthand_file = 'icons/mob/inhands/items/devices_righthand.dmi' + inhand_icon_state = "electronic" + ///What Hivemind are messages being sent to? + var/datum/component/mind_linker/active_linking/nif/connected_network + //Who owns the controller? + var/datum/weakref/source_user + +/obj/item/hivemind_keyboard/Destroy(force) + . = ..() + connected_network = null + +/obj/item/hivemind_keyboard/attack_self(mob/user, modifiers) + . = ..() + send_message(user) + +/obj/item/hivemind_keyboard/proc/send_message(mob/living/carbon/human/user) + var/mob/living/carbon/human/kebyoard_owner = source_user + var/mob/living/carbon/human/network_owner = connected_network.parent + var/message = tgui_input_text(user, "Enter a message to transmit.", "[connected_network.network_name] Telepathy") + if(!message || QDELETED(src) || QDELETED(user) || user.stat == DEAD) + return + + if(QDELETED(connected_network)) + to_chat(user, span_warning("The link seems to have been severed.")) + return + + var/datum/asset/spritesheet/sheet = get_asset_datum(/datum/asset/spritesheet/chat) + var/tag = sheet.icon_tag("nif-phone") + var/hivemind_icon = "" + + if(tag) + hivemind_icon = tag + + var/formatted_message = "\ [hivemind_icon][network_owner.real_name]'s [connected_network.network_name]\] [kebyoard_owner]: [message]" + log_directed_talk(user, network_owner, message, LOG_SAY, "mind link ([connected_network.network_name])") + + var/list/all_who_can_hear = assoc_to_keys(connected_network.linked_mobs) + network_owner + + for(var/mob/living/recipient as anything in all_who_can_hear) + to_chat(recipient, formatted_message) + + for(var/mob/recipient as anything in GLOB.dead_mob_list) + to_chat(recipient, "[FOLLOW_LINK(recipient, user)] [formatted_message]") + +/obj/item/disk/nifsoft_uploader/money_sense + name = "Automatic Apprasial" + loaded_nifsoft = /datum/nifsoft/money_sense + +/datum/nifsoft/money_sense + name = "Automatic Appraisal" + program_desc = "Connects the user's brain to a database containing the current monetary values for most items, allowing them to determine their value in realtime" + active_mode = TRUE + active_cost = 0.5 + compatible_nifs = list(/obj/item/organ/internal/cyberimp/brain/nif/standard) + buying_category = NIFSOFT_CATEGORY_UTILITY + ui_icon = "coins" + +/datum/nifsoft/money_sense/activate() + . = ..() + if(active) + linked_mob.AddComponent(/datum/component/money_sense) + return + + var/found_component = linked_mob.GetComponent(/datum/component/money_sense) + if(found_component) + qdel(found_component) + +///Added whenever the money_sense NIFSoft is active +/datum/component/money_sense + +/datum/component/money_sense/New() + . = ..() + if(!ishuman(parent)) + return COMPONENT_INCOMPATIBLE + + RegisterSignal(parent, COMSIG_MOB_EXAMINATE, PROC_REF(add_examine)) + +/datum/component/money_sense/Destroy(force) + . = ..() + UnregisterSignal(parent, COMSIG_MOB_EXAMINATE) + +///Scans the item the user is looking at and generates the cargo value of it. +/datum/component/money_sense/proc/add_examine(mob/user, atom/target) + SIGNAL_HANDLER + + var/obj/item/examined_item = target + if(!examined_item || !isobj(examined_item)) + return FALSE + + //This is the code from the cargo scanner, but without the ability to scan and get tips from items. + var/datum/export_report/export = export_item_and_contents(examined_item, dry_run = TRUE) + var/price = 0 + var/export_text + + for(var/x in export.total_amount) + price += export.total_value[x] + if(price) + export_text = span_noticealien("This item has an export value of: [price] credits.") + else + export_text = span_warning("This item has no export value.") + + to_chat(parent, export_text) + + +/// This cell is only meant for use in items temporarily created by a NIF. Do not let players extract this from devices. +/obj/item/stock_parts/cell/infinite/nif_cell + name = "Nanite Cell" + desc = "If you see this, please make an issue on GitHub." + + +/obj/item/disk/nifsoft_uploader/soul_poem + name = "Soul Poem" + loaded_nifsoft = /datum/nifsoft/soul_poem + +//Modular Persistence variables for the soul_poem NIFSoft +/datum/modular_persistence + ///What name is saved to the station pass NIFSoft? + var/soul_poem_nifsoft_name + ///What message is saved to the station pass NIFSoft? + var/soul_poem_nifsoft_message + +/datum/nifsoft/soul_poem + name = "Poem of Communal Souls" + program_desc = "The Poem of Communal Souls was the first commission the Altspace Coven ever took; a rare occasion for their involvement in NIFSoft development. This program was originally commissioned by a then-underground group of ravers as a sort of 'social contagion' for the purpose of spreading peace, love, unity, and respect. The software operates by allowing different users running it to ambiently share 'Verses' with each other, small portions of their unique nanomachine fields that carry user-set messages; sometimes actual poetry, short biographies, or simple hope to meet and bond with other NIF users. Each trade of nanomachine packets represents a physical memory of the user who traded it, some long-time 'Poets' surrounded with a dazzling rainbow of different past messages." + persistence = TRUE + purchase_price = 0 //It came free with your NIF. + buying_category = NIFSOFT_CATEGORY_FUN + ui_icon = "scroll" + + ///Is the NIFSoft transmitting data? + var/transmitting_data = TRUE + ///Is the NIFSoft receiving data? + var/receiving_data = TRUE + ///What username is being sent out? + var/transmitted_name = "" + ///What message is being sent to other users? + var/transmitted_message = "" + ///What ckey is being used by the owner? This is mostly here so that messages can't get spammed + var/transmitted_identifier = "" + + ///What messages has the user received? + var/list/message_list = list() + ///The datum that is being used to receive messages + var/datum/proximity_monitor/advanced/soul_poem/proximity_datum + +/datum/nifsoft/soul_poem/New() + . = ..() + + if(!transmitted_name) + transmitted_name = linked_mob.name + + if(!transmitted_message) + transmitted_message = "Hello, I am [transmitted_name], it's nice to meet you!" + + transmitted_identifier = linked_mob.ckey + + add_message("soul_poem_nifsoft", name, "Hello World") + proximity_datum = new(linked_mob, 1) + proximity_datum.parent_nifsoft = WEAKREF(src) + +/datum/nifsoft/soul_poem/Destroy() + qdel(proximity_datum) + proximity_datum = null + + return ..() + +/** +* Adds a message to the message_list of the parent NIFSoft based off the sender_identifier, received_name, and received_message. +* +* * sender_identifier - This variable is used to determine the identity of the sender. This is mostly just here so that the same person can't send multiple messages. +* * received_name - What name is attached to the associated message? +* * received_message - The contents of the added message. +*/ + +/datum/nifsoft/soul_poem/proc/add_message(sender_identifier, received_name, received_message) + if(!received_message || !receiving_data) + return FALSE + + var/message_name = "Unkown User" + if(received_name) + message_name = received_name + + for(var/message in message_list) + if(message["identifier"] == sender_identifier) + message["sender_name"] = message_name + message["message"] = received_message + message["timestamp"] = station_time_timestamp() + return TRUE + + message_list.Insert(1, list(list(identifier = sender_identifier, sender_name = received_name, message = received_message, timestamp = station_time_timestamp()))) + return TRUE + +/// Removes the message_to_remove from the message_list, If the message cannot be found the proc will return FALSE, otherwise it will delete the message_to_remove and return TRUE. +/datum/nifsoft/soul_poem/proc/remove_message(list/message_to_remove) + if(!message_to_remove) + return FALSE + + var/list/removed_message = message_to_remove[1] + for(var/list/message in message_list) + if(message["identifier"] == removed_message["identifier"]) + message_list -= list(message) + return TRUE + + return FALSE + +/datum/nifsoft/soul_poem/activate() + . = ..() + ui_interact(linked_mob) + + +/datum/nifsoft/soul_poem/load_persistence_data() + . = ..() + var/datum/modular_persistence/persistence = . + if(!persistence) + return FALSE + + transmitted_name = persistence.soul_poem_nifsoft_name + transmitted_message = persistence.soul_poem_nifsoft_message + return TRUE + +/datum/nifsoft/soul_poem/save_persistence_data(datum/modular_persistence/persistence) + . = ..() + if(!.) + return FALSE + + persistence.soul_poem_nifsoft_message = transmitted_message + persistence.soul_poem_nifsoft_name = transmitted_name + return TRUE + +/// Attempts to send a message to the target_nifsoft, if it exists. Returns FALSE if the message fails to send. +/datum/nifsoft/soul_poem/proc/send_message(datum/nifsoft/soul_poem/target_nifsoft) + if(!transmitting_data || !target_nifsoft || !transmitted_message) + return FALSE + + if(!target_nifsoft.add_message(transmitted_identifier, transmitted_name, transmitted_message)) + return FALSE + + return TRUE + +/// The proximty_monitor datum used by the soul_poem NIFSoft +/datum/proximity_monitor/advanced/soul_poem + /// What NIFSoft is this currently attached to? + var/datum/weakref/parent_nifsoft + +/datum/proximity_monitor/advanced/soul_poem/on_entered(turf/source, atom/movable/entered) + . = ..() + if(host == entered) + return FALSE + + var/datum/nifsoft/soul_poem/receiving_nifsoft = parent_nifsoft.resolve() + if(!receiving_nifsoft || (!receiving_nifsoft.transmitting_data && !receiving_nifsoft.receiving_data)) + return FALSE + + var/mob/living/carbon/human/entered_human = entered + if(!ishuman(entered_human)) + return FALSE + + var/datum/nifsoft/soul_poem/sending_nifsoft = entered_human.find_nifsoft(/datum/nifsoft/soul_poem) + if(!sending_nifsoft) + return FALSE + + sending_nifsoft.send_message(receiving_nifsoft) + receiving_nifsoft.send_message(sending_nifsoft) + + return TRUE + +//TGUI +/datum/nifsoft/soul_poem/ui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(linked_mob, src, ui) + + if(!ui) + ui = new(linked_mob, src, "NifSoulPoem", name) + ui.open() + +/datum/nifsoft/soul_poem/ui_data(mob/user) + var/list/data = list() + data["messages"] = message_list + + data["theme"] = ui_theme + data["receiving_data"] = receiving_data + data["transmitting_data"] = transmitting_data + + return data + +/datum/nifsoft/soul_poem/ui_static_data(mob/user) + var/list/data = list() + + data["name_to_send"] = transmitted_name + data["text_to_send"] = transmitted_message + + return data + +/datum/nifsoft/soul_poem/ui_act(action, list/params) + . = ..() + if(.) + return + + switch(action) + if("change_message") + if(!params["new_message"]) + return FALSE + + transmitted_message = params["new_message"] + return TRUE + + if("change_name") + if(!params["new_name"]) + return FALSE + + transmitted_name = params["new_name"] + return TRUE + + if("remove_message") + if(!params["message_to_remove"]) + return FALSE + + if(!remove_message(list(params["message_to_remove"]))) + return FALSE + + return TRUE + + if("toggle_transmitting") + transmitting_data = !transmitting_data + return TRUE + + if("toggle_receiving") + receiving_data = !receiving_data + return TRUE diff --git a/monkestation/code/modules/blueshift/opfor/core/_base.dm b/monkestation/code/modules/blueshift/opfor/core/_base.dm new file mode 100644 index 000000000000..8bc15ad23b3c --- /dev/null +++ b/monkestation/code/modules/blueshift/opfor/core/_base.dm @@ -0,0 +1,1092 @@ +/datum/opposing_force_selected_equipment + /// Reference to the selected equipment datum. + var/datum/opposing_force_equipment/opposing_force_equipment + /// Why does the user need this? + var/reason = "" + /// What is the status of this item? + var/status = OPFOR_EQUIPMENT_STATUS_NOT_REVIEWED + /// If denied, why? + var/denied_reason = "" + /// How many does the user want? + var/count = 1 + +/datum/opposing_force_selected_equipment/New(datum/opposing_force_equipment/opfor_equipment) + if(opfor_equipment) + opposing_force_equipment = opfor_equipment + +/datum/opposing_force_selected_equipment/Destroy(force) + opposing_force_equipment = null + return ..() + +/// Called when the gear is issued, use for unique services (e.g. a power outage) that don't have an item +/datum/opposing_force_equipment/proc/on_issue(mob/living/target) + return + +/datum/opposing_force_objective + /// The name of the objective + var/title = "" + /// The actual objective. + var/description = "" + /// The reason for the objective. + var/justification = "" + /// Was this specific objective approved by the admins? + var/status = OPFOR_OBJECTIVE_STATUS_NOT_REVIEWED + /// Why was this objective denied? If a reason was specified. + var/denied_reason = "" + /// How intense is this goal? + var/intensity = 1 + /// The text intensity of this goal + var/text_intensity = OPFOR_OBJECTIVE_INTENSITY_1 + +/datum/opposing_force + /// A list of objectives. + var/list/objectives = list() + /// Justification for wanting to do bad things. + var/set_backstory = "" + /// Has this been approved? + var/status = OPFOR_STATUS_NOT_SUBMITTED + /// Hard ref to our mind. + var/datum/mind/mind_reference + /// For logging stuffs + var/list/modification_log = list() + /// Can we edit things? + var/can_edit = TRUE + /// The reason we were denied. + var/denied_reason = "" + /// Have we been request update muted by an admin? + var/request_updates_muted = FALSE + /// A text list of the admin chat. + var/list/admin_chat = list() + /// Have we issued the player their equipment? + var/equipment_issued = FALSE + /// A list of equipment that the user has requested. + var/list/selected_equipment = list() + /// Are we blocked from submitting a new request? + var/blocked = FALSE + /// What admin has this request been assigned to? + var/handling_admin = "" + /// The ckey of the person that made this application + var/ckey + /// Corresponding stat() click button + var/obj/effect/statclick/opfor_specific/stat_button + /// If it is part of the ticket ping subsystem + var/ticket_ping = FALSE + + COOLDOWN_DECLARE(static/request_update_cooldown) + COOLDOWN_DECLARE(static/ping_cooldown) + +/datum/opposing_force/New(datum/mind/mind_reference) + src.mind_reference = mind_reference + ckey = ckey(mind_reference.key) + send_system_message("[ckey] created the application") + stat_button = new() + stat_button.opfor = src + +/datum/opposing_force/Destroy(force) + mind_reference.opposing_force = null + mind_reference = null + SSopposing_force.remove_opfor(src) + QDEL_LIST(objectives) + QDEL_LIST(admin_chat) + QDEL_LIST(modification_log) + QDEL_NULL(stat_button) + return ..() + +/datum/opposing_force/Topic(href, list/href_list) + if(href_list["admin_pref"]) + if(!check_rights(R_ADMIN)) + CRASH("Opposing_force TOPIC: Detected possible HREF exploit! ([usr])") + ui_interact(usr) + return TRUE + +/// Builds the HTML panel entry for the round end report +/datum/opposing_force/proc/build_html_panel_entry() + var/list/opfor_entry = list("[mind_reference.key] - ") + opfor_entry += "PM " + if(mind_reference.current) + opfor_entry += "FLW " + opfor_entry += "Show OPFOR Panel" + return opfor_entry.Join() + +/datum/opposing_force/ui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "OpposingForcePanel") + ui.open() + +/datum/opposing_force/ui_state(mob/user) + return GLOB.always_state + +/datum/opposing_force/ui_data(mob/user) + var/list/data = list() + + var/client/owner_client = GLOB.directory[ckey] + data["admin_mode"] = check_rights_for(user.client, R_ADMIN) && user.client != owner_client + + data["creator_ckey"] = ckey + + data["owner_antag"] = (mind_reference.current in GLOB.current_living_antags) + + data["backstory"] = set_backstory + + data["raw_status"] = status + + data["status"] = get_status_string() + + data["can_submit"] = SSopposing_force.accepting_objectives && (status == OPFOR_STATUS_NOT_SUBMITTED || status == OPFOR_STATUS_CHANGES_REQUESTED) + + data["can_request_update"] = (status == OPFOR_STATUS_AWAITING_APPROVAL && COOLDOWN_FINISHED(src, request_update_cooldown)) + + data["request_updates_muted"] = request_updates_muted + + data["blocked"] = blocked + + data["can_edit"] = can_edit + + data["approved"] = status == OPFOR_STATUS_APPROVED ? TRUE : FALSE + + data["denied"] = status == OPFOR_STATUS_DENIED ? TRUE : FALSE + + data["handling_admin"] = handling_admin + + data["equipment_issued"] = equipment_issued + + data["owner_mob"] = mind_reference.current ? mind_reference.current.name : "No mob!" + + data["owner_role"] = mind_reference.assigned_role ? mind_reference.assigned_role.title : "No role!" + + var/list/messages = list() + for(var/message in admin_chat) + messages.Add(list(list( + "msg" = message + ))) + data["messages"] = messages + + data["objectives"] = list() + var/objective_num = 1 + for(var/datum/opposing_force_objective/opfor as anything in objectives) + var/list/objective_data = list( + "id" = objective_num, + "ref" = REF(opfor), + "title" = opfor.title, + "description" = opfor.description, + "intensity" = opfor.intensity, + "text_intensity" = opfor.text_intensity, + "justification" = opfor.justification, + "approved" = opfor.status == OPFOR_OBJECTIVE_STATUS_APPROVED ? TRUE : FALSE, + "status_text" = opfor.status, + "denied_text" = opfor.denied_reason, + ) + objective_num++ + data["objectives"] += list(objective_data) + + data["equipment_issued"] = equipment_issued + + data["equipment_list"] = list() + for(var/equipment_category in SSopposing_force.equipment_list) + var/category_items = list() + for(var/datum/opposing_force_equipment/opfor_equipment as anything in SSopposing_force.equipment_list[equipment_category]) + category_items += list(list( + "ref" = REF(opfor_equipment), + "name" = opfor_equipment.name, + "description" = opfor_equipment.description, + "equipment_category" = opfor_equipment.category, + "admin_note" = opfor_equipment.admin_note, + )) + data["equipment_list"] += list(list( + "category" = equipment_category, + "items" = category_items, + )) + + data["selected_equipment"] = list() + for(var/datum/opposing_force_selected_equipment/equipment as anything in selected_equipment) + var/list/equipment_data = list( + "ref" = REF(equipment), + "name" = equipment.opposing_force_equipment.name, + "description" = equipment.opposing_force_equipment.description, + "item" = equipment.opposing_force_equipment.item_type, + "status" = equipment.status, + "approved" = equipment.status == OPFOR_EQUIPMENT_STATUS_APPROVED ? TRUE : FALSE, + "reason" = equipment.reason, + "denied_reason" = equipment.denied_reason, + "count" = equipment.count, + "admin_note" = equipment.opposing_force_equipment.admin_note, + ) + data["selected_equipment"] += list(equipment_data) + + data["current_crew"] = generate_optin_crew_list() + + return data + +/datum/opposing_force/ui_static_data(mob/user) + var/list/data = list() + + data["opt_in_colors"] = GLOB.antag_opt_in_colors + data["opt_in_enabled"] = (!CONFIG_GET(flag/disable_antag_opt_in_preferences)) + + return data + +/datum/opposing_force/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) + . = ..() + if(.) + return + + var/datum/opposing_force_objective/edited_objective + if(params["objective_ref"]) + edited_objective = locate(params["objective_ref"]) in objectives + if(!edited_objective) + return + + switch(action) + // General control + if("set_backstory") + set_backstory(usr, params["backstory"]) + if("request_update") + request_update(usr) + if("modify_request") + modify_request(usr) + if("close_application") + close_application(usr) + if("submit") + submit_to_subsystem(usr) + if("send_message") + send_message(usr, params["message"]) + if(!handling_admin && check_rights_for(usr.client, R_ADMIN) && usr != mind_reference) + handle(usr) // if an admin sends a message and it's not being handled, assign them as handling it + // Objective control + if("add_objective") + add_objective(usr) + if("remove_objective") + remove_objective(usr, edited_objective) + if("set_objective_title") + set_objective_title(usr, edited_objective, params["title"]) + if("set_objective_description") + set_objective_description(usr, edited_objective, params["new_desciprtion"]) + if("set_objective_justification") + set_objective_justification(usr, edited_objective, params["new_justification"]) + if("set_objective_intensity") + set_objective_intensity(usr, edited_objective, params["new_intensity_level"]) + // Equipment control + if("select_equipment") + var/datum/opposing_force_equipment/equipment + for(var/category in SSopposing_force.equipment_list) + equipment = locate(params["equipment_ref"]) in SSopposing_force.equipment_list[category] + if(equipment) + break + if(!equipment) + return + select_equipment(usr, equipment) + if("remove_equipment") + var/datum/opposing_force_selected_equipment/equipment = locate(params["selected_equipment_ref"]) in selected_equipment + if(!equipment) + return + remove_equipment(usr, equipment) + if("set_equipment_reason") + var/datum/opposing_force_selected_equipment/equipment = locate(params["selected_equipment_ref"]) in selected_equipment + if(!equipment) + return + set_equipment_reason(usr, equipment, params["new_equipment_reason"]) + if("set_equipment_count") + var/datum/opposing_force_selected_equipment/equipment = locate(params["selected_equipment_ref"]) in selected_equipment + if(!equipment) + return + set_equipment_count(usr, equipment, params["new_equipment_count"]) + + // JSON I/O control + if("import_json") + if(!length(SSopposing_force.equipment_list)) // sanity check + return + json_import(usr) + if("export_json") + json_export(usr) + + //Admin protected procs + if("approve") + if(!check_rights(R_ADMIN)) + return + for(var/datum/opposing_force_objective/objective as anything in objectives) + if(objective.status == OPFOR_OBJECTIVE_STATUS_NOT_REVIEWED) + to_chat(usr, examine_block(span_command_headset(span_pink("OPFOR: ERROR, some objectives have not been reviewed. Please approve/deny all objectives.")))) + return + for(var/datum/opposing_force_selected_equipment/equipment as anything in selected_equipment) + if(equipment.status == OPFOR_EQUIPMENT_STATUS_NOT_REVIEWED) + to_chat(usr, examine_block(span_command_headset(span_pink("OPFOR: ERROR, some equipment requests have not been reviewed. Please approve/deny all equipment requests.")))) + return + SSopposing_force.approve(src, usr) + if("approve_all") + if(!check_rights(R_ADMIN)) + return + approve_all(usr) + if("handle") + handle(usr) + if("issue_gear") + if(!check_rights(R_ADMIN)) + return + issue_gear(usr) + if("deny") + if(!check_rights(R_ADMIN)) + return + var/denied_reason = tgui_input_text(usr, "Denial Reason", "Enter a reason for denying this application:") + // Checking to see if the user is spamming the button, async and all. + if((status == OPFOR_STATUS_DENIED) || !denied_reason) + return + SSopposing_force.deny(src, denied_reason, usr) + if("mute_request_updates") + if(!check_rights(R_ADMIN)) + return + mute_request_updates(usr) + if("toggle_block") + if(!check_rights(R_ADMIN)) + return + toggle_block(usr) + if("approve_objective") + if(!check_rights(R_ADMIN)) + return + approve_objective(usr, edited_objective) + if("deny_objective") + if(!check_rights(R_ADMIN)) + return + var/denied_reason = tgui_input_text(usr, "Denial Reason", "Enter a reason for denying this objective:") + if(!denied_reason) + return + deny_objective(usr, edited_objective, denied_reason) + if("approve_equipment") + var/datum/opposing_force_selected_equipment/equipment = locate(params["selected_equipment_ref"]) in selected_equipment + if(!equipment) + return + if(!check_rights(R_ADMIN)) + return + approve_equipment(usr, equipment) + if("deny_equipment") + var/datum/opposing_force_selected_equipment/equipment = locate(params["selected_equipment_ref"]) in selected_equipment + if(!equipment) + return + if(!check_rights(R_ADMIN)) + return + var/denied_reason = tgui_input_text(usr, "Denial Reason", "Enter a reason for denying this objective:") + if(!denied_reason) + return + deny_equipment(usr, equipment, denied_reason) + if("flw_user") + if(!check_rights(R_ADMIN)) + return + flw_user(usr) + +/datum/opposing_force/proc/flw_user(mob/user) + user.client?.admin_follow(mind_reference.current) + +/datum/opposing_force/proc/set_equipment_count(mob/user, datum/opposing_force_selected_equipment/equipment, new_count) + var/sanitized_newcount = sanitize_integer(new_count, 1, equipment.opposing_force_equipment.max_amount) + equipment.count = new_count + add_log(user.ckey, "Set equipment '[equipment.opposing_force_equipment.name] count to [sanitized_newcount]") + +/datum/opposing_force/proc/handle(mob/user) + if(handling_admin) + var/choice = tgui_alert(user, "Another admin is currently handling this application, do you want to override them?", "Admin Handling", list("Yes", "No")) + if(choice == "No") + return + handling_admin = get_admin_ckey(user) + to_chat(mind_reference.current, examine_block(span_nicegreen("Your OPFOR application is now being handled by [handling_admin]."))) + send_admins_opfor_message("HANDLE: [ADMIN_LOOKUPFLW(user)] is handling [mind_reference.key]'s OPFOR application.") + send_system_message("[handling_admin] has assigned themselves to this application") + add_log(user.ckey, "Assigned self to application") + +/datum/opposing_force/proc/mute_request_updates(mob/user, override = "none") + if(override != "none") + request_updates_muted = override + else + request_updates_muted = !request_updates_muted + send_system_message("[user ? get_admin_ckey(user) : "The OPFOR subsystem"] [request_updates_muted ? "muted" : "unmuted"] the help requests function") + add_log(user.ckey, "[request_updates_muted ? "Muted" : "Unmuted"] user from opposing force help requests.") + +/datum/opposing_force/proc/toggle_block(mob/user, override = "none") + if(override != "none") + blocked = override + else + blocked = !blocked + send_system_message("[user ? get_admin_ckey(user) : "The OPFOR subsystem"] blocked you from submitting new requests") + add_log(user.ckey, "Blocked user from opposing force requests.") + +/** + * Equipment procs + */ + +/datum/opposing_force/proc/deny_equipment(mob/user, datum/opposing_force_selected_equipment/incoming_equipment, denied_reason = "") + if(incoming_equipment.status == OPFOR_EQUIPMENT_STATUS_DENIED) + return + incoming_equipment.status = OPFOR_EQUIPMENT_STATUS_DENIED + incoming_equipment.denied_reason = denied_reason + send_system_message("[user ? get_admin_ckey(user) : "The OPFOR subsystem"] has denied equipment '[incoming_equipment.opposing_force_equipment.name]'[denied_reason ? " with the reason '[denied_reason]'" : ""]") + add_log(user.ckey, "Denied equipment: [incoming_equipment.opposing_force_equipment.name] with reason: [denied_reason]") + +/datum/opposing_force/proc/approve_equipment(mob/user, datum/opposing_force_selected_equipment/incoming_equipment) + if(incoming_equipment.status == OPFOR_EQUIPMENT_STATUS_APPROVED) + return + incoming_equipment.status = OPFOR_EQUIPMENT_STATUS_APPROVED + incoming_equipment.denied_reason = "" + send_system_message("[user ? get_admin_ckey(user) : "The OPFOR subsystem"] has approved equipment '[incoming_equipment.opposing_force_equipment.name]'") + add_log(user.ckey, "Approved equipment: [incoming_equipment.opposing_force_equipment.name]") + +/datum/opposing_force/proc/set_equipment_reason(mob/user, datum/opposing_force_selected_equipment/incoming_equipment, new_reason) + if(!can_edit) + return + if(!incoming_equipment) + CRASH("set_equipment_reason tried to update a non existent opfor equipment datum!") + var/sanitized_reason = replacetext(STRIP_HTML_SIMPLE(new_reason, OPFOR_TEXT_LIMIT_DESCRIPTION), "\"", " ") + add_log(user.ckey, "Updated equipment([incoming_equipment.opposing_force_equipment.name]) REASON from: [incoming_equipment.reason] to: [sanitized_reason]") + incoming_equipment.reason = sanitized_reason + return TRUE + +/datum/opposing_force/proc/remove_equipment(mob/user, datum/opposing_force_selected_equipment/incoming_equipment) + if(!can_edit) + return + add_log(user.ckey, "Removed equipment: [incoming_equipment.opposing_force_equipment.name]") + selected_equipment -= incoming_equipment + qdel(incoming_equipment) + +/datum/opposing_force/proc/select_equipment(mob/user, datum/opposing_force_equipment/incoming_equipment, reason) + if(!can_edit) + return + if(LAZYLEN(selected_equipment) >= OPFOR_EQUIPMENT_LIMIT) + to_chat(user, span_warning("You have too many items, please remove one!")) + return + var/datum/opposing_force_selected_equipment/new_selected = new(incoming_equipment) + selected_equipment += new_selected + add_log(user.ckey, "Selected equipment: [incoming_equipment.name]") + return new_selected + +/datum/opposing_force/proc/issue_gear(mob/user) + if(!selected_equipment.len || !isliving(mind_reference.current) || status != OPFOR_STATUS_APPROVED || equipment_issued) + return + var/mob/living/target = mind_reference.current + for(var/datum/opposing_force_selected_equipment/iterating_equipment as anything in selected_equipment) + if(iterating_equipment.status != OPFOR_EQUIPMENT_STATUS_APPROVED) + continue + for(var/i in 1 to iterating_equipment.count) + if(!(iterating_equipment.opposing_force_equipment.item_type == /obj/effect/gibspawner/generic)) // This is what's used in place of an item in uplinks, so it's the same here + new iterating_equipment.opposing_force_equipment.item_type(get_turf(target)) + iterating_equipment.opposing_force_equipment.on_issue(target) + + add_log(user.ckey, "Issued gear") + send_system_message("[user ? get_admin_ckey(user) : "The OPFOR subsystem"] has issued all approved equipment") + equipment_issued = TRUE + +/** + * Control procs + */ + +/datum/opposing_force/proc/request_update(mob/user) + if(request_updates_muted) + to_chat(user, span_warning("You are currently blocked from requesting updates!")) + return + if(status != OPFOR_STATUS_AWAITING_APPROVAL || !COOLDOWN_FINISHED(src, request_update_cooldown)) + return + + send_admins_opfor_message(span_command_headset("UPDATE REQUEST: [ADMIN_LOOKUPFLW(user)] has requested an update on their OPFOR application!")) + add_log(user.ckey, "Requested an update") + + for(var/client/staff as anything in GLOB.admins) + if(staff?.prefs?.toggles & SOUND_ADMINHELP) + SEND_SOUND(staff, sound('sound/effects/adminhelp.ogg')) + window_flash(staff) + + COOLDOWN_START(src, request_update_cooldown, OPFOR_REQUEST_UPDATE_COOLDOWN) + +/datum/opposing_force/proc/submit_to_subsystem(mob/user) + if(blocked) + to_chat(user, span_warning("You are currently blocked from submitting new requests!")) + return + if(status != OPFOR_STATUS_NOT_SUBMITTED && status != OPFOR_STATUS_CHANGES_REQUESTED) + return FALSE + // Subsystem checks, no point in bloating the system if it's not accepting more. + var/availability = SSopposing_force.check_availability() + if(availability != OPFOR_SUBSYSTEM_READY) + to_chat(usr, span_warning("Error, the OPFOR subsystem rejected your request. Reason: [availability]")) + return FALSE + + var/queue_position = SSopposing_force.add_to_queue(src) + + for(var/client/staff as anything in GLOB.admins) + if(staff?.prefs?.toggles & SOUND_ADMINHELP) + SEND_SOUND(staff, sound('sound/effects/adminhelp.ogg')) + window_flash(staff, ignorepref = TRUE) + + addtimer(CALLBACK(src, PROC_REF(add_to_ping_ss)), 2 MINUTES) // this is not responsible for the notification itself, but only for adding the ticket to the list of those to notify. + status = OPFOR_STATUS_AWAITING_APPROVAL + can_edit = FALSE + add_log(user.ckey, "Submitted to the OPFOR subsystem") + send_system_message("[user ? get_admin_ckey(user) : "The OPFOR subsystem"] has submitted the application for review") + send_admins_opfor_message(span_command_headset("SUBMISSION: [ADMIN_LOOKUPFLW(user)] has submitted their OPFOR application. They are number [queue_position] in the queue.")) + to_chat(usr, examine_block(span_nicegreen(("You have been added to the queue for the OPFOR subsystem. You are number [queue_position] in line.")))) + +/datum/opposing_force/proc/modify_request(mob/user) + if(status == OPFOR_STATUS_CHANGES_REQUESTED) + return + var/choice = tgui_alert(user, "Are you sure you want to request changes? This will unapprove all objectives.", "Confirm", list("Yes", "No")) + if(choice != "Yes") + return + if(status == OPFOR_STATUS_CHANGES_REQUESTED) // The alert is not async, so this could change, thus being spammed. + return + for(var/datum/opposing_force_objective/opfor in objectives) + opfor.status = OPFOR_OBJECTIVE_STATUS_NOT_REVIEWED + status = OPFOR_STATUS_CHANGES_REQUESTED + SSopposing_force.modify_request(src) + can_edit = TRUE + + add_log(user.ckey, "Modify request submitted") + send_system_message("[user ? get_admin_ckey(user) : "The OPFOR subsystem"] has requested modifications to the application") + send_admins_opfor_message("CHANGES REQUESTED: [ADMIN_LOOKUPFLW(user)] has submitted a modify request, their application has been reset.") + +/datum/opposing_force/proc/deny(mob/denier, reason = "") + if(status == OPFOR_STATUS_DENIED) + return + status = OPFOR_STATUS_DENIED + can_edit = FALSE + denied_reason = reason + + for(var/datum/opposing_force_selected_equipment/iterating_equipment as anything in selected_equipment) + iterating_equipment.status = OPFOR_EQUIPMENT_STATUS_DENIED + for(var/datum/opposing_force_objective/opfor in objectives) + opfor.status = OPFOR_OBJECTIVE_STATUS_DENIED + SEND_SOUND(mind_reference.current, sound('monkestation/code/modules/blueshift/opfor/sound/denied.ogg')) + add_log(denier.ckey, "Denied application") + to_chat(mind_reference.current, examine_block(span_redtext("Your OPFOR application has been denied by [denier ? get_admin_ckey(denier) : "the OPFOR subsystem"]!"))) + send_system_message(get_admin_ckey(denier) + " has denied the application with the following reason: [reason]") + send_admins_opfor_message("[span_red("DENIED")]: [ADMIN_LOOKUPFLW(denier)] has denied [ckey]'s application([reason ? reason : "No reason specified"])") + //ticket_counter_add_handled(denier.key, 1) + +/datum/opposing_force/proc/approve(mob/approver) + if(status == OPFOR_STATUS_APPROVED) + return + status = OPFOR_STATUS_APPROVED + can_edit = FALSE + + SEND_SOUND(mind_reference.current, sound('monkestation/code/modules/blueshift/opfor/sound/approved.ogg')) + add_log(approver.ckey, "Approved application") + var/objective_denied = FALSE + for(var/datum/opposing_force_objective/opfor_obj as anything in objectives) + if(!(opfor_obj.status == OPFOR_OBJECTIVE_STATUS_DENIED)) + continue + objective_denied = TRUE + break + to_chat(mind_reference.current, examine_block(span_greentext("Your OPFOR application has been [objective_denied ? span_bold("partially approved (please view your OPFOR for details)") : span_bold("fully approved")] by [approver ? get_admin_ckey(approver) : "the OPFOR subsystem"]!"))) + send_system_message("[approver ? get_admin_ckey(approver) : "The OPFOR subsystem"] has approved the application") + send_admins_opfor_message("[span_green("APPROVED")]: [ADMIN_LOOKUPFLW(approver)] has approved [ckey]'s application") + //ticket_counter_add_handled(approver.key, 1) + +/datum/opposing_force/proc/close_application(mob/user) + if(status == OPFOR_STATUS_NOT_SUBMITTED) + return + var/choice = tgui_alert(user, "Are you sure you want withdraw your application?", "Confirm", list("Yes", "No")) + if(choice != "Yes") + return + if(status == OPFOR_STATUS_NOT_SUBMITTED) // The alert is not async, so this could change, thus being spammed. + return + SSopposing_force.unsubmit_opfor(src) + status = OPFOR_STATUS_NOT_SUBMITTED + can_edit = TRUE + + for(var/datum/opposing_force_selected_equipment/iterating_equipment as anything in selected_equipment) + iterating_equipment.status = OPFOR_EQUIPMENT_STATUS_NOT_REVIEWED + for(var/datum/opposing_force_objective/opfor as anything in objectives) + opfor.status = OPFOR_OBJECTIVE_STATUS_NOT_REVIEWED + + add_log(user.ckey, "Withdrew application") + send_system_message("[user ? get_admin_ckey(user) : "The OPFOR subsystem"] has closed the application") + +/datum/opposing_force/proc/set_backstory(mob/user, incoming_backstory) + if(!can_edit) + return + var/sanitized_backstory = STRIP_HTML_SIMPLE(incoming_backstory, OPFOR_TEXT_LIMIT_BACKSTORY) + add_log(user.ckey, "Updated BACKSTORY from: [set_backstory] to: [sanitized_backstory]") + set_backstory = sanitized_backstory + return TRUE + +/datum/opposing_force/proc/approve_all(mob/user) + if(SSopposing_force.approve(src, user)) + for(var/datum/opposing_force_selected_equipment/iterating_equipment as anything in selected_equipment) + iterating_equipment.status = OPFOR_EQUIPMENT_STATUS_APPROVED + for(var/datum/opposing_force_objective/opfor as anything in objectives) + opfor.status = OPFOR_OBJECTIVE_STATUS_APPROVED + send_system_message("[user ? get_admin_ckey(user) : "The OPFOR subsystem"] has approved the application and ALL objectives and equipment") + add_log(user.ckey, "Approved application and all objectives and equipment") + + +/** + * Objective procs + */ + +/datum/opposing_force/proc/set_objective_intensity(mob/user, datum/opposing_force_objective/opposing_force_objective, new_intensity) + if(!can_edit) + return + if(!opposing_force_objective) + CRASH("set_objective_intensity tried to update a non existent opfor objective!") + var/sanitized_intensity = sanitize_integer(new_intensity, 1, 500) + switch(sanitized_intensity) + if(0 to 100) + opposing_force_objective.text_intensity = OPFOR_OBJECTIVE_INTENSITY_1 + if(101 to 200) + opposing_force_objective.text_intensity = OPFOR_OBJECTIVE_INTENSITY_2 + if(201 to 300) + opposing_force_objective.text_intensity = OPFOR_OBJECTIVE_INTENSITY_3 + if(301 to 400) + opposing_force_objective.text_intensity = OPFOR_OBJECTIVE_INTENSITY_4 + if(401 to 501) + opposing_force_objective.text_intensity = OPFOR_OBJECTIVE_INTENSITY_5 + add_log(user.ckey, "Set updated an objective intensity from [opposing_force_objective.intensity] to [sanitized_intensity].") + opposing_force_objective.intensity = sanitized_intensity + return TRUE + +/datum/opposing_force/proc/set_objective_description(mob/user, datum/opposing_force_objective/opposing_force_objective, new_description) + if(!can_edit) + return + if(!opposing_force_objective) + CRASH("set_objective_description tried to update a non existent opfor objective!") + var/sanitized_description = replacetext(STRIP_HTML_SIMPLE(new_description, OPFOR_TEXT_LIMIT_DESCRIPTION), "\"", " ") + opposing_force_objective.description = sanitized_description + add_log(user.ckey, "Updated objective([opposing_force_objective.title]) DESCRIPTION from: [opposing_force_objective.description] to: [sanitized_description]") + return TRUE + +/datum/opposing_force/proc/set_objective_justification(mob/user, datum/opposing_force_objective/opposing_force_objective, new_justification) + if(!can_edit) + return + if(!opposing_force_objective) + CRASH("set_objective_description tried to update a non existent opfor objective!") + var/sanitize_justification = replacetext(STRIP_HTML_SIMPLE(new_justification, OPFOR_TEXT_LIMIT_JUSTIFICATION), "\"", " ") + opposing_force_objective.justification = sanitize_justification + add_log(user.ckey, "Updated objective([opposing_force_objective.title]) JUSTIFICATION from: [opposing_force_objective.justification] to: [sanitize_justification]") + return TRUE + +/datum/opposing_force/proc/remove_objective(mob/user, datum/opposing_force_objective/opposing_force_objective) + if(!can_edit) + return + if(!opposing_force_objective) + CRASH("set_objective_description tried to remove a non existent opfor objective!") + objectives -= opposing_force_objective + add_log(user.ckey, "Removed the following objective from their OPFOR application: [opposing_force_objective.title]") + qdel(opposing_force_objective) + return TRUE + +/datum/opposing_force/proc/add_objective(mob/user) + if(!can_edit) + return + if(LAZYLEN(objectives) >= OPFOR_MAX_OBJECTIVES) + to_chat(user, span_warning("You have too many objectives, please remove one!")) + return + var/datum/opposing_force_objective/opfor_objective = new + objectives += opfor_objective + add_log(user.ckey, "Added a new blank objective") + return opfor_objective + +/datum/opposing_force/proc/set_objective_title(mob/user, datum/opposing_force_objective/opposing_force_objective, new_title) + if(!can_edit) + return + var/sanitized_title = replacetext(STRIP_HTML_SIMPLE(new_title, OPFOR_TEXT_LIMIT_TITLE), "\"", " ") + if(!opposing_force_objective) + CRASH("set_objective_description tried to update a non existent opfor objective!") + add_log(user.ckey, "Updated objective([opposing_force_objective.title]) TITLE from: [opposing_force_objective.title] to: [sanitized_title]") + opposing_force_objective.title = sanitized_title + return TRUE + +/datum/opposing_force/proc/deny_objective(mob/user, datum/opposing_force_objective/opposing_force_objective, deny_reason) + opposing_force_objective.status = OPFOR_OBJECTIVE_STATUS_DENIED + opposing_force_objective.denied_reason = deny_reason + add_log(user.ckey, "Denied objective([opposing_force_objective.title]) WITH REASON: [deny_reason]") + send_system_message("[user ? get_admin_ckey(user) : "The OPFOR subsystem"] has denied objective '[opposing_force_objective.title]' with the reason '[deny_reason]'") + to_chat(mind_reference?.current, span_warning("Your OPFOR objective [span_bold("[opposing_force_objective.title]")] has been denied.")) + +/datum/opposing_force/proc/approve_objective(mob/user, datum/opposing_force_objective/opposing_force_objective) + opposing_force_objective.status = OPFOR_OBJECTIVE_STATUS_APPROVED + add_log(user.ckey, "Approved objective([opposing_force_objective.title])") + send_system_message("[user ? get_admin_ckey(user) : "The OPFOR subsystem"] has approved objective '[opposing_force_objective.title]'") + to_chat(mind_reference?.current, span_warning("Your OPFOR objective [span_bold("[opposing_force_objective.title]")] has been approved.")) + +/** + * System procs + */ + +/datum/opposing_force/proc/add_log(logger_ckey, new_log) + var/msg = "OPFOR([ckey]): [logger_ckey ? logger_ckey : "SYSTEM"] - [new_log]" + modification_log += msg + log_admin(msg) + +/datum/opposing_force/proc/send_admins_opfor_message(message) + message = "[span_pink("OPFOR:")] [span_admin("[message] (Show Panel)")]" + to_chat(GLOB.admins, + type = MESSAGE_TYPE_ADMINLOG, + html = message, + confidential = TRUE) + +/datum/opposing_force/proc/get_status_string() + var/subsystem_status = SSopposing_force.check_availability() + if(subsystem_status != OPFOR_SUBSYSTEM_READY) + return subsystem_status + switch(status) + if(OPFOR_STATUS_AWAITING_APPROVAL) + return "Awaiting approval, you are number [SSopposing_force.get_queue_position(src)] in the queue" + if(OPFOR_STATUS_APPROVED) + return "Approved, please check your objectives for specific approval" + if(OPFOR_STATUS_DENIED) + return "Denied, do not attempt any of your objectives" + if(OPFOR_STATUS_CHANGES_REQUESTED) + return "Changes requested, please review your application" + if(OPFOR_STATUS_NOT_SUBMITTED) + return OPFOR_STATUS_NOT_SUBMITTED + else + return "ERROR" + +/datum/opposing_force/proc/get_admin_ckey(mob/user) + if(user.client?.holder?.fakekey) + return user.client.holder.fakekey + return user.ckey + +/datum/opposing_force/proc/broadcast_queue_change() + var/queue_number = SSopposing_force.get_queue_position(src) + to_chat(mind_reference.current, examine_block(span_nicegreen("Your OPFOR application is now number [queue_number] in the queue."))) + send_system_message("Application is now number [queue_number] in the queue") + +/datum/opposing_force/proc/send_message(mob/user, message) + if(!message) + return + message = STRIP_HTML_SIMPLE(message, OPFOR_TEXT_LIMIT_MESSAGE) + var/message_string + var/real_round_time = world.timeofday - SSticker.round_start_time + if(check_rights_for(user.client, R_ADMIN) && user != mind_reference) + message_string = "[time2text(real_round_time, "hh:mm:ss", 0)] (ADMIN) [get_admin_ckey(user)]: " + message + else + message_string = "[time2text(real_round_time, "hh:mm:ss", 0)] (USER) [user.ckey]: " + message + admin_chat += message_string + + // We support basic commands, see run_command for compatible commands, the operator is / + if(findtext(message, "/", 1, 2)) + // We remove the command indentifier before we try running the command. + var/command = replacetext(message, "/", "", 1, 2) + run_command(user, command) + + add_log(user.ckey, "Sent message: [message]") + + +/datum/opposing_force/proc/send_system_message(message) + var/real_round_time = world.timeofday - SSticker.round_start_time + var/message_string = "[time2text(real_round_time, "hh:mm:ss", 0)] SYSTEM: " + message + admin_chat += message_string + +/datum/opposing_force/proc/run_command(mob/user, message) + var/list/params = splittext(message, " ") + + var/command = params[1] + + switch(command) + if("item") + check_item(params[2]) + if("help") + print_help(user) + if("ping_admin") + ping_admin(user) + if("ping_user") + ping_user(user) + if("unlock_equipment") + unlock_equipment(user) // Admin only proc + else + send_system_message("Unknown command: [command]") + +/datum/opposing_force/proc/print_help(mob/user) + send_system_message("Available commands:") + send_system_message("/item 'item_name' - Check an items quick stats") + send_system_message("/ping_admin - Ping the handling admin, if there is one.") + send_system_message("/help - Print this help") + // Admin commands. + if(check_rights_for(user.client, R_ADMIN)) + send_system_message("Admin commands:") + send_system_message("/unlock_equipment - Unlock all equipment, useful if you need to give the user more stuff.") + send_system_message("/ping_user - Pings the user.") + +/** + * System commands + */ +/datum/opposing_force/proc/check_item(type) + var/obj/item/processed_item = text2path(type) + if(!processed_item) + send_system_message("Unknown type: [type]") + return + if(!ispath(processed_item, /obj/item)) + send_system_message("Error: [processed_item] is not an item") + return + + send_system_message("Here are the item specifications for [type]:") + send_system_message("Name: [initial(processed_item.name)]") + send_system_message("Description: [initial(processed_item.desc)]") + send_system_message("Weight class: [initial(processed_item.w_class)]") + send_system_message("Tool behaviour: [initial(processed_item.tool_behaviour)]") + send_system_message("Weak against armor: [initial(processed_item.weak_against_armour) ? "Yes" : "No"]") + send_system_message("Damage type: [initial(processed_item.damtype)]") + send_system_message("Wound bonus: [initial(processed_item.wound_bonus)]") + send_system_message("Bare wound bonus: [initial(processed_item.bare_wound_bonus)]") + send_system_message("Force: [initial(processed_item.force)]") + +/datum/opposing_force/proc/unlock_equipment(mob/user) + if(!check_rights_for(user.client, R_ADMIN)) + send_system_message("ERROR: You do not have permission to do that.") + return + if(!equipment_issued) + send_system_message("ERROR: Equipment not yet issued.") + return + equipment_issued = TRUE + send_system_message("Equipment unlocked.") + +/datum/opposing_force/proc/ping_admin(mob/user) + if(!handling_admin) + send_system_message("ERROR: No admin is handling the application.") + return + if(!COOLDOWN_FINISHED(src, ping_cooldown)) + send_system_message("ERROR: Ping is on cooldown.") + return + if(request_updates_muted) + send_system_message("ERROR: You are muted.") + return + if(user.ckey != handling_admin && GLOB.directory[handling_admin]) + to_chat(GLOB.directory[handling_admin], span_pink("OPFOR: [user] has pinged their OPFOR admin chat! (Show Panel)")) + SEND_SOUND(GLOB.directory[handling_admin], sound('sound/misc/bloop.ogg')) + send_system_message("Handling admin pinged.") + COOLDOWN_START(src, ping_cooldown, OPFOR_PING_COOLDOWN) + else + send_system_message("ERROR: Ping failed.") + +/datum/opposing_force/proc/ping_user(mob/user) + if(!check_rights_for(user.client, R_ADMIN)) + send_system_message("ERROR: You do not have permission to do that.") + return + send_system_message("User pinged.") + to_chat(mind_reference.current, span_pink("OPFOR: [get_admin_ckey(user)] has pinged your OPFOR chat, check it!")) + SEND_SOUND(mind_reference.current, sound('sound/misc/bloop.ogg')) + +/datum/opposing_force/proc/roundend_report() + var/list/report = list("
") + report += span_greentext(mind_reference.current?.real_name) + + if(set_backstory) + report += "Had an approved OPFOR application with the following backstory:
" + report += "[set_backstory]
" + + if(objectives.len) + report += "And with the following objectives:
" + for(var/datum/opposing_force_objective/opfor_objective in objectives) + if(opfor_objective.status != OPFOR_OBJECTIVE_STATUS_APPROVED) + continue + report += "Title: [opfor_objective.title]
" + report += "Description: [opfor_objective.description]
" + report += "
" + + if(selected_equipment.len) + report += "And had the following approved equipment:
" + for(var/datum/opposing_force_selected_equipment/opfor_equipment in selected_equipment) + if(opfor_equipment.status != OPFOR_EQUIPMENT_STATUS_APPROVED) + continue + report += "
[opfor_equipment.opposing_force_equipment.name]
" + report += "
" + + return report.Join("\n") + +/// Adds the OPFOR in question to the ticket ping subsystem should it not be approved. +/datum/opposing_force/proc/add_to_ping_ss() + if(status == OPFOR_STATUS_APPROVED) + return + ticket_ping = TRUE + +/// Allows a user to import an OPFOR from json +/datum/opposing_force/proc/json_import(mob/importer) + var/file_uploaded = input(importer, "Choose a .json file to upload. (This WILL override your inputted data)", "Upload JSON template") as null|file + if(!file_uploaded) + return + if(copytext("[file_uploaded]", -5) != ".json") //5 == length(".json") + to_chat(importer, span_warning("Filename must end in '.json': [file_uploaded]")) + return + + QDEL_LIST(objectives) + QDEL_LIST(selected_equipment) + set_backstory = null + + add_log(importer.ckey, "Imported a json OPFOR.") + + try + var/list/opfor_data = json_load(file_uploaded) + for(var/category in opfor_data) + switch(category) + if("objectives") + for(var/iter_num in opfor_data["objectives"]) + var/datum/opposing_force_objective/opfor_objective = add_objective(importer) + if(!opfor_objective) + continue + + var/list/iter_obj = opfor_data["objectives"][iter_num] + + set_objective_title(importer, opfor_objective, iter_obj["title"]) + set_objective_description(importer, opfor_objective, iter_obj["description"]) + set_objective_justification(importer, opfor_objective, iter_obj["justification"]) + set_objective_intensity(importer, opfor_objective, iter_obj["intensity"]) + + if("backstory") + set_backstory(importer, opfor_data["backstory"]) + + if("selected_equipment") + for(var/iter_num in opfor_data["selected_equipment"]) + // If there isn't category data / a given equipment type, OR if either of those don't fit within certain perameters, it continues + var/list/equipment = opfor_data["selected_equipment"][iter_num] + + if(\ + !equipment["equipment_parent_category"]|| !(equipment["equipment_parent_category"] in SSopposing_force.equipment_list)\ + || !equipment["equipment_parent_type"] || !ispath(text2path(equipment["equipment_parent_type"]), /datum/opposing_force_equipment)) + continue + + // creates a new selected equipment datum using a type gotten from the given equipment type via SSopposing_force.equipment_list + var/datum/opposing_force_selected_equipment/opfor_equipment = select_equipment(importer, \ + locate(text2path(equipment["equipment_parent_type"])) in SSopposing_force.equipment_list[equipment["equipment_parent_category"]]) + + if(!opfor_equipment) + continue + + set_equipment_reason(importer, opfor_equipment, equipment["equipment_reason"]) + set_equipment_count(importer, opfor_equipment, equipment["equipment_count"]) + + catch //taking 0 risk + QDEL_LIST(objectives) + QDEL_LIST(selected_equipment) + set_backstory = null + to_chat(importer, span_warning("JSON file is corrupted in some form. Please correct and reupload.")) + add_log(importer.ckey, "Attempted to upload a corrupted JSON, purging leftover data...") + + +/// Allows a user to export from an OPFOR into a json file +/datum/opposing_force/proc/json_export(mob/exporter) + + var/list/exported_data = list( + "objectives" = list(), + "backstory" = set_backstory, + "selected_equipment" = list(), + ) + + for(var/datum/opposing_force_objective/iterating_objective as anything in objectives) + exported_data["objectives"]["[objectives.Find(iterating_objective)]"] = list( + "title" = iterating_objective.title, + "description" = iterating_objective.description, + "justification" = iterating_objective.justification, + "intensity" = iterating_objective.intensity, //remember to use set_objective_number or whatever the proc is + ) + + for(var/datum/opposing_force_selected_equipment/iterating_equipment as anything in selected_equipment) + exported_data["selected_equipment"]["[objectives.Find(iterating_equipment)]"] = list( + "equipment_name" = iterating_equipment.opposing_force_equipment.name, + "equipment_parent_category" = iterating_equipment.opposing_force_equipment.category, + "equipment_parent_type" = iterating_equipment.opposing_force_equipment.type, + "equipment_reason" = iterating_equipment.reason, + "equipment_count" = iterating_equipment.count, + ) + + add_log(exporter.ckey, "Exported a json OPFOR.") + + var/to_write_file = "data/opfor_temp/[REF(src)].json" + rustg_file_write(json_encode(exported_data), to_write_file) + + try + usr << ftp(file(to_write_file), "exported_OPFOR.json") + + catch + log_game("OPFOR by ckey: [exporter.ckey] attempted to export JSON data but ftp(file()) runtimed.") + add_log(exporter.ckey, "Attempted to export JSON data but ftp(file()) runtimed.") + + fdel(to_write_file) + + +/datum/action/opfor + name = "Open Opposing Force Panel" + button_icon_state = "round_end" + +/datum/action/opfor/Trigger(trigger_flags) + . = ..() + if(!.) + return + owner.opposing_force() + +/datum/action/opfor/IsAvailable(feedback = FALSE) + if(!target) + return FALSE + return ..() + +/obj/effect/statclick/opfor_specific + var/datum/opposing_force/opfor + +/obj/effect/statclick/opfor_specific/Destroy() + opfor = null + . = ..() + +/obj/effect/statclick/opfor_specific/Click() + if (!usr.client?.holder) + message_admins("[key_name_admin(usr)] non-holder clicked on an OPFOR statclick! ([src])") + log_game("[key_name(usr)] non-holder clicked on an OPFOR statclick! ([src])") + return + + opfor.ui_interact(usr) + +/proc/generate_optin_crew_list() + var/list/output = list() + + for (var/datum/record/locked/iterated_record as anything in GLOB.manifest.locked) + var/datum/mind/mind_datum = iterated_record.mind_ref.resolve() + if (!istype(mind_datum)) + continue + var/name = iterated_record.name + var/rank = iterated_record.rank + + var/opt_in_status = mind_datum.get_effective_opt_in_level() + var/ideal_opt_in_status = mind_datum.ideal_opt_in_level + + output += list(list( + "name" = name, + "rank" = rank, + "opt_in_status" = GLOB.antag_opt_in_strings["[opt_in_status]"], + "ideal_opt_in_status" = GLOB.antag_opt_in_strings["[ideal_opt_in_status]"] + )) + + return output + +/datum/controller/subsystem/ticker/proc/opfor_report() + var/list/result = list() + + result += "Opposing Force Report:
" + + if(!SSopposing_force.approved_applications.len) + result += span_red("No applications were approved.") + else + for(var/datum/opposing_force/opfor in SSopposing_force.approved_applications) + result += opfor.roundend_report() + + return "
[result.Join()]
" + +/datum/mind + var/datum/opposing_force/opposing_force + +/datum/mind/Destroy() + QDEL_NULL(opposing_force) + return ..() + +/mob/verb/opposing_force() + set name = "Opposing Force" + set category = "OOC" + set desc = "View your opposing force panel, or request one." + // Mind checks + if(!mind) + var/fail_message = "You have no mind!" + if(isobserver(src)) + fail_message += " You have to be in the current round at some point to have one." + to_chat(src, span_warning(fail_message)) + return + + if(is_banned_from(ckey, BAN_OPFOR)) + to_chat(src, span_warning("You are OPFOR banned!")) + return + + if(!mind.opposing_force) + var/datum/opposing_force/opposing_force = new(mind) + mind.opposing_force = opposing_force + SSopposing_force.new_opfor(opposing_force) + mind.opposing_force.ui_interact(usr) diff --git a/monkestation/code/modules/blueshift/opfor/core/admin.dm b/monkestation/code/modules/blueshift/opfor/core/admin.dm new file mode 100644 index 000000000000..884726ed77da --- /dev/null +++ b/monkestation/code/modules/blueshift/opfor/core/admin.dm @@ -0,0 +1,21 @@ +/client/proc/request_more_opfor() + set category = "Admin.Fun" + set name = "Request OPFOR" + set desc = "Request players sign up for opfor if they have antag on." + + var/asked = 0 + for(var/mob/living/carbon/human/human in GLOB.alive_player_list) + to_chat(human, examine_block(span_greentext("The admins are looking for OPFOR players, if you're interested, sign up in the OOC tab!"))) + asked++ + message_admins("[ADMIN_LOOKUP(usr)] has requested more OPFOR players! (Asked: [asked] players)") + +/client/proc/view_opfors() + set name = "View OPFORs" + set category = "Admin.Game" + if(holder) + var/list/dat = list("") + dat += SSopposing_force.get_check_antag_listing() + dat += "" + usr << browse(dat.Join(), "window=roundstatus;size=500x500") + log_admin("[key_name(usr)] viewed OPFORs.") + SSblackbox.record_feedback("tally", "admin_verb", 1, "View OPFORs") diff --git a/monkestation/code/modules/blueshift/opfor/core/antagonist.dm b/monkestation/code/modules/blueshift/opfor/core/antagonist.dm new file mode 100644 index 000000000000..8c2cbef8e553 --- /dev/null +++ b/monkestation/code/modules/blueshift/opfor/core/antagonist.dm @@ -0,0 +1,22 @@ +GLOBAL_LIST_EMPTY(opfor_passed_ckeys) + +/datum/antagonist/opfor_candidate + name = "\improper OPFOR Candidate" + job_rank = ROLE_OPFOR_CANDIDATE + show_name_in_check_antagonists = TRUE + ui_name = "AntagInfoOpfor" + suicide_cry = "FOR A LACK OF CREATIVITY!!!" + preview_outfit = /datum/outfit/job/assistant/consistent + +/datum/antagonist/opfor_candidate/ui_act(action, params) + . = ..() + if(.) + return + + switch(action) + if("pass_on") + message_admins("[key_name(usr)] has removed their OPFOR candidate status. [ADMIN_PASS_OPFOR(usr)]") + var/mob/user = usr + user?.mind?.remove_antag_datum(/datum/antagonist/opfor_candidate) + GLOB.opfor_passed_ckeys += usr.ckey + return TRUE diff --git a/monkestation/code/modules/blueshift/opfor/core/equipment_datum.dm b/monkestation/code/modules/blueshift/opfor/core/equipment_datum.dm new file mode 100644 index 000000000000..681f0dc56efc --- /dev/null +++ b/monkestation/code/modules/blueshift/opfor/core/equipment_datum.dm @@ -0,0 +1,24 @@ + +/** + * OPFOR EQUIPMENT DATUM + * + * The OPFOR subsystem will gather all of these on initialisation and populate a list, which is then passed + * into the OPFOR UI, which can be selected by the user. + * + * The User will be equipped with whatever they have selected if the approving admin authorises it. + */ + + +/datum/opposing_force_equipment + /// The name of the equipment used in the listing, if not set, it will use the items name. + var/name + /// The description of the equipment used in the listing, if not set, it will use the items description. + var/description + /// The item path that we refer to when equipping. + var/obj/item_type + /// Category of the item. See opposing_force_defines.dm for a list of categories. + var/category = "" + /// Note to admins, useful if the item is extraordinarily strong + var/admin_note + /// How many at most can we order of a specific item? + var/max_amount = OPFOR_EQUIPMENT_COUNT_LIMIT diff --git a/monkestation/code/modules/blueshift/opfor/core/subsystem.dm b/monkestation/code/modules/blueshift/opfor/core/subsystem.dm new file mode 100644 index 000000000000..2e4eece0d383 --- /dev/null +++ b/monkestation/code/modules/blueshift/opfor/core/subsystem.dm @@ -0,0 +1,203 @@ +SUBSYSTEM_DEF(opposing_force) + name = "Opposing Force" + flags = SS_NO_FIRE + + /// A precompiled list of all equipment datums, processed on init + var/list/equipment_list = list() + /// A list of all currently active objectives + var/list/unsubmitted_applications = list() + /// A list of all currently submitted objectives + var/list/submitted_applications = list() + /// A list of all approved applications + var/list/approved_applications = list() + /// The max amount of objectives that can be tracked + var/max_objectives = 5 + /// Are we allowing players to make objectives? + var/accepting_objectives = TRUE + /// The status of the subsystem + var/status = OPFOR_SUBSYSTEM_READY + +/datum/controller/subsystem/opposing_force/stat_entry(msg) + msg = "UNSUB: [LAZYLEN(unsubmitted_applications)] | SUB: [LAZYLEN(submitted_applications)] | APPR: [LAZYLEN(approved_applications)]" + return ..() + +/datum/controller/subsystem/opposing_force/Initialize() + for(var/datum/opposing_force_equipment/opfor_equipment as anything in subtypesof(/datum/opposing_force_equipment)) + // Set up our categories so we can add items to them + if(initial(opfor_equipment.category)) + var/category = initial(opfor_equipment.category) + if(!(category in equipment_list)) + // We instansiate the category list so we can add items to it later + equipment_list[category] = list() + // These can be considered abstract types, thus do not need to be added. + if(isnull(initial(opfor_equipment.item_type))) + continue + var/datum/opposing_force_equipment/spawned_opfor_equipment = new opfor_equipment() + // Datums without a name will assume the items name + spawned_opfor_equipment.name ||= initial(spawned_opfor_equipment.item_type.name) + // ditto for the description + spawned_opfor_equipment.description ||= initial(spawned_opfor_equipment.item_type.desc) + // Now that we've set up our datum, we can add it to the correct category + if(spawned_opfor_equipment.category) + // We have a category, let's add it to the associated list + equipment_list[spawned_opfor_equipment.category] += spawned_opfor_equipment + else + // Because of how the UI system works, categories cannot exist with nothing in them, so we + // only set the OTHER category if something can go inside it! + if(!(OPFOR_EQUIPMENT_CATEGORY_OTHER in equipment_list)) + equipment_list[OPFOR_EQUIPMENT_CATEGORY_OTHER] = list() + // We don't have home :( add us to the other category. + equipment_list[OPFOR_EQUIPMENT_CATEGORY_OTHER] += spawned_opfor_equipment + equipment_list = sort_list(equipment_list, GLOBAL_PROC_REF(cmp_num_string_asc)) + return SS_INIT_SUCCESS + +/datum/controller/subsystem/opposing_force/proc/check_availability() + if(get_current_applications() >= max_objectives) + status = OPFOR_SUBSYSTEM_REJECT_CAP + if(!accepting_objectives) + status = OPFOR_SUBSYSTEM_REJECT_CLOSED + status = OPFOR_SUBSYSTEM_READY + return status + +/datum/controller/subsystem/opposing_force/proc/close_objectives() + accepting_objectives = FALSE + +/datum/controller/subsystem/opposing_force/proc/get_queue_position(datum/opposing_force/opposing_force) + if(!(opposing_force in submitted_applications)) + return "ERROR" + var/position = 1 + for(var/opfor as anything in submitted_applications) + if(opposing_force == opfor) + break + position++ + return position + +/datum/controller/subsystem/opposing_force/proc/add_to_queue(datum/opposing_force/opposing_force) + if(!LAZYFIND(unsubmitted_applications, opposing_force)) + CRASH("Opposing_force_subsystem: Attempted to add an opposing force to the queue but it was not registered to the subsystem!") + + submitted_applications += opposing_force + unsubmitted_applications -= opposing_force + + return LAZYLEN(submitted_applications) + +/datum/controller/subsystem/opposing_force/proc/broadcast_queue_change(datum/opposing_force/updating_opposing_force) + for(var/datum/opposing_force/opposing_force in submitted_applications) + if(opposing_force == updating_opposing_force) + continue + opposing_force.broadcast_queue_change() + +/datum/controller/subsystem/opposing_force/proc/approve(datum/opposing_force/opposing_force, mob/approver) + if(!is_admin(approver.client)) + message_admins("Oppoding_force_subsystem: [ADMIN_LOOKUPFLW(approver)] attempted to approve an OPFOR application but was not an admin!") + CRASH("Opposing_force_subsystem: Attempted to approve an opposing force but the approver ([approver?.ckey]) was not an admin!") + + if(!LAZYFIND(unsubmitted_applications, opposing_force)) + unsubmitted_applications -= opposing_force + + if(LAZYFIND(submitted_applications, opposing_force)) + submitted_applications -= opposing_force + + if(LAZYFIND(approved_applications, opposing_force)) + return + + approved_applications += opposing_force + + opposing_force.approve(approver) + + broadcast_queue_change(opposing_force) + + return TRUE + +/datum/controller/subsystem/opposing_force/proc/deny(datum/opposing_force/opposing_force, reason, mob/denier) + if(!is_admin(denier.client)) + message_admins("Oppoding_force_subsystem: [ADMIN_LOOKUPFLW(denier)] attempted to deny an OPFOR application but was not an admin!") + CRASH("Opposing_force_subsystem: Attempted to deny an opposing force but the denier ([denier?.ckey]) was not an admin!") + + if(LAZYFIND(submitted_applications, opposing_force)) + submitted_applications -= opposing_force + + if(LAZYFIND(approved_applications, opposing_force)) + approved_applications -= opposing_force + + if(!LAZYFIND(unsubmitted_applications, opposing_force)) + unsubmitted_applications += opposing_force + + opposing_force.deny(denier, reason) + + broadcast_queue_change(opposing_force) + + return TRUE + +/datum/controller/subsystem/opposing_force/proc/modify_request(datum/opposing_force/opposing_force, changes) + if(LAZYFIND(submitted_applications, opposing_force)) + submitted_applications -= opposing_force + + if(LAZYFIND(approved_applications, opposing_force)) + approved_applications -= opposing_force + + if(!LAZYFIND(unsubmitted_applications, opposing_force)) + unsubmitted_applications += opposing_force + + broadcast_queue_change(opposing_force) + +/datum/controller/subsystem/opposing_force/proc/get_current_applications() + return LAZYLEN(submitted_applications) + LAZYLEN(approved_applications) + +/datum/controller/subsystem/opposing_force/proc/new_opfor(datum/opposing_force/opposing_force) + unsubmitted_applications += opposing_force + +/datum/controller/subsystem/opposing_force/proc/remove_opfor(datum/opposing_force/opposing_force) + if(LAZYFIND(unsubmitted_applications, opposing_force)) + unsubmitted_applications -= opposing_force + if(LAZYFIND(submitted_applications, opposing_force)) + submitted_applications -= opposing_force + if(LAZYFIND(approved_applications, opposing_force)) + approved_applications -= opposing_force + + broadcast_queue_change() + +/datum/controller/subsystem/opposing_force/proc/unsubmit_opfor(datum/opposing_force/opposing_force) + if(LAZYFIND(approved_applications, opposing_force)) + approved_applications -= opposing_force + if(LAZYFIND(submitted_applications, opposing_force)) + submitted_applications -= opposing_force + if(!LAZYFIND(unsubmitted_applications, opposing_force)) + unsubmitted_applications += opposing_force + + + broadcast_queue_change() + +/datum/controller/subsystem/opposing_force/proc/view_opfor(datum/opposing_force/opposing_force, mob/viewer) + if(!is_admin(viewer.client)) + message_admins("Oppoding_force_subsystem: [ADMIN_LOOKUPFLW(viewer)] attempted to view an OPFOR application but was not an admin!") + CRASH("Opposing_force_subsystem: Attempted to view an opposing force but the viewer was not an admin!") + + opposing_force.ui_interact(viewer) + +/datum/controller/subsystem/opposing_force/proc/get_check_antag_listing() + var/list/returned_html = list("
") + + returned_html += "OPFOR Applications" + + returned_html += "Submitted - FOLLOW QUEUE!" + var/queue_count = 1 + for(var/datum/opposing_force/opposing_force in submitted_applications) + returned_html += " - [queue_count]. [opposing_force.build_html_panel_entry()]" + queue_count++ + + returned_html += "Approved" + for(var/datum/opposing_force/opposing_force in approved_applications) + returned_html += " - [opposing_force.build_html_panel_entry()]" + + returned_html += "Unsubmitted" + for(var/datum/opposing_force/opposing_force in unsubmitted_applications) + returned_html += " - [opposing_force.build_html_panel_entry()]" + + return returned_html.Join("
") + +/// Gives a mind the opfor action button, which calls the opfor verb when pressed +/datum/controller/subsystem/opposing_force/proc/give_opfor_button(mob/living/carbon/human/player) + var/datum/action/opfor/info_button + info_button = new(src) + info_button.Grant(player) diff --git a/monkestation/code/modules/blueshift/opfor/core/unused.dm b/monkestation/code/modules/blueshift/opfor/core/unused.dm new file mode 100644 index 000000000000..000e8d4891aa --- /dev/null +++ b/monkestation/code/modules/blueshift/opfor/core/unused.dm @@ -0,0 +1,56 @@ +/datum/dynamic_ruleset/midround/from_living/opfor_candidate + name = "OPFOR Candidate Reroll" + midround_ruleset_style = MIDROUND_RULESET_STYLE_LIGHT + antag_datum = /datum/antagonist/opfor_candidate + antag_flag = ROLE_OPFOR_CANDIDATE + antag_flag_override = BAN_OPFOR + required_candidates = 1 + weight = 0 + cost = 5 + repeatable = TRUE + + +/datum/dynamic_ruleset/midround/from_living/opfor_candidate/trim_candidates() + ..() + candidates = living_players + for(var/mob/player as anything in candidates) + if(player?.ckey in GLOB.opfor_passed_ckeys) + candidates -= player + + +/datum/dynamic_ruleset/midround/from_living/opfor_candidate/execute() + var/mob/picked = pick(candidates) + assigned += picked + candidates -= picked + var/datum/antagonist/opfor_candidate/candidate = new + picked.mind.add_antag_datum(candidate) + message_admins("[ADMIN_LOOKUPFLW(picked)] had OPFOR candidacy passed onto them.") + log_dynamic("[key_name(picked)] had OPFOR candidacy passed onto them.") + return TRUE + +/datum/dynamic_ruleset/midround/from_living/opfor_candidate/trim_list(list/list_to_trim = list()) + var/list/trimmed_list = list_to_trim.Copy() + + for(var/mob/mob_candidate in trimmed_list) + if (!istype(mob_candidate, required_type)) + trimmed_list.Remove(mob_candidate) + continue + + if (!mob_candidate.client) // Are they connected? + trimmed_list.Remove(mob_candidate) + continue + + if (mob_candidate.client.get_remaining_days(minimum_required_age) > 0) + trimmed_list.Remove(mob_candidate) + continue + + if (is_banned_from(mob_candidate.ckey, BAN_OPFOR)) + trimmed_list.Remove(mob_candidate) + continue + + if (mob_candidate.mind) + if (restrict_ghost_roles && (mob_candidate.mind.assigned_role.title in GLOB.exp_specialmap[EXP_TYPE_SPECIAL])) // Are they playing a ghost role? + trimmed_list.Remove(mob_candidate) + continue + + return trimmed_list diff --git a/monkestation/code/modules/blueshift/opfor/equipment/ammo.dm b/monkestation/code/modules/blueshift/opfor/equipment/ammo.dm new file mode 100644 index 000000000000..b87c2c37adb0 --- /dev/null +++ b/monkestation/code/modules/blueshift/opfor/equipment/ammo.dm @@ -0,0 +1,93 @@ +/datum/opposing_force_equipment/ammo_exotic + category = OPFOR_EQUIPMENT_CATEGORY_AMMO_EXOTIC + +/datum/opposing_force_equipment/ammo_exotic/rubber27_54 + description = "A box of .27-54 Cesarzowa Rubber rounds, useful for incapacitating targets without causing too much extra harm." + item_type = /obj/item/ammo_box/c27_54cesarzowa/rubber + +/datum/opposing_force_equipment/ammo_exotic/ripper35 + description = "A box of .35 Sol rounds, hollow-tipped for maximum damage against NON-ARMOURED combatants." + item_type = /obj/item/ammo_box/c35sol/ripper + +/datum/opposing_force_equipment/ammo_exotic/pierce40 + description = "A box of .40 Sol Match rounds, works best against armoured combatants; the box has a warning about being careful for collateral damage." + item_type = /obj/item/ammo_box/c40sol/pierce + +/datum/opposing_force_equipment/ammo_exotic/fire40 + description = "A box of .40 Sol Incendiary rounds, bullet impacts light the victims aflame." + item_type = /obj/item/ammo_box/c40sol/incendiary + +/datum/opposing_force_equipment/ammo_exotic/frag40 + description = "A box of .40 Sol Fragmentation rounds, useful for incapacitating your victim ASAP, no matter if they live or die." + item_type = /obj/item/ammo_box/c40sol/fragmentation + +/datum/opposing_force_equipment/ammo_exotic/rubber310 + description = "A box of .310 Strilka Rubber rounds, useful for incapacitating targets without causing too much extra harm." + item_type = /obj/item/ammo_box/c310_cargo_box/rubber + +/datum/opposing_force_equipment/ammo_exotic/pierce310 + description = "A box of .310 Strilka Piercing rounds, useful against armored combatants." + item_type = /obj/item/ammo_box/c310_cargo_box/piercing + +/datum/opposing_force_equipment/ammo_exotic/magnum + description = "A box of magnum flechette shotgun shells, the first choice munition of many shotgun fanatics." + item_type = /obj/item/ammo_box/advanced/s12gauge/magnum + +/datum/opposing_force_equipment/ammo_exotic/express + description = "A box of express buckshot shotgun shells, for when the regular shells can't keep up with you." + item_type = /obj/item/ammo_box/advanced/s12gauge/express + +/datum/opposing_force_equipment/ammo_exotic/flechette + description = "A box of flechette shotgun shells, tighter spread than buckshot plus more armour damage." + item_type = /obj/item/ammo_box/advanced/s12gauge/flechette + +/datum/opposing_force_equipment/ammo_exotic/incendiary + description = "A box of dargonsbreath shotgun shells, highly underrated in the hands of someone who knows not to step forward after firing." + item_type = /obj/item/ammo_box/advanced/s12gauge/incendiary + +/datum/opposing_force_equipment/ammo_exotic/slug + description = "A box of slug shotgun shells, fires only one big fuck-off bullet that wounds extra hard." + item_type = /obj/item/ammo_box/advanced/s12gauge + +/datum/opposing_force_equipment/ammo_exotic/hornet + description = "A box of hornet's nest shotgun shells, a less-lethal pellet spread that bounces towards targets off of walls." + item_type = /obj/item/ammo_box/advanced/s12gauge/beehive + +/datum/opposing_force_equipment/ammo_exotic/stardust + description = "A box of stardust shotgun shells, a less-lethal spread of embedding electrodes that tire targets that move." + item_type = /obj/item/ammo_box/advanced/s12gauge/antitide + +/* +/datum/opposing_force_equipment/ammo_exotic/a357phasic + description = "A speedloader of .357 that ignores structure collision at the cost of some damage." + admin_note = "Bullets ignore walls, has a damage penalty." + item_type = /obj/item/ammo_box/a357/phasic + +/datum/opposing_force_equipment/ammo_exotic/a357heartseeker + description = "A speedloader of .357 with homing capabilities." + item_type = /obj/item/ammo_box/a357/heartseeker + +/datum/opposing_force_equipment/ammo_exotic/a357peacemaker + description = "A speedloader of .357 that have their impact lessened to highten the odds for ricochet shots." + item_type = /obj/item/ammo_box/a357/peacemaker +*/ + +/datum/opposing_force_equipment/ammo_exotic/ap45 + description = "An smg magazine of armour piercing .45, used by the c20-r." + item_type = /obj/item/ammo_box/magazine/smgm45/ap + +/datum/opposing_force_equipment/ammo_exotic/incen45 + description = "An smg magazine of incendiary .45, used by the c20-r." + item_type = /obj/item/ammo_box/magazine/smgm45/incen + +/datum/opposing_force_equipment/ammo_exotic/ap9mm + description = "An smg magazine of armour piercing 9mm, used by the makarov." + item_type = /obj/item/ammo_box/magazine/m9mm/ap + +/datum/opposing_force_equipment/ammo_exotic/hp9mm + description = "An smg magazine of hollow point 9mm, used by the makarov." + item_type = /obj/item/ammo_box/magazine/m9mm/hp + +/datum/opposing_force_equipment/ammo_exotic/incen9mm + description = "An smg magazine of incendiary 9mm, used by the makarov." + item_type = /obj/item/ammo_box/magazine/m9mm/fire diff --git a/monkestation/code/modules/blueshift/opfor/equipment/biology.dm b/monkestation/code/modules/blueshift/opfor/equipment/biology.dm new file mode 100644 index 000000000000..28d3d52a59a7 --- /dev/null +++ b/monkestation/code/modules/blueshift/opfor/equipment/biology.dm @@ -0,0 +1,78 @@ +/datum/opposing_force_equipment/language + category = OPFOR_EQUIPMENT_CATEGORY_LANGUAGE + item_type = /obj/effect/gibspawner/generic + /// The language typepath to be given to the mind's language holder + var/language + +/datum/opposing_force_equipment/language/on_issue(mob/living/target) + target.grant_language(language, source = LANGUAGE_MIND) + +/datum/opposing_force_equipment/language/codespeak + name = "Codespeak language" + description = "Syndicate operatives can use a series of codewords to convey complex information, while sounding like random concepts and drinks to anyone listening in." + language = /datum/language/codespeak + +/datum/opposing_force_equipment/language/narsie + name = "Nar'Sian language" + description = "The ancient, blood-soaked, impossibly complex language of Nar'Sian cultists." + language = /datum/language/narsie + +/datum/opposing_force_equipment/language/piratespeak + name = "Piratespeak language" + description = "The language of space pirates." + language = /datum/language/piratespeak + +/datum/opposing_force_equipment/language/calcic + name = "Calcic language" + description = "The disjointed and staccato language of plasmamen. Also understood by skeletons." + language = /datum/language/calcic + +/datum/opposing_force_equipment/language/shadowtongue + name = "Shadowtongue language" + description = "What a grand and intoxicating innocence." + language = /datum/language/shadowtongue + +/datum/opposing_force_equipment/language/buzzwords + name = "Buzzwords language" + description = "A common language to all insects, made by the rhythmic beating of wings." + language = /datum/language/buzzwords + +/datum/opposing_force_equipment/language/xenocommon + name = "Xenomorph language" + description = "The common tongue of the xenomorphs." + language = /datum/language/xenocommon + +/datum/opposing_force_equipment/language/monkey + name = "Chimpanzee language" + description = "Ook ook ook." + language = /datum/language/monkey + +/datum/opposing_force_equipment/language/nekomimetic + name = "Nekomimetic language" + description = "To the casual observer, this langauge is an incomprehensible mess of broken Japanese. To the felinids, it's somehow comprehensible." + language = /datum/language/nekomimetic + +/datum/opposing_force_equipment/language/mushroom + name = "Mushroom language" + description = "A language that consists of the sound of periodic gusts of spore-filled air being released." + language = /datum/language/mushroom + +/datum/opposing_force_equipment/language/drone + name = "Drone language" + description = "A heavily encoded damage control coordination stream, with special flags for hats." + language = /datum/language/drone + +/datum/opposing_force_equipment/language/beachbum + name = "Beachtongue language" + description = "An ancient language from the distant Beach Planet. People magically learn to speak it under the influence of space drugs." + language = /datum/language/beachbum + + +/datum/opposing_force_equipment/organs + category = OPFOR_EQUIPMENT_CATEGORY_ORGANS + +/datum/opposing_force_equipment/organs/xeno + name = "Xeno-organ Implant Kit" + description = "An organ implant kit filled with illegally obtained xenomorph organs." + admin_note = "Gives the ability to place resin structures, spit acid and melt station structures." + item_type = /obj/item/storage/organbox/strange diff --git a/monkestation/code/modules/blueshift/opfor/equipment/bombs.dm b/monkestation/code/modules/blueshift/opfor/equipment/bombs.dm new file mode 100644 index 000000000000..2f012fa66e2c --- /dev/null +++ b/monkestation/code/modules/blueshift/opfor/equipment/bombs.dm @@ -0,0 +1,138 @@ +/datum/opposing_force_equipment/bomb_chemical + category = OPFOR_EQUIPMENT_CATEGORY_BOMB_CHEM + +/datum/opposing_force_equipment/bomb_chemical/c4 + item_type = /obj/item/grenade/c4 + description = "A brick of plastic explosives, for breaking open walls, doors, and optionally people." + +/datum/opposing_force_equipment/bomb_chemical/x4 + item_type = /obj/item/grenade/c4/x4 + description = "Similar to C4, but with a stronger blast that is directional instead of circular." + +/datum/opposing_force_equipment/bomb_chemical/minibomb + name = "Syndicate Minibomb" + item_type = /obj/item/grenade/syndieminibomb + description = "The minibomb is a grenade with a five-second fuse. Upon detonation, it will create a small hull breach in addition to dealing high amounts of damage to nearby personnel." + +/datum/opposing_force_equipment/bomb_chemical/minibomb_cluster + name = "Syndicate Minibomb Cluster-Grenade" + admin_note = "Devastating payload, equal explosion size to the average command bridge." + item_type = /obj/item/grenade/clusterbuster/syndieminibomb + +/datum/opposing_force_equipment/bomb_chemical/fragnade + item_type = /obj/item/grenade/frag + description = "A fragmentation grenade that looses pieces of shrapnel after detonating for maximum injury." + +/datum/opposing_force_equipment/bomb_chemical/fire + name = "Incendiary Grenade" + admin_note = "Very mid despite having a scary name." + item_type = /obj/item/grenade/chem_grenade/incendiary + +/datum/opposing_force_equipment/bomb_chemical/fire_cluster + name = "Incendiary Cluster-Grenade" + admin_note = "Room-filling plasmafire that lasts for about 10 seconds." + item_type = /obj/item/grenade/clusterbuster/inferno + +/datum/opposing_force_equipment/bomb_chemical/clf3 + name = "Trifluoride Grenade" + admin_note = "In most cases you want to refer the player to the 'incendiary grenade' instead. This grenade has a huge scale, and spaces non-floored tiles." + item_type = /obj/item/grenade/chem_grenade/clf3 +/* +/datum/opposing_force_equipment/bomb_chemical/clf3_cluster //this fucking thing deletes your station + name = "Trifluoride Cluster-Grenade" + admin_note = "" + item_type = /obj/item/grenade/clusterbuster/clf3 +*/ +/datum/opposing_force_equipment/bomb_chemical/facid + name = "Acid grenade" + admin_note = "This thing will remove most player's clothing." + item_type = /obj/item/grenade/chem_grenade/facid +/* +/datum/opposing_force_equipment/bomb_chemical/facid_cluster //massive collateral. only uncomment if you're OK with all of crew becoming nude + name = "Acid Cluster-Grenade" + item_type = /obj/item/grenade/clusterbuster/facid +*/ +/datum/opposing_force_equipment/bomb_chemical/radnade + item_type = /obj/item/grenade/gluon + description = "A prototype grenade that freezes the target area and unleashes a wave of deadly radiation." + +/datum/opposing_force_equipment/bomb_chemical/henade + item_type = /obj/item/grenade/syndieminibomb/concussion + description = "A grenade intended to concuss and incapacitate enemies. Still rather explosive." + +/datum/opposing_force_equipment/bomb_chemical/anti_grav + name = "Anti-Gravity Grenade" + item_type = /obj/item/grenade/antigravity + +/datum/opposing_force_equipment/bomb_chemical/emp + name = "EMP Grenade" + item_type = /obj/item/grenade/empgrenade + +/datum/opposing_force_equipment/bomb_chemical/flashbang + name = "Flashbang" + item_type = /obj/item/grenade/flashbang + description = "A flash-and-sonic stun grenade, useful for non-lethally incapacitating crowds." + +/datum/opposing_force_equipment/bomb_chemical/smoke + name = "Smoke Grenade" + item_type = /obj/item/grenade/smokebomb + +/datum/opposing_force_equipment/bomb_chemical/soap + name = "Soap cluster-Grenade" + item_type = /obj/item/grenade/clusterbuster/soap + +/datum/opposing_force_equipment/bomb_chemical/moustache + name = "Tearstache Grenade" + item_type = /obj/item/grenade/chem_grenade/teargas/moustache + admin_note = "Puts mustaches on their victims that last for ten minutes." + +/datum/opposing_force_equipment/bomb_chemical/carp + name = "Carp Grenade" + item_type = /obj/item/grenade/spawnergrenade/spesscarp + +/datum/opposing_force_equipment/bomb_chemical/carp_cluster + name = "Carp Cluster-Grenade" + item_type = /obj/item/grenade/clusterbuster/spawner_spesscarp + +/datum/opposing_force_equipment/bomb_chemical/viscerator + name = "Viscerator Delivery Grenade" + item_type = /obj/item/grenade/spawnergrenade/manhacks + description = "A unique grenade that deploys a swarm of viscerators upon activation, which will chase down and shred any non-operatives in the area." + +/datum/opposing_force_equipment/bomb_chemical/viscerator_cluster + name = "Viscerator Delivery cluster-Grenade" + item_type = /obj/item/grenade/clusterbuster/spawner_manhacks + +/datum/opposing_force_equipment/bomb_chemical/buzzkill + name = "Buzzkill Grenade" + item_type = /obj/item/grenade/spawnergrenade/buzzkill + description = "A grenade that release a swarm of angry bees upon activation. These bees indiscriminately attack friend or foe with random toxins. Courtesy of the BLF and Tiger Cooperative." + admin_note = "WARNING: The bee's from this grenade can have almost anything chem-wise into them, and just a few can make a massive swarm of bees(10 bees per!!)" + +/datum/opposing_force_equipment/bomb_chemical/pizza + name = "Pizza Bomb" + item_type = /obj/item/pizzabox/bomb + description = "A pizza box with a bomb cunningly attached to the lid. The timer needs to be set by opening the box; afterwards, opening the box again will trigger the detonation after the timer has elapsed. Comes with free pizza, for you or your target!" + +/datum/opposing_force_equipment/bomb_payload + category = OPFOR_EQUIPMENT_CATEGORY_BOMB_PAYLOAD + +/datum/opposing_force_equipment/bomb_payload/syndicate + name = "Syndicate Bomb" + item_type = /obj/item/sbeacondrop/bomb + description = "A large, powerful bomb that can be wrenched down and armed with a variable timer." + admin_note = "WARNING: This is a pretty big bomb, it can take out entire rooms." + +/datum/opposing_force_equipment/bomb_payload/syndicate_emp + name = "Syndicate EMP Bomb" + item_type = /obj/item/sbeacondrop/emp + description = "A modified version of the Syndicate Bomb that releases a large EMP instead." + +/datum/opposing_force_equipment/bomb_payload/syndicate_sink + name = "Syndicate Power Sink" + item_type = /obj/item/sbeacondrop/powersink + +/datum/opposing_force_equipment/bomb_payload/syndicate_clown_bomb + name = "Syndicate Clown Bomb" + item_type = /obj/item/sbeacondrop/clownbomb + admin_note = "Does not deal any damage, just spawns twenty passive simplemob clowns." diff --git a/monkestation/code/modules/blueshift/opfor/equipment/clothing.dm b/monkestation/code/modules/blueshift/opfor/equipment/clothing.dm new file mode 100644 index 000000000000..3c7375f1a8f0 --- /dev/null +++ b/monkestation/code/modules/blueshift/opfor/equipment/clothing.dm @@ -0,0 +1,341 @@ +/datum/opposing_force_equipment/clothing_syndicate + category = OPFOR_EQUIPMENT_CATEGORY_CLOTHING_SYNDICATE + +/datum/opposing_force_equipment/clothing_syndicate/operative + name = "Syndicate Operative" + description = "A tried classic outfit, sporting versatile defensive gear, tactical webbing, a comfortable turtleneck, and even an emergency space-suit box." + item_type = /obj/item/storage/backpack/duffelbag/syndie/operative + +/obj/item/storage/backpack/duffelbag/syndie/operative/PopulateContents() //basically old insurgent bundle -nukie mod + new /obj/item/clothing/under/syndicate/nova/tactical(src) + new /obj/item/clothing/under/syndicate/nova/tactical/skirt(src) + new /obj/item/clothing/suit/armor/bulletproof(src) + new /obj/item/clothing/shoes/combat(src) + new /obj/item/clothing/gloves/tackler/combat(src) + new /obj/item/clothing/mask/gas/syndicate(src) + new /obj/item/storage/belt/military(src) + new /obj/item/radio/headset/syndicate/alt(src) + new /obj/item/card/id/advanced/chameleon(src) + new /obj/item/clothing/glasses/sunglasses(src) + new /obj/item/storage/box/syndie_kit/space_suit(src) + +/datum/opposing_force_equipment/clothing_syndicate/engineer + name = "Syndicate Engineer" + description = "A spin on the classic outfit, for those whose hands are never clean. Trades defensive choices for utility. Comes with an emergency space-suit box." + item_type = /obj/item/storage/backpack/duffelbag/syndie/engineer + +/obj/item/storage/backpack/duffelbag/syndie/engineer/PopulateContents() + new /obj/item/clothing/under/syndicate/nova/overalls(src) + new /obj/item/clothing/under/syndicate/nova/overalls/skirt(src) + new /obj/item/clothing/suit/armor/bulletproof(src) + new /obj/item/clothing/shoes/combat(src) + new /obj/item/clothing/gloves/combat(src) + new /obj/item/clothing/mask/gas/syndicate(src) + new /obj/item/storage/belt/utility/syndicate(src) + new /obj/item/radio/headset/syndicate/alt(src) + new /obj/item/card/id/advanced/chameleon(src) + new /obj/item/clothing/glasses/meson/night(src) + new /obj/item/storage/box/syndie_kit/space_suit(src) + +/datum/opposing_force_equipment/clothing_syndicate/spy + name = "Syndicate Spy" + description = "They don't have to know who you are, and they won't. Comes with emergency space-suit box." + item_type = /obj/item/storage/backpack/duffelbag/syndie/spy + +/obj/item/storage/backpack/duffelbag/syndie/spy/PopulateContents() + new /obj/item/clothing/under/suit/black/armoured(src) + new /obj/item/clothing/under/suit/black/skirt/armoured(src) + new /obj/item/clothing/suit/jacket/det_suit/noir/armoured(src) + new /obj/item/storage/belt/holster/detective/dark(src) + new /obj/item/clothing/head/frenchberet/armoured(src) + new /obj/item/clothing/shoes/laceup(src) + new /obj/item/clothing/neck/tie/red/hitman(src) + new /obj/item/clothing/mask/gas/syndicate/ds(src) //a red spy is in the base + new /obj/item/radio/headset/syndicate/alt(src) + new /obj/item/card/id/advanced/chameleon(src) + new /obj/item/clothing/glasses/sunglasses(src) + new /obj/item/storage/box/syndie_kit/space_suit(src) + +/datum/opposing_force_equipment/clothing_syndicate/maid + name = "Syndicate Maid" + description = "..." + item_type = /obj/item/storage/backpack/duffelbag/syndie/maid + +/obj/item/storage/backpack/duffelbag/syndie/maid/PopulateContents() //by far the weakest bundle + new /obj/item/clothing/under/syndicate/nova/maid(src) + new /obj/item/clothing/gloves/combat/maid(src) + new /obj/item/clothing/head/costume/maidheadband/syndicate(src) + new /obj/item/clothing/shoes/laceup(src) + new /obj/item/radio/headset/syndicate/alt(src) + new /obj/item/card/id/advanced/chameleon(src) + +/datum/opposing_force_equipment/clothing_syndicate/cybersun_operative + name = "Cybersun Operative" + description = "For the most covert of ops. Comes with emergency space-suit box." + item_type = /obj/item/storage/backpack/duffelbag/syndie/cybersun_operative + +/obj/item/storage/backpack/duffelbag/syndie/cybersun_operative/PopulateContents() //drip maxxed + new /obj/item/clothing/under/syndicate/combat(src) + new /obj/item/clothing/suit/armor/bulletproof(src) + new /obj/item/clothing/shoes/combat(src) + new /obj/item/clothing/gloves/combat(src) + new /obj/item/clothing/mask/gas/sechailer/syndicate(src) + new /obj/item/clothing/glasses/meson/night(src) + new /obj/item/storage/belt/military/assault(src) + new /obj/item/radio/headset/syndicate/alt(src) + new /obj/item/card/id/advanced/chameleon(src) + new /obj/item/storage/box/syndie_kit/space_suit(src) + +/datum/opposing_force_equipment/clothing_syndicate/cybersun_hacker + name = "Cybersun Hacker" + description = "Some space-farers believe the infamous Space Ninja is no longer around, and they are wrong." + item_type = /obj/item/storage/backpack/duffelbag/syndie/cybersun_hacker + +/obj/item/storage/backpack/duffelbag/syndie/cybersun_hacker/PopulateContents() + new /obj/item/clothing/under/syndicate/ninja(src) + new /obj/item/clothing/shoes/combat(src) + new /obj/item/clothing/gloves/combat(src) + new /obj/item/clothing/mask/gas/ninja(src) + new /obj/item/clothing/glasses/hud/health/night/meson(src) //damn its sexy + new /obj/item/storage/belt/military/assault(src) + new /obj/item/radio/headset/syndicate/alt(src) + new /obj/item/card/id/advanced/chameleon(src) + +/datum/opposing_force_equipment/clothing_syndicate/lone_gunman + name = "Lone Gunman" + description = "My name is not important." + admin_note = "Looks unarmoured, yet is very armoured" + item_type = /obj/item/storage/backpack/duffelbag/syndie/lone_gunman + +/obj/item/storage/backpack/duffelbag/syndie/lone_gunman/PopulateContents() + new /obj/item/clothing/under/pants/track/robohand(src) + new /obj/item/clothing/glasses/sunglasses/robohand(src) + new /obj/item/clothing/suit/jacket/trenchcoat/gunman(src) + new /obj/item/clothing/shoes/combat(src) + new /obj/item/radio/headset/syndicate/alt(src) + new /obj/item/card/id/advanced/chameleon(src) + + +/datum/opposing_force_equipment/clothing_sol + category = OPFOR_EQUIPMENT_CATEGORY_CLOTHING_SOL + +/datum/opposing_force_equipment/clothing_sol/sol_militant + name = "Sol Militant" + description = "There is a war being fought, and its taking place right here." + item_type = /obj/item/storage/backpack/ert/odst/hecu/sol_militant + +/obj/item/storage/backpack/ert/odst/hecu/sol_militant/PopulateContents() + new /obj/item/clothing/under/sol_peacekeeper(src) + new /obj/item/clothing/suit/armor/sf_peacekeeper(src) + new /obj/item/clothing/head/helmet/sf_peacekeeper(src) + new /obj/item/storage/belt/military/assault(src) + new /obj/item/clothing/mask/gas(src) + new /obj/item/clothing/shoes/combat(src) + new /obj/item/clothing/gloves/combat(src) + new /obj/item/clothing/glasses/night(src) + new /obj/item/radio/headset/syndicate/alt(src) + new /obj/item/card/id/advanced/chameleon(src) + +/datum/opposing_force_equipment/clothing_sol/dogginos + name = "Dogginos Courier" + description = "You're just doing your job." + item_type = /obj/item/storage/backpack/satchel/leather/dogginos + +/obj/item/storage/backpack/satchel/leather/dogginos/PopulateContents() + new /obj/item/clothing/under/pizza(src) + new /obj/item/clothing/suit/pizzaleader(src) + new /obj/item/clothing/suit/toggle/jacket/hoodie/pizza(src) + new /obj/item/clothing/head/pizza(src) + new /obj/item/clothing/head/soft/red(src) + new /obj/item/clothing/glasses/regular/betterunshit(src) + new /obj/item/clothing/mask/fakemoustache/italian(src) + new /obj/item/clothing/shoes/sneakers/red(src) + new /obj/item/radio/headset/headset_cent/impostorsr(src) + new /obj/item/card/id/advanced/chameleon(src) + +/obj/item/card/id/advanced/chameleon/impostorsr + access = list(ACCESS_MAINT_TUNNELS, ACCESS_SYNDICATE, ACCESS_COMMAND) //I didn't know i had to say this but you're not supposed to shoot your 'superior' just because they do not have access to the bridge + +/datum/opposing_force_equipment/clothing_sol/impostor + name = "CentCom Impostor" + description = "Don't ask us how we got this. Comes with special agent ID pre-equipped with COMMAND access." + item_type = /obj/item/storage/backpack/duffelbag/syndie/impostor + +/obj/item/storage/backpack/duffelbag/syndie/impostor/PopulateContents() + new /obj/item/clothing/under/rank/centcom/officer(src) + new /obj/item/clothing/under/rank/centcom/officer_skirt(src) + new /obj/item/clothing/head/hats/centcom_cap(src) + new /obj/item/clothing/suit/armor/centcom_formal(src) + new /obj/item/clothing/shoes/combat(src) + new /obj/item/radio/headset/headset_cent/impostorsr(src) + new /obj/item/clothing/glasses/sunglasses(src) + new /obj/item/clipboard(src) + new /obj/item/card/id/advanced/chameleon/impostorsr(src) //this thing has bridge access, and no one knows about that + new /obj/item/stamp/centcom(src) + new /obj/item/clothing/gloves/combat(src) + + +/datum/opposing_force_equipment/clothing_pirate + category = OPFOR_EQUIPMENT_CATEGORY_CLOTHING_PIRATE + +/datum/opposing_force_equipment/clothing_pirate/space_pirate + name = "Space Pirate" + description = "Did you fall overboard?" + item_type = /obj/item/storage/backpack/duffelbag/syndie/space_pirate + +/obj/item/storage/backpack/duffelbag/syndie/space_pirate/PopulateContents() + new /obj/item/clothing/under/costume/pirate(src) + new /obj/item/clothing/suit/space/pirate(src) + new /obj/item/clothing/head/helmet/space/pirate(src) + new /obj/item/clothing/head/costume/pirate/armored(src) + new /obj/item/clothing/shoes/russian(src) + new /obj/item/clothing/glasses/eyepatch(src) + new /obj/item/radio/headset/syndicate/alt(src) + new /obj/item/card/id/advanced/chameleon(src) + +/* +/datum/opposing_force_equipment/clothing_pirate/akula + name = "Azulean Boarder" + description = "Advanced Azulean pirate gear, akin to riot-armour yet space-proofed. Never take on an Azulean boarder in zero-gravity." + admin_note = "Uniquely spaceproofed." + item_type = /obj/item/storage/backpack/duffelbag/syndie/akula + +/obj/item/storage/backpack/duffelbag/syndie/akula/PopulateContents() + new /obj/item/clothing/under/skinsuit(src) + new /obj/item/clothing/suit/armor/riot/skinsuit_armor(src) + new /obj/item/clothing/head/helmet/space/skinsuit_helmet(src) + new /obj/item/clothing/gloves/tackler/combat(src) //tackles in space + new /obj/item/clothing/shoes/combat(src) + new /obj/item/storage/belt/military(src) + new /obj/item/radio/headset/syndicate/alt(src) + new /obj/item/card/id/advanced/chameleon(src) +*/ +/datum/opposing_force_equipment/clothing_pirate/nri_soldier + name = "NRI Soldier" + description = "The station failed the inspection, now they have to deal with you." + item_type = /obj/item/storage/backpack/industrial/cin_surplus/forest/nri_soldier + +/obj/item/storage/backpack/industrial/cin_surplus/forest/nri_soldier/PopulateContents() + new /obj/item/clothing/under/syndicate/rus_army(src) + new /obj/item/clothing/shoes/combat(src) + new /obj/item/clothing/gloves/tackler/combat(src) + new /obj/item/clothing/mask/gas(src) + new /obj/item/clothing/suit/armor/vest/marine(src) + new /obj/item/clothing/head/beret/sec/nri(src) + new /obj/item/storage/belt/military/nri/plus_mre(src) + new /obj/item/radio/headset/syndicate/alt(src) + new /obj/item/card/id/advanced/chameleon(src) + new /obj/item/clothing/glasses/sunglasses(src) + +/datum/opposing_force_equipment/clothing_pirate/heister + name = "Professional" + description = "It's payday." + admin_note = "Has uniquely strong armour." + item_type = /obj/item/storage/backpack/duffelbag/syndie/heister + +/obj/item/storage/backpack/duffelbag/syndie/heister/PopulateContents() + var/obj/item/clothing/new_mask = new /obj/item/clothing/mask/gas/clown_hat(src) //-animal mask +clow mask + new_mask.set_armor(new_mask.get_armor().generate_new_with_specific(list( + MELEE = 30, + BULLET = 25, + LASER = 25, + ENERGY = 25, + BOMB = 0, + BIO = 0, + FIRE = 100, + ACID = 100, + ))) + new /obj/item/storage/box/syndie_kit/space_suit(src) + new /obj/item/clothing/gloves/latex/nitrile/heister(src) + new /obj/item/clothing/under/suit/black(src) + new /obj/item/clothing/under/suit/black/skirt(src) + new /obj/item/clothing/neck/tie/red/hitman(src) + new /obj/item/clothing/shoes/laceup(src) + new /obj/item/clothing/suit/jacket/det_suit/noir/heister(src) + new /obj/item/clothing/glasses/sunglasses(src) + new /obj/item/radio/headset/syndicate/alt(src) + new /obj/item/card/id/advanced/chameleon(src) + new /obj/item/restraints/handcuffs/cable/zipties(src) + new /obj/item/restraints/handcuffs/cable/zipties(src) + + +/datum/opposing_force_equipment/clothing_magic + category = OPFOR_EQUIPMENT_CATEGORY_CLOTHING_MAGIC + +/datum/opposing_force_equipment/clothing_magic/wizard + name = "Wizard" + description = "Basic colored wizard attire." + item_type = /obj/item/storage/backpack/satchel/leather/wizard + +/obj/item/storage/backpack/satchel/leather/wizard/PopulateContents() + switch(pick(list("yellow", "blue", "red", "black"))) + if("yellow") + new /obj/item/clothing/head/wizard/yellow(src) + new /obj/item/clothing/suit/wizrobe/yellow(src) + if("blue") + new /obj/item/clothing/head/wizard(src) + new /obj/item/clothing/suit/wizrobe(src) + if("red") + new /obj/item/clothing/head/wizard/red(src) + new /obj/item/clothing/suit/wizrobe/red(src) + if("black") + new /obj/item/clothing/head/wizard/black(src) + new /obj/item/clothing/suit/wizrobe/black(src) + new /obj/item/staff(src) + new /obj/item/clothing/shoes/sandal/magic(src) + new /obj/item/radio/headset/syndicate/alt(src) + new /obj/item/card/id/advanced/chameleon(src) + +/datum/opposing_force_equipment/clothing_magic/wizard_broom + name = "Broom Wizard" + description = "A wizard with a broom, technically a witch." + item_type = /obj/item/storage/backpack/satchel/leather/wizard_broom + +/obj/item/storage/backpack/satchel/leather/wizard_broom/PopulateContents() + new /obj/item/clothing/suit/wizrobe/marisa(src) + new /obj/item/clothing/head/wizard/marisa(src) + new /obj/item/staff/broom(src) + new /obj/item/clothing/shoes/sneakers/marisa(src) + new /obj/item/radio/headset/syndicate/alt(src) + new /obj/item/card/id/advanced/chameleon(src) + +/datum/opposing_force_equipment/clothing_magic/wizard_tape + name = "Tape Wizard" + description = "A wizard outfit, but hand-crafted. Very nice." + item_type = /obj/item/storage/backpack/satchel/leather/wizard_tape + +/obj/item/storage/backpack/satchel/leather/wizard_tape/PopulateContents() + new /obj/item/clothing/suit/wizrobe/tape(src) + new /obj/item/clothing/head/wizard/tape(src) + new /obj/item/staff/tape(src) + new /obj/item/clothing/shoes/sandal/magic(src) + new /obj/item/radio/headset/syndicate/alt(src) + new /obj/item/card/id/advanced/chameleon(src) + +/datum/opposing_force_equipment/clothing_magic/zealot + name = "Zealot" + description = "Spell-casting is outlawed, not like that'll stop you though." + item_type = /obj/item/storage/backpack/satchel/leather/zealot + +/obj/item/storage/backpack/satchel/leather/zealot/PopulateContents() + new /obj/item/clothing/suit/hooded/cultrobes/eldritch(src) + new /obj/item/clothing/glasses/hud/health/night/cultblind_unrestricted(src) + new /obj/item/clothing/shoes/cult(src) + new /obj/item/radio/headset/syndicate/alt(src) + new /obj/item/card/id/advanced/chameleon(src) + +/datum/opposing_force_equipment/clothing_magic/narsian + name = "Nar'Sien Prophet" + description = "An overshadowed cult following, whom incidentally thrive best in the dark." + item_type = /obj/item/storage/backpack/satchel/leather/narsian + +/obj/item/storage/backpack/satchel/leather/narsian/PopulateContents() + new /obj/item/clothing/suit/hooded/cultrobes/hardened(src) + new /obj/item/clothing/head/hooded/cult_hoodie/hardened(src) + new /obj/item/clothing/glasses/hud/health/night/cultblind_unrestricted/narsie(src) + new /obj/item/clothing/shoes/cult/alt(src) + new /obj/item/bedsheet/cult(src) + new /obj/item/radio/headset/syndicate/alt(src) + new /obj/item/card/id/advanced/chameleon(src) + + diff --git a/monkestation/code/modules/blueshift/opfor/equipment/gadgets.dm b/monkestation/code/modules/blueshift/opfor/equipment/gadgets.dm new file mode 100644 index 000000000000..1902cd618012 --- /dev/null +++ b/monkestation/code/modules/blueshift/opfor/equipment/gadgets.dm @@ -0,0 +1,187 @@ +/datum/opposing_force_equipment/gadget + category = OPFOR_EQUIPMENT_CATEGORY_GADGET + +/datum/opposing_force_equipment/gadget/agentcard + name = "Agent Card" + item_type = /obj/item/card/id/advanced/chameleon + description = "A highly advanced chameleon ID card. Touch this card on another ID card or player to choose which accesses to copy. Has special magnetic properties which force it to the front of wallets." + +/datum/opposing_force_equipment/gadget/chameleonheadsetdeluxe + name = "Advanced Chameleon Headset" + item_type = /obj/item/radio/headset/chameleon/advanced + description = "A premium model Chameleon Headset. All the features you love of the original, but now with flashbang \ + protection, voice amplification, memory-foam, HD Sound Quality, and extra-wide spectrum dial. Usually reserved \ + for high-ranking Cybersun officers, a few spares have been reserved for field agents." + +/datum/opposing_force_equipment/gadget/smtheft_kit + admin_note = "A kit liberated from Progression Traitor, allows someone to cut off a piece of the SM. Mishandling of the sliver can result in user being dusted. Upon successful extraction the SM will gain a quirk that turns its delamination countdown from its usual 15 seconds (at 0 Integrity) to 5 seconds; it will also slowly gather up 800 energy, potentially setting it on course for delamination." + item_type = /obj/item/storage/box/syndie_kit/supermatter + +/datum/opposing_force_equipment/gadget/nuketheft_kit + admin_note = "A kit liberated from Progression Traitor, allows someone to screw open and secure the nuclear payload within the vault. Once secured it is mechanically irretrievable." + item_type = /obj/item/storage/box/syndie_kit/nuke + +/datum/opposing_force_equipment/gadget/holoparasite + item_type = /obj/item/guardian_creator/tech/choose/traitor + admin_note = "Lets a ghost take control of a guardian spirit bound to the user. RRs both the ghost and user on death." + +/datum/opposing_force_equipment/gadget/gorilla_cubes + name = "Box of Gorilla Cubes" + item_type = /obj/item/storage/box/gorillacubes + description = "A box with three gorilla cubes. Eat big to get big. \ + Caution: Product may rehydrate when exposed to water." + +/datum/opposing_force_equipment/gadget/sentry_gun + name = "Toolbox Sentry Gun" + item_type = /obj/item/storage/toolbox/emergency/turret + description = "A disposable sentry gun deployment system cleverly disguised as a toolbox, apply wrench for functionality." + admin_note = "Needs a combat-wrench to be used." + +/datum/opposing_force_equipment/gadget/hypnoflash + name = "Hypnotic Flash" + item_type = /obj/item/assembly/flash/hypnotic + description = "A modified flash able to hypnotize targets. If the target is not in a mentally vulnerable state, it will only confuse and pacify them temporarily." + admin_note = "Able to hypnotize people with the next phrase said after exposure." + +/datum/opposing_force_equipment/gadget/hypnobang + name = "Hypnotic Flashbang" + item_type = /obj/item/grenade/hypnotic + description = "A modified flashbang able to hypnotize targets. If the target is not in a mentally vulnerable state, it will only confuse and pacify them temporarily." + admin_note = "Able to hypnotize people with the next phrase said after exposure." + + +/datum/opposing_force_equipment/gadget_stealth + category = OPFOR_EQUIPMENT_CATEGORY_GADGET_STEALTH + +/datum/opposing_force_equipment/gadget_stealth/emag + name = "Cryptographic Sequencer" + item_type = /obj/item/card/emag + description = "An electromagnetic ID card used to break machinery and disable safeties. Notoriously used by Syndicate agents, now commonly traded hardware at blackmarkets." + +/datum/opposing_force_equipment/gadget_stealth/doormag + name = "Airlock Override Card" + item_type = /obj/item/card/emag/doorjack + description = "Identifies commonly as a \"doorjack\", this illegally modified ID card can disrupt airlock electronics. Has a self recharging cell." + +/datum/opposing_force_equipment/gadget_stealth/stoolbelt + name = "Syndicate Toolbelt" + description = "A fully supplied toolbelt, includes combat-grade wrench." + item_type = /obj/item/storage/belt/utility/syndicate + +/datum/opposing_force_equipment/gadget_stealth/syndiejaws + name = "Syndicate Jaws of Life" + item_type = /obj/item/crowbar/power/syndicate + description = "Based on a Nanotrasen model, this powerful tool can be used as both a crowbar and a pair of wirecutters. \ + In its crowbar configuration, it can be used to force open airlocks. Very useful for entering the station or its departments." + +/datum/opposing_force_equipment/gadget_stealth/hair_tie + name = "Syndicate Hair Tie" + description = "An inconspicuous hair tie, able to be slung accurately. Useful to get yourself out of a sticky situation." + item_type = /obj/item/clothing/head/hair_tie/syndicate + +/datum/opposing_force_equipment/gadget_stealth/jammer + name = "Radio Jammer" + item_type = /obj/item/jammer + +/datum/opposing_force_equipment/gadget_stealth/flatsatchel + item_type = /obj/item/storage/backpack/satchel/flat/with_tools + +/datum/opposing_force_equipment/gadget_stealth/chameleon + description = "A set of items that contain chameleon technology allowing you to disguise as pretty much anything on the station, and more! \ + Due to budget cuts, the shoes don't provide protection against slipping and skillchips are sold separately." + item_type = /obj/item/storage/box/syndie_kit/chameleon + +/datum/opposing_force_equipment/gadget_stealth/throwables + name = "Box of Throwing Weapons" + description = "A box of shurikens and reinforced bolas from ancient Earth martial arts. They are highly effective \ + throwing weapons. The bolas can knock a target down and the shurikens will embed into limbs." + item_type = /obj/item/storage/box/syndie_kit/throwing_weapons + +/datum/opposing_force_equipment/gadget_stealth/emp_box + name = "EMP kit" + description = "A box full of EMP grenades, perfect for disabling security's gear." + item_type = /obj/item/storage/box/syndie_kit/emp + +/datum/opposing_force_equipment/gadget_stealth/poisonkit + name = "Poison Kit" + description = "An assortment of deadly chemicals packed into a compact box. Comes with a syringe for more precise application." + item_type = /obj/item/storage/box/syndie_kit/chemical + +/datum/opposing_force_equipment/gadget_stealth/sleepypen + name = "Sleepy Pen" + description = "A pen filled with sleeping agents. Will knock a victim out after a moment." + item_type = /obj/item/pen/sleepy + +/datum/opposing_force_equipment/gadget_stealth/carp + name = "Dehydrated Spacecarp" + description = "A spacecarp plushie which turns into the real deal when wet." + item_type = /obj/item/toy/plush/carpplushie/dehy_carp + +/* +/datum/opposing_force_equipment/gadget_stealth/mailcounterfeit + item_type = /obj/item/storage/mail_counterfeit_device +*/ + +/datum/opposing_force_equipment/gadget_stealth/glue + item_type = /obj/item/syndie_glue + +/datum/opposing_force_equipment/gadget_stealth/shotglass + name = "Extra Large Syndicate Shotglasses" + description = "These modified shot glasses can hold up to 50 units of booze while looking like a regular 15 unit model \ + guaranteed to knock someone on their ass with a hearty dose of bacchus blessing. Look for the Snake underneath \ + to tell these are the real deal. Box of 7." + item_type = /obj/item/storage/box/syndieshotglasses + +/datum/opposing_force_equipment/gadget_stealth/ai_module + name = "Syndicate AI Law Module" + item_type = /obj/item/ai_module/syndicate + description = "When used with an upload console, this module allows you to upload priority laws to an artificial intelligence. \ + Be careful with wording, as artificial intelligences may look for loopholes to exploit." + +/datum/opposing_force_equipment/gadget_stealth/binary + name = "Binary Encryption Key" + item_type = /obj/item/encryptionkey/binary + +/* +/datum/opposing_force_equipment/gadget_stealth/borgupgrader + item_type = /obj/item/borg/upgrade/transform/syndicatejack +*/ + +/datum/opposing_force_equipment/gadget_stealth/tram_remote + name = "Tram Remote Control" + item_type = /obj/item/tram_remote + description = "When linked to a tram's on board computer systems, this device allows the user to manipulate the controls remotely. \ + Includes direction toggle and a rapid mode to bypass door safety checks and crossing signals. \ + Perfect for running someone over in the name of a tram malfunction!" + +/datum/opposing_force_equipment/gadget_stealth/cloakerbelt + item_type = /obj/item/shadowcloak + description = "A belt that allows its wearer to temporarily turn invisible. Only recharges in dark areas. Use wisely." + +/datum/opposing_force_equipment/gadget_stealth/projector + name = "Chameleon Projector" + item_type = /obj/item/chameleon + +/datum/opposing_force_equipment/gadget_stealth/noslip + name = "Chameleon No-Slips" + item_type = /obj/item/clothing/shoes/chameleon/noslip + description = "No-slip chameleon shoes, for when you plan on running through hell and back." + +/datum/opposing_force_equipment/gadget_stealth/camera_app + name = "SyndEye Program" + item_type = /obj/item/computer_disk/syndicate/camera_app + +/datum/opposing_force_equipment/gadget_stealth/microlaser + name = "Radioactive Microlaser" + item_type = /obj/item/healthanalyzer/rad_laser + description = "A radioactive microlaser disguised as a standard Nanotrasen health analyzer. When used, it emits a \ + powerful burst of radiation, which, after a short delay, can incapacitate all but the most protected \ + of humanoids." + admin_note = "WARNING: Is a knockout weapon with no warning, and 'infinite' use." + +/datum/opposing_force_equipment/gadget_stealth/contacts + name = "Anti-Flash Eye-Lenses" + item_type = /obj/item/syndicate_contacts + +/datum/opposing_force_equipment/gadget_stealth/suppressor + item_type = /obj/item/suppressor diff --git a/monkestation/code/modules/blueshift/opfor/equipment/guns.dm b/monkestation/code/modules/blueshift/opfor/equipment/guns.dm new file mode 100644 index 000000000000..c8ea0cdd2c97 --- /dev/null +++ b/monkestation/code/modules/blueshift/opfor/equipment/guns.dm @@ -0,0 +1,273 @@ +/datum/opposing_force_equipment/ranged + category = OPFOR_EQUIPMENT_CATEGORY_RANGED + +/datum/opposing_force_equipment/ranged/renoster + name = "Renoster Shotgun" + description = "A twelve guage shotgun with an eight shell capacity underneath." + item_type = /obj/item/storage/toolbox/guncase/nova/opfor/renoster + +/obj/item/storage/toolbox/guncase/nova/opfor/renoster/PopulateContents() + new /obj/item/gun/ballistic/shotgun/riot/sol/evil(src) + new /obj/item/ammo_box/advanced/s12gauge/buckshot(src) + new /obj/item/ammo_box/advanced/s12gauge/buckshot(src) + +/datum/opposing_force_equipment/ranged/infanteria + name = "Carwo-Cawil Battle Rifle" + description = "A heavy battle rifle, this one seems to be painted tacticool black. Accepts any standard SolFed rifle magazine." + item_type = /obj/item/storage/toolbox/guncase/nova/opfor/infanteria + +/obj/item/storage/toolbox/guncase/nova/opfor/infanteria/PopulateContents() + new /obj/item/gun/ballistic/automatic/sol_rifle/evil(src) + new /obj/item/ammo_box/magazine/c40sol_rifle/standard(src) + new /obj/item/ammo_box/magazine/c40sol_rifle/standard(src) + +/datum/opposing_force_equipment/ranged/miecz + name = "'Miecz' Submachinegun" + description = "A short barrel, further compacted conversion of the 'Lanca' rifle to fire pistol caliber cartridges." + item_type = /obj/item/storage/toolbox/guncase/nova/opfor/miecz + +/obj/item/storage/toolbox/guncase/nova/opfor/miecz/PopulateContents() + new /obj/item/gun/ballistic/automatic/miecz(src) + new /obj/item/ammo_box/magazine/miecz(src) + new /obj/item/ammo_box/magazine/miecz(src) + +/datum/opposing_force_equipment/ranged/kiboko + name = "Kiboko Grenade Launcher" + description = "A unique grenade launcher firing .980 grenades. A laser sight system allows its user to specify a range for the grenades it fires to detonate at" + item_type = /obj/item/storage/toolbox/guncase/nova/opfor/kiboko + +/obj/item/storage/toolbox/guncase/nova/opfor/kiboko/PopulateContents() + new /obj/item/gun/ballistic/automatic/sol_grenade_launcher/evil(src) + new /obj/item/ammo_box/magazine/c980_grenade/drum/thunderdome_shrapnel(src) + new /obj/item/ammo_box/magazine/c980_grenade/drum/thunderdome_shrapnel(src) + +/datum/opposing_force_equipment/ranged/amr + name = "'Wyłom' AMR" + description = "A massive, outdated beast of an anti materiel rifle that was once in use by CIN military forces. Fires the devastating .60 Strela caseless round, the massively overperforming penetration of which being the reason this weapon was discontinued." + item_type = /obj/item/storage/toolbox/guncase/nova/opfor/amr + +/obj/item/storage/toolbox/guncase/nova/opfor/amr/PopulateContents() + new /obj/item/gun/ballistic/automatic/wylom(src) + new /obj/item/ammo_box/magazine/wylom(src) + new /obj/item/ammo_box/magazine/wylom(src) + +/datum/opposing_force_equipment/ranged/lmg + name = "L6 SAW LMG" + description = "A heavily modified 7mm light machine gun, designated 'L6 SAW'. Has 'Aussec Armoury - 2531' engraved on the receiver below the designation." + item_type = /obj/item/storage/toolbox/guncase/nova/opfor/lmg + +/obj/item/storage/toolbox/guncase/nova/opfor/lmg/PopulateContents() + new /obj/item/gun/ballistic/automatic/l6_saw/unrestricted(src) + new /obj/item/ammo_box/magazine/mm712x82(src) + new /obj/item/ammo_box/magazine/mm712x82(src) + +/datum/opposing_force_equipment/ranged/hook_shotgun + name = "Hook Modified Sawn-off Shotgun" + description = "Range isn't an issue when you can bring your victim to you." + item_type = /obj/item/storage/toolbox/guncase/nova/opfor/hook_shotgun + +/obj/item/storage/toolbox/guncase/nova/opfor/hook_shotgun/PopulateContents() + new /obj/item/gun/ballistic/shotgun/hook(src) + new /obj/item/ammo_box/advanced/s12gauge/buckshot(src) + new /obj/item/ammo_box/advanced/s12gauge/buckshot(src) + +/* +/datum/opposing_force_equipment/ranged/rebar_crossbow + name = "Syndicate Rebar Crossbow" + description = "The syndicate liked the bootleg rebar crossbow NT engineers made, so they showed what it could be if properly developed. \ + Holds three shots without a chance of exploding, and features a built in scope. Normally uses special syndicate jagged iron bars, but can be wrenched to shoot inferior normal ones." + item_type = /obj/item/storage/toolbox/guncase/nova/opfor/rebar_crossbow + +/obj/item/storage/toolbox/guncase/nova/opfor/rebar_crossbow/PopulateContents() + new /obj/item/gun/ballistic/rifle/rebarxbow/syndie(src) + new /obj/item/book/granter/crafting_recipe/dusting/rebarxbowsyndie_ammo(src) +*/ + +//laser +/datum/opposing_force_equipment/ranged/ion + name = "ion carbine" + description = "The MK.II Prototype Ion Projector is a lightweight carbine version of the larger ion rifle, built to be ergonomic and efficient." + item_type = /obj/item/storage/toolbox/guncase/nova/opfor/ion + +/obj/item/storage/toolbox/guncase/nova/opfor/ion/PopulateContents() + new /obj/item/gun/energy/ionrifle/carbine(src) + new /obj/item/storage/box/syndie_kit/recharger(src) + +/datum/opposing_force_equipment/ranged/carbine + name = "laser carbine" + description = "A modified laser gun which can shoot far faster, but each shot is far less damaging." + item_type = /obj/item/storage/toolbox/guncase/nova/opfor/carbine + +/obj/item/storage/toolbox/guncase/nova/opfor/carbine/PopulateContents() + new /obj/item/gun/energy/laser/carbine(src) + new /obj/item/storage/box/syndie_kit/recharger(src) + +/datum/opposing_force_equipment/ranged/laser + name = "laser gun" + description = "A basic energy-based laser gun that fires concentrated beams of light which pass through glass and thin metal." + item_type = /obj/item/storage/toolbox/guncase/nova/opfor/laser + +/obj/item/storage/toolbox/guncase/nova/opfor/laser/PopulateContents() + new /obj/item/gun/energy/laser(src) + new /obj/item/storage/box/syndie_kit/recharger(src) + +//foamforce +/datum/opposing_force_equipment/ranged/foamforce_lmg + name = "Foamforce LMG" + description = "A heavily modified toy light machine gun, designated 'L6 SAW'. Ages 8 and up." + item_type = /obj/item/storage/toolbox/guncase/nova/opfor/foamforce_lmg + +/obj/item/storage/toolbox/guncase/nova/opfor/foamforce_lmg/PopulateContents() + new /obj/item/gun/ballistic/automatic/l6_saw/toy/unrestricted/riot(src) + new /obj/item/ammo_box/magazine/toy/m762/riot(src) + new /obj/item/ammo_box/magazine/toy/m762/riot(src) + + +/datum/opposing_force_equipment/ranged_stealth + category = OPFOR_EQUIPMENT_CATEGORY_RANGED_STEALTH + +/datum/opposing_force_equipment/ranged_stealth/rapid_syringe + name = "Compact Rapid Syringe Gun" + description = "A modification of the syringe gun design to be more compact and use a rotating cylinder to store up to six syringes." + item_type = /obj/item/storage/toolbox/guncase/nova/pistol/opfor/rapid_syringe + +/obj/item/storage/toolbox/guncase/nova/pistol/opfor/rapid_syringe/PopulateContents() + new /obj/item/gun/syringe/rapidsyringe(src) + new /obj/item/storage/belt/medbandolier(src) + new /obj/item/reagent_containers/syringe/piercing(src) + new /obj/item/reagent_containers/syringe/piercing(src) + new /obj/item/reagent_containers/syringe/piercing(src) + new /obj/item/reagent_containers/syringe/piercing(src) + +/datum/opposing_force_equipment/ranged_stealth/c20r + name = "C-20r SMG" + description = "A bullpup three-round burst .45 SMG, designated 'C-20r'. Has a 'Scarborough Arms - Per falcis, per pravitas' buttstamp." + item_type = /obj/item/storage/toolbox/guncase/nova/pistol/opfor/c20r + +/obj/item/storage/toolbox/guncase/nova/pistol/opfor/c20r/PopulateContents() + new /obj/item/gun/ballistic/automatic/c20r/unrestricted(src) + new /obj/item/ammo_box/magazine/smgm45(src) + new /obj/item/ammo_box/magazine/smgm45(src) + +/datum/opposing_force_equipment/ranged_stealth/sindano + name = "Sindano SMG" + description = "A small submachinegun, this one is painted in tacticool black. Accepts any standard Sol pistol magazine." + item_type = /obj/item/storage/toolbox/guncase/nova/pistol/opfor/sindano + +/obj/item/storage/toolbox/guncase/nova/pistol/opfor/sindano/PopulateContents() + new /obj/item/gun/ballistic/automatic/sol_smg/evil(src) + new /obj/item/ammo_box/magazine/c35sol_pistol/stendo(src) + new /obj/item/ammo_box/magazine/c35sol_pistol/stendo(src) + +/datum/opposing_force_equipment/ranged_stealth/wespe + name = "Wespe Pistol" + description = "The standard issue service pistol of SolFed's various military branches. Comes with attached light." + item_type = /obj/item/storage/toolbox/guncase/nova/pistol/opfor/wespe + +/obj/item/storage/toolbox/guncase/nova/pistol/opfor/wespe/PopulateContents() + new /obj/item/gun/ballistic/automatic/pistol/sol/evil(src) + new /obj/item/ammo_box/magazine/c35sol_pistol(src) + new /obj/item/ammo_box/magazine/c35sol_pistol(src) + +/datum/opposing_force_equipment/ranged_stealth/makarov + name = "Makarov Pistol" + description = "A small, easily concealable 9x25mm Mk.12 handgun. This one is packed with a suppressor." + item_type = /obj/item/storage/toolbox/guncase/nova/pistol/opfor/makarov + +/obj/item/storage/toolbox/guncase/nova/pistol/opfor/makarov/PopulateContents() + new /obj/item/gun/ballistic/automatic/pistol(src) + new /obj/item/suppressor(src) + new /obj/item/ammo_box/magazine/m9mm(src) + new /obj/item/ammo_box/magazine/m9mm(src) + +/datum/opposing_force_equipment/ranged_stealth/m1911 + name = "M1911 Pistol" + description = "A classic .45 handgun with a small magazine capacity." + item_type = /obj/item/storage/toolbox/guncase/nova/pistol/opfor/m1911 + +/obj/item/storage/toolbox/guncase/nova/pistol/opfor/m1911/PopulateContents() + new /obj/item/gun/ballistic/automatic/pistol/m1911(src) + new /obj/item/ammo_box/magazine/m45(src) + new /obj/item/ammo_box/magazine/m45(src) + +/datum/opposing_force_equipment/ranged_stealth/plasma_pistol + name = "'Słońce' Plasma Projector" + description = "An outdated sidearm rarely seen in use by some members of the CIN. Spews an inaccurate stream of searing plasma out the magnetic barrel so long as it has power and the trigger is pulled." + item_type = /obj/item/storage/toolbox/guncase/nova/pistol/opfor/plasma_pistol + +/obj/item/storage/toolbox/guncase/nova/pistol/opfor/plasma_pistol/PopulateContents() + new /obj/item/gun/ballistic/automatic/pistol/plasma_thrower(src) + new /obj/item/ammo_box/magazine/recharge/plasma_battery(src) + new /obj/item/ammo_box/magazine/recharge/plasma_battery(src) + +/datum/opposing_force_equipment/ranged_stealth/plasma_marksman + name = "'Gwiazda' Plasma Sharpshooter" + description = "An outdated sidearm rarely seen in use by some members of the CIN. Fires relatively accurate globs of searing plasma." + item_type = /obj/item/storage/toolbox/guncase/nova/pistol/opfor/plasma_marksman + +/obj/item/storage/toolbox/guncase/nova/pistol/opfor/plasma_marksman/PopulateContents() + new /obj/item/gun/ballistic/automatic/pistol/plasma_marksman(src) + new /obj/item/ammo_box/magazine/recharge/plasma_battery(src) + new /obj/item/ammo_box/magazine/recharge/plasma_battery(src) + +/datum/opposing_force_equipment/ranged_stealth/syndie_revolver + name = "Syndicate Revolver" + description = "A modernized 7 round revolver manufactured by Scarborough." + item_type = /obj/item/storage/toolbox/guncase/nova/pistol/opfor/syndie_revolver + +/obj/item/storage/toolbox/guncase/nova/pistol/opfor/syndie_revolver/PopulateContents() + new /obj/item/gun/ballistic/revolver/syndicate(src) + new /obj/item/ammo_box/a357(src) + new /obj/item/ammo_box/a357(src) + +/* +/datum/opposing_force_equipment/ranged_stealth/ocelot + name = "Colt Peacemaker revolver" + admin_note = "Is packed with peacemaker .357, which deals significantly less damage but has a cool ricochet!" + description = "A modified Peacemaker revolver that chambers .357 ammo. Less powerful than the regular .357, but ricochets a lot more." + item_type = /obj/item/storage/toolbox/guncase/nova/pistol/opfor/ocelot + +/obj/item/storage/toolbox/guncase/nova/pistol/opfor/ocelot/PopulateContents() + new /obj/item/gun/ballistic/revolver/ocelot(src) + new /obj/item/ammo_box/a357/peacemaker(src) + new /obj/item/ammo_box/a357/peacemaker(src) +*/ + +//foamforce +/datum/opposing_force_equipment/ranged_stealth/foamforce_smg + name = "Donksoft SMG" + description = "A bullpup three-round burst toy SMG, designated 'C-20r'. Ages 8 and up." + item_type = /obj/item/storage/toolbox/guncase/nova/pistol/opfor/foamforce_smg + +/obj/item/storage/toolbox/guncase/nova/pistol/opfor/foamforce_smg/PopulateContents() + new /obj/item/gun/ballistic/automatic/c20r/toy/unrestricted/riot(src) + new /obj/item/ammo_box/magazine/toy/smgm45/riot(src) + new /obj/item/ammo_box/magazine/toy/smgm45/riot(src) + +/datum/opposing_force_equipment/ranged_stealth/foamforce_smg_basic + name = "Foamforce SMG" + description = "A prototype three-round burst toy submachine gun. Ages 8 and up." + item_type = /obj/item/storage/toolbox/guncase/nova/pistol/opfor/foamforce_smg_basic + +/obj/item/storage/toolbox/guncase/nova/pistol/opfor/foamforce_smg_basic/PopulateContents() + new /obj/item/gun/ballistic/automatic/toy/unrestricted(src) + new /obj/item/ammo_box/magazine/toy/smg/riot(src) + new /obj/item/ammo_box/magazine/toy/smg/riot(src) + +/* +//laser +/datum/opposing_force_equipment/ranged_stealth/fisher + item_type = /obj/item/gun/ballistic/automatic/pistol/clandestine/fisher +*/ + +/datum/opposing_force_equipment/ranged_stealth/ebow + item_type = /obj/item/gun/energy/recharge/ebow + +/datum/opposing_force_equipment/ranged_stealth/egun_mini + name = "miniature energy gun" + description = "A small, pistol-sized energy gun with a built-in flashlight. It has two settings: disable and kill." + item_type = /obj/item/storage/toolbox/guncase/nova/pistol/opfor/egun_mini + +/obj/item/storage/toolbox/guncase/nova/pistol/opfor/egun_mini/PopulateContents() + new /obj/item/gun/energy/e_gun/mini(src) + new /obj/item/storage/box/syndie_kit/recharger(src) diff --git a/monkestation/code/modules/blueshift/opfor/equipment/implants.dm b/monkestation/code/modules/blueshift/opfor/equipment/implants.dm new file mode 100644 index 000000000000..704b4595c694 --- /dev/null +++ b/monkestation/code/modules/blueshift/opfor/equipment/implants.dm @@ -0,0 +1,130 @@ +/datum/opposing_force_equipment/implants + category = OPFOR_EQUIPMENT_CATEGORY_IMPLANTS + +//Skillchips +/datum/opposing_force_equipment/implants/engichip + item_type = /obj/item/skillchip/job/engineer + description = "A skillchip that, when installed, allows the user to recognise airlock and APC wire layouts and understand their functionality at a glance. Highly valuable and sought after." + +/datum/opposing_force_equipment/implants/roboticist + item_type = /obj/item/skillchip/job/roboticist + description = "A skillchip that, when installed, allows the user to recognise cyborg wire layouts and understand their functionality at a glance." + +//Implants +/datum/opposing_force_equipment/implants/nodrop + item_type = /obj/item/autosurgeon/syndicate/nodrop + name = "Anti Drop Implant" + admin_note = "Allows the user to tighten their grip, their held items unable to be dropped by any cause. Hardstuns user for a longtime if hit with EMP." + description = "An implant that prevents you from dropping items in your hand involuntarily. Comes loaded in a syndicate autosurgeon." + +/datum/opposing_force_equipment/implants/cns + name = "CNS Rebooter Implant" + item_type = /obj/item/autosurgeon/syndicate/anti_stun + description = "This implant will automatically give you back control over your central nervous system, reducing downtime when stunned." + +/datum/opposing_force_equipment/implants/reviver + name = "Reviver Implant" + item_type = /obj/item/autosurgeon/syndicate/reviver + description = "This implant will attempt to revive and heal you if you lose consciousness. For the faint of heart!" + +/datum/opposing_force_equipment/implants/sad_trombone + name = "Sad Trombone Implant" + item_type = /obj/item/implanter/sad_trombone + +/datum/opposing_force_equipment/implants/toolarm + name = "Tool Arm Implant" + admin_note = "Force 20 implanted combat knife on emag." + item_type = /obj/item/autosurgeon/toolset + +/datum/opposing_force_equipment/implants/surgery + name = "Surgery Arm Implant" + admin_note = "Force 20 implanted combat knife on emag." + item_type = /obj/item/autosurgeon/surgery + +/datum/opposing_force_equipment/implants/botany + name = "Botany Arm Implant" + admin_note = "Chainsaw arm on emag." + item_type = /obj/item/autosurgeon/botany + +/datum/opposing_force_equipment/implants/janitor + name = "Janitor Arm Implant" + item_type = /obj/item/autosurgeon/janitor + +/datum/opposing_force_equipment/implants/armblade + name = "Mantis Blade Arm Implant" + admin_note = "Force 30 IF emagged." + item_type = /obj/item/autosurgeon/organ/syndicate/syndie_mantis + +/datum/opposing_force_equipment/implants/muscle + name = "Muscle Arm Implant" + item_type = /obj/item/autosurgeon/muscle + +/datum/opposing_force_equipment/implants_illegal + category = OPFOR_EQUIPMENT_CATEGORY_IMPLANTS_ILLEGAL + +/datum/opposing_force_equipment/implants_illegal/stealth + name = "Stealth Implant" + item_type = /obj/item/implanter/stealth + admin_note = "Allows the user to become completely invisible as long as they remain inside a cardboard box." + description = "An implanter that grants you the ability to wield the ultimate in invisible box technology. Best used in conjunction with a tape recorder playing Snake Eater." + +/datum/opposing_force_equipment/implants_illegal/radio + name = "Syndicate Radio Implant" + item_type = /obj/item/implanter/radio/syndicate + description = "An implanter that grants you inherent access to the Syndicate radio channel, in addition to being able to listen to all on-station channels." + +/datum/opposing_force_equipment/implants_illegal/storage + name = "Storage Implant" + item_type = /obj/item/implanter/storage + admin_note = "Allows user to stow items without any sign of having a storage item." + description = "An implanter that grants you access to a small pocket of bluespace, capable of storing a few items." + +/datum/opposing_force_equipment/implants_illegal/freedom + name = "Freedom Implant" + item_type = /obj/item/implanter/freedom + admin_note = "Allows the user to break handcuffs or e-snares four times, after it will run out and become useless." + description = "An implanter that grants you the ability to break out of handcuffs a certain number of times." + +/* TODO Removal pending replacement +/datum/opposing_force_equipment/implants_illegal/micro + name = "Microbomb Implant" + admin_note = "RRs the user." + item_type = /obj/item/implanter/explosive + description = "An implanter that will make you explode on death in a decent-sized explosion." +*/ + +/datum/opposing_force_equipment/implants_illegal/emp + name = "EMP Implant" + item_type = /obj/item/implanter/emp + admin_note = "Gives the user a big EMP on an action button. Has three uses after which it becomes useless." + description = "An implanter that grants you the ability to create several EMP pulses, centered on you." + +/datum/opposing_force_equipment/implants_illegal/xray + name = "X-Ray Eyes" + item_type = /obj/item/autosurgeon/syndicate/xray_eyes + description = "These cybernetic eyes will give you X-ray vision. Blinking is futile." + +/datum/opposing_force_equipment/implants_illegal/thermal + name = "Thermal Eyes" + item_type = /obj/item/autosurgeon/syndicate/thermal_eyes + description = "These cybernetic eye implants will give you thermal vision. Vertical slit pupil included." + +/datum/opposing_force_equipment/implants_illegal/armlaser + name = "Arm-mounted Laser Implant" + item_type = /obj/item/autosurgeon/syndicate/laser_arm + admin_note = "A basic laser gun, but no-drop." + description = "A variant of the arm cannon implant that fires lethal laser beams. The cannon emerges from the subject's arm and remains inside when not in use." + +/datum/opposing_force_equipment/implants_illegal/eswordarm + name = "Energy Sword Arm Implant" + item_type = /obj/item/autosurgeon/syndicate/esword_arm + admin_note = "Force 30 no-drop, extremely robust." + description = "It's an energy sword, in your arm. Pretty decent for getting past stop-searches and assassinating people. Comes loaded in a Syndicate brand autosurgeon to boot!" + +/datum/opposing_force_equipment/implants_illegal/baton + name = "Baton Arm Implant" + item_type = /obj/item/autosurgeon/syndicate/baton + +/datum/opposing_force_equipment/implants_illegal/flash + name = "Flash Arm Implant" + item_type = /obj/item/autosurgeon/syndicate/flash diff --git a/monkestation/code/modules/blueshift/opfor/equipment/medical.dm b/monkestation/code/modules/blueshift/opfor/equipment/medical.dm new file mode 100644 index 000000000000..18aec39423e4 --- /dev/null +++ b/monkestation/code/modules/blueshift/opfor/equipment/medical.dm @@ -0,0 +1,58 @@ +/datum/opposing_force_equipment/medical + category = OPFOR_EQUIPMENT_CATEGORY_MEDICAL + +/datum/opposing_force_equipment/medical/twitch + name = "TWitch Sensory Stimulant Injector" + item_type = /obj/item/reagent_containers/hypospray/medipen/deforest/twitch + +/datum/opposing_force_equipment/medical/demoneye + name = "DemonEye Steroid Injector" + item_type = /obj/item/reagent_containers/hypospray/medipen/deforest/demoneye + +/datum/opposing_force_equipment/medical/stimpack + name = "Stimulant Medipen" + item_type = /obj/item/reagent_containers/hypospray/medipen/stimulants + +/datum/opposing_force_equipment/medical/cheese_kit + name = "Civil Defense Medical Kit" + item_type = /obj/item/storage/medkit/civil_defense/stocked + description = "A small, pocket sized medical kit often handed out to civilians en masse in the event of an emergency. \ + It can hold four medpens and nothing more, and comes stocked with pens for repairing various types of minor damage." + +/datum/opposing_force_equipment/medical/frontier_medkit + name = "Frontier Medical Kit" + item_type = /obj/item/storage/medkit/frontier/stocked + description = "A handy roll-top waterproof medkit often seen alongside those on the frontier, where medical support is less than optimal. \ + Comes with basic medical supplies to fix many types of wounds, alongside a small collections of pens to repair damage." + +/datum/opposing_force_equipment/medical/combat_surgeon + name = "Combat Surgeon Medical Kit" + item_type = /obj/item/storage/medkit/combat_surgeon/stocked + description = "A folding kit that is ideally filled with surgical tools and specialized treatment options for many harder-to-treat wounds." + +/datum/opposing_force_equipment/medical/satchel_medkit + name = "Satchel Medical Kit" + item_type = /obj/item/storage/backpack/duffelbag/deforest_medkit/stocked + description = "A large orange satchel able to hold just about any piece of small medical equipment you could think of, you can even wear it on your back or belt! \ + Keep in mind, however, that this cannot fit inside any normal bag." + +/datum/opposing_force_equipment/medical/super_combat_surgeon + name = "First Responder Surgical Kit" + item_type = /obj/item/storage/backpack/duffelbag/deforest_surgical/stocked + description = "A large bag able to hold all the surgical tools and first response healing equipment you can think of, you can even wear it! \ + Keep in mind, however, that this cannot fit inside any normal bag." + +/datum/opposing_force_equipment/medical/combatmedkit + name = "Syndicate Combat Medic Kit" + item_type = /obj/item/storage/medkit/tactical + description = "This first aid kit is a suspicious black and red. Included is a number of atropine medipens \ + for rapid stabilization, sutures and regenerative mesh for wound treatment, and patches \ + for faster healing on the field. Also comes with basic medical tools and sterlizer." + +/datum/opposing_force_equipment/medical/combatmedkit_premium + name = "Syndicate Combat Medical Suite" + item_type = /obj/item/storage/medkit/tactical/premium + description = "This first aid kit is a suspicious black and red. Included is an unloaded combat chemical injector \ + for suit-penetrative chem delivery, a medical science night vision HUD for quick identification of injured personnel and chemical supplies, \ + improved medical supplies, including Interdyne-approved pharmaceuticals, a hacked cybernetic surgery toolset arm implant, \ + and some helpful MODsuit modules for for field medical use and operative physiopharmaceutical augmentation." diff --git a/monkestation/code/modules/blueshift/opfor/equipment/melee.dm b/monkestation/code/modules/blueshift/opfor/equipment/melee.dm new file mode 100644 index 000000000000..24a25b3be139 --- /dev/null +++ b/monkestation/code/modules/blueshift/opfor/equipment/melee.dm @@ -0,0 +1,96 @@ +/datum/opposing_force_equipment/melee + category = OPFOR_EQUIPMENT_CATEGORY_MELEE + +/datum/opposing_force_equipment/melee/sabre + name = "Officer's Sabre" + description = "An elegant weapon, its monomolecular edge is capable of cutting through flesh and bone with ease." + item_type = /obj/item/storage/belt/sabre + +/datum/opposing_force_equipment/melee/katana + item_type = /obj/item/katana + description = "An extremely sharp and robust sword folded over nine thousand times until perfection. Highly lethal and illegal." + admin_note = "WARNING: 40 force, 50% blockchance, very powerful." + +/datum/opposing_force_equipment/melee/ekatana + item_type = /obj/item/energy_katana + description = "An energy katana seized from a dead Spider Clan ninja. As well as being highly robust, it allows the \ + user to teleport short distances using right-click." + +/datum/opposing_force_equipment/melee/esword + item_type = /obj/item/melee/energy/sword + description = "The energy sword is an edged weapon with a blade of pure energy. The sword is small enough to be pocketed when inactive. Activating it produces a loud, distinctive noise." + +/datum/opposing_force_equipment/melee/desword + item_type = /obj/item/dualsaber + +/datum/opposing_force_equipment/melee/eshield + item_type = /obj/item/shield/energy + +/datum/opposing_force_equipment/melee/ebanana + item_type = /obj/item/melee/energy/sword/bananium + +/datum/opposing_force_equipment/melee/eshield_banana + item_type = /obj/item/shield/energy/bananium + +/datum/opposing_force_equipment/melee/epirate + item_type = /obj/item/melee/energy/sword/pirate + description = "A variant of the energy sword styled as a cutlass. Pirate costume sold separately. Warranty void if bought." + +/datum/opposing_force_equipment/melee/metalbat + item_type = /obj/item/melee/baseball_bat/ablative + description = "A highly reflective baseball bat for when you need to crack skulls and run away from security in the same night. Can reflect lasers." + admin_note = "WARNING: Notably strong on sec not using ballistics." + +/datum/opposing_force_equipment/melee/powerfist + item_type = /obj/item/melee/powerfist + name = "Power Fist" + description = "The power-fist is a metal gauntlet with a built-in piston-ram powered by an external gas supply.\ + Upon hitting a target, the piston-ram will extend forward to make contact for some serious damage. \ + Using a wrench on the piston valve will allow you to tweak the amount of gas used per punch to \ + deal extra damage and hit targets further. Use a screwdriver to take out any attached tanks." + +/datum/opposing_force_equipment/melee/meathook + name = "Butcher's Meat Hook" + item_type = /obj/item/gun/magic/hook + description = "A brutal cleaver on a long chain, it allows you to pull people to your location." + +/datum/opposing_force_equipment/melee/cutlass + item_type = /obj/item/claymore/cutlass + +/datum/opposing_force_equipment/melee/mace + item_type = /obj/item/melee/cleric_mace + +/datum/opposing_force_equipment/melee/claymore + item_type = /obj/item/claymore + description = "An extremely sharp and robust sword perfect to cleave through any opposition. Also highly illegal." + admin_note = "WARNING: 30 force, 35 armor pen." + + +/datum/opposing_force_equipment/melee_stealth + category = OPFOR_EQUIPMENT_CATEGORY_MELEE_STEALTH + +/datum/opposing_force_equipment/melee_stealth/contractorbaton + item_type = /obj/item/melee/baton/telescopic/contractor_baton + +/datum/opposing_force_equipment/melee_stealth/switchblade + item_type = /obj/item/switchblade + +/datum/opposing_force_equipment/melee_stealth/combat_knife + item_type = /obj/item/knife/combat + +/datum/opposing_force_equipment/melee_stealth/edagger + item_type = /obj/item/pen/edagger + name = "Energy Dagger" + description = "A dagger made of energy that looks and functions as a pen when off." + +/datum/opposing_force_equipment/melee_stealth/telescopic + item_type = /obj/item/melee/baton/telescopic + +/datum/opposing_force_equipment/melee_stealth/telescopicshield + item_type = /obj/item/shield/riot/tele + +/datum/opposing_force_equipment/melee_stealth/northstar + item_type = /obj/item/clothing/gloves/rapid + description = "By putting on these gloves, you will find you can punch things at vastly increased speed." + admin_note = "WARNING: Be very mindful if passing these out with sleeping-carp, as the duo are extremely strong together." + diff --git a/monkestation/code/modules/blueshift/opfor/equipment/modsuit.dm b/monkestation/code/modules/blueshift/opfor/equipment/modsuit.dm new file mode 100644 index 000000000000..dfd4348135aa --- /dev/null +++ b/monkestation/code/modules/blueshift/opfor/equipment/modsuit.dm @@ -0,0 +1,133 @@ +/datum/opposing_force_equipment/modsuit + category = OPFOR_EQUIPMENT_CATEGORY_MODSUIT + +/datum/opposing_force_equipment/modsuit/red + name = "Gorlex Marauder's Red" + description = "An advanced combat suit adorned in a sinister crimson red color scheme, produced and manufactured for special mercenary operations." + item_type = /obj/item/mod/control/pre_equipped/traitor + +/datum/opposing_force_equipment/modsuit/contractor + name = "Private Mercenary's MOD" + description = "A rare depart from the Syndicate's usual color scheme, this MODsuit is produced and manufactured for private mercenaries." + item_type = /obj/item/mod/control/pre_equipped/contractor + +//Unrestricted MODs +/obj/item/mod/control/pre_equipped/elite/unrestricted + req_access = null + +/datum/opposing_force_equipment/modsuit/elite + name = "Cybersun's Elite" + description = "An evolution of the syndicate suit, featuring a bulkier build and a matte black color scheme, this suit is only produced for high ranking Syndicate officers and elite strike teams." + item_type = /obj/item/mod/control/pre_equipped/elite/unrestricted + +/datum/opposing_force_equipment/modsuit/ninja + name = "Cybersun's Ninja" + description = "A suit of nano-enhanced armor designed specifically for Spider Clan assassin-saboteurs. This MODsuit employs the cutting edge of stealth and combat technology, built skin-tight but just as durable as suits two or three times as thick." + item_type = /obj/item/mod/control/pre_equipped/ninja + +/datum/opposing_force_equipment/modsuit/corporate + name = "CentComm's Corporate" + description = "An even more costly version of the Magnate model, the corporate suit is a thermally insulated, anti-corrosion coated suit for high-ranking CentCom Officers, deploying pristine protective armor and advanced actuators, feeling practically weightless when turned on." + item_type = /obj/item/mod/control/pre_equipped/corporate + +/datum/opposing_force_equipment/modsuit/standard + name = "Nakamura's Standard" + description = "A third-generation, modular civilian class suit by Nakamura Engineering, this suit is a staple across the galaxy for civilian applications." + item_type = /obj/item/mod/control/pre_equipped/empty + +/datum/opposing_force_equipment/modsuit/advanced + name = "Nakamura's Advanced" + description = "The flagship version of the Nakamura Engineering industrial model, and their latest product. Combining all the features of their other industrial model suits inside, with blast resistance almost approaching some EOD suits, the outside has been coated with a white polish rumored to be a corporate secret." + item_type = /obj/item/mod/control/pre_equipped/advanced + + +/datum/opposing_force_equipment/modsuit/infiltrator + name = "MI13's Infiltrator" + description = "Several questions have been raised over the years in regards to the clandestine Infiltrator modular suit. Why is the suit blood red despite being a sneaking suit? Why did a movie company of all things develop a stealth suit? The simplest answer is that Roseus Galactic hire more than a few eccentric individuals who know more about visual aesthetics and prop design than they do functional operative camouflage. But the true reason goes deeper." + item_type = /obj/item/mod/control/pre_equipped/infiltrator + +/datum/opposing_force_equipment/modsuit/clown + name = "Honk Ltd's Cosmohonk" + description = "The Cosmohonk MODsuit was originally designed for interstellar comedy in low-humor environments. It utilizes tungsten electro-ceramic casing and chromium bipolars, coated in zirconium-boron paint underneath a dermatiraelian subspace alloy. Despite the glaringly obvious optronic vacuum drive pedals, this particular model does not employ manganese bipolar capacitor cleaners, thank the Honkmother." + item_type = /obj/item/mod/control/pre_equipped/cosmohonk + +/datum/opposing_force_equipment/modsuit/wizard + name = "Mysteriously Empowered MOD" + description = "The Wizard Federation's relatively low-tech MODsuit. This armor employs not plasteel or carbon fibre, but space dragon scales for its protection." + item_type = /obj/item/mod/control/pre_equipped/enchanted + + +/datum/opposing_force_equipment/modsuit_modules + category = OPFOR_EQUIPMENT_CATEGORY_MODSUIT_MODULES + +/datum/opposing_force_equipment/modsuit_modules/ion_advanced + item_type = /obj/item/mod/module/jetpack/advanced + +/datum/opposing_force_equipment/modsuit_modules/storage_syndicate + item_type = /obj/item/mod/module/storage/syndicate + +/datum/opposing_force_equipment/modsuit_modules/chameleon + item_type = /obj/item/mod/module/chameleon + +/datum/opposing_force_equipment/modsuit_modules/noslip + item_type = /obj/item/mod/module/noslip + +/datum/opposing_force_equipment/modsuit_modules/cloak_mod + item_type = /obj/item/mod/module/stealth/ninja + +/datum/opposing_force_equipment/modsuit_modules/armor_booster + item_type = /obj/item/mod/module/armor_booster + +/datum/opposing_force_equipment/modsuit_modules/magnetic_harness + item_type = /obj/item/mod/module/magnetic_harness + +/datum/opposing_force_equipment/modsuit_modules/emp_shield_advanced + item_type = /obj/item/mod/module/emp_shield/advanced + +/datum/opposing_force_equipment/modsuit_modules/quick_carry_advanced + item_type = /obj/item/mod/module/quick_carry/advanced + +/datum/opposing_force_equipment/modsuit_modules/thermal_visor + item_type = /obj/item/mod/module/visor/thermal + +/datum/opposing_force_equipment/modsuit_modules/megaphone + item_type = /obj/item/mod/module/megaphone + +/datum/opposing_force_equipment/modsuit_modules/projectile_dampener + item_type = /obj/item/mod/module/projectile_dampener + +/* +/datum/opposing_force_equipment/modsuit_modules/shooting_assistant + item_type = /obj/item/mod/module/shooting_assistant +*/ + +/datum/opposing_force_equipment/modsuit_modules/holster + item_type = /obj/item/mod/module/holster + +/datum/opposing_force_equipment/modsuit_modules/baton_holster + item_type = /obj/item/mod/module/baton_holster + +/datum/opposing_force_equipment/modsuit_modules/energy_shield + item_type = /obj/item/mod/module/energy_shield + +/datum/opposing_force_equipment/modsuit_modules/adrenaline_boost + item_type = /obj/item/mod/module/adrenaline_boost + +/datum/opposing_force_equipment/modsuit_modules/quick_deploy + item_type = /obj/item/mod/module/springlock/contractor + +/* +/datum/opposing_force_equipment/modsuit_modules/donksoft_recycler + item_type = /obj/item/mod/module/recycler/donk +*/ + +/datum/opposing_force_equipment/modsuit_modules/scorpion_hook + item_type = /obj/item/mod/module/scorpion_hook + +/datum/opposing_force_equipment/modsuit_modules/flamethrower_mod + item_type = /obj/item/mod/module/flamethrower + +/* +/datum/opposing_force_equipment/modsuit_modules/jump_jet + item_type = /obj/item/mod/module/jump_jet +*/ diff --git a/monkestation/code/modules/blueshift/opfor/equipment/spells.dm b/monkestation/code/modules/blueshift/opfor/equipment/spells.dm new file mode 100644 index 000000000000..98c09e81b7ea --- /dev/null +++ b/monkestation/code/modules/blueshift/opfor/equipment/spells.dm @@ -0,0 +1,84 @@ +/datum/opposing_force_equipment/spells + category = OPFOR_EQUIPMENT_CATEGORY_SPELLS + +/datum/opposing_force_equipment/spells/fireball + name = "Fireball" + item_type = /obj/item/book/granter/action/spell/fireball + description = "This spells fires an explosive fireball at a target." + admin_note = "WARNING: This spells has a fairly short cooldown, and can KO/kill on it's own." + +/datum/opposing_force_equipment/spells/sacredflame + name = "Sacred Flame" + item_type = /obj/item/book/granter/action/spell/sacredflame + description = "Makes everyone around you more flammable, and lights yourself on fire." + +/datum/opposing_force_equipment/spells/smoke + name = "Smoke" + item_type = /obj/item/book/granter/action/spell/smoke + description = "This spells spawns a cloud of choking smoke at your location." + +/datum/opposing_force_equipment/spells/blind + name = "Blind" + item_type = /obj/item/book/granter/action/spell/blind + description = "This spells temporarily blinds a single target." + admin_note = "WARNING: Notably strong in 1-v-1s." + +/datum/opposing_force_equipment/spells/mindswap + name = "Mindswap" + item_type = /obj/item/book/granter/action/spell/mindswap + description = "This spells allows the user to switch bodies with a target next to them." + admin_note = "WARNING: This spells allows the user to swap minds with someone else, and is overall very strong." + +/datum/opposing_force_equipment/spells/forcewall + name = "Forcewall" + item_type = /obj/item/book/granter/action/spell/forcewall + description = "Create a magical barrier that only you can pass through." + +/datum/opposing_force_equipment/spells/knock + name = "Knock" + item_type = /obj/item/book/granter/action/spell/knock + description = "This spells opens nearby doors and closets." + +/datum/opposing_force_equipment/spells/charge + name = "Charge" + item_type = /obj/item/book/granter/action/spell/charge + description = "This spells can be used to recharge a variety of things in your hands, from magical artifacts to electrical components. A creative wizard can even use it to grant magical power to a fellow magic user." + admin_note = "This one can be used for some fuckery (such as recharging martial art granters, sometimes), be a bit careful." + +/datum/opposing_force_equipment/spells/summonitem + name = "Summon Item" + item_type = /obj/item/book/granter/action/spell/summonitem + description = "This spells can be used to recall a previously marked item to your hand from anywhere in the universe." + admin_note = "WARNING: This spells lets them summon anything they can hold, for as long as it exists, or they can still cast the spells." + +/datum/opposing_force_equipment/martial_art + category = OPFOR_EQUIPMENT_CATEGORY_SCROLLS + +/datum/opposing_force_equipment/martial_art/cqc + name = "CQC Manual" + item_type = /obj/item/book/granter/martial/cqc + description = "A manual that teaches a single user tactical Close-Quarters Combat before self-destructing." + admin_note = "CQC is capable of knocking out a target in 3 hits and is equivalent to 23 TC." + +/datum/opposing_force_equipment/martial_art/carp + name = "Sleeping Carp Scroll" + item_type = /obj/item/book/granter/martial/carp + description = "This scroll contains the secrets of an ancient martial arts technique. You will master unarmed combat \ + and gain the ability to swat bullets from the air, but you will also refuse to use dishonorable ranged weaponry." + admin_note = "Sleeping Carp is capable of letting you reflect bullets." + +/datum/opposing_force_equipment/martial_art/kravmaga + name = "Krav Maga Implanter" + item_type = /obj/item/implanter/krav_maga + description = "No need for gloves! This handy implanter teaches you everything you need to know about Krav Maga." + +/datum/opposing_force_equipment/martial_art/wrestling + name = "Wrestling Belt" + item_type = /obj/item/storage/belt/champion/wrestling + description = "With the imbued MACHO POWERS of this belt, learn the MACHO art of wrestling!" + admin_note = "Warning: Very powerful if questionably unbeatable in a 1v1, very capable of chain-stunning just about anyone (from range, if they can get on a table)" + +/datum/opposing_force_equipment/martial_art/mushpunch + name = "Mushpunch Mushroom" + item_type = /obj/item/mushpunch + description = "Consume this mushroom to learn the Mushroom Punch! A powerful attack that allows you to send people flying." diff --git a/monkestation/code/modules/blueshift/opfor/equipment/uplinks.dm b/monkestation/code/modules/blueshift/opfor/equipment/uplinks.dm new file mode 100644 index 000000000000..a46c96ab8826 --- /dev/null +++ b/monkestation/code/modules/blueshift/opfor/equipment/uplinks.dm @@ -0,0 +1,94 @@ +/datum/opposing_force_equipment/uplink + category = OPFOR_EQUIPMENT_CATEGORY_CLOTHING_UPLINK + +//Uplinks +/datum/opposing_force_equipment/uplink/uplink_old_radio + item_type = /obj/item/uplink/old_radio + name = "Old Syndicate Uplink" + description = "An old-school Syndicate uplink without a password and an empty TC account. Perfect for the aspiring operatives." + admin_note = "Traitor uplink without telecrystals." + +/datum/opposing_force_equipment/uplink/uplink_implant + item_type = /obj/item/implanter/uplink + name = "Syndicate Uplink Implanter" + admin_note = "Implanter for a Traitor uplink with no TC." + +/datum/opposing_force_equipment/uplink/tc1 + item_type = /obj/item/stack/telecrystal + name = "1 Raw Telecrystal" + description = "A telecrystal in its rawest and purest form; can be utilized on active uplinks to increase their telecrystal count." + +/datum/opposing_force_equipment/uplink/tc5 + item_type = /obj/item/stack/telecrystal/five + name = "5 Raw Telecrystals" + description = "A bunch of telecrystals in their rawest and purest form; can be utilized on active uplinks to increase their telecrystal count." + +/datum/opposing_force_equipment/uplink/tc10 + item_type = /obj/item/stack/telecrystal/twenty + name = "20 Raw Telecrystals" + description = "A bundle of telecrystals in their rawest and purest form; can be utilized on active uplinks to increase their telecrystal count." + +/datum/opposing_force_equipment/uplink/c10k + name = "10000 Space Cash Bill" + item_type = /obj/item/stack/spacecash/c10000 + description = "Cold hard cash." + +//Tot powers +/datum/opposing_force_equipment/uplink/changeling + item_type = /obj/item/antag_granter/changeling + name = "Changeling Injector" + description = "A heavy-duty injector containing a highly infectious virus, turning the user into a \"Changeling\"." + admin_note = "Changeling antag granter." + +/datum/opposing_force_equipment/uplink/heretic + item_type = /obj/item/antag_granter/heretic + name = "Heretical Book" + description = "A purple book with an eldritch eye on it, capable of making one into a \"Heretic\", one with the Forgotten Gods." + admin_note = "Heretic antag granter." + +/datum/opposing_force_equipment/uplink/clock_cult + item_type = /obj/item/antag_granter/clock_cultist + name = "Clockwork Contraption" + description = "A cogwheel-shaped device of brass, with a glass lens floating, suspended in the center. Capable of making one become a \"Clock Cultist\"." + admin_note = "Clockwork Cultist (solo) antag granter." + +//Services +/* +/datum/opposing_force_equipment/uplink/give_exploitables + name = "Exploitables Access" + description = "You will be given access to a network of exploitable information of certain crewmates, viewable using either a verb or on examine." + item_type = /obj/effect/gibspawner/generic + admin_note = "Same effect as using the traitor panel Toggle Exploitables Override button. Usually safe to give." + +/datum/opposing_force_equipment/uplink/give_exploitables/on_issue(mob/living/target) + target.mind.has_exploitables_override = TRUE + target.mind.handle_exploitables() +*/ + +/datum/opposing_force_equipment/uplink/custom_announcement + name = "Custom Announcement" + item_type = /obj/item/device/traitor_announcer + admin_note = "Ask players to put the message inside the 'Reason' box, the item adminlogs but won't give a chance to preview. Can be VV'd to give more 'uses'." + description = "A one-use device that lets you make an announcement tailored to your choice." + +/datum/opposing_force_equipment/uplink/power_outage + name = "Power Outage" + description = "A virus will be uploaded to the engineering processing servers to force a routine power grid check, forcing all APCs on the station to be temporarily disabled." + item_type = /obj/effect/gibspawner/generic + admin_note = "Equivalent to the Grid Check random event." + max_amount = 1 + +/datum/opposing_force_equipment/uplink/power_outage/on_issue() + var/datum/round_event_control/event = locate(/datum/round_event_control/grid_check) in SSevents.control + event.run_event() + +/datum/opposing_force_equipment/uplink/telecom_outage + name = "Telecomms Outage" + description = "A virus will be uploaded to the telecommunication processing servers to temporarily disable themselves." + item_type = /obj/effect/gibspawner/generic + admin_note = "Equivalent to the Communications Blackout random event." + max_amount = 1 + +/datum/opposing_force_equipment/uplink/telecom_outage/on_issue() + var/datum/round_event_control/event = locate(/datum/round_event_control/communications_blackout) in SSevents.control + event.run_event() diff --git a/monkestation/code/modules/blueshift/opfor/icons/items.dmi b/monkestation/code/modules/blueshift/opfor/icons/items.dmi new file mode 100644 index 000000000000..6c67638be11e Binary files /dev/null and b/monkestation/code/modules/blueshift/opfor/icons/items.dmi differ diff --git a/monkestation/code/modules/blueshift/opfor/sound/application_recieved.ogg b/monkestation/code/modules/blueshift/opfor/sound/application_recieved.ogg new file mode 100644 index 000000000000..2ddef0c0b02a Binary files /dev/null and b/monkestation/code/modules/blueshift/opfor/sound/application_recieved.ogg differ diff --git a/monkestation/code/modules/blueshift/opfor/sound/approved.ogg b/monkestation/code/modules/blueshift/opfor/sound/approved.ogg new file mode 100644 index 000000000000..9b3a1fbf6867 Binary files /dev/null and b/monkestation/code/modules/blueshift/opfor/sound/approved.ogg differ diff --git a/monkestation/code/modules/blueshift/opfor/sound/denied.ogg b/monkestation/code/modules/blueshift/opfor/sound/denied.ogg new file mode 100644 index 000000000000..627c1f3c847c Binary files /dev/null and b/monkestation/code/modules/blueshift/opfor/sound/denied.ogg differ diff --git a/monkestation/code/modules/blueshift/opfor/sound/update_requested.ogg b/monkestation/code/modules/blueshift/opfor/sound/update_requested.ogg new file mode 100644 index 000000000000..bf8b05099c49 Binary files /dev/null and b/monkestation/code/modules/blueshift/opfor/sound/update_requested.ogg differ diff --git a/monkestation/code/modules/blueshift/optin/job.dm b/monkestation/code/modules/blueshift/optin/job.dm new file mode 100644 index 000000000000..1eb819d5c999 --- /dev/null +++ b/monkestation/code/modules/blueshift/optin/job.dm @@ -0,0 +1,72 @@ +/datum/job + /// The minimum antag opt-in any holder of this job must use. If null, will defer to the mind's opt in level. + var/minimum_opt_in_level + /// Can this job be targetted as a heretic sacrifice target? + var/heretic_sac_target + /// Is this job targetable by contractors? + var/contractable + +/// Updates [minimum_opt_in_level] [heretic_sac_target] and [contractable]. +/datum/job/proc/update_opt_in_vars() + if(CONFIG_GET(flag/disable_antag_opt_in_preferences)) + return + + if(isnull(minimum_opt_in_level)) + minimum_opt_in_level = get_initial_opt_in_level() + if(isnull(heretic_sac_target)) + heretic_sac_target = initialize_heretic_target_status() + if(isnull(contractable)) + contractable = initialize_contractable_status() + + update_opt_in_desc_suffix() + +/// Returns this job's initial opt in level, taking into account departmental bitflags. +/datum/job/proc/get_initial_opt_in_level() + if (departments_bitflags & (DEPARTMENT_BITFLAG_SECURITY)) + return SECURITY_OPT_IN_LEVEL + if (departments_bitflags & (DEPARTMENT_BITFLAG_COMMAND)) + return COMMAND_OPT_IN_LEVEL + +/// Determines if this job should be sacrificable by heretics. +/datum/job/proc/initialize_heretic_target_status() + if (departments_bitflags & (DEPARTMENT_BITFLAG_SECURITY | DEPARTMENT_BITFLAG_COMMAND)) + return TRUE + + return FALSE + +/// Determines if this job should be targetable by contractors. +/datum/job/proc/initialize_contractable_status() + if (departments_bitflags & (DEPARTMENT_BITFLAG_SECURITY | DEPARTMENT_BITFLAG_COMMAND)) + return TRUE + + return FALSE + +/// Generates and sets a suffix appended to our description detailing our opt-in variables. +/datum/job/proc/update_opt_in_desc_suffix() + var/list/suffixes = list() + + if (minimum_opt_in_level) + suffixes += " Forces a minimum of [GLOB.antag_opt_in_strings["[minimum_opt_in_level]"]] antag opt-in." + if (contractable) + suffixes += " Targetable by contractors." + if (heretic_sac_target) + suffixes += " Targetable by heretics." + if (length(suffixes)) + var/suffix = jointext(suffixes, "") + set_opt_in_desc_suffix(suffix) + +/// Setter for [new_suffix]. Resets desc then appends the new suffix. +/datum/job/proc/set_opt_in_desc_suffix(new_suffix) + description = initial(description) + + if (new_suffix) + description += new_suffix + +/datum/controller/subsystem/job/SetupOccupations() + . = ..() + + if(CONFIG_GET(flag/disable_antag_opt_in_preferences)) + return + + for(var/datum/job/job as anything in all_occupations) + job.update_opt_in_vars() diff --git a/monkestation/code/modules/blueshift/optin/mind.dm b/monkestation/code/modules/blueshift/optin/mind.dm new file mode 100644 index 000000000000..c95bf5a5ea9f --- /dev/null +++ b/monkestation/code/modules/blueshift/optin/mind.dm @@ -0,0 +1,90 @@ +/// If a player has any of these enabled, they are forced to use a minimum of OPT_IN_ANTAG_ENABLED_LEVEL antag optin. Dynamic - checked on the fly, not cached. +GLOBAL_LIST_INIT(optin_forcing_midround_antag_categories, list( + ROLE_CHANGELING_MIDROUND, + ROLE_MALF_MIDROUND, + ROLE_OBSESSED, + ROLE_SLEEPER_AGENT, +)) + +/// If a player has any of these enabled ON SPAWN, they are forced to use a minimum of OPT_IN_ANTAG_ENABLED_LEVEL antag optin for the rest of the round. +GLOBAL_LIST_INIT(optin_forcing_on_spawn_antag_categories, list( + ROLE_BROTHER, + ROLE_CHANGELING, + ROLE_CULTIST, + ROLE_HERETIC, + ROLE_MALF, + ROLE_OPERATIVE, + ROLE_TRAITOR, + ROLE_WIZARD, + ROLE_CLOWN_OPERATIVE, + ROLE_NUCLEAR_OPERATIVE, + ROLE_HERETIC_SMUGGLER, + ROLE_PROVOCATEUR, + ROLE_SYNDICATE_INFILTRATOR, +)) + +/datum/mind + /// The optin level set by preferences. + var/ideal_opt_in_level = OPT_IN_DEFAULT_LEVEL + /// Set on the FIRST mob login. Set by on-spawn antags (e.g. if you have traitor on and spawn, this will be set to OPT_IN_ANTAG_ENABLED_LEVEL and cannot change) + var/on_spawn_antag_opt_in_level = OPT_IN_NOT_TARGET + /// Set to TRUE on a successful transfer_mind() call. If TRUE, transfer_mind() will not refresh opt in. + var/opt_in_initialized + +/mob/living/Login() + . = ..() + if(CONFIG_GET(flag/disable_antag_opt_in_preferences)) //lets not annoy our fellow players with useless info if we don't use this system at all + return + if (isnull(mind)) + return + if (isnull(client?.prefs)) + return + if (!mind.opt_in_initialized) + mind.update_opt_in(client.prefs) + mind.send_antag_optin_reminder() + mind.opt_in_initialized = TRUE + +/// Refreshes our ideal/on spawn antag opt in level by accessing preferences. +/datum/mind/proc/update_opt_in(datum/preferences/preference_instance = GLOB.preferences_datums[LOWER_TEXT(key)]) + if (isnull(preference_instance)) + return + + ideal_opt_in_level = preference_instance.read_preference(/datum/preference/choiced/antag_opt_in_status) + + for (var/antag_category in GLOB.optin_forcing_on_spawn_antag_categories) + if (antag_category in preference_instance.be_special) + on_spawn_antag_opt_in_level = OPT_IN_ANTAG_ENABLED_LEVEL + break + +/// Sends a bold message to our holder, telling them if their optin setting has been set to a minimum due to their antag preferences. +/datum/mind/proc/send_antag_optin_reminder() + var/datum/preferences/preference_instance = GLOB.preferences_datums[LOWER_TEXT(key)] + var/client/our_client = preference_instance?.parent // that moment when /mind doesnt have a ref to client :) + if (our_client) + var/antag_level = get_antag_opt_in_level() + if (antag_level <= OPT_IN_NOT_TARGET) + return + var/stringified_level = GLOB.antag_opt_in_strings["[antag_level]"] + to_chat(our_client, span_boldnotice("Due to your antag preferences, your antag-optin status has been set to a minimum of [stringified_level].")) + +/// Gets the actual opt-in level used for determining targets. +/datum/mind/proc/get_effective_opt_in_level() + var/step_1 = max(ideal_opt_in_level, get_job_opt_in_level()) + var/step_2 = max(step_1, get_antag_opt_in_level()) + return step_2 + +/// Returns the opt in level of our job. +/datum/mind/proc/get_job_opt_in_level() + return assigned_role?.minimum_opt_in_level || OPT_IN_NOT_TARGET + +/// If we have any antags enabled in GLOB.optin_forcing_midround_antag_categories, returns OPT_IN_ANTAG_ENABLED_LEVEL. OPT_IN_NOT_TARGET otherwise. +/datum/mind/proc/get_antag_opt_in_level() + if (on_spawn_antag_opt_in_level > OPT_IN_NOT_TARGET) + return on_spawn_antag_opt_in_level + + var/datum/preferences/preference_instance = GLOB.preferences_datums[LOWER_TEXT(key)] + if (!isnull(preference_instance)) + for (var/antag_category in GLOB.optin_forcing_midround_antag_categories) + if (antag_category in preference_instance.be_special) + return OPT_IN_ANTAG_ENABLED_LEVEL + return OPT_IN_NOT_TARGET diff --git a/monkestation/code/modules/blueshift/optin/objective_item.dm b/monkestation/code/modules/blueshift/optin/objective_item.dm new file mode 100644 index 000000000000..32c89aa9238d --- /dev/null +++ b/monkestation/code/modules/blueshift/optin/objective_item.dm @@ -0,0 +1,20 @@ +/datum/objective_item + /// The opt in level all owners of the item must meet for this to be eligible as an objective target. + var/opt_in_level = OPT_IN_YES_TEMP + +/// Returns TRUE if we have no owners, or all owners's effective opt in level is above [opt_in_level]. FALSE otherwise. +/datum/objective_item/proc/owner_opted_in() + if (!length(item_owner)) + return TRUE + for (var/mob/living/player as anything in GLOB.player_list) + if ((player.mind?.assigned_role.title in item_owner) && player.stat != DEAD && !is_centcom_level(player.z)) // is an owner, copypasted from objective_items.dm owner_exists() + if (player.mind.get_effective_opt_in_level() < opt_in_level) + return FALSE + return TRUE + +/datum/objective_item/valid_objective_for(list/potential_thieves, require_owner) + var/opt_in_disabled = CONFIG_GET(flag/disable_antag_opt_in_preferences) + if (!opt_in_disabled && require_owner && !owner_opted_in()) + return FALSE + + return ..() diff --git a/monkestation/code/modules/blueshift/optin/objectives.dm b/monkestation/code/modules/blueshift/optin/objectives.dm new file mode 100644 index 000000000000..1c806b049574 --- /dev/null +++ b/monkestation/code/modules/blueshift/optin/objectives.dm @@ -0,0 +1,74 @@ +/datum/objective + /// The default opt in level of this objective. Only targets with opt in above or at this will be considered for this objective. + var/default_opt_in_level = OPT_IN_YES_KILL + +/// Simple getter for [default_opt_in_level]. Use for custom behavior. +/datum/objective/proc/get_opt_in_level(datum/mind/target_mind) + return default_opt_in_level + +/// Returns whether or not our opt in levels/variables are correct for the target. If true, they can be picked as a target. +/datum/objective/proc/opt_in_valid(datum/mind/target_mind) + return (get_opt_in_level(target_mind) <= target_mind.get_effective_opt_in_level()) + +// ROUND REMOVE +/datum/objective/maroon + default_opt_in_level = OPT_IN_YES_ROUND_REMOVE + +/datum/objective/assassinate/paradox_clone + default_opt_in_level = OPT_IN_YES_ROUND_REMOVE + +/datum/objective/capture + default_opt_in_level = OPT_IN_YES_ROUND_REMOVE + +/datum/objective/absorb + default_opt_in_level = OPT_IN_YES_ROUND_REMOVE + +/datum/objective/absorb_changeling + default_opt_in_level = OPT_IN_YES_ROUND_REMOVE + +/datum/objective/sacrifice + default_opt_in_level = OPT_IN_YES_ROUND_REMOVE + +/datum/objective/debrain + default_opt_in_level = OPT_IN_YES_ROUND_REMOVE + +// KILL + +/datum/objective/assassinate + default_opt_in_level = OPT_IN_YES_KILL + +/datum/objective/destroy + default_opt_in_level = OPT_IN_YES_KILL + +/datum/objective/mutiny + default_opt_in_level = OPT_IN_YES_KILL + +// TEMP + +/datum/objective/protect + default_opt_in_level = OPT_IN_YES_TEMP + +/datum/objective/protect/nonhuman + default_opt_in_level = OPT_IN_YES_TEMP + +/datum/objective/steal_n_of_type + default_opt_in_level = OPT_IN_YES_TEMP + +/datum/objective/steal + default_opt_in_level = OPT_IN_YES_TEMP + +/datum/objective/escape/escape_with_identity + default_opt_in_level = OPT_IN_YES_TEMP + +/datum/objective/jailbreak + default_opt_in_level = OPT_IN_YES_TEMP + +/datum/objective/contract + default_opt_in_level = OPT_IN_YES_TEMP + +/datum/objective/contract/opt_in_valid(datum/mind/target_mind) + var/datum/job/target_job = target_mind.assigned_role + if (!target_job?.contractable) + return FALSE + + return ..() diff --git a/monkestation/code/modules/blueshift/optin/preferences.dm b/monkestation/code/modules/blueshift/optin/preferences.dm new file mode 100644 index 000000000000..cb89b85b5f6e --- /dev/null +++ b/monkestation/code/modules/blueshift/optin/preferences.dm @@ -0,0 +1,36 @@ +/datum/preference/choiced/antag_opt_in_status + category = PREFERENCE_CATEGORY_NON_CONTEXTUAL + savefile_identifier = PREFERENCE_CHARACTER + savefile_key = "antag_opt_in_status_pref" + +/datum/preference/choiced/antag_opt_in_status/init_possible_values() + return list(OPT_IN_YES_TEMP, OPT_IN_YES_KILL, OPT_IN_YES_ROUND_REMOVE, OPT_IN_NOT_TARGET) + +/datum/preference/choiced/antag_opt_in_status/create_default_value() + return OPT_IN_DEFAULT_LEVEL + +/datum/preference/choiced/antag_opt_in_status/is_accessible(datum/preferences/preferences) + if (!..(preferences)) + return FALSE + + return !(CONFIG_GET(flag/disable_antag_opt_in_preferences)) + +/datum/preference/choiced/antag_opt_in_status/deserialize(input, datum/preferences/preferences) + if(CONFIG_GET(flag/disable_antag_opt_in_preferences)) + return OPT_IN_DEFAULT_LEVEL + + return ..() + +/datum/preference/choiced/antag_opt_in_status/apply_to_human(mob/living/carbon/human/target, value, datum/preferences/preferences) + return FALSE + +/datum/preference/choiced/antag_opt_in_status/compile_constant_data() + var/list/data = ..() + + // An assoc list of values to display names so we don't show players numbers in their settings! + data[CHOICED_PREFERENCE_DISPLAY_NAMES] = GLOB.antag_opt_in_strings + + return data + +/datum/config_entry/flag/disable_antag_opt_in_preferences + default = FALSE diff --git a/monkestation/code/modules/blueshift/prefs/soulcatcher.dm b/monkestation/code/modules/blueshift/prefs/soulcatcher.dm new file mode 100644 index 000000000000..38eb418b5035 --- /dev/null +++ b/monkestation/code/modules/blueshift/prefs/soulcatcher.dm @@ -0,0 +1,23 @@ +/datum/preference/toggle/soulcatcher_join_action + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_identifier = PREFERENCE_PLAYER + savefile_key = "soulcatcher_join_action" + default_value = TRUE + +/datum/preference/toggle/soulcatcher_join_action/apply_to_client(client/client, value) + var/mob/dead/observer/ghost = client.mob + if(!istype(ghost)) + return FALSE + + var/datum/action/innate/join_soulcatcher/join_action = locate(/datum/action/innate/join_soulcatcher) in ghost.actions + if((!join_action && !value) || (join_action && value)) + return TRUE + + if(join_action && !value) + join_action.Remove(ghost) + return TRUE + + var/datum/action/innate/join_soulcatcher/new_join_action = new(ghost) + new_join_action.Grant(ghost) + return TRUE + diff --git a/monkestation/code/modules/blueshift/projectiles/__projectile_changes.dm b/monkestation/code/modules/blueshift/projectiles/__projectile_changes.dm new file mode 100644 index 000000000000..5b963c5bc198 --- /dev/null +++ b/monkestation/code/modules/blueshift/projectiles/__projectile_changes.dm @@ -0,0 +1,607 @@ +/obj/item/ammo_casing + /// Can this bullet casing be printed at an ammunition workbench? + var/can_be_printed = TRUE + /// If it can be printed, does this casing require an advanced ammunition datadisk? Mainly for specialized ammo. + /// Rubbers aren't advanced. Standard ammo (or FMJ if you're particularly pedantic) isn't advanced. + /// Think more specialized or weird, niche ammo, like armor-piercing, incendiary, hollowpoint, or God forbid, phasic. + var/advanced_print_req = FALSE + +// whatever goblin decided to spread out bullets over like 3 files and god knows however many overrides i wish you a very stubbed toe + +/* +* .460 Ceres (renamed tgcode .45) +*/ + +/obj/item/ammo_casing/c45/rubber + name = ".460 Ceres rubber bullet casing" + desc = "A .460 bullet casing.\ +

\ + RUBBER: Less than lethal ammo. Deals both stamina damage and regular damage." + projectile_type = /obj/projectile/bullet/c45/rubber + harmful = FALSE + +/obj/projectile/bullet/c45/rubber + name = ".460 Ceres rubber bullet" + damage = 10 + stamina = 50 + ricochets_max = 6 + ricochet_incidence_leeway = 0 + ricochet_chance = 130 + ricochet_decay_damage = 0.7 + shrapnel_type = null + sharpness = NONE + embedding = null + wound_bonus = -50 + +/obj/item/ammo_casing/c45/hp + name = ".460 Ceres hollow-point bullet casing" + desc = "A .460 hollow-point bullet casing. Very lethal against unarmored opponents. Suffers against armor." + projectile_type = /obj/projectile/bullet/c45/hp + advanced_print_req = TRUE + +/obj/projectile/bullet/c45/hp + name = ".460 Ceres hollow-point bullet" + damage = 40 + weak_against_armour = TRUE + +/* +* 8mm Usurpator (renamed tg c46x30mm, used in the WT550) +*/ + +/obj/projectile/bullet/c46x30mm_rubber + name = "8mm Usurpator rubber bullet" + damage = 3 + stamina = 34 + ricochets_max = 6 + ricochet_incidence_leeway = 0 + ricochet_chance = 130 + ricochet_decay_damage = 0.7 + shrapnel_type = null + sharpness = NONE + embedding = null + wound_bonus = -50 + +/obj/item/ammo_casing/c46x30mm/rubber + name = "8mm Usurpator rubber bullet casing" + desc = "An 8mm Usurpator rubber bullet casing.\ +

\ + RUBBER: Less than lethal ammo. Deals both stamina damage and regular damage." + projectile_type = /obj/projectile/bullet/c46x30mm_rubber + harmful = FALSE + +/* +* .277 Aestus (renamed tgcode .223, used in the M-90gl) +*/ + +/obj/item/ammo_casing/a223/rubber + name = ".277 rubber bullet casing" + desc = "A .277 rubber bullet casing.\ +

\ + RUBBER: Less than lethal ammo. Deals both stamina damage and regular damage." + projectile_type = /obj/projectile/bullet/a223/rubber + harmful = FALSE + +/obj/projectile/bullet/a223/rubber + name = ".277 rubber bullet" + damage = 10 + armour_penetration = 10 + stamina = 50 + ricochets_max = 6 + ricochet_incidence_leeway = 0 + ricochet_chance = 130 + ricochet_decay_damage = 0.7 + shrapnel_type = null + sharpness = NONE + embedding = null + wound_bonus = -50 + +/obj/item/ammo_casing/a223/ap + name = ".277 Aestus armor-piercing bullet casing" + desc = "A .277 armor-piercing bullet casing.\ +

\ + ARMOR PIERCING: Increased armor piercing capabilities. What did you expect?" + projectile_type = /obj/projectile/bullet/a223/ap + advanced_print_req = TRUE + custom_materials = AMMO_MATS_AP + +/obj/projectile/bullet/a223/ap + name = ".277 armor-piercing bullet" + armour_penetration = 60 + +/* +* .34 ACP +*/ + +// Why? Blame CFA, they want their bullets to be *proprietary* +/obj/item/ammo_casing/c34 + name = ".34 bullet casing" + desc = "A .34 bullet casing." + caliber = "c34acp" + projectile_type = /obj/projectile/bullet/c34 + +/obj/projectile/bullet/c34 + name = ".34 bullet" + damage = 15 + wound_bonus = 0 + +/obj/item/ammo_casing/c34/rubber + name = ".34 rubber bullet casing" + desc = "A .34 rubber bullet casing." + caliber = "c34acp" + projectile_type = /obj/projectile/bullet/c34/rubber + harmful = FALSE + +/obj/projectile/bullet/c34/rubber + name = ".34 rubber bullet" + damage = 5 + stamina = 35 + wound_bonus = -75 + shrapnel_type = null + sharpness = NONE + embedding = null + +/obj/item/ammo_casing/c34/ap + name = ".34 armor-piercing bullet casing" + desc = "A .34 armor-piercing bullet casing." + caliber = "c34acp" + projectile_type = /obj/projectile/bullet/c34/ap + custom_materials = AMMO_MATS_AP + advanced_print_req = TRUE + +/obj/projectile/bullet/c34/ap + name = ".34 armor-piercing bullet" + damage = 15 + armour_penetration = 40 + wound_bonus = -75 + +/obj/item/ammo_casing/c34_incendiary + name = ".34 incendiary bullet casing" + desc = "A .34 incendiary bullet casing." + caliber = "c34acp" + projectile_type = /obj/projectile/bullet/incendiary/c34_incendiary + custom_materials = AMMO_MATS_TEMP + advanced_print_req = TRUE + +/obj/projectile/bullet/incendiary/c34_incendiary + name = ".34 incendiary bullet" + damage = 8 + fire_stacks = 1 + wound_bonus = -90 + +/obj/item/ammo_casing/a40mm/rubber + name = "40mm rubber shell" + desc = "A cased rubber slug. The big brother of the beanbag slug, this thing will knock someone out in one. Doesn't do so great against anyone in armor." + projectile_type = /obj/projectile/bullet/shotgun_beanbag/a40mm + +/obj/item/ammo_casing/rocket + name = "\improper Dardo HE rocket" + desc = "An 84mm High Explosive rocket. Fire at people and pray." + caliber = CALIBER_84MM + icon_state = "srm-8" + base_icon_state = "srm-8" + projectile_type = /obj/projectile/bullet/rocket + +/obj/item/ammo_casing/rocket/Initialize(mapload) + . = ..() + AddElement(/datum/element/caseless) + +/obj/item/ammo_casing/rocket/update_icon_state() + . = ..() + icon_state = "[base_icon_state]" + +/obj/item/ammo_casing/rocket/heap + name = "\improper Dardo HE-AP rocket" + desc = "An 84mm High Explosive All Purpose rocket. For when you just need something to not exist anymore." + icon_state = "84mm-heap" + base_icon_state = "84mm-heap" + projectile_type = /obj/projectile/bullet/rocket/heap + +/obj/item/ammo_casing/rocket/weak + name = "\improper Dardo HE Low-Yield rocket" + desc = "An 84mm High Explosive rocket. This one isn't quite as devastating." + icon_state = "low_yield_rocket" + base_icon_state = "low_yield_rocket" + projectile_type = /obj/projectile/bullet/rocket/weak + +/obj/item/ammo_casing/strilka310 + name = ".310 Strilka bullet casing" + desc = "A .310 Strilka bullet casing. Casing is a bit of a fib, there is no case, its just a block of red powder." + icon_state = "310-casing" + caliber = CALIBER_STRILKA310 + projectile_type = /obj/projectile/bullet/strilka310 + +/obj/item/ammo_casing/strilka310/Initialize(mapload) + . = ..() + + AddElement(/datum/element/caseless) + +/obj/item/ammo_casing/strilka310/surplus + name = ".310 Strilka surplus bullet casing" + desc = "A surplus .310 Strilka bullet casing. Casing is a bit of a fib, there is no case, its just a block of red powder. Damp red powder at that." + projectile_type = /obj/projectile/bullet/strilka310/surplus + +/obj/projectile/bullet/strilka310 + name = ".310 Strilka bullet" + damage = 60 + armour_penetration = 10 + wound_bonus = -45 + wound_falloff_tile = 0 + +/obj/projectile/bullet/strilka310/surplus + name = ".310 Strilka surplus bullet" + weak_against_armour = TRUE //this is specifically more important for fighting carbons than fighting noncarbons. Against a simple mob, this is still a full force bullet + armour_penetration = 0 + +/* +* 9x25mm Mk.12 +*/ + +/obj/item/ammo_casing/c9mm + name = "9x25mm Mk.12 bullet casing" + desc = "A modern 9x25mm Mk.12 bullet casing." + +/obj/item/ammo_casing/c9mm/ap + name = "9x25mm Mk.12 armor-piercing bullet casing" + desc = "A modern 9x25mm Mk.12 bullet casing. This one fires an armor-piercing projectile." + custom_materials = AMMO_MATS_AP + advanced_print_req = TRUE + +/obj/item/ammo_casing/c9mm/hp + name = "9x25mm Mk.12 hollow-point bullet casing" + desc = "A modern 9x25mm Mk.12 bullet casing. This one fires a hollow-point projectile. Very lethal to unarmored opponents." + advanced_print_req = TRUE + +/obj/item/ammo_casing/c9mm/fire + name = "9x25mm Mk.12 incendiary bullet casing" + desc = "A modern 9x25mm Mk.12 bullet casing. This incendiary round leaves a trail of fire and ignites its target." + custom_materials = AMMO_MATS_TEMP + advanced_print_req = TRUE + +/obj/item/ammo_casing/c9mm/ihdf + name = "9x25mm Mk.12 IHDF casing" + desc = "A modern 9x25mm Mk.12 bullet casing. This one fires a bullet of 'Intelligent High-Impact Dispersal Foam', which is best compared to a riot-grade foam dart." + projectile_type = /obj/projectile/bullet/c9mm/ihdf + harmful = FALSE + +/obj/projectile/bullet/c9mm/ihdf + name = "9x25mm IHDF bullet" + damage = 30 + damage_type = STAMINA + embedding = list(embed_chance=0, fall_chance=3, jostle_chance=4, ignore_throwspeed_threshold=TRUE, pain_stam_pct=0.4, pain_mult=5, jostle_pain_mult=6, rip_time=10) + +/obj/item/ammo_casing/c9mm/rubber + name = "9x25mm Mk.12 rubber casing" + desc = "A modern 9x25mm Mk.12 bullet casing. This less than lethal round sure hurts to get shot by, but causes little physical harm." + projectile_type = /obj/projectile/bullet/c9mm/rubber + harmful = FALSE + +/obj/projectile/bullet/c9mm/rubber + name = "9x25mm rubber bullet" + icon_state = "pellet" + damage = 5 + stamina = 34 + ricochets_max = 6 + ricochet_incidence_leeway = 0 + ricochet_chance = 130 + ricochet_decay_damage = 0.8 + shrapnel_type = null + sharpness = NONE + embedding = null + +/* +* 10mm Auto +*/ + +/obj/item/ammo_casing/c10mm/ap + custom_materials = AMMO_MATS_AP + advanced_print_req = TRUE + +/obj/item/ammo_casing/c10mm/hp + advanced_print_req = TRUE + +/obj/item/ammo_casing/c10mm/fire + custom_materials = AMMO_MATS_TEMP + advanced_print_req = TRUE + +/obj/item/ammo_casing/c10mm/reaper + can_be_printed = FALSE + // it's a hitscan 50 damage 40 AP bullet designed to be fired out of a gun with a 2rnd burst and 1.25x damage multiplier + // Let's Not + +/obj/item/ammo_casing/c10mm/rubber + name = "10mm rubber bullet casing" + desc = "A 10mm rubber bullet casing." + projectile_type = /obj/projectile/bullet/c10mm/rubber + harmful = FALSE + +/obj/projectile/bullet/c10mm/rubber + name = "10mm rubber bullet" + damage = 10 + stamina = 37 + ricochets_max = 6 + ricochet_incidence_leeway = 0 + ricochet_chance = 130 + ricochet_decay_damage = 0.8 + shrapnel_type = null + sharpness = NONE + embedding = null + +/obj/item/ammo_casing/c10mm/ihdf + name = "10mm IHDF bullet casing" + desc = "A 10mm intelligent high-impact dispersal foam bullet casing." + projectile_type = /obj/projectile/bullet/c10mm/ihdf + harmful = FALSE + +/obj/projectile/bullet/c10mm/ihdf + name = "10mm IHDF bullet" + damage = 40 + damage_type = STAMINA + embedding = list(embed_chance=0, fall_chance=3, jostle_chance=4, ignore_throwspeed_threshold=TRUE, pain_stam_pct=0.4, pain_mult=5, jostle_pain_mult=6, rip_time=10) + +/obj/projectile/bullet/shotgun_beanbag/a40mm + name = "rubber slug" + icon_state = "cannonball" + damage = 20 + stamina = 250 //BONK + wound_bonus = 30 + weak_against_armour = TRUE + +// Red kill lasers for the big gun + +/obj/item/ammo_casing/energy/cybersun_big_kill + projectile_type = /obj/projectile/beam/cybersun_laser + e_cost = 200 + select_name = "Kill" + fire_sound = 'monkestation/code/modules/blueshift/sounds/laser_firing/laser.ogg' + +/obj/projectile/beam/cybersun_laser + icon = 'monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/saibasan/projectiles.dmi' + icon_state = "kill_large" + damage = 15 + impact_effect_type = /obj/effect/temp_visual/impact_effect/red_laser + light_color = COLOR_SOFT_RED + wound_falloff_tile = 1 + +// Speedy sniper lasers for the big gun + +/obj/item/ammo_casing/energy/cybersun_big_sniper + projectile_type = /obj/projectile/beam/cybersun_laser/marksman + e_cost = 300 + select_name = "Marksman" + fire_sound = 'monkestation/code/modules/blueshift/sounds/laser_firing/vaporize.ogg' + +/obj/projectile/beam/cybersun_laser/marksman + icon_state = "sniper" + damage = 30 + impact_effect_type = /obj/effect/temp_visual/impact_effect/yellow_laser + speed = 0.4 + light_outer_range = 2 + light_color = COLOR_VERY_SOFT_YELLOW + wound_falloff_tile = 0.1 + +// Disabler machinegun for the big gun + +/obj/item/ammo_casing/energy/cybersun_big_disabler + projectile_type = /obj/projectile/beam/cybersun_laser/disable + e_cost = 75 + select_name = "Disable" + harmful = FALSE + +/obj/projectile/beam/cybersun_laser/disable + icon_state = "disable_large" + damage = 0 + stamina = 35 + impact_effect_type = /obj/effect/temp_visual/impact_effect/blue_laser + light_color = COLOR_BRIGHT_BLUE + +// Plasma burst grenade for the big gun + +/obj/item/ammo_casing/energy/cybersun_big_launcher + projectile_type = /obj/projectile/beam/cybersun_laser/granata + e_cost = 400 + select_name = "Launcher" + +/obj/projectile/beam/cybersun_laser/granata + name = "plasma grenade" + icon_state = "grenade" + damage = 50 + speed = 2 + range = 6 + impact_effect_type = /obj/effect/temp_visual/impact_effect/green_laser + light_color = COLOR_PALE_GREEN + pass_flags = PASSTABLE | PASSGRILLE // His ass does NOT pass through glass! + /// What type of casing should we put inside the bullet to act as shrapnel later + var/casing_to_spawn = /obj/item/grenade/c980payload/plasma_grenade + +/obj/projectile/beam/cybersun_laser/granata/on_hit(atom/target, blocked = 0, pierce_hit) + ..() + fuse_activation(target) + return BULLET_ACT_HIT + +/obj/projectile/beam/cybersun_laser/granata/on_range() + fuse_activation(get_turf(src)) + return ..() + +/// Called when the projectile reaches its max range, or hits something +/obj/projectile/beam/cybersun_laser/granata/proc/fuse_activation(atom/target) + var/obj/item/grenade/shrapnel_maker = new casing_to_spawn(get_turf(target)) + shrapnel_maker.detonate() + playsound(src, 'monkestation/code/modules/blueshift/sounds/grenade_burst.ogg', 50, TRUE, -3) + qdel(shrapnel_maker) + +/obj/projectile/beam/cybersun_laser/granata_shrapnel + name = "plasma globule" + icon_state = "flare" + damage = 10 + speed = 2.5 + bare_wound_bonus = 55 // Lasers have a wound bonus of 40, this is a bit higher + wound_bonus = -50 // However we do not very much against armor + range = 2 + pass_flags = PASSTABLE | PASSGRILLE // His ass does NOT pass through glass! + weak_against_armour = TRUE + impact_effect_type = /obj/effect/temp_visual/impact_effect/green_laser + light_color = COLOR_PALE_GREEN + +/obj/item/grenade/c980payload/plasma_grenade + shrapnel_type = /obj/projectile/beam/cybersun_laser/granata_shrapnel + shrapnel_radius = 3 + +// Shotgun casing for the big gun + +/obj/item/ammo_casing/energy/cybersun_big_shotgun + projectile_type = /obj/projectile/beam/cybersun_laser/granata_shrapnel/shotgun_pellet + e_cost = 100 + pellets = 5 + variance = 30 + select_name = "Shotgun" + fire_sound = 'monkestation/code/modules/blueshift/sounds/laser_firing/melt.ogg' + +/obj/projectile/beam/cybersun_laser/granata_shrapnel/shotgun_pellet + icon_state = "because_it_doesnt_miss" + damage = 10 + impact_effect_type = /obj/effect/temp_visual/impact_effect/purple_laser + speed = 0.8 + light_color = COLOR_SCIENCE_PINK + range = 9 + +// Hellfire lasers for the little guy + +/obj/item/ammo_casing/energy/cybersun_small_hellfire + projectile_type = /obj/projectile/beam/cybersun_laser/hellfire + e_cost = 100 + select_name = "Incinerate" + fire_sound = 'monkestation/code/modules/blueshift/sounds/laser_firing/incinerate.ogg' + +/obj/projectile/beam/cybersun_laser/hellfire + icon_state = "hellfire" + damage = 20 + impact_effect_type = /obj/effect/temp_visual/impact_effect/red_laser + speed = 0.6 + wound_bonus = -15 + light_color = COLOR_SOFT_RED + +// Bounce disabler lasers for the little guy + +/obj/item/ammo_casing/energy/cybersun_small_disabler + projectile_type = /obj/projectile/beam/cybersun_laser/disable_bounce + e_cost = 100 + select_name = "Disable" + harmful = FALSE + +/obj/projectile/beam/cybersun_laser/disable_bounce + icon_state = "disable_bounce" + damage = 0 + stamina = 45 + impact_effect_type = /obj/effect/temp_visual/impact_effect/blue_laser + light_color = COLOR_BRIGHT_BLUE + ricochet_auto_aim_angle = 30 + ricochet_auto_aim_range = 5 + ricochets_max = 2 + ricochet_incidence_leeway = 100 + ricochet_chance = 130 + ricochet_decay_damage = 0.8 + +/obj/projectile/beam/cybersun_laser/disable_bounce/check_ricochet_flag(atom/reflecting_atom) + if((reflecting_atom.flags_ricochet & RICOCHET_HARD) || (reflecting_atom.flags_ricochet & RICOCHET_SHINY)) + return TRUE + return FALSE + +// Flare launcher + +/obj/item/ammo_casing/energy/cybersun_small_launcher + projectile_type = /obj/projectile/beam/cybersun_laser/flare + e_cost = LASER_SHOTS(5, 1000) + select_name = "Flare" + +/obj/projectile/beam/cybersun_laser/flare + name = "plasma flare" + icon_state = "flare" + damage = 15 + speed = 2 + range = 6 + impact_effect_type = /obj/effect/temp_visual/impact_effect/green_laser + light_color = COLOR_PALE_GREEN + pass_flags = PASSTABLE | PASSGRILLE // His ass does NOT pass through glass! + /// How many firestacks the bullet should impart upon a target when impacting + var/firestacks_to_give = 2 + /// What we spawn when we range out + var/obj/illumination_flare = /obj/item/flashlight/flare/plasma_projectile + +/obj/projectile/beam/cybersun_laser/flare/on_hit(atom/target, blocked = 0, pierce_hit) + . = ..() + if(iscarbon(target)) + var/mob/living/carbon/gaslighter = target + gaslighter.adjust_fire_stacks(firestacks_to_give) + gaslighter.ignite_mob() + else + new illumination_flare(get_turf(target)) + +/obj/projectile/beam/cybersun_laser/flare/on_range() + new illumination_flare(get_turf(src)) + return ..() + +/obj/item/flashlight/flare/plasma_projectile + name = "plasma flare" + desc = "A burning glob of green plasma, makes an effective temporary lighting source." + light_outer_range = 4 + anchored = TRUE + icon = 'monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/saibasan/projectiles.dmi' + icon_state = "flare_burn" + light_color = COLOR_PALE_GREEN + light_power = 2 + +/obj/item/flashlight/flare/plasma_projectile/Initialize(mapload) + . = ..() + if(randomize_fuel) + fuel = rand(3 MINUTES, 5 MINUTES) + ignition() + +/obj/item/flashlight/flare/plasma_projectile/turn_off() + . = ..() + qdel(src) + +// Shotgun casing for the small gun + +/obj/item/ammo_casing/energy/cybersun_small_shotgun + projectile_type = /obj/projectile/beam/cybersun_laser/granata_shrapnel/shotgun_pellet + e_cost = 100 + pellets = 3 + variance = 15 + select_name = "Shotgun" + fire_sound = 'monkestation/code/modules/blueshift/sounds/laser_firing/melt.ogg' + +// Dummy casing that does nothing but have a projectile that looks like a sword + +/obj/item/ammo_casing/energy/cybersun_small_blade + projectile_type = /obj/projectile/beam/cybersun_laser/blade + select_name = "Blade" + +/obj/projectile/beam/cybersun_laser/blade + icon_state = "blade" + +/obj/item/ammo_box/advanced + multiple_sprites = AMMO_BOX_FULL_EMPTY + +/* +* 9mm +*/ + +/obj/item/ammo_box/c9mm/rubber + name = "9x25mm rubber box" + ammo_type = /obj/item/ammo_casing/c9mm/rubber + +/obj/item/ammo_box/c9mm/ihdf + name = "9x25mm IHDF box" + ammo_type = /obj/item/ammo_casing/c9mm/ihdf + +/* +* 10mm +*/ + +/obj/item/ammo_box/c10mm/rubber + name = "10mm auto rubber box" + ammo_type = /obj/item/ammo_casing/c10mm/rubber + +/obj/item/ammo_box/c10mm/ihdf + name = "peacekeeper ammo box (10mm ihdf)" + ammo_type = /obj/item/ammo_casing/c10mm/ihdf diff --git a/monkestation/code/modules/blueshift/reagents/deforest.dm b/monkestation/code/modules/blueshift/reagents/deforest.dm new file mode 100644 index 000000000000..ca8751c02f28 --- /dev/null +++ b/monkestation/code/modules/blueshift/reagents/deforest.dm @@ -0,0 +1,520 @@ +/datum/reagent/medicine/lidocaine + name = "Lidocaine" + description = "A numbing agent used often for surgeries, metabolizes slowly." + reagent_state = LIQUID + color = "#6dbdbd" // 109, 189, 189 + metabolization_rate = 0.2 * REAGENTS_METABOLISM + overdose_threshold = 20 + ph = 6.09 + chemical_flags = REAGENT_CAN_BE_SYNTHESIZED + inverse_chem_val = 0.55 + inverse_chem = /datum/reagent/inverse/lidocaine + metabolized_traits = list(TRAIT_ANALGESIA) + +/datum/reagent/medicine/lidocaine/overdose_process(mob/living/carbon/affected_mob, seconds_per_tick, times_fired) + . = ..() + affected_mob.adjustOrganLoss(ORGAN_SLOT_HEART,3 * REM * seconds_per_tick, 80) + +//Inverse Medicines// + +/datum/reagent/inverse/lidocaine + name = "Lidopaine" + description = "A paining agent used often for... being a jerk, metabolizes faster than lidocaine." + reagent_state = LIQUID + color = "#85111f" // 133, 17, 31 + metabolization_rate = 0.4 * REAGENTS_METABOLISM + ph = 6.09 + tox_damage = 0 + +/datum/reagent/inverse/lidocaine/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired) + . = ..() + to_chat(affected_mob, span_userdanger("Your body aches with unimaginable pain!")) + affected_mob.adjustOrganLoss(ORGAN_SLOT_HEART,3 * REM * seconds_per_tick, 85) + affected_mob.stamina?.adjust(-5 * REM * seconds_per_tick, 0) + if(prob(30)) + INVOKE_ASYNC(affected_mob, TYPE_PROC_REF(/mob, emote), "scream") + +//Medigun Clotting Medicine +/datum/reagent/medicine/coagulant/fabricated + name = "fabricated coagulant" + description = "A synthesized coagulant created by Mediguns." + color = "#ff7373" //255, 155. 155 + clot_rate = 0.15 //Half as strong as standard coagulant + passive_bleed_modifier = 0.5 // around 2/3 the bleeding reduction + + +#define CONSTANT_DOSE_SAFE_LIMIT 60 +#define METABOLISM_END_LIMB_DAMAGE 20 + +// Chemical reaction, turns 25 input reagents into 25 output reagents, 10 of those being demoneye +/datum/chemical_reaction/demoneye + results = list( + /datum/reagent/drug/demoneye = 10, + /datum/reagent/impurity/healing/medicine_failure = 10, + /datum/reagent/impurity = 5, + ) + required_reagents = list( + /datum/reagent/medicine/ephedrine = 5, + /datum/reagent/blood = 15, + /datum/reagent/stable_plasma = 5, + ) + mob_react = FALSE + reaction_tags = REACTION_TAG_EASY | REACTION_TAG_DRUG | REACTION_TAG_ORGAN | REACTION_TAG_DAMAGING + +// Demoneye, a drug that makes you temporarily immune to fear and crit, in exchange for damaging all of your organs and making your veins explode +/datum/reagent/drug/demoneye + name = "DemonEye" + description = "A performance enhancing drug originally developed on mars. \ + A favorite among gangs and other outlaws on the planet, though overuse can cause terrible addiction and bodily damage." + reagent_state = LIQUID + color = "#af00be" + taste_description = "industrial shuttle fuel" + metabolization_rate = 0.65 * REAGENTS_METABOLISM + ph = 7 + overdose_threshold = 15 + chemical_flags = REAGENT_CAN_BE_SYNTHESIZED + addiction_types = list(/datum/addiction/stimulants = 15) + metabolized_traits = list(TRAIT_UNNATURAL_RED_GLOWY_EYES, TRAIT_NOSOFTCRIT, TRAIT_NOHARDCRIT, TRAIT_FEARLESS, TRAIT_ANALGESIA) + /// How much time has the drug been in them? + var/constant_dose_time = 0 + /// What the original color of the user's left eye is + var/user_left_eye_color + /// What the original color of the user's right eye is + var/user_right_eye_color + +/datum/reagent/drug/demoneye/on_mob_metabolize(mob/living/carbon/human/our_guy) + . = ..() + + user_left_eye_color = our_guy.eye_color_left + user_right_eye_color = our_guy.eye_color_right + + our_guy.eye_color_left = BLOODCULT_EYE + our_guy.eye_color_right = BLOODCULT_EYE + our_guy.update_body() + + our_guy.sound_environment_override = SOUND_ENVIRONMENT_PSYCHOTIC + + if(!our_guy.hud_used) + return + + var/atom/movable/plane_master_controller/game_plane_master_controller = our_guy.hud_used.plane_master_controllers[PLANE_MASTERS_GAME] + + var/static/list/col_filter_red = list(0.7,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,1) + + game_plane_master_controller.add_filter("demoneye_filter", 10, color_matrix_filter(col_filter_red, FILTER_COLOR_RGB)) + + game_plane_master_controller.add_filter("demoneye_blur", 1, list("type" = "angular_blur", "size" = 4)) + + +/datum/reagent/drug/demoneye/on_mob_end_metabolize(mob/living/carbon/human/our_guy) + . = ..() + + our_guy.eye_color_left = user_left_eye_color + our_guy.eye_color_right = user_right_eye_color + our_guy.update_body() + + our_guy.sound_environment_override = NONE + + if(constant_dose_time < CONSTANT_DOSE_SAFE_LIMIT || !our_guy.blood_volume) + our_guy.visible_message( + span_danger("[our_guy]'s eyes fade from their evil looking red back to normal..."), + span_danger("Your vision slowly returns to normal as you lose your unnatural strength...") + ) + else + our_guy.visible_message( + span_danger("[our_guy]'s veins violently explode, spraying blood everywhere!"), + span_danger("Your veins burst from the sheer stress put on them!") + ) + + var/obj/item/bodypart/bodypart = pick(our_guy.bodyparts) + var/datum/wound/slash/flesh/critical/crit_wound = new() + crit_wound.apply_wound(bodypart) + bodypart.receive_damage(brute = METABOLISM_END_LIMB_DAMAGE, wound_bonus = CANT_WOUND) + + new /obj/effect/temp_visual/cleave(our_guy.drop_location()) + + if(overdosed && !our_guy.has_status_effect(/datum/status_effect/vulnerable_to_damage)) + our_guy.apply_status_effect(/datum/status_effect/vulnerable_to_damage) + + if(!our_guy.hud_used) + return + + var/atom/movable/plane_master_controller/game_plane_master_controller = our_guy.hud_used.plane_master_controllers[PLANE_MASTERS_GAME] + + game_plane_master_controller.remove_filter("demoneye_filter") + game_plane_master_controller.remove_filter("demoneye_blur") + + +/datum/reagent/drug/demoneye/on_mob_life(mob/living/carbon/our_guy, seconds_per_tick, times_fired) + . = ..() + + constant_dose_time += seconds_per_tick + + our_guy.add_mood_event("tweaking", /datum/mood_event/stimulant_heavy/sundowner, name) + + our_guy.stamina?.adjust(10 * REM * seconds_per_tick) + our_guy.AdjustSleeping(-20 * REM * seconds_per_tick) + our_guy.adjust_drowsiness(-5 * REM * seconds_per_tick) + + if(SPT_PROB(25, seconds_per_tick)) + our_guy.playsound_local(our_guy, 'sound/effects/singlebeat.ogg', 100, TRUE) + flash_color(our_guy, flash_color = "#ff0000", flash_time = 3 SECONDS) + + if(SPT_PROB(5, seconds_per_tick)) + hurt_that_mans_organs(our_guy, 3, FALSE) + + if(locate(/datum/reagent/drug/twitch) in our_guy.reagents.reagent_list) // Combining this with twitch could cause some heart attack problems + our_guy.infect_disease_predefined(DISEASE_HEART, TRUE) + + +/datum/reagent/drug/demoneye/overdose_process(mob/living/carbon/our_guy, seconds_per_tick, times_fired) + . = ..() + + our_guy.set_jitter_if_lower(10 SECONDS * REM * seconds_per_tick) + + if(SPT_PROB(10, seconds_per_tick)) + hurt_that_mans_organs(our_guy, 5, TRUE) + + +/// Hurts a random organ, if its 'really_bad' we'll vomit blood too +/datum/reagent/drug/demoneye/proc/hurt_that_mans_organs(mob/living/carbon/our_guy, damage, really_bad = FALSE) + /// List of organs we can randomly damage + var/static/list/organs_we_damage = list( + ORGAN_SLOT_BRAIN, + ORGAN_SLOT_APPENDIX, + ORGAN_SLOT_LUNGS, + ORGAN_SLOT_HEART, + ORGAN_SLOT_LIVER, + ORGAN_SLOT_STOMACH, + ) + if(really_bad) + our_guy.vomit(0, TRUE, FALSE, 1) + our_guy.adjustOrganLoss( + pick(organs_we_damage), + damage, + ) + +// Mood event used by demoneye, because the normal one I just didn't vibe with +/datum/mood_event/stimulant_heavy/sundowner + description = "I'M FUCKING INVINCIBLE!!!!" + +#undef CONSTANT_DOSE_SAFE_LIMIT +#undef METABOLISM_END_LIMB_DAMAGE + +#define CONSTANT_DOSE_SAFE_LIMIT 60 + +#define TWITCH_SCREEN_FILTER "twitch_screen_filter" +#define TWITCH_SCREEN_BLUR "twitch_screen_blur" + +#define TWITCH_BLUR_EFFECT "twitch_dodge_blur" +#define TWITCH_OVERDOSE_BLUR_EFFECT "twitch_overdose_blur" + +// Reaction to make twitch, makes 10u from 17u input reagents +/datum/chemical_reaction/twitch + results = list( + /datum/reagent/drug/twitch = 10, + ) + required_reagents = list( + /datum/reagent/impedrezene = 5, + /datum/reagent/bluespace = 10, + /datum/reagent/consumable/liquidelectricity = 2, + ) + mob_react = FALSE + reaction_tags = REACTION_TAG_EASY | REACTION_TAG_DRUG | REACTION_TAG_ORGAN | REACTION_TAG_DAMAGING + +// Twitch drug, makes the takers of it faster and able to dodge bullets while in their system, to potentially bad side effects +/datum/reagent/drug/twitch + name = "TWitch" + description = "A drug originally developed by and for plutonians to assist them during raids. \ + Does not see wide use due to the whole reality-disassociation and heart disease thing afterwards. \ + Can be intentionally overdosed to increase the drug's effects" + reagent_state = LIQUID + color = "#c22a44" + taste_description = "television static" + metabolization_rate = 0.65 * REAGENTS_METABOLISM + ph = 3 + overdose_threshold = 15 + chemical_flags = REAGENT_CAN_BE_SYNTHESIZED + addiction_types = list(/datum/addiction/stimulants = 20) + process_flags = ORGANIC | SYNTHETIC + /// How much time has the drug been in them? + var/constant_dose_time = 0 + /// What type of span class do we change heard speech to? + var/speech_effect_span + /// How much the mob heating is multiplied by, if the target is a robot or has muscled veins + var/mob_heating_muliplier = 5 + + +/datum/reagent/drug/twitch/on_mob_metabolize(mob/living/our_guy) + . = ..() + + our_guy.add_movespeed_modifier(/datum/movespeed_modifier/reagent/twitch) + our_guy.next_move_modifier -= 0.3 // For the duration of this you move and attack faster + + our_guy.sound_environment_override = SOUND_ENVIRONMENT_DIZZY + + speech_effect_span = "green" + + RegisterSignal(our_guy, COMSIG_MOVABLE_MOVED, PROC_REF(on_movement)) + RegisterSignal(our_guy, COMSIG_MOVABLE_HEAR, PROC_REF(distort_hearing)) + + if(!our_guy.hud_used) + return + + var/atom/movable/plane_master_controller/game_plane_master_controller = our_guy.hud_used.plane_master_controllers[PLANE_MASTERS_GAME] + + var/static/list/col_filter_green = list(0.5,0,0,0, 0,1,0,0, 0,0,0.5,0, 0,0,0,1) + var/static/list/col_filter_purple = list(1,0,0,0, 0,0.5,0,0, 0,0,1,0, 0,0,0,1) + + var/color_filter_to_use = col_filter_green + if(overdosed) + color_filter_to_use = col_filter_purple + + game_plane_master_controller.add_filter(TWITCH_SCREEN_FILTER, 10, color_matrix_filter(color_filter_to_use, FILTER_COLOR_RGB)) + + game_plane_master_controller.add_filter(TWITCH_SCREEN_BLUR, 1, list("type" = "radial_blur", "size" = 0.02)) + + +/datum/reagent/drug/twitch/on_mob_end_metabolize(mob/living/carbon/our_guy) + . = ..() + + our_guy.remove_movespeed_modifier(/datum/movespeed_modifier/reagent/twitch) + our_guy.next_move_modifier += (overdosed ? 0.5 : 0.3) + + our_guy.sound_environment_override = NONE + + speech_effect_span = "hierophant" + + UnregisterSignal(our_guy, COMSIG_MOVABLE_MOVED) + UnregisterSignal(our_guy, COMSIG_MOVABLE_HEAR) + if(overdosed) + UnregisterSignal(our_guy, COMSIG_ATOM_PRE_BULLET_ACT) + + if(constant_dose_time < CONSTANT_DOSE_SAFE_LIMIT) // Anything less than this and you'll come out fiiiine, aside from a big hit of stamina damage + if(!(our_guy.mob_biotypes & MOB_ROBOTIC)) + our_guy.visible_message( + span_danger("[our_guy] suddenly slows from [our_guy.p_their()] inhuman speeds, coming back with a wicked nosebleed!"), + span_danger("You suddenly slow back to normal, a stream of blood gushing from your nose!") + ) + else + our_guy.visible_message( + span_danger("[our_guy] suddenly slows from [our_guy.p_their()] inhuman speeds!"), + span_danger("You suddenly slow back to normal speed!") + ) + our_guy.stamina.adjust(-constant_dose_time) + + else // Much longer than that however, and you're not gonna have a good day + if(!(our_guy.mob_biotypes & MOB_ROBOTIC)) + our_guy.spray_blood(our_guy.dir, 2) // The before mentioned coughing up blood + our_guy.emote("cough") + our_guy.visible_message( + span_danger("[our_guy] suddenly snaps back from [our_guy.p_their()] inhuman speeds, coughing up a spray of blood!"), + span_danger("As you snap back to normal speed you cough up a worrying amount of blood. You feel like you've just been run over by a power loader.") + ) + else + our_guy.visible_message( + span_danger("[our_guy] suddenly snaps back from [our_guy.p_their()] inhuman speeds!"), + span_danger("You suddenly snap back to normal speeds. You feel like you've just been run over by a power loader.") + ) + our_guy.stamina.adjust(-constant_dose_time) + if(!HAS_TRAIT(our_guy, TRAIT_TWITCH_ADAPTED)) + our_guy.adjustOrganLoss(ORGAN_SLOT_HEART, 0.3 * constant_dose_time) // Basically you might die + + if(!our_guy.hud_used) + return + + var/atom/movable/plane_master_controller/game_plane_master_controller = our_guy.hud_used.plane_master_controllers[PLANE_MASTERS_GAME] + + game_plane_master_controller.remove_filter(TWITCH_SCREEN_FILTER) + game_plane_master_controller.remove_filter(TWITCH_SCREEN_BLUR) + + +/// Leaves an afterimage behind the mob when they move +/datum/reagent/drug/twitch/proc/on_movement(mob/living/carbon/our_guy, atom/old_loc) + SIGNAL_HANDLER + new /obj/effect/temp_visual/decoy/twitch_afterimage(old_loc, our_guy) + + +/// Tries to dodge incoming bullets if we aren't disabled for any reasons +/datum/reagent/drug/twitch/proc/dodge_bullets(mob/living/carbon/human/source, obj/projectile/hitting_projectile, def_zone) + SIGNAL_HANDLER + + if(HAS_TRAIT(source, TRAIT_INCAPACITATED)) + return NONE + source.visible_message( + span_danger("[source] effortlessly dodges [hitting_projectile]!"), + span_userdanger("You effortlessly evade [hitting_projectile]!"), + ) + playsound(source, pick('sound/weapons/bulletflyby.ogg', 'sound/weapons/bulletflyby2.ogg', 'sound/weapons/bulletflyby3.ogg'), 75, TRUE) + source.add_filter(TWITCH_BLUR_EFFECT, 2, gauss_blur_filter(5)) + addtimer(CALLBACK(source, TYPE_PROC_REF(/datum, remove_filter), TWITCH_BLUR_EFFECT), 0.5 SECONDS) + return COMPONENT_BULLET_PIERCED + + +/datum/reagent/drug/twitch/on_mob_life(mob/living/carbon/our_guy, seconds_per_tick, times_fired) + . = ..() + + constant_dose_time += seconds_per_tick + + // If the target is a robot, or has muscle veins, then they get an effect similar to herignis, heating them up quite a bit + if((our_guy.mob_biotypes & MOB_ROBOTIC) || HAS_TRAIT(our_guy, TRAIT_STABLEHEART)) + var/heating = mob_heating_muliplier * creation_purity * REM * seconds_per_tick + our_guy.reagents?.chem_temp += heating + our_guy.adjust_bodytemperature(heating * TEMPERATURE_DAMAGE_COEFFICIENT) + if(!ishuman(our_guy)) + return + var/mob/living/carbon/human/human = our_guy + human.adjust_coretemperature(heating * TEMPERATURE_DAMAGE_COEFFICIENT) + else + our_guy.adjustOrganLoss(ORGAN_SLOT_HEART, 0.1 * REM * seconds_per_tick) + + if(locate(/datum/reagent/drug/kronkaine) in our_guy.reagents.reagent_list) // Kronkaine, another heart-straining drug, could cause problems if mixed with this + our_guy.infect_disease_predefined(DISEASE_TRAUMA, TRUE, "[ROUND_TIME()] Infected From Krokaine") + + +/datum/reagent/drug/twitch/overdose_start(mob/living/our_guy) + . = ..() + + RegisterSignal(our_guy, COMSIG_ATOM_PRE_BULLET_ACT, PROC_REF(dodge_bullets)) + + our_guy.next_move_modifier -= 0.2 // Overdosing makes you a liiitle faster but you know has some really bad consequences + + if(!our_guy.hud_used) + return + + var/atom/movable/plane_master_controller/game_plane_master_controller = our_guy.hud_used.plane_master_controllers[PLANE_MASTERS_GAME] + + var/list/col_filter_ourple = list(1,0,0,0, 0,0.5,0,0, 0,0,1,0, 0,0,0,1) + + for(var/filter in game_plane_master_controller.get_filters(TWITCH_SCREEN_FILTER)) + animate(filter, loop = -1, color = col_filter_ourple, time = 4 SECONDS, easing = BOUNCE_EASING) + + +/datum/reagent/drug/twitch/overdose_process(mob/living/carbon/our_guy, seconds_per_tick, times_fired) + . = ..() + our_guy.set_jitter_if_lower(10 SECONDS * REM * seconds_per_tick) + + // If the target is a robot, or has muscle veins, then they get an effect similar to herignis, heating them up quite a bit + if((our_guy.mob_biotypes & MOB_ROBOTIC) || HAS_TRAIT(our_guy, TRAIT_STABLEHEART)) + var/heating = (mob_heating_muliplier * 2) * creation_purity * REM * seconds_per_tick + our_guy.reagents?.chem_temp += heating + our_guy.adjust_bodytemperature(heating * TEMPERATURE_DAMAGE_COEFFICIENT) + if(!ishuman(our_guy)) + return + var/mob/living/carbon/human/human = our_guy + human.adjust_coretemperature(heating * TEMPERATURE_DAMAGE_COEFFICIENT) + else + our_guy.adjustOrganLoss(ORGAN_SLOT_HEART, 1 * REM * seconds_per_tick, required_organtype = affected_organtype) + our_guy.adjustToxLoss(1 * REM * seconds_per_tick, updating_health = FALSE, forced = TRUE, required_biotype = affected_biotype) + + if(SPT_PROB(5, seconds_per_tick) && !(our_guy.mob_biotypes & MOB_ROBOTIC)) + to_chat(our_guy, span_danger("You cough up a splatter of blood!")) + our_guy.spray_blood(our_guy.dir, 1) + our_guy.emote("cough") + + if(SPT_PROB(10, seconds_per_tick)) + our_guy.add_filter(TWITCH_OVERDOSE_BLUR_EFFECT, 2, phase_filter(8)) + addtimer(CALLBACK(our_guy, TYPE_PROC_REF(/datum, remove_filter), TWITCH_OVERDOSE_BLUR_EFFECT), 0.5 SECONDS) + +/// Changes heard message spans into that defined on the drug earlier +/datum/reagent/drug/twitch/proc/distort_hearing(datum/source, list/hearing_args) + SIGNAL_HANDLER + hearing_args[HEARING_RAW_MESSAGE] = "[hearing_args[HEARING_RAW_MESSAGE]]" + + +/// Cool filter that I'm using for some of this :))) +/proc/phase_filter(size) + . = list("type" = "wave") + .["x"] = 1 + if(!isnull(size)) + .["size"] = size + + +// Temp visual that changes color for that bootleg sandevistan effect +/obj/effect/temp_visual/decoy/twitch_afterimage + duration = 0.75 SECONDS + /// The color matrix it should be at spawn + var/list/matrix_start = list(1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1, 0,0.1,0.4,0) + /// The color matrix it should be by the time it despawns + var/list/matrix_end = list(1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1, 0,0.5,0,0) + +/obj/effect/temp_visual/decoy/twitch_afterimage/Initialize(mapload) + . = ..() + color = matrix_start + animate(src, color = matrix_end, time = duration, easing = EASE_OUT) + animate(src, alpha = 0, time = duration, easing = EASE_OUT) + +// Movespeed modifier used by twitch when someone has it in their system +/datum/movespeed_modifier/reagent/twitch + multiplicative_slowdown = -0.4 + +#undef TWITCH_SCREEN_FILTER +#undef TWITCH_SCREEN_BLUR + +#undef TWITCH_BLUR_EFFECT +#undef TWITCH_OVERDOSE_BLUR_EFFECT + +// a potent coolant that treats synthetic burns at decent efficiency. compared to hercuri its worse, but without +// the lethal side effects, opting for a movement speed decrease instead +/datum/reagent/dinitrogen_plasmide + name = "Dinitrogen Plasmide" + description = "A compound of nitrogen and stabilized plasma, this substance has the ability to flash-cool overheated metals \ + while avoiding excessive damage. Being a heavy compound, it has the effect of slowing anything that metabolizes it." + ph = 4.8 + specific_heat = SPECIFIC_HEAT_PLASMA * 1.2 + color = "#b779cc" + taste_description = "dull plasma" + chemical_flags = REAGENT_CAN_BE_SYNTHESIZED + process_flags = ORGANIC | SYNTHETIC + overdose_threshold = 60 // it takes a lot, if youre really messed up you CAN hit this but its unlikely + chemical_flags = REAGENT_CAN_BE_SYNTHESIZED + +/datum/reagent/dinitrogen_plasmide/on_mob_metabolize(mob/living/affected_mob) + . = ..() + + affected_mob.add_movespeed_modifier(/datum/movespeed_modifier/dinitrogen_plasmide) + to_chat(affected_mob, span_warning("Your joints suddenly feel stiff.")) + +/datum/reagent/dinitrogen_plasmide/on_mob_end_metabolize(mob/living/affected_mob) + . = ..() + + affected_mob.remove_movespeed_modifier(/datum/movespeed_modifier/dinitrogen_plasmide) + affected_mob.remove_movespeed_modifier(/datum/movespeed_modifier/dinitrogen_plasmide_overdose) + to_chat(affected_mob, span_warning("Your joints no longer feel stiff!")) + +/datum/reagent/dinitrogen_plasmide/overdose_start(mob/living/affected_mob) + . = ..() + + to_chat(affected_mob, span_danger("You feel like your joints are filling with some viscous fluid!")) + affected_mob.add_movespeed_modifier(/datum/movespeed_modifier/dinitrogen_plasmide_overdose) + +/datum/reagent/dinitrogen_plasmide/overdose_process(mob/living/affected_mob, seconds_per_tick, times_fired) + . = ..() + + holder.remove_reagent(type, 1.2 * seconds_per_tick) // decays + holder.add_reagent(/datum/reagent/stable_plasma, 0.4 * seconds_per_tick) + holder.add_reagent(/datum/reagent/nitrogen, 0.8 * seconds_per_tick) + +/datum/movespeed_modifier/dinitrogen_plasmide + multiplicative_slowdown = 0.3 + +/datum/movespeed_modifier/dinitrogen_plasmide_overdose + multiplicative_slowdown = 1.3 + +/datum/chemical_reaction/dinitrogen_plasmide_formation + results = list(/datum/reagent/dinitrogen_plasmide = 3) + required_reagents = list(/datum/reagent/stable_plasma = 1, /datum/reagent/nitrogen = 2) + required_catalysts = list(/datum/reagent/acetone = 0.1) + required_temp = 400 + optimal_temp = 550 + overheat_temp = 590 + + reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE | REACTION_TAG_HEALING + +/obj/item/reagent_containers/spray/dinitrogen_plasmide + name = "coolant spray" + desc = "A medical spray bottle. This one contains dinitrogen plasmide, a potent coolant commonly used to treat synthetic burns. \ + Has the side effect of causing movement slowdown." + icon = 'icons/obj/medical/chemical.dmi' + icon_state = "sprayer_med_yellow" + list_reagents = list(/datum/reagent/dinitrogen_plasmide = 100) diff --git a/monkestation/code/modules/blueshift/reagents/food_replicator.dm b/monkestation/code/modules/blueshift/reagents/food_replicator.dm new file mode 100644 index 000000000000..ab7ecd449d08 --- /dev/null +++ b/monkestation/code/modules/blueshift/reagents/food_replicator.dm @@ -0,0 +1,111 @@ +/datum/reagent/consumable/powdered_tea + name = "Powdered Tea" + description = "Tea in its powdered form. Tastes horribly." + color = "#3a3a03" + nutriment_factor = 0 + taste_description = "bitter powder" + chemical_flags = REAGENT_CAN_BE_SYNTHESIZED + default_container = /obj/item/reagent_containers/cup/glass/mug/tea + +/datum/chemical_reaction/food/unpowdered_tea + required_reagents = list( + /datum/reagent/water = 1, + /datum/reagent/consumable/powdered_tea = 1, + ) + results = list(/datum/reagent/consumable/tea = 2) + mix_message = "The mixture instantly heats up." + +/datum/reagent/consumable/powdered_coffee + name = "Powdered Coffee" + description = "Americano in its powdered form. Quite an ordinary thing to be honest." + color = "#101000" + nutriment_factor = 0 + taste_description = "very bitter powder" + chemical_flags = REAGENT_CAN_BE_SYNTHESIZED + default_container = /obj/item/reagent_containers/cup/glass/coffee + +/datum/chemical_reaction/food/unpowdered_coffee + required_reagents = list( + /datum/reagent/water = 1, + /datum/reagent/consumable/powdered_coffee = 1, + ) + results = list(/datum/reagent/consumable/coffee = 2) + mix_message = "The mixture instantly heats up." + +/datum/reagent/consumable/powdered_coco + name = "Powdered Coco" + description = "Made with love (citation needed), and reclaimed biomass." + nutriment_factor = 0 + color = "#403010" + taste_description = "dry chocolate" + chemical_flags = REAGENT_CAN_BE_SYNTHESIZED + default_container = /obj/item/reagent_containers/cup/glass/mug/coco + +/datum/chemical_reaction/food/unpowdered_coco + required_reagents = list( + /datum/reagent/consumable/milk = 1, + /datum/reagent/consumable/powdered_coco = 1, + ) + results = list(/datum/reagent/consumable/hot_coco = 2) + mix_message = "The mixture instantly heats up." + +/datum/reagent/consumable/powdered_lemonade + name = "Powdered Lemonade" + description = "Sweet, tangy base of a lemonade. Would be good if you'd mix it with water." + nutriment_factor = 0 + color = "#FFE978" + taste_description = "intensely sour and sweet lemon powder" + chemical_flags = REAGENT_CAN_BE_SYNTHESIZED + default_container = /obj/item/reagent_containers/cup/soda_cans/lemon_lime + +/datum/chemical_reaction/food/unpowdered_lemonade + required_reagents = list( + /datum/reagent/water = 1, + /datum/reagent/consumable/powdered_lemonade = 1, + ) + results = list(/datum/reagent/consumable/lemonade = 2) + mix_message = "The mixture instantly cools down." + +/datum/reagent/consumable/powdered_milk + name = "Powdered Milk" + description = "An opaque white powder produced by the biomass restructurizers of certain machines." + nutriment_factor = 0 + color = "#DFDFDF" + taste_description = "sweet dry milk" + chemical_flags = REAGENT_CAN_BE_SYNTHESIZED + default_container = /obj/item/reagent_containers/condiment/milk + +/datum/chemical_reaction/food/unpowdered_milk + required_reagents = list( + /datum/reagent/water = 1, + /datum/reagent/consumable/powdered_milk = 1, + ) + results = list(/datum/reagent/consumable/milk = 2) + mix_message = "The mixture cools down." + +/obj/item/reagent_containers/pill/convermol + name = "convermol pill" + desc = "Used to treat oxygen deprivation. Intoxicates the body." + icon_state = "pill16" + list_reagents = list(/datum/reagent/medicine/c2/convermol = 15) + rename_with_volume = TRUE + +/datum/reagent/consumable/nutriment/glucose + name = "Synthetic Glucose" + description = "A sticky yellow liquid, simple carbohydrate, allotrope of organic glucose. Gives your body a short-term energy boost." + nutriment_factor = 1 + color = "#f3d00d" + taste_description = "strong sweetness" + chemical_flags = REAGENT_CAN_BE_SYNTHESIZED + var/delayed_satiety_drain = 30 + +/datum/reagent/consumable/nutriment/glucose/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired) + if(affected_mob.satiety < MAX_SATIETY) + affected_mob.adjust_nutrition(15) + delayed_satiety_drain += 15 + + return ..() + +/datum/reagent/consumable/nutriment/glucose/on_mob_delete(mob/living/carbon/detoxed_mob) + detoxed_mob.adjust_nutrition(-delayed_satiety_drain) + return ..() diff --git a/monkestation/code/modules/blueshift/shuttles.dm b/monkestation/code/modules/blueshift/shuttles.dm new file mode 100644 index 000000000000..d9535e63d4c3 --- /dev/null +++ b/monkestation/code/modules/blueshift/shuttles.dm @@ -0,0 +1,35 @@ +/datum/map_template/shuttle/cargo/nova + name = "Supply Shuttle (Cargo)" + prefix = "_maps/shuttles/nova/" + port_id = "cargo" + suffix = "nova" + +/datum/map_template/shuttle/ferry/nova + name = "NAV Monarch (Ferry)" + prefix = "_maps/shuttles/nova/" + port_id = "ferry" + suffix = "nova" + who_can_purchase = null + +/datum/map_template/shuttle/emergency/nova + name = "Standard Emergency Shuttle" + description = "Nanotrasen's standard issue emergency shuttle." + prefix = "_maps/shuttles/nova/" + suffix = "nova" + + +/datum/map_template/shuttle/arrival/nova + name = "Blueshift Arrival" + description = "Nanotrasen's standard issue arrival shuttle." + prefix = "_maps/shuttles/nova/" + suffix = "nova" + +/datum/map_template/shuttle/labour/nova + name = "NMC Drudge (Labour)" + prefix = "_maps/shuttles/nova/" + suffix = "nova" + +/datum/map_template/shuttle/mining_common/nova + name = "NMC Chimera (Mining)" + prefix = "_maps/shuttles/nova/" + suffix = "nova" diff --git a/monkestation/code/modules/blueshift/sounds/MachineDeath.ogg b/monkestation/code/modules/blueshift/sounds/MachineDeath.ogg new file mode 100644 index 000000000000..e891312be680 Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/MachineDeath.ogg differ diff --git a/monkestation/code/modules/blueshift/sounds/alien_hiss.ogg b/monkestation/code/modules/blueshift/sounds/alien_hiss.ogg new file mode 100644 index 000000000000..f29323687b08 Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/alien_hiss.ogg differ diff --git a/monkestation/code/modules/blueshift/sounds/alien_queen_screech.ogg b/monkestation/code/modules/blueshift/sounds/alien_queen_screech.ogg new file mode 100644 index 000000000000..8b99aebe9631 Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/alien_queen_screech.ogg differ diff --git a/monkestation/code/modules/blueshift/sounds/alien_roar1.ogg b/monkestation/code/modules/blueshift/sounds/alien_roar1.ogg new file mode 100644 index 000000000000..302ebf810435 Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/alien_roar1.ogg differ diff --git a/monkestation/code/modules/blueshift/sounds/alien_roar2.ogg b/monkestation/code/modules/blueshift/sounds/alien_roar2.ogg new file mode 100644 index 000000000000..4f96d740c0fe Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/alien_roar2.ogg differ diff --git a/monkestation/code/modules/blueshift/sounds/alien_spitacid.ogg b/monkestation/code/modules/blueshift/sounds/alien_spitacid.ogg new file mode 100644 index 000000000000..b4aa578b171f Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/alien_spitacid.ogg differ diff --git a/monkestation/code/modules/blueshift/sounds/alien_spitacid2.ogg b/monkestation/code/modules/blueshift/sounds/alien_spitacid2.ogg new file mode 100644 index 000000000000..243d1aa1744c Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/alien_spitacid2.ogg differ diff --git a/monkestation/code/modules/blueshift/sounds/alien_tail_swipe.ogg b/monkestation/code/modules/blueshift/sounds/alien_tail_swipe.ogg new file mode 100644 index 000000000000..5705cf90518a Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/alien_tail_swipe.ogg differ diff --git a/monkestation/code/modules/blueshift/sounds/amr_fire.ogg b/monkestation/code/modules/blueshift/sounds/amr_fire.ogg new file mode 100644 index 000000000000..a69b554b6119 Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/amr_fire.ogg differ diff --git a/monkestation/code/modules/blueshift/sounds/arc_furnace/arc_furnace_mid_1.wav b/monkestation/code/modules/blueshift/sounds/arc_furnace/arc_furnace_mid_1.wav new file mode 100644 index 000000000000..b26fa32ed9da Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/arc_furnace/arc_furnace_mid_1.wav differ diff --git a/monkestation/code/modules/blueshift/sounds/arc_furnace/arc_furnace_mid_2.wav b/monkestation/code/modules/blueshift/sounds/arc_furnace/arc_furnace_mid_2.wav new file mode 100644 index 000000000000..8b30d09b81e6 Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/arc_furnace/arc_furnace_mid_2.wav differ diff --git a/monkestation/code/modules/blueshift/sounds/arc_furnace/arc_furnace_mid_3.wav b/monkestation/code/modules/blueshift/sounds/arc_furnace/arc_furnace_mid_3.wav new file mode 100644 index 000000000000..71621213d795 Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/arc_furnace/arc_furnace_mid_3.wav differ diff --git a/monkestation/code/modules/blueshift/sounds/arc_furnace/arc_furnace_mid_4.wav b/monkestation/code/modules/blueshift/sounds/arc_furnace/arc_furnace_mid_4.wav new file mode 100644 index 000000000000..95f9dc385e53 Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/arc_furnace/arc_furnace_mid_4.wav differ diff --git a/monkestation/code/modules/blueshift/sounds/arc_welder/arc_welder.ogg b/monkestation/code/modules/blueshift/sounds/arc_welder/arc_welder.ogg new file mode 100644 index 000000000000..8c76738f0f47 Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/arc_welder/arc_welder.ogg differ diff --git a/monkestation/code/modules/blueshift/sounds/attributions.txt b/monkestation/code/modules/blueshift/sounds/attributions.txt new file mode 100644 index 000000000000..be436734b0a2 --- /dev/null +++ b/monkestation/code/modules/blueshift/sounds/attributions.txt @@ -0,0 +1,16 @@ +The following sounds have been recorded, edited and added by Paxilmaniac: + +modular_nova/modules/colony_fabricator/sound/arc_furnace/arc_furnace_mid_(1 - 4).wav +modular_nova/modules/colony_fabricator/sound/fabricator/fabricator_mid_(1 - 4).wav +modular_nova/modules/colony_fabricator/sound/fabricator/fabricator_end.wav +modular_nova/modules/colony_fabricator/sound/fabricator/fabricator_start.wav + +The following sounds are from https://pixabay.com/sound-effects/wall-air-conditioner-43901/ + +modular_nova/modules/colony_fabricator/sound/conditioner/conditioner_(1 - 4).wav + +The following sounds are from https://pixabay.com/sound-effects/welder-3-54547/ + +modular_nova/modules/colony_fabricator/sound/arc_welder/arc_welder.ogg + +The sounds at modular_skyrat/modules/colony_fabriactor_event_code/sound/manual_door are from https://pixabay.com/sound-effects/schlonk-107321/ diff --git a/monkestation/code/modules/blueshift/sounds/battle_rifle.ogg b/monkestation/code/modules/blueshift/sounds/battle_rifle.ogg new file mode 100644 index 000000000000..ee607980d494 Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/battle_rifle.ogg differ diff --git a/monkestation/code/modules/blueshift/sounds/burn.ogg b/monkestation/code/modules/blueshift/sounds/burn.ogg new file mode 100644 index 000000000000..ea37d14ccc12 Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/burn.ogg differ diff --git a/monkestation/code/modules/blueshift/sounds/clock_ticking.ogg b/monkestation/code/modules/blueshift/sounds/clock_ticking.ogg new file mode 100644 index 000000000000..a94aad245bef Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/clock_ticking.ogg differ diff --git a/monkestation/code/modules/blueshift/sounds/conditioner/conditioner_1.wav b/monkestation/code/modules/blueshift/sounds/conditioner/conditioner_1.wav new file mode 100644 index 000000000000..e014af99119f Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/conditioner/conditioner_1.wav differ diff --git a/monkestation/code/modules/blueshift/sounds/conditioner/conditioner_2.wav b/monkestation/code/modules/blueshift/sounds/conditioner/conditioner_2.wav new file mode 100644 index 000000000000..a99f8a939ada Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/conditioner/conditioner_2.wav differ diff --git a/monkestation/code/modules/blueshift/sounds/conditioner/conditioner_3.wav b/monkestation/code/modules/blueshift/sounds/conditioner/conditioner_3.wav new file mode 100644 index 000000000000..1f798b05a2da Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/conditioner/conditioner_3.wav differ diff --git a/monkestation/code/modules/blueshift/sounds/conditioner/conditioner_4.wav b/monkestation/code/modules/blueshift/sounds/conditioner/conditioner_4.wav new file mode 100644 index 000000000000..88f57ec4f00f Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/conditioner/conditioner_4.wav differ diff --git a/monkestation/code/modules/blueshift/sounds/default_bad.ogg b/monkestation/code/modules/blueshift/sounds/default_bad.ogg new file mode 100644 index 000000000000..d2c237acf3f3 Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/default_bad.ogg differ diff --git a/monkestation/code/modules/blueshift/sounds/default_click.ogg b/monkestation/code/modules/blueshift/sounds/default_click.ogg new file mode 100644 index 000000000000..4bb8db9f30f9 Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/default_click.ogg differ diff --git a/monkestation/code/modules/blueshift/sounds/default_good.ogg b/monkestation/code/modules/blueshift/sounds/default_good.ogg new file mode 100644 index 000000000000..e6365ba8db25 Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/default_good.ogg differ diff --git a/monkestation/code/modules/blueshift/sounds/drying.ogg b/monkestation/code/modules/blueshift/sounds/drying.ogg new file mode 100644 index 000000000000..0f977fb90ba9 Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/drying.ogg differ diff --git a/monkestation/code/modules/blueshift/sounds/fabricator/fabricator_end.wav b/monkestation/code/modules/blueshift/sounds/fabricator/fabricator_end.wav new file mode 100644 index 000000000000..90e16a116fb7 Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/fabricator/fabricator_end.wav differ diff --git a/monkestation/code/modules/blueshift/sounds/fabricator/fabricator_mid_1.wav b/monkestation/code/modules/blueshift/sounds/fabricator/fabricator_mid_1.wav new file mode 100644 index 000000000000..5a70874cda7a Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/fabricator/fabricator_mid_1.wav differ diff --git a/monkestation/code/modules/blueshift/sounds/fabricator/fabricator_mid_2.wav b/monkestation/code/modules/blueshift/sounds/fabricator/fabricator_mid_2.wav new file mode 100644 index 000000000000..a8ea099036c8 Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/fabricator/fabricator_mid_2.wav differ diff --git a/monkestation/code/modules/blueshift/sounds/fabricator/fabricator_mid_3.wav b/monkestation/code/modules/blueshift/sounds/fabricator/fabricator_mid_3.wav new file mode 100644 index 000000000000..b5d0a0117c5c Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/fabricator/fabricator_mid_3.wav differ diff --git a/monkestation/code/modules/blueshift/sounds/fabricator/fabricator_mid_4.wav b/monkestation/code/modules/blueshift/sounds/fabricator/fabricator_mid_4.wav new file mode 100644 index 000000000000..1700b0fc379b Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/fabricator/fabricator_mid_4.wav differ diff --git a/monkestation/code/modules/blueshift/sounds/fabricator/fabricator_start.wav b/monkestation/code/modules/blueshift/sounds/fabricator/fabricator_start.wav new file mode 100644 index 000000000000..673a9da8b41c Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/fabricator/fabricator_start.wav differ diff --git a/monkestation/code/modules/blueshift/sounds/flatline.ogg b/monkestation/code/modules/blueshift/sounds/flatline.ogg new file mode 100644 index 000000000000..93712b6da644 Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/flatline.ogg differ diff --git a/monkestation/code/modules/blueshift/sounds/forge.ogg b/monkestation/code/modules/blueshift/sounds/forge.ogg new file mode 100644 index 000000000000..8ade5b6485d0 Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/forge.ogg differ diff --git a/monkestation/code/modules/blueshift/sounds/grenade_burst.ogg b/monkestation/code/modules/blueshift/sounds/grenade_burst.ogg new file mode 100644 index 000000000000..d5a8562f45f5 Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/grenade_burst.ogg differ diff --git a/monkestation/code/modules/blueshift/sounds/grenade_launcher.ogg b/monkestation/code/modules/blueshift/sounds/grenade_launcher.ogg new file mode 100644 index 000000000000..5ddb76de7d06 Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/grenade_launcher.ogg differ diff --git a/monkestation/code/modules/blueshift/sounds/haircut.ogg b/monkestation/code/modules/blueshift/sounds/haircut.ogg new file mode 100644 index 000000000000..160bfc36941d Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/haircut.ogg differ diff --git a/monkestation/code/modules/blueshift/sounds/incinerate.ogg b/monkestation/code/modules/blueshift/sounds/incinerate.ogg new file mode 100644 index 000000000000..38f7846d7abc Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/incinerate.ogg differ diff --git a/monkestation/code/modules/blueshift/sounds/laser_firing/burn.ogg b/monkestation/code/modules/blueshift/sounds/laser_firing/burn.ogg new file mode 100644 index 000000000000..ea37d14ccc12 Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/laser_firing/burn.ogg differ diff --git a/monkestation/code/modules/blueshift/sounds/laser_firing/incinerate.ogg b/monkestation/code/modules/blueshift/sounds/laser_firing/incinerate.ogg new file mode 100644 index 000000000000..38f7846d7abc Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/laser_firing/incinerate.ogg differ diff --git a/monkestation/code/modules/blueshift/sounds/laser_firing/laser.ogg b/monkestation/code/modules/blueshift/sounds/laser_firing/laser.ogg new file mode 100644 index 000000000000..285f74416d93 Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/laser_firing/laser.ogg differ diff --git a/monkestation/code/modules/blueshift/sounds/laser_firing/melt.ogg b/monkestation/code/modules/blueshift/sounds/laser_firing/melt.ogg new file mode 100644 index 000000000000..45a847ad35f8 Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/laser_firing/melt.ogg differ diff --git a/monkestation/code/modules/blueshift/sounds/laser_firing/vaporize.ogg b/monkestation/code/modules/blueshift/sounds/laser_firing/vaporize.ogg new file mode 100644 index 000000000000..0ba308579733 Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/laser_firing/vaporize.ogg differ diff --git a/monkestation/code/modules/blueshift/sounds/manual_door/manual_door_close.wav b/monkestation/code/modules/blueshift/sounds/manual_door/manual_door_close.wav new file mode 100644 index 000000000000..a2f6ad300b0c Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/manual_door/manual_door_close.wav differ diff --git a/monkestation/code/modules/blueshift/sounds/manual_door/manual_door_open.wav b/monkestation/code/modules/blueshift/sounds/manual_door/manual_door_open.wav new file mode 100644 index 000000000000..431b3eb6ea01 Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/manual_door/manual_door_open.wav differ diff --git a/monkestation/code/modules/blueshift/sounds/morse_signal.wav b/monkestation/code/modules/blueshift/sounds/morse_signal.wav new file mode 100644 index 000000000000..2f0dd5682094 Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/morse_signal.wav differ diff --git a/monkestation/code/modules/blueshift/sounds/pistol_heavy.ogg b/monkestation/code/modules/blueshift/sounds/pistol_heavy.ogg new file mode 100644 index 000000000000..34e0412f823d Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/pistol_heavy.ogg differ diff --git a/monkestation/code/modules/blueshift/sounds/pistol_light.ogg b/monkestation/code/modules/blueshift/sounds/pistol_light.ogg new file mode 100644 index 000000000000..cd014f5eda8a Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/pistol_light.ogg differ diff --git a/monkestation/code/modules/blueshift/sounds/quest_succeeded.ogg b/monkestation/code/modules/blueshift/sounds/quest_succeeded.ogg new file mode 100644 index 000000000000..f27893c6c432 Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/quest_succeeded.ogg differ diff --git a/monkestation/code/modules/blueshift/sounds/revolver_fire.ogg b/monkestation/code/modules/blueshift/sounds/revolver_fire.ogg new file mode 100644 index 000000000000..91e480bd152a Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/revolver_fire.ogg differ diff --git a/monkestation/code/modules/blueshift/sounds/revolver_heavy.ogg b/monkestation/code/modules/blueshift/sounds/revolver_heavy.ogg new file mode 100644 index 000000000000..d02d1c750c24 Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/revolver_heavy.ogg differ diff --git a/monkestation/code/modules/blueshift/sounds/rifle_heavy.ogg b/monkestation/code/modules/blueshift/sounds/rifle_heavy.ogg new file mode 100644 index 000000000000..3ad9d60c9013 Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/rifle_heavy.ogg differ diff --git a/monkestation/code/modules/blueshift/sounds/shotgun_heavy.ogg b/monkestation/code/modules/blueshift/sounds/shotgun_heavy.ogg new file mode 100644 index 000000000000..2de9e77bf085 Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/shotgun_heavy.ogg differ diff --git a/monkestation/code/modules/blueshift/sounds/shotgun_rack.ogg b/monkestation/code/modules/blueshift/sounds/shotgun_rack.ogg new file mode 100644 index 000000000000..2d68a21e5df1 Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/shotgun_rack.ogg differ diff --git a/monkestation/code/modules/blueshift/sounds/smg_heavy.ogg b/monkestation/code/modules/blueshift/sounds/smg_heavy.ogg new file mode 100644 index 000000000000..77a11a524a78 Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/smg_heavy.ogg differ diff --git a/monkestation/code/modules/blueshift/sounds/smg_light.ogg b/monkestation/code/modules/blueshift/sounds/smg_light.ogg new file mode 100644 index 000000000000..d34cb9440ca4 Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/smg_light.ogg differ diff --git a/monkestation/code/modules/blueshift/sounds/suppressed_heavy.ogg b/monkestation/code/modules/blueshift/sounds/suppressed_heavy.ogg new file mode 100644 index 000000000000..b7b721b76665 Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/suppressed_heavy.ogg differ diff --git a/monkestation/code/modules/blueshift/sounds/suppressed_rifle.ogg b/monkestation/code/modules/blueshift/sounds/suppressed_rifle.ogg new file mode 100644 index 000000000000..06aba901c064 Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/suppressed_rifle.ogg differ diff --git a/monkestation/code/modules/blueshift/sounds/thumper_fan/fan_end.wav b/monkestation/code/modules/blueshift/sounds/thumper_fan/fan_end.wav new file mode 100644 index 000000000000..f89e8d20ff9d Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/thumper_fan/fan_end.wav differ diff --git a/monkestation/code/modules/blueshift/sounds/thumper_fan/fan_mid_1.wav b/monkestation/code/modules/blueshift/sounds/thumper_fan/fan_mid_1.wav new file mode 100644 index 000000000000..96582d0ce32c Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/thumper_fan/fan_mid_1.wav differ diff --git a/monkestation/code/modules/blueshift/sounds/thumper_fan/fan_mid_2.wav b/monkestation/code/modules/blueshift/sounds/thumper_fan/fan_mid_2.wav new file mode 100644 index 000000000000..e1656ec08ef8 Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/thumper_fan/fan_mid_2.wav differ diff --git a/monkestation/code/modules/blueshift/sounds/thumper_fan/fan_mid_3.wav b/monkestation/code/modules/blueshift/sounds/thumper_fan/fan_mid_3.wav new file mode 100644 index 000000000000..7d7275b5bea1 Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/thumper_fan/fan_mid_3.wav differ diff --git a/monkestation/code/modules/blueshift/sounds/thumper_fan/fan_mid_4.wav b/monkestation/code/modules/blueshift/sounds/thumper_fan/fan_mid_4.wav new file mode 100644 index 000000000000..7298e4eddca9 Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/thumper_fan/fan_mid_4.wav differ diff --git a/monkestation/code/modules/blueshift/sounds/thumper_fan/fan_start.wav b/monkestation/code/modules/blueshift/sounds/thumper_fan/fan_start.wav new file mode 100644 index 000000000000..c3e95ad1e8ba Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/thumper_fan/fan_start.wav differ diff --git a/monkestation/code/modules/blueshift/sounds/thumper_thump/punch_press_1.wav b/monkestation/code/modules/blueshift/sounds/thumper_thump/punch_press_1.wav new file mode 100644 index 000000000000..513bb1f8f192 Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/thumper_thump/punch_press_1.wav differ diff --git a/monkestation/code/modules/blueshift/sounds/thumper_thump/punch_press_2.wav b/monkestation/code/modules/blueshift/sounds/thumper_thump/punch_press_2.wav new file mode 100644 index 000000000000..c4d259839b3e Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/thumper_thump/punch_press_2.wav differ diff --git a/monkestation/code/modules/blueshift/sounds/weapons/bloodyslice.ogg b/monkestation/code/modules/blueshift/sounds/weapons/bloodyslice.ogg new file mode 100644 index 000000000000..8b2cb728939b Binary files /dev/null and b/monkestation/code/modules/blueshift/sounds/weapons/bloodyslice.ogg differ diff --git a/monkestation/code/modules/blueshift/spawners/armory.dm b/monkestation/code/modules/blueshift/spawners/armory.dm new file mode 100644 index 000000000000..d4e777da1604 --- /dev/null +++ b/monkestation/code/modules/blueshift/spawners/armory.dm @@ -0,0 +1,169 @@ +/obj/effect/spawner/random/armory + name = "generic armory spawner" + spawn_loot_split = TRUE + spawn_loot_count = 3 + spawn_loot_split_pixel_offsets = 4 + +// Misc armory stuff +/obj/effect/spawner/random/armory/barrier_grenades + name = "barrier grenade spawner" + icon_state = "barrier_grenade" + loot = list(/obj/item/grenade/barrier) + +/obj/effect/spawner/random/armory/barrier_grenades/six + name = "six barrier grenade spawner" + spawn_loot_count = 6 + +/obj/effect/spawner/random/armory/riot_shield + name = "riot shield spawner" + icon_state = "riot_shield" + loot = list(/obj/item/shield/riot) + +/obj/effect/spawner/random/armory/rubbershot + name = "rubbershot spawner" + icon_state = "rubbershot" + loot = list(/obj/item/storage/box/rubbershot) + +// Weapons +/obj/effect/spawner/random/armory/disablers + name = "disabler spawner" + icon_state = "disabler" + loot = list(/obj/item/gun/energy/disabler) + +/obj/effect/spawner/random/armory/laser_gun + name = "laser gun spawner" + icon_state = "laser_gun" + loot = list(/obj/item/gun/energy/laser) + +/obj/effect/spawner/random/armory/e_gun + name = "energy gun spawner" + icon_state = "e_gun" + loot = list(/obj/item/gun/energy/e_gun) + +/obj/effect/spawner/random/armory/shotgun + name = "shotgun spawner" + icon_state = "shotgun" + loot = list(/obj/item/gun/ballistic/shotgun/riot) + +// Armor +/obj/effect/spawner/random/armory/bulletproof_helmet + name = "bulletproof helmet spawner" + icon_state = "armor_helmet" + loot = list(/obj/item/clothing/head/helmet/alt) + +/obj/effect/spawner/random/armory/riot_helmet + name = "riot helmet spawner" + icon_state = "riot_helmet" + loot = list(/obj/item/clothing/head/helmet/toggleable/riot) + +/obj/effect/spawner/random/armory/bulletproof_armor + name = "bulletproof armor spawner" + icon_state = "bulletproof_armor" + loot = list(/obj/item/clothing/suit/armor/bulletproof) + +/obj/effect/spawner/random/armory/riot_armor + name = "riot armor spawner" + icon_state = "riot_armor" + loot = list(/obj/item/clothing/suit/armor/riot) + +/obj/effect/spawner/armory_spawn + icon_state = "loot" + icon = 'icons/effects/random_spawners.dmi' + + layer = OBJ_LAYER + /// A list of possible guns to spawn. + var/list/guns + /// Do we fan out the items spawned for a natural effect? + var/fan_out_items = FALSE + /// How many mags per gun do we spawn, if it takes magazines. + var/mags_to_spawn = 3 + /// Do we want to angle it so that it is horizontal? + var/vertical_guns = TRUE + + +/obj/effect/spawner/armory_spawn/Initialize(mapload) + . = ..() + + if(guns) + var/gun_count = 0 + var/offset_percent = 20 / guns.len + for(var/gun in guns) // 11/20/21: Gun spawners now spawn 1 of each gun in it's list no matter what, so as to reduce the RNG of the armory stock. + var/obj/item/gun/spawned_gun = new gun(loc) + + if(vertical_guns) + spawned_gun.place_on_rack() + spawned_gun.pixel_x = -10 + (offset_percent * gun_count) + else if (fan_out_items) + spawned_gun.pixel_x = spawned_gun.pixel_y = ((!(gun_count%2)*gun_count/2)*-1)+((gun_count%2)*(gun_count+1)/2*1) + + gun_count++ + +/obj/effect/spawner/armory_spawn/shotguns + guns = list( + /obj/item/gun/ballistic/shotgun/riot/sol, + /obj/item/gun/ballistic/shotgun/riot/sol, + /obj/item/gun/ballistic/shotgun/riot/sol, + ) + +/obj/structure/closet/ammunitionlocker/useful/PopulateContents() + new /obj/item/storage/box/rubbershot(src) + new /obj/item/storage/box/rubbershot(src) + new /obj/item/storage/box/rubbershot(src) + new /obj/item/storage/box/rubbershot(src) + +/* +* AMMO BOXES +*/ + +/obj/effect/spawner/armory_spawn/centcom_rifles + guns = list( + /obj/item/gun/ballistic/automatic/sol_rifle, + /obj/item/gun/ballistic/automatic/sol_rifle, + /obj/item/gun/ballistic/automatic/sol_rifle/machinegun, + ) + +/obj/effect/spawner/armory_spawn/centcom_lasers + guns = list( + /obj/item/gun/energy/laser, + /obj/item/gun/energy/laser, + /obj/item/gun/energy/e_gun, + ) + +/obj/effect/spawner/armory_spawn/smg + vertical_guns = FALSE + guns = list( + /obj/item/storage/toolbox/guncase/skyrat/carwo_large_case/sindano, + /obj/item/storage/toolbox/guncase/skyrat/carwo_large_case/sindano, + /obj/item/storage/toolbox/guncase/skyrat/carwo_large_case/sindano, + ) + +/obj/effect/spawner/random/sakhno + name = "sakhno rifle spawner" + desc = "Mosin? Never heard of her!" + icon_state = "pistol" + loot = list( + /obj/item/gun/ballistic/rifle/boltaction/surplus = 80, + /obj/item/gun/ballistic/rifle/boltaction = 10, + /obj/item/food/rationpack = 1, + ) +/obj/effect/spawner/random/sakhno/ammo + name = ".310 Strilka stripper clip spawner" + loot = list( + /obj/item/ammo_box/strilka310/surplus = 80, + /obj/item/ammo_box/strilka310 = 10, + /obj/item/food/rationpack = 1, + ) + +/obj/effect/spawner/armory_spawn/mod_lasers_big + guns = list( + /obj/item/gun/energy/modular_laser_rifle, + /obj/item/gun/energy/modular_laser_rifle, + /obj/item/gun/energy/modular_laser_rifle, + ) + +/obj/effect/spawner/armory_spawn/mod_lasers_small + guns = list( + /obj/item/gun/energy/modular_laser_rifle/carbine, + /obj/item/gun/energy/modular_laser_rifle/carbine, + /obj/item/gun/energy/modular_laser_rifle/carbine, + ) diff --git a/monkestation/code/modules/blueshift/spawners/bedsheets.dm b/monkestation/code/modules/blueshift/spawners/bedsheets.dm new file mode 100644 index 000000000000..8d07a7d6ec1a --- /dev/null +++ b/monkestation/code/modules/blueshift/spawners/bedsheets.dm @@ -0,0 +1,64 @@ +///Used by bedsheets spawners to tell if it's a single or double bedsheet. +#define BEDSHEET_SINGLE "single" +#define BEDSHEET_DOUBLE "double" + +/obj/effect/spawner/random/bedsheet + name = "random dorm bedsheet" + icon_state = "random_bedsheet" + loot = list(/obj/item/bedsheet = 8, + /obj/item/bedsheet/blue = 8, + /obj/item/bedsheet/green = 8, + /obj/item/bedsheet/grey = 8, + /obj/item/bedsheet/orange = 8, + /obj/item/bedsheet/purple = 8, + /obj/item/bedsheet/red = 8, + /obj/item/bedsheet/yellow = 8, + /obj/item/bedsheet/brown = 8, + /obj/item/bedsheet/black = 8, + /obj/item/bedsheet/patriot = 2, + /obj/item/bedsheet/rainbow = 2, + /obj/item/bedsheet/ian = 2, + /obj/item/bedsheet/cosmos = 2, + /obj/item/bedsheet/nanotrasen = 2, + ) + +/obj/effect/spawner/random/bedsheet/double + name = "random dorm double bedsheet" + icon_state = "random_doublesheet" + loot = list( + /obj/item/bedsheet/double = 4, + /obj/item/bedsheet/blue/double = 4, + /obj/item/bedsheet/green/double = 4, + /obj/item/bedsheet/grey/double = 4, + /obj/item/bedsheet/orange/double = 4, + /obj/item/bedsheet/purple/double = 4, + /obj/item/bedsheet/red/double = 4, + /obj/item/bedsheet/yellow/double = 4, + /obj/item/bedsheet/brown/double = 4, + /obj/item/bedsheet/black/double = 4, + /obj/item/bedsheet/patriot/double = 1, + /obj/item/bedsheet/rainbow/double = 1, + /obj/item/bedsheet/ian/double = 1, + /obj/item/bedsheet/cosmos/double = 1, + /obj/item/bedsheet/nanotrasen/double = 1, + ) + +/obj/effect/spawner/random/bedsheet/any + name = "random single bedsheet" + loot = null + var/static/list/bedsheet_list = list() + var/spawn_type = BEDSHEET_SINGLE + +/obj/effect/spawner/random/bedsheet/any/Initialize(mapload) + if(isnull(bedsheet_list[spawn_type])) + var/list/spawn_list = list() + for(var/obj/item/bedsheet/sheet as anything in typesof(/obj/item/bedsheet)) + if(initial(sheet.bedsheet_type) == spawn_type) + spawn_list += sheet + bedsheet_list[spawn_type] = spawn_list + loot = bedsheet_list[spawn_type] + return ..() + +/obj/effect/spawner/random/bedsheet/any/double + icon_state = "random_doublesheet" + spawn_type = BEDSHEET_DOUBLE diff --git a/monkestation/code/modules/blueshift/species/ashwalker.dm b/monkestation/code/modules/blueshift/species/ashwalker.dm new file mode 100644 index 000000000000..e897dbb54164 --- /dev/null +++ b/monkestation/code/modules/blueshift/species/ashwalker.dm @@ -0,0 +1,190 @@ +/datum/language_holder/ashwalker + understood_languages = list(/datum/language/draconic = list(LANGUAGE_ATOM), + /datum/language/ashtongue = list(LANGUAGE_ATOM)) + spoken_languages = list(/datum/language/draconic = list(LANGUAGE_ATOM), + /datum/language/ashtongue = list(LANGUAGE_ATOM)) +/datum/species/lizard/ashwalker + mutanteyes = /obj/item/organ/internal/eyes/night_vision/ashwalker + bodypart_overrides = list( + BODY_ZONE_HEAD = /obj/item/bodypart/head/lizard/ashwalker, + BODY_ZONE_CHEST = /obj/item/bodypart/chest/lizard/ashwalker, + BODY_ZONE_L_ARM = /obj/item/bodypart/arm/left/lizard/ashwalker, + BODY_ZONE_R_ARM = /obj/item/bodypart/arm/right/lizard/ashwalker, + BODY_ZONE_L_LEG = /obj/item/bodypart/leg/left/lizard/ashwalker, + BODY_ZONE_R_LEG = /obj/item/bodypart/leg/right/lizard/ashwalker, + ) + species_language_holder = /datum/language_holder/ashwalker + +/datum/species/lizard/ashwalker/on_species_gain(mob/living/carbon/carbon_target, datum/species/old_species) + . = ..() + RegisterSignal(carbon_target, COMSIG_MOB_ITEM_ATTACK, PROC_REF(mob_attack)) + carbon_target.AddComponent(/datum/component/ash_age) + carbon_target.faction |= FACTION_ASHWALKER + +/datum/species/lizard/ashwalker/on_species_loss(mob/living/carbon/carbon_target) + . = ..() + UnregisterSignal(carbon_target, COMSIG_MOB_ITEM_ATTACK) + carbon_target.faction &= FACTION_ASHWALKER + +/datum/species/lizard/ashwalker/proc/mob_attack(datum/source, mob/mob_target, mob/user) + SIGNAL_HANDLER + + if(!isliving(mob_target)) + return + var/mob/living/living_target = mob_target + var/datum/status_effect/ashwalker_damage/ashie_damage = living_target.has_status_effect(/datum/status_effect/ashwalker_damage) + if(!ashie_damage) + ashie_damage = living_target.apply_status_effect(/datum/status_effect/ashwalker_damage) + ashie_damage.register_mob_damage(living_target) + +/** + * 20 minutes = ash storm immunity + * 40 minutes = armor + * 60 minutes = base punch + * 80 minutes = lavaproof + * 100 minutes = firebreath + */ + +/datum/component/ash_age + /// the amount of minutes after each upgrade + var/stage_time = 20 MINUTES + /// the current stage of the ash + var/current_stage = 0 + /// the time when upgraded/attached + var/evo_time = 0 + /// the human target the element is attached to + var/mob/living/carbon/human/human_target + +/datum/component/ash_age/Initialize() + if(!ishuman(parent)) + return COMPONENT_INCOMPATIBLE + // set the target for the element so we can reference in other parts + human_target = parent + // set the time that it was attached then we will compare current world time versus the evo_time plus stage_time + evo_time = world.time + // when the rune successfully completes the age ritual, it will send the signal... do the proc when we receive the signal + RegisterSignal(human_target, COMSIG_RUNE_EVOLUTION, PROC_REF(check_evolution)) + RegisterSignal(human_target, COMSIG_ATOM_EXAMINE, PROC_REF(on_examine)) + +/datum/component/ash_age/proc/check_evolution() + SIGNAL_HANDLER + // if the world time hasn't yet passed the time required for evolution + if(world.time < (evo_time + stage_time)) + to_chat(human_target, span_warning("More time is necessary to evolve-- twenty minutes between each evolution...")) + return + // since it was time, go up a stage and now we check what to add + current_stage++ + // since we went up a stage, we need to update the evo_time for the next comparison + evo_time = world.time + var/datum/species/species_target = human_target.dna.species + switch(current_stage) + if(1) + ADD_TRAIT(human_target, TRAIT_ASHSTORM_IMMUNE, REF(src)) + to_chat(human_target, span_notice("The biting wind seems to sting less...")) + if(2) + species_target.damage_modifier += 10 + to_chat(human_target, span_notice("Your body seems to be sturdier...")) + if(3) + var/obj/item/bodypart/arm/left/left_arm = human_target.get_bodypart(BODY_ZONE_L_ARM) + if(left_arm) + left_arm.unarmed_damage_low += 5 + left_arm.unarmed_damage_high += 5 + + var/obj/item/bodypart/arm/right/right_arm = human_target.get_bodypart(BODY_ZONE_R_ARM) + if(right_arm) + right_arm.unarmed_damage_low += 5 + right_arm.unarmed_damage_high += 5 + + to_chat(human_target, span_notice("Your arms seem denser...")) + if(4) + ADD_TRAIT(human_target, TRAIT_LAVA_IMMUNE, REF(src)) + to_chat(human_target, span_notice("Your body feels hotter...")) + if(5) + var/datum/action/cooldown/mob_cooldown/fire_breath/granted_action + granted_action = new(human_target) + granted_action.Grant(human_target) + to_chat(human_target, span_notice("Your throat feels larger...")) + if(6 to INFINITY) + to_chat(human_target, span_warning("You have already reached the pinnacle of your current body!")) + + +/datum/component/ash_age/proc/on_examine(atom/target_atom, mob/user, list/examine_list) + SIGNAL_HANDLER + if(world.time < (evo_time + stage_time)) + examine_list += span_notice("[human_target] has not yet reached the age for evolving.") + return + examine_list += span_warning("[human_target] has reached the age for evolving!") + +/datum/status_effect/ashwalker_damage //tracks the damage dealt to this mob by ashwalkers + id = "ashwalker_damage" + duration = -1 + tick_interval = -1 + status_type = STATUS_EFFECT_UNIQUE + alert_type = null + /// How much damage has been dealt to the mob + var/total_damage = 0 + +/datum/status_effect/ashwalker_damage/proc/register_mob_damage(mob/living/target) + RegisterSignal(target, COMSIG_MOB_APPLY_DAMAGE, PROC_REF(calculate_total)) + +/datum/status_effect/ashwalker_damage/proc/calculate_total(datum/source, damage, damagetype, def_zone) + SIGNAL_HANDLER + + if(!QDELETED(src)) + total_damage += damage + UnregisterSignal(source, COMSIG_MOB_APPLY_DAMAGE) + +#define ASHWALKER_BRUTE_MODIFIER 0.8 +#define ASHWALKER_BURN_MODIFIER 0.9 + +/obj/item/bodypart/head/lizard/ashwalker + brute_modifier = ASHWALKER_BRUTE_MODIFIER + burn_modifier = ASHWALKER_BURN_MODIFIER + +/obj/item/bodypart/chest/lizard/ashwalker + brute_modifier = ASHWALKER_BRUTE_MODIFIER + burn_modifier = ASHWALKER_BURN_MODIFIER + +/obj/item/bodypart/arm/left/lizard/ashwalker + brute_modifier = ASHWALKER_BRUTE_MODIFIER + burn_modifier = ASHWALKER_BURN_MODIFIER + +/obj/item/bodypart/arm/right/lizard/ashwalker + brute_modifier = ASHWALKER_BRUTE_MODIFIER + burn_modifier = ASHWALKER_BURN_MODIFIER + +/obj/item/bodypart/leg/left/lizard/ashwalker + brute_modifier = ASHWALKER_BRUTE_MODIFIER + burn_modifier = ASHWALKER_BURN_MODIFIER + +/obj/item/bodypart/leg/right/lizard/ashwalker + brute_modifier = ASHWALKER_BRUTE_MODIFIER + burn_modifier = ASHWALKER_BURN_MODIFIER + +#undef ASHWALKER_BRUTE_MODIFIER +#undef ASHWALKER_BURN_MODIFIER + +/datum/skill/primitive + name = "Primitive" + title = "Survivalist" + desc = "Even after society has collapsed and they are by themselves, they can survive till the bitter end." + modifiers = list( + SKILL_SPEED_MODIFIER = list(1, 0.85, 0.75, 0.60, 0.45, 0.35, 0.25), + SKILL_PROBS_MODIFIER = list(0, 5, 10, 20, 40, 80, 100) + ) + skill_item_path = /obj/item/clothing/neck/cloak/skill_reward/primitive + +/obj/item/clothing/neck/cloak/skill_reward/primitive + name = "legendary survivalist's cloak" + desc = "Those who wear this cloak take the responsibility that comes with it: that they may be last survivor of their race. \ + Society may change or crumble, yet those who wear this cloak will observe that destruction and carry their task." + icon = 'monkestation/code/modules/blueshift/icons/cloaks.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/neck.dmi' + icon_state = "primitivecloak" + associated_skill_path = /datum/skill/primitive + +/obj/item/organ/internal/eyes/night_vision/ashwalker + //give ashwalker darkvision a reddish-blue tint + low_light_cutoff = list(22, 12, 17) + medium_light_cutoff = list(33, 18, 26) + high_light_cutoff = list(75, 41, 61) diff --git a/monkestation/code/modules/blueshift/structures/adverts.dm b/monkestation/code/modules/blueshift/structures/adverts.dm new file mode 100644 index 000000000000..6fc0bca516c2 --- /dev/null +++ b/monkestation/code/modules/blueshift/structures/adverts.dm @@ -0,0 +1,78 @@ +/obj/structure/sign/poster/official/carwo_grenade + name = "Tydhouer - Precision Timing" + desc = "This poster depicts, alongside the prominent logo of Carwo Defense Systems, a variety of specialist .980 Tydhouer grenades for the Kiboko launcher." + icon = 'monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/carwo_defense_systems/propaganda.dmi' + icon_state = "grenadier" + +/obj/structure/sign/poster/official/carwo_grenade/examine_more(mob/user) + . = ..() + + . += "Small text details that certain types of grenades may not be available in your \ + region depending on local weapons regulations. Suspiciously, however, if you squint at \ + it a bit, the background colors of the image come together vaguely in the shape of \ + a computer board and a multitool. What did they mean by this?" + + return . + +MAPPING_DIRECTIONAL_HELPERS(/obj/structure/sign/poster/official/carwo_grenade, 32) + +/obj/structure/sign/poster/official/carwo_magazine + name = "Standardisation - Magazines of the Future" + desc = "This poster depicts, alongside the prominent logo of Carwo Defense Systems, the variety of magazine types the company has on offer for rifles. \ + It also goes into great deal to say, more or less, that any rifle can take any rifle magazine. Now this is technology like never seen before." + icon = 'monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/carwo_defense_systems/propaganda.dmi' + icon_state = "mag_size" + +/obj/structure/sign/poster/official/carwo_magazine/examine_more(mob/user) + . = ..() + + . += "Small text details that certain types of magazines may not be available in your \ + region depending on local weapons regulations. Suspiciously, however, if you squint at \ + it a bit, the background colors of the image come together vaguely in the shape of \ + a computer board and a multitool. What did they mean by this?" + + return . + +MAPPING_DIRECTIONAL_HELPERS(/obj/structure/sign/poster/official/carwo_magazine, 32) + +/obj/structure/sign/poster/official/trappiste_suppressor + name = "Keep It Quiet - Ear Protection Unneeded" + desc = "This poster depicts, alongside the prominent logo of Trappiste Fabriek, a \ + diagram of the average suppressor, and how on most* Trappiste weapons \ + the sound of firing will be low enough to eradicate the need for ear protection. \ + How safety minded, they even have a non-liability statement too." + icon = 'monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/trappiste_fabriek/propaganda.dmi' + icon_state = "keep_it_quiet" + +/obj/structure/sign/poster/official/trappiste_suppressor/examine_more(mob/user) + . = ..() + + . += "It was hard to notice before, but now that you really look at it... \ + This thing is completely covered in micro scale text telling you in just about \ + every human language and then some that Trappiste isn't liable for ear damage \ + caused by their weapons, suppressed or not." + + return . + +MAPPING_DIRECTIONAL_HELPERS(/obj/structure/sign/poster/official/trappiste_suppressor, 32) + +/obj/structure/sign/poster/official/trappiste_ammunition + name = "Know Your Ammuniton Colors" + desc = "This poster depicts, alongside the prominent logo of Trappiste Fabriek, \ + a variety of colors that one may find on .585 Trappiste rounds. \ + A plain white case usually means lethal, while a blue stripe is less-lethal \ + and a purple stripe is more lethal. How informative." + icon = 'monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/trappiste_fabriek/propaganda.dmi' + icon_state = "know_the_difference" + +/obj/structure/sign/poster/official/trappiste_ammunition/examine_more(mob/user) + . = ..() + + . += "Small text details that this information may also be transferrable \ + to other types of SolFed ammunition, but that you should check the box \ + the bullets come in just to be sure. Trappiste is, of course,\ + not liable for excess harm caused by misreading color identification systems." + + return . + +MAPPING_DIRECTIONAL_HELPERS(/obj/structure/sign/poster/official/trappiste_ammunition, 32) diff --git a/monkestation/code/modules/blueshift/structures/ammo_workbench.dm b/monkestation/code/modules/blueshift/structures/ammo_workbench.dm new file mode 100644 index 000000000000..ad60183fcc71 --- /dev/null +++ b/monkestation/code/modules/blueshift/structures/ammo_workbench.dm @@ -0,0 +1,645 @@ +/obj/machinery/ammo_workbench + name = "ammunitions workbench" + desc = "A machine, somewhat akin to a lathe, made specifically for manufacturing ammunition. It has a slot for magazines, ammo boxes, clips... anything that holds ammo." + icon = 'monkestation/code/modules/blueshift/icons/ammo_workbench.dmi' + icon_state = "ammobench" + density = TRUE + use_power = IDLE_POWER_USE + circuit = /obj/item/circuitboard/machine/ammo_workbench + var/busy = FALSE + /// if it's hacked it's gonna be able to print lethals. it'll be mad at you for doing so but it'll print basic lethals. + var/hacked = FALSE + var/disabled = FALSE + var/shocked = FALSE + var/hack_wire + var/disable_wire + var/error_message = "" + var/error_type = "" + var/disk_error = "" + var/disk_error_type = "" + var/shock_wire + var/timer_id + var/turbo_boost = FALSE + var/obj/item/ammo_box/loaded_magazine = null + var/obj/item/disk/ammo_workbench/loaded_datadisk = null + /// A list of all possible ammo types. + var/list/possible_ammo_types = list() + // hello future codediver. open to suggestions on how to do the following without it sucking so badly + /// what casings we're able to use + var/list/valid_casings = list() + /// the material requirement strings for these casings (for the tooltip) + var/list/casing_mat_strings = list() + /// can it print ammunition flagged as harmful (e.g. most ammo)? + var/allowed_harmful = FALSE + /// can it print advanced ammunition types (e.g. armor-piercing)? see modular_skyrat\modules\modular_weapons\code\modular_projectiles.dm + var/allowed_advanced = FALSE + /// what datadisks have been loaded. uh... honestly this doesn't really do much either + var/list/loaded_datadisks = list() + /// current multiplier for material cost per round + var/creation_efficiency = 1.4 + /// current amount of time in deciseconds it takes to assemble a round + var/time_per_round = 1.8 SECONDS + /// multiplier for material cost per round (when turbo isn't enabled) + var/base_efficiency = 1.4 + // deciseconds per round (when turbo isn't enabled) + var/base_time_per_round = 1.8 SECONDS + /// deciseconds per round (when turbo is enabled) + var/turbo_time_per_round = 0.225 SECONDS + /// multiplier for material cost per round (when turbo is enabled) + var/turbo_efficiency = 2.8 + /// can this print any round of any caliber given a correct ammo_box? (you varedit this at your own risk, especially if used in a player-facing context.) + /// does not force ammo to load in. just makes it able to print wacky ammotypes e.g. lionhunter 7.62, techshells + var/adminbus = FALSE + +/obj/machinery/ammo_workbench/unlocked + allowed_harmful = TRUE + allowed_advanced = TRUE + +/obj/item/circuitboard/machine/ammo_workbench + name = "Ammunition Workbench (Machine Board)" + icon_state = "circuit_map" + build_path = /obj/machinery/ammo_workbench + req_components = list( + /datum/stock_part/manipulator = 2, + /datum/stock_part/matter_bin = 2, + /datum/stock_part/micro_laser = 2 + ) + +/obj/machinery/ammo_workbench/Initialize(mapload) + AddComponent( \ + /datum/component/material_container, \ + SSmaterials.materials_by_category[MAT_CATEGORY_ITEM_MATERIAL], \ + 200000, \ + MATCONTAINER_EXAMINE, \ + allowed_items = /obj/item/stack, \ + ) + . = ..() + set_wires(new /datum/wires/ammo_workbench(src)) + +/obj/machinery/ammo_workbench/examine(mob/user) + . += ..() + var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) + if(in_range(user, src) || isobserver(user)) + . += span_notice("The status display reads: Storing up to [materials.max_amount] material units.
Material consumption at [creation_efficiency*100]%.") + +/obj/machinery/ammo_workbench/ui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "AmmoWorkbench") + ui.open() + + if(shocked) + shock(user, 80) + +/obj/machinery/ammo_workbench/proc/update_ammotypes() + LAZYCLEARLIST(valid_casings) + LAZYCLEARLIST(casing_mat_strings) + if(!loaded_magazine) + return + var/obj/item/ammo_casing/ammo_type = loaded_magazine.ammo_type + var/ammo_caliber = initial(ammo_type.caliber) + var/obj/item/ammo_casing/ammo_parent_type = type2parent(ammo_type) + + if(loaded_magazine.multitype) + if(ammo_caliber == initial(ammo_parent_type.caliber) && ammo_caliber != null) + ammo_type = ammo_parent_type + possible_ammo_types = typesof(ammo_type) + else + possible_ammo_types = list(ammo_type) // literally just for the niche edgecase of shotgun slug boxes + + for(var/obj/item/ammo_casing/our_casing as anything in possible_ammo_types) // this is a list of TYPES, not INSTANCES + if(!adminbus) + if(!(initial(our_casing.can_be_printed))) // if we're not supposed to be printed (looking at you, smartgun rails) + continue // go home + if(initial(our_casing.harmful) && (!allowed_harmful && !hacked)) // if you hack it that's on you. + continue + if(initial(our_casing.advanced_print_req) && !allowed_advanced) // if it's got a funny function (hello, AP!) and we're not good for it yet, + continue // no + if(initial(our_casing.projectile_type) == null) // spent casing subtypes >:( + continue + // i'm very sorry for this, but literally every other thing i tried to get the material composition didn't copy at all + var/obj/item/ammo_casing/casing_actual = new our_casing + var/list/raw_casing_mats = casing_actual.get_material_composition() + var/list/efficient_casing_mats = list() + qdel(casing_actual) + for(var/material in raw_casing_mats) + efficient_casing_mats[material] = raw_casing_mats[material] * creation_efficiency + var/mat_string = "" + + for(var/i in 1 to length(efficient_casing_mats)) + var/datum/material/our_material = efficient_casing_mats[i] + mat_string += "[efficient_casing_mats[our_material]] cm³ [our_material.name]" + if(i == length(efficient_casing_mats)) + mat_string += " per cartridge" + else + mat_string += ", " + + valid_casings += our_casing // adding the valid typepath + valid_casings[our_casing] = initial(our_casing.name) + casing_mat_strings += mat_string // adding the casing material cost string + // we pray to god these indexes stay consistent. + +/obj/machinery/ammo_workbench/ui_data(mob/user) + // i kinda hate how all of this is done on every tgui process tick + var/list/data = list() + + data["loaded_datadisks"] = list() + data["datadisk_loaded"] = FALSE + data["datadisk_name"] = null + data["datadisk_desc"] = null + + data["disk_error"] = disk_error + data["disk_error_type"] = disk_error_type + + if(loaded_datadisk) + data["datadisk_loaded"] = TRUE + data["datadisk_name"] = initial(loaded_datadisk.name) + data["datadisk_desc"] = initial(loaded_datadisk.desc) + + for(var/type in loaded_datadisks) + var/obj/item/disk/ammo_workbench/disk = type + data["loaded_datadisks"] += list(list("loaded_disk_name" = initial(disk.name), "loaded_disk_desc" = initial(disk.desc))) + + data["mag_loaded"] = FALSE + data["error"] = null + data["error_type"] = null + data["system_busy"] = busy + + data["efficiency"] = creation_efficiency + data["time"] = time_per_round / 10 + data["hacked"] = hacked + data["turboBoost"] = turbo_boost + + data["materials"] = list() + var/datum/component/material_container/mat_container = GetComponent(/datum/component/material_container) + if (mat_container) + for(var/mat in mat_container.materials) + var/datum/material/M = mat + var/amount = mat_container.materials[M] + var/sheet_amount = amount / SHEET_MATERIAL_AMOUNT + var/ref = REF(M) + data["materials"] += list(list("name" = M.name, "id" = ref, "amount" = sheet_amount)) + + if(error_message) + data["error"] = error_message + data["error_type"] = error_type + else if(busy) + data["error"] = "SYSTEM IS BUSY" + data["error_type"] = "" + + if(!loaded_magazine) + data["error"] = "NO MAGAZINE IS INSERTED" + data["error_type"] = "" + return data + else + data["mag_loaded"] = TRUE + + data["available_rounds"] = list() + + for(var/casings_to_relay = 1 to length(valid_casings)) + var/typepath = valid_casings[casings_to_relay] + data["available_rounds"] += list(list( + "name" = valid_casings[typepath], + "typepath" = typepath, + "mats_list" = casing_mat_strings[casings_to_relay] + )) + + data["mag_name"] = loaded_magazine.name + data["current_rounds"] = length(loaded_magazine.stored_ammo) + data["max_rounds"] = loaded_magazine.max_ammo + + return data + +/obj/machinery/ammo_workbench/ui_act(action, params) + . = ..() + if(.) + return + switch(action) + if("EjectMag") + ejectItem() + . = TRUE + + if("FillMagazine") + var/type_to_pass = text2path(params["selected_type"]) + fill_magazine_start(type_to_pass) + . = TRUE + + if("Release") + + var/datum/component/material_container/mat_container = GetComponent(/datum/component/material_container) + + if(!mat_container) + return + var/datum/material/mat = locate(params["id"]) + + var/amount = mat_container.materials[mat] + if(!amount) + return + + var/stored_amount = CEILING(amount / SHEET_MATERIAL_AMOUNT, 0.1) + + if(!stored_amount) + return + + var/desired = 0 + if (params["sheets"]) + desired = text2num(params["sheets"]) + + var/sheets_to_remove = round(min(desired,50,stored_amount)) + + mat_container.retrieve_sheets(sheets_to_remove, mat, loc) + . = TRUE + + if("ReadDisk") + loadDisk() + + if("EjectDisk") + ejectDisk() + + if("turboBoost") + toggle_turbo_boost() + +/// Toggles this ammo bench's turbo setting. If it's on, uses the turbo time-per-round/efficiency; if off, resets to base time-per-round/efficiency. forced_off forces turbo off. +/obj/machinery/ammo_workbench/proc/toggle_turbo_boost(forced_off = FALSE) + if(forced_off) + turbo_boost = FALSE + else + turbo_boost = !turbo_boost + + if(turbo_boost) + time_per_round = turbo_time_per_round + creation_efficiency = turbo_efficiency + else + time_per_round = base_time_per_round + creation_efficiency = base_efficiency + update_ammotypes() + +/obj/machinery/ammo_workbench/proc/ejectItem(mob/living/user) + if(loaded_magazine) + loaded_magazine.forceMove(drop_location()) + + if(user) + try_put_in_hand(loaded_magazine, user) + + loaded_magazine = null + busy = FALSE + error_message = "" + error_type = "" + if(timer_id) + deltimer(timer_id) + timer_id = null + update_ammotypes() + update_appearance() + +/obj/machinery/ammo_workbench/proc/fill_magazine_start(casing_type) + if(machine_stat & (NOPOWER|BROKEN)) + busy = FALSE + if(timer_id) + deltimer(timer_id) + timer_id = null + return + + if(error_message) + error_message = "" + error_type = "" + + if(!(casing_type in possible_ammo_types)) + error_message = "AMMUNITION MISMATCH" + error_type = "bad" + return + + var/obj/item/ammo_casing/our_casing = casing_type + + if(initial(our_casing.harmful) && !allowed_harmful) + error_message = "SYSTEM CORRUPTION DETECTED, PLEASE EJECT CONTAINER AND SUBMIT SUPPORT TICKET" + error_type = "bad" + if(!hacked) + return + + if(!loaded_magazine) + error_message = "NO MAGAZINE INSERTED" + error_type = "" + return + + if(loaded_magazine.stored_ammo.len >= loaded_magazine.max_ammo) + error_message = "MAGAZINE IS FULL" + error_type = "good" + return + + if(busy) + return + + busy = TRUE + + timer_id = addtimer(CALLBACK(src, PROC_REF(fill_round), casing_type), time_per_round, TIMER_STOPPABLE) + +/obj/machinery/ammo_workbench/proc/fill_round(casing_type) + if(machine_stat & (NOPOWER|BROKEN)) + busy = FALSE + if(timer_id) + deltimer(timer_id) + timer_id = null + return + + if(!loaded_magazine) + return + + var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) + + var/obj/item/ammo_casing/new_casing = new casing_type + + var/list/required_materials = new_casing.get_material_composition() + var/list/efficient_materials = list() + + for(var/material in required_materials) + efficient_materials[material] = required_materials[material] * creation_efficiency + + if(!materials.has_materials(efficient_materials)) + error_message = "INSUFFICIENT MATERIALS" + error_type = "bad" + ammo_fill_finish(FALSE) + qdel(new_casing) + return + + if(new_casing.type in possible_ammo_types) + if(!loaded_magazine.give_round(new_casing)) + error_message = "AMMUNITION MISMATCH" + error_type = "bad" + ammo_fill_finish(FALSE) + qdel(new_casing) + return + materials.use_materials(efficient_materials) + new_casing.set_custom_materials(efficient_materials) + loaded_magazine.update_appearance() + flick("ammobench_process", src) + use_power(3 KW) + playsound(loc, 'sound/machines/piston_raise.ogg', 60, 1) + else + qdel(new_casing) + ammo_fill_finish(FALSE) + return + + if(loaded_magazine.stored_ammo.len >= loaded_magazine.max_ammo) + ammo_fill_finish() + error_message = "CONTAINER IS FULL" + error_type = "good" + return + + SStgui.update_uis(src) + + timer_id = addtimer(CALLBACK(src, PROC_REF(fill_round), casing_type), time_per_round, TIMER_STOPPABLE) + +/obj/machinery/ammo_workbench/proc/ammo_fill_finish(successfully = TRUE) + SStgui.update_uis(src) + if(successfully) + playsound(loc, 'sound/machines/ping.ogg', 40, TRUE) + else + playsound(loc, 'sound/machines/buzz-sigh.ogg', 40, TRUE) + update_appearance() + busy = FALSE + if(timer_id) + deltimer(timer_id) + timer_id = null + +/obj/machinery/ammo_workbench/proc/loadDisk() + disk_error = "" + disk_error_type = "" + if(!loaded_datadisk) + return FALSE + if(loaded_datadisk.type in loaded_datadisks) + disk_error = "ERROR: DISK DATA ALREADY IN SYSTEM MEMEORY" + return FALSE + + disk_error = "DISK LOADED SUCCESSFULLY" + disk_error_type = "good" + loaded_datadisk.on_bench_install(src) + loaded_datadisks += loaded_datadisk.type // upon further reflection this. doesn't cause a hard del. still not a fan since the disks don't do anything by themselves + return TRUE + +/obj/machinery/ammo_workbench/proc/ejectDisk() + if(loaded_datadisk) + loaded_datadisk.forceMove(drop_location()) + loaded_datadisk = null + disk_error = "" + disk_error_type = "" + +/datum/design/board/ammo_workbench + name = "Machine Design (Ammunitions Workbench)" + desc = "A machine, somewhat akin to a lathe, made specifically for manufacturing ammunition. It has a slot for ammunition containers, like magazines or stripper clips." + id = "ammo_workbench" + build_path = /obj/item/circuitboard/machine/ammo_workbench + category = list(RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_FAB) + departmental_flags = DEPARTMENT_BITFLAG_SECURITY + + +//MISC MACHINE PROCS + +/obj/machinery/ammo_workbench/RefreshParts() + . = ..() + toggle_turbo_boost(forced_off = TRUE) // forces turbo off + var/time_efficiency = 1.8 SECONDS + for(var/datum/stock_part/micro_laser/new_laser in component_parts) + time_efficiency -= new_laser.tier * 2 // there's two lasers + // time_eff prog with paired lasers is 1.4 -> 1.0 -> 0.6 -> 0.2 seconds per round + time_per_round = clamp(time_efficiency, 1, 20) + base_time_per_round = time_per_round + turbo_time_per_round = time_efficiency / 8 + + var/efficiency = 1.4 + for(var/datum/stock_part/manipulator/new_servo in component_parts) + efficiency -= new_servo.tier * 0.1 // there's two servos + + creation_efficiency = max(0, efficiency) // with paired servos of appropriate tier, progression is 1.2 -> 1 -> 0.8 -> 0.6 + base_efficiency = creation_efficiency + turbo_efficiency = creation_efficiency * 2 + + var/mat_capacity = 0 + for(var/datum/stock_part/matter_bin/new_matter_bin in component_parts) + mat_capacity += new_matter_bin.tier * (40 * SHEET_MATERIAL_AMOUNT) + + var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) + materials.max_amount = mat_capacity + update_ammotypes() + +/obj/machinery/ammo_workbench/update_overlays() + . = ..() + if(loaded_magazine) + . += "ammobench_loaded" + +/obj/machinery/ammo_workbench/Destroy() + QDEL_NULL(wires) + if(timer_id) + deltimer(timer_id) + timer_id = null + if(loaded_magazine) + loaded_magazine.forceMove(loc) + loaded_magazine = null + + return ..() + +/obj/machinery/ammo_workbench/proc/shock(mob/user, prb) + if(machine_stat & (BROKEN|NOPOWER)) // unpowered, no shock + return FALSE + if(!prob(prb)) + return FALSE + do_sparks(5, TRUE, src) + if (electrocute_mob(user, get_area(src), src, 0.7, TRUE)) + return TRUE + else + return FALSE + +/obj/machinery/ammo_workbench/attackby(obj/item/O, mob/user, params) + if (default_deconstruction_screwdriver(user, "[initial(icon_state)]_t", initial(icon_state), O)) + return + if(default_deconstruction_crowbar(O)) + return + if(panel_open && is_wire_tool(O)) + wires.interact(user) + return TRUE + if(is_refillable() && O.is_drainable()) + return FALSE //inserting reagents into the machine + if(Insert_Item(O, user)) + return TRUE + else + return ..() + +/obj/machinery/ammo_workbench/attack_hand_secondary(mob/user, list/modifiers) + . = ..() + + if(. == SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN) + return + + if(!can_interact(user) || !user.can_perform_action(src, ALLOW_SILICON_REACH | FORBID_TELEKINESIS_REACH)) + return + + ejectItem(user) + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + +/obj/machinery/ammo_workbench/attack_robot_secondary(mob/user, list/modifiers) + return attack_hand_secondary(user, modifiers) + +/obj/machinery/ammo_workbench/attack_ai_secondary(mob/user, list/modifiers) + return attack_hand_secondary(user, modifiers) + +/obj/machinery/ammo_workbench/proc/Insert_Item(obj/item/O, mob/living/user) + if(user.istate & ISTATE_HARM) + return FALSE + if(!is_insertion_ready(user)) + return FALSE + if(istype(O, /obj/item/ammo_box)) + if(!user.transferItemToLoc(O, src)) + return FALSE + if(loaded_magazine) + to_chat(user, span_notice("You quickly swap [loaded_magazine] for [O].")) + loaded_magazine.forceMove(drop_location()) + user.put_in_hands(loaded_magazine) + loaded_magazine = null + busy = FALSE + error_message = "" + error_type = "" + if(timer_id) + deltimer(timer_id) + timer_id = null + loaded_magazine = O + to_chat(user, span_notice("You insert [O] to into [src]'s reciprocal.")) + flick("h_lathe_load", src) + update_appearance() + update_ammotypes() + playsound(loc, 'sound/weapons/autoguninsert.ogg', 35, 1) + return TRUE + if(istype(O, /obj/item/disk/ammo_workbench)) + if(!user.transferItemToLoc(O, src)) + return FALSE + loaded_datadisk = O + to_chat(user, span_notice("You insert [O] to into [src]'s floppydisk port.")) + flick("h_lathe_load", src) + update_appearance() + playsound(loc, 'sound/machines/terminal_insert_disc.ogg', 35, 1) + return TRUE + return FALSE + +/obj/machinery/ammo_workbench/proc/is_insertion_ready(mob/user, obj/item/O) + if(panel_open) + to_chat(user, span_warning("You can't load [src] while it's opened!")) + return FALSE + if(disabled) + to_chat(user, span_warning("The insertion belts of [src] won't engage!")) + return FALSE + if(machine_stat & BROKEN) + to_chat(user, span_warning("[src] is broken.")) + return FALSE + if(machine_stat & NOPOWER) + to_chat(user, span_warning("[src] has no power.")) + return FALSE + if(istype(O, /obj/item/disk/ammo_workbench) && loaded_datadisk) + to_chat(user, span_warning("[src] already has a disk inserted.")) + return FALSE + return TRUE + +/obj/machinery/ammo_workbench/proc/reset(wire) + switch(wire) + if(WIRE_HACK) + if(!wires.is_cut(wire)) + adjust_hacked(FALSE) + if(WIRE_SHOCK) + if(!wires.is_cut(wire)) + shocked = FALSE + if(WIRE_DISABLE) + if(!wires.is_cut(wire)) + disabled = FALSE + +/obj/machinery/ammo_workbench/proc/adjust_hacked(state) + hacked = state + + +// WIRE DATUM +/datum/wires/ammo_workbench + holder_type = /obj/machinery/ammo_workbench + proper_name = "Ammunition Workbench" + +/datum/wires/ammo_workbench/New(atom/holder) + wires = list( + WIRE_HACK, WIRE_DISABLE, + WIRE_SHOCK, WIRE_ZAP + ) + add_duds(6) + ..() + +/datum/wires/ammo_workbench/interactable(mob/user) + if(!..()) + return FALSE + var/obj/machinery/ammo_workbench/A = holder + if(A.panel_open) + return TRUE + +/datum/wires/ammo_workbench/get_status() + var/obj/machinery/ammo_workbench/A = holder + var/list/status = list() + status += "The red light is [A.disabled ? "on" : "off"]." + status += "The blue light is [A.hacked ? "on" : "off"]." + return status + +/datum/wires/ammo_workbench/on_pulse(wire) + var/obj/machinery/ammo_workbench/A = holder + switch(wire) + if(WIRE_HACK) + A.adjust_hacked(!A.hacked) + addtimer(CALLBACK(A, TYPE_PROC_REF(/obj/machinery/ammo_workbench, reset), wire), 6 SECONDS) + if(WIRE_SHOCK) + A.shocked = !A.shocked + addtimer(CALLBACK(A, TYPE_PROC_REF(/obj/machinery/ammo_workbench, reset), wire), 6 SECONDS) + if(WIRE_DISABLE) + A.disabled = !A.disabled + addtimer(CALLBACK(A, TYPE_PROC_REF(/obj/machinery/ammo_workbench, reset), wire), 6 SECONDS) + +/datum/wires/ammo_workbench/on_cut(wire, mend, source) + var/obj/machinery/ammo_workbench/A = holder + switch(wire) + if(WIRE_HACK) + A.adjust_hacked(!mend) + if(WIRE_HACK) + A.shocked = !mend + if(WIRE_DISABLE) + A.disabled = !mend + if(WIRE_ZAP) + A.shock(usr, 50) diff --git a/monkestation/code/modules/blueshift/structures/aquarium.dm b/monkestation/code/modules/blueshift/structures/aquarium.dm new file mode 100644 index 000000000000..c7b157d485e7 --- /dev/null +++ b/monkestation/code/modules/blueshift/structures/aquarium.dm @@ -0,0 +1,12 @@ +/obj/structure/aquarium/lawyer/Initialize(mapload) + . = ..() + + new /obj/item/aquarium_prop/seaweed(src) + + new /obj/item/fish/goldfish/gill(src) + +/obj/item/fish/goldfish/gill + name = "McGill" + desc = "A great rubber duck tool for Lawyers who can't get a grasp over their case." + stable_population = 1 + random_case_rarity = FISH_RARITY_NOPE diff --git a/monkestation/code/modules/blueshift/structures/ash_walker.dm b/monkestation/code/modules/blueshift/structures/ash_walker.dm new file mode 100644 index 000000000000..739abac17421 --- /dev/null +++ b/monkestation/code/modules/blueshift/structures/ash_walker.dm @@ -0,0 +1,1240 @@ +/obj/structure/wormfarm + name = "worm farm" + desc = "A wonderfully dirty barrel where worms can have a happy little life." + icon = 'monkestation/code/modules/blueshift/icons/structures.dmi' + icon_state = "wormbarrel" + density = TRUE + anchored = FALSE + /// How many worms can the barrel hold + var/max_worm = 10 + /// How many worms the barrel is currently holding + var/current_worm = 0 + /// How much food was inserted into the barrel that needs to be composted + var/current_food = 0 + /// If the barrel is currently being used by someone + var/in_use = FALSE + // The cooldown between each worm "breeding" + COOLDOWN_DECLARE(worm_timer) + +/obj/structure/wormfarm/Initialize(mapload) + . = ..() + START_PROCESSING(SSobj, src) + COOLDOWN_START(src, worm_timer, 30 SECONDS) + +/obj/structure/wormfarm/Destroy() + STOP_PROCESSING(SSobj, src) + return ..() + +//process is currently only used for making more worms +/obj/structure/wormfarm/process(seconds_per_tick) + if(!COOLDOWN_FINISHED(src, worm_timer)) + return + + COOLDOWN_START(src, worm_timer, 30 SECONDS) + + if(current_worm >= 2 && current_worm < max_worm) + current_worm++ + + if(current_food > 0 && current_worm > 1) + current_food-- + new /obj/item/stack/worm_fertilizer(get_turf(src)) + +/obj/structure/wormfarm/examine(mob/user) + . = ..() + . += span_notice("
There are currently [current_worm]/[max_worm] worms in the barrel.") + if(current_worm < max_worm) + . += span_notice("You can place more worms in the barrel.") + if(current_worm > 0) + . += span_notice("You can get fertilizer by feeding the worms food.") + +/obj/structure/wormfarm/attack_hand(mob/living/user, list/modifiers) + if(in_use) + balloon_alert(user, "currently in use") + return ..() + + balloon_alert(user, "digging up worms") + var/skill_modifier = user.mind.get_skill_modifier(/datum/skill/primitive, SKILL_SPEED_MODIFIER) + if(!do_after(user, 2 SECONDS * skill_modifier, src)) + balloon_alert(user, "stopped digging") + in_use = FALSE + return ..() + + if(current_worm <= 0) + balloon_alert(user, "no worms available") + in_use = FALSE + return ..() + + new /obj/item/food/bait/worm(get_turf(src)) + current_worm-- + in_use = FALSE + + return ..() + +/obj/structure/wormfarm/attackby(obj/item/attacking_item, mob/user, params) + //we want to check for worms first because they are a type of food as well... + if(istype(attacking_item, /obj/item/food/bait/worm)) + if(current_worm >= max_worm) + balloon_alert(user, "too many worms in the barrel") + return + + qdel(attacking_item) + balloon_alert(user, "worm released into barrel") + current_worm++ + return + + //if it aint a worm, lets check for any other food items + if(istype(attacking_item, /obj/item/food)) + if(in_use) + balloon_alert(user, "currently in use") + return + in_use = TRUE + + balloon_alert(user, "feeding the worms") + var/skill_modifier = user.mind.get_skill_modifier(/datum/skill/primitive, SKILL_SPEED_MODIFIER) + if(!do_after(user, 1 SECONDS * skill_modifier, src)) + balloon_alert(user, "stopped feeding the worms") + in_use = FALSE + return + + // if someone has built multiple worm farms, I want to make sure they can't just use one singular piece of food for more than one barrel + if(!attacking_item) + in_use = FALSE + return + + qdel(attacking_item) + balloon_alert(user, "feeding complete, check back later") + + current_food++ + if(prob(user.mind.get_skill_modifier(/datum/skill/primitive, SKILL_PROBS_MODIFIER))) + current_food++ + + user.mind.adjust_experience(/datum/skill/primitive, 5) + in_use = FALSE + return + + if(istype(attacking_item, /obj/item/storage/bag/plants)) + if(in_use) + balloon_alert(user, "currently in use") + return + in_use = TRUE + + balloon_alert(user, "feeding the worms") + var/skill_modifier = user.mind.get_skill_modifier(/datum/skill/primitive, SKILL_SPEED_MODIFIER) + for(var/obj/item/food/selected_food in attacking_item.contents) + if(!do_after(user, 1 SECONDS * skill_modifier, src)) + in_use = FALSE + return + + qdel(selected_food) + current_food++ + if(prob(user.mind.get_skill_modifier(/datum/skill/primitive, SKILL_PROBS_MODIFIER))) + current_food++ + + user.mind.adjust_experience(/datum/skill/primitive, 5) + in_use = FALSE + return + + //it wasn't a worm, or a piece of food + return ..() + +//produced by feeding worms food and can be ground up for plant nutriment or used directly on ash farming +/obj/item/stack/worm_fertilizer + name = "worm fertilizer" + desc = "When you fed your worms, you should have expected this." + icon = 'monkestation/code/modules/blueshift/icons/misc_tools.dmi' + icon_state = "fertilizer" + grind_results = list(/datum/reagent/plantnutriment/eznutriment = 3, /datum/reagent/plantnutriment/left4zednutriment = 3, /datum/reagent/plantnutriment/robustharvestnutriment = 3) + singular_name = "fertilizer" + merge_type = /obj/item/stack/worm_fertilizer + +/obj/structure/spawner/lavaland + /// whether it has a curse attached to it + var/cursed = FALSE + +/obj/structure/spawner/lavaland/attackby(obj/item/attacking_item, mob/user, params) + if(istype(attacking_item, /obj/item/cursed_dagger)) + playsound(get_turf(src), 'sound/magic/demon_attack1.ogg', 50, TRUE) + cursed = !cursed + if(cursed) + src.add_atom_colour("#41007e", TEMPORARY_COLOUR_PRIORITY) + else + src.remove_atom_colour(TEMPORARY_COLOUR_PRIORITY, "#41007e") + balloon_alert_to_viewers("a curse has been [cursed ? "placed..." : "lifted..."]") + if(isliving(user)) + var/mob/living/living_user = user + living_user.adjustFireLoss(100) + to_chat(user, span_warning("The knife sears your hand!")) + return + return ..() + +/obj/structure/spawner/lavaland/Destroy() + if(cursed) + for(var/mob/living/carbon/human/selected_human in range(7)) + if(is_species(selected_human, /datum/species/lizard/ashwalker)) + continue + selected_human.AddComponent(/datum/component/ash_cursed) + for(var/mob/select_mob in GLOB.player_list) + if(!is_species(select_mob, /datum/species/lizard/ashwalker)) + continue + to_chat(select_mob, span_boldwarning("A cursed tendril has been broken! The target has been marked until they flee the lands!")) + . = ..() + +/datum/component/ash_cursed + /// the person who is targeted by the curse + var/mob/living/carbon/human/human_target + +/datum/component/ash_cursed/Initialize() + if(!ishuman(parent)) + return COMPONENT_INCOMPATIBLE + human_target = parent + ADD_TRAIT(human_target, TRAIT_NO_TELEPORT, REF(src)) + human_target.add_movespeed_modifier(/datum/movespeed_modifier/ash_cursed) + RegisterSignal(human_target, COMSIG_MOVABLE_MOVED, PROC_REF(do_move)) + RegisterSignal(human_target, COMSIG_LIVING_DEATH, PROC_REF(remove_curse)) + +/datum/component/ash_cursed/Destroy(force, silent) + . = ..() + REMOVE_TRAIT(human_target, TRAIT_NO_TELEPORT, REF(src)) + human_target.remove_movespeed_modifier(/datum/movespeed_modifier/ash_cursed) + UnregisterSignal(human_target, list(COMSIG_MOVABLE_MOVED, COMSIG_LIVING_DEATH)) + human_target = null + +/datum/component/ash_cursed/proc/remove_curse() + SIGNAL_HANDLER + for(var/mob/select_mob in GLOB.player_list) + if(!is_species(select_mob, /datum/species/lizard/ashwalker)) + continue + to_chat(select_mob, span_boldwarning("A target has died, the curse has been lifted!")) + Destroy() + +/datum/component/ash_cursed/proc/do_move() + SIGNAL_HANDLER + var/turf/human_turf = get_turf(human_target) + if(!is_mining_level(human_turf.z)) + Destroy() + for(var/mob/select_mob in GLOB.player_list) + if(!is_species(select_mob, /datum/species/lizard/ashwalker)) + continue + to_chat(select_mob, span_boldwarning("A target has fled from the land, breaking the curse!")) + return + if(prob(75)) + return + var/obj/effect/decal/cleanable/greenglow/ecto/spawned_goo = locate() in human_turf + if(spawned_goo) + return + spawned_goo = new(human_turf) + addtimer(CALLBACK(spawned_goo, TYPE_PROC_REF(/obj/effect/decal/cleanable/greenglow/ecto, do_qdel)), 5 MINUTES, TIMER_STOPPABLE|TIMER_DELETE_ME) + +/obj/effect/decal/cleanable/greenglow/ecto/proc/do_qdel() + qdel(src) + +/datum/movespeed_modifier/ash_cursed + multiplicative_slowdown = 1.0 + +/obj/item/stack/rail_track + name = "railroad tracks" + singular_name = "railroad track" + desc = "A primitive form of transportation. Place on any floor to start building a railroad." + icon = 'monkestation/code/modules/blueshift/icons/railroad.dmi' + icon_state = "rail_item" + merge_type = /obj/item/stack/rail_track + +/obj/item/stack/rail_track/ten + amount = 10 + +/obj/item/stack/rail_track/fifty + amount = 50 + +/obj/item/stack/rail_track/afterattack(atom/target, mob/user, proximity_flag, click_parameters) + if(!isopenturf(target) || !proximity_flag) + return ..() + var/turf/target_turf = get_turf(target) + var/obj/structure/railroad/check_rail = locate() in target_turf + if(check_rail || !use(1)) + return ..() + to_chat(user, span_notice("You place [src] on [target_turf].")) + new /obj/structure/railroad(get_turf(target)) + +/obj/structure/railroad + name = "railroad track" + desc = "A primitive form of transportation. You may see some rail carts on it." + icon = 'monkestation/code/modules/blueshift/icons/railroad.dmi' + icon_state = "rail" + anchored = TRUE + +/obj/structure/railroad/Initialize(mapload) + . = ..() + for(var/obj/structure/railroad/rail in range(2, src)) + rail.change_look() + +/obj/structure/railroad/Destroy() + for(var/obj/structure/railroad/rail in range(2, src)) + rail.change_look(src) + return ..() + +/obj/structure/railroad/proc/change_look(obj/structure/target_structure = null) + icon_state = "rail" + var/turf/src_turf = get_turf(src) + for(var/direction in GLOB.cardinals) + var/obj/structure/railroad/locate_rail = locate() in get_step(src_turf, direction) + if(!locate_rail || (target_structure && locate_rail == target_structure)) + continue + icon_state = "[icon_state][direction]" + update_appearance() + +/obj/structure/railroad/crowbar_act(mob/living/user, obj/item/tool) + tool.play_tool_sound(src) + new /obj/item/stack/rail_track(get_turf(src)) + qdel(src) + return + +/obj/vehicle/ridden/rail_cart + name = "rail cart" + desc = "A wonderful form of locomotion. It will only ride while on tracks. It does have storage" + icon = 'monkestation/code/modules/blueshift/icons/railroad.dmi' + icon_state = "railcart" + material_flags = MATERIAL_EFFECTS | MATERIAL_ADD_PREFIX | MATERIAL_GREYSCALE | MATERIAL_COLOR + /// The mutable appearance used for the overlay over buckled mobs. + var/mutable_appearance/railoverlay + /// whether there is sand in the cart + var/has_sand = FALSE + +/obj/vehicle/ridden/rail_cart/examine(mob/user) + . = ..() + . += span_notice("
Alt-Click to attach a rail cart to this cart.") + . += span_notice("
Filling it with 10 sand will allow it to be used as a planter!") + +/obj/vehicle/ridden/rail_cart/Initialize(mapload) + . = ..() + attach_trailer() + railoverlay = mutable_appearance(icon, "railoverlay", ABOVE_MOB_LAYER, src, ABOVE_GAME_PLANE) + AddElement(/datum/element/ridable, /datum/component/riding/vehicle/rail_cart) + + create_storage(max_total_storage = 21, max_slots = 21) + +/obj/vehicle/ridden/rail_cart/post_buckle_mob(mob/living/M) + . = ..() + update_overlays() + +/obj/vehicle/ridden/rail_cart/post_unbuckle_mob(mob/living/M) + . = ..() + update_overlays() + +/obj/vehicle/ridden/rail_cart/update_overlays() + . = ..() + if(has_buckled_mobs()) + add_overlay(railoverlay) + else + cut_overlay(railoverlay) + +/obj/vehicle/ridden/rail_cart/relaymove(mob/living/user, direction) + var/obj/structure/railroad/locate_rail = locate() in get_step(src, direction) + if(!canmove || !locate_rail) + return FALSE + if(is_driver(user)) + return relaydrive(user, direction) + return FALSE + +/obj/vehicle/ridden/rail_cart/AltClick(mob/user) + attach_trailer() + return + +/obj/vehicle/ridden/rail_cart/attack_hand(mob/living/user, list/modifiers) + . = ..() + atom_storage?.show_contents(user) + +/obj/vehicle/ridden/rail_cart/attackby(obj/item/attacking_item, mob/user, params) + if(istype(attacking_item, /obj/item/stack/ore/glass)) + var/obj/item/stack/ore/glass/use_item = attacking_item + if(has_sand || !use_item.use(10)) + return ..() + AddComponent(/datum/component/simple_farm, TRUE, TRUE, list(0, 16)) + has_sand = TRUE + RemoveElement(/datum/element/ridable) + return + + if(attacking_item.tool_behaviour == TOOL_SHOVEL) + var/datum/component/remove_component = GetComponent(/datum/component/simple_farm) + if(!remove_component) + return ..() + qdel(remove_component) + has_sand = FALSE + AddElement(/datum/element/ridable, /datum/component/riding/vehicle/rail_cart) + return + + return ..() + +/// searches the cardinal directions to add this cart to another cart's trailer +/obj/vehicle/ridden/rail_cart/proc/attach_trailer() + if(trailer) + remove_trailer() + return + for(var/direction in GLOB.cardinals) + var/obj/vehicle/ridden/rail_cart/locate_cart = locate() in get_step(src, direction) + if(!locate_cart || locate_cart.trailer == src) + continue + add_trailer(locate_cart) + locate_cart.add_trailer(src) + break + +/datum/component/riding/vehicle/rail_cart + vehicle_move_delay = 0.5 + ride_check_flags = RIDER_NEEDS_LEGS | RIDER_NEEDS_ARMS | UNBUCKLE_DISABLED_RIDER + +/datum/component/riding/vehicle/rail_cart/handle_specials() + . = ..() + set_riding_offsets(RIDING_OFFSET_ALL, list(TEXT_NORTH = list(0, 13), TEXT_SOUTH = list(0, 13), TEXT_EAST = list(0, 13), TEXT_WEST = list(0, 13))) + set_vehicle_dir_layer(SOUTH, OBJ_LAYER) + set_vehicle_dir_layer(NORTH, OBJ_LAYER) + set_vehicle_dir_layer(EAST, OBJ_LAYER) + set_vehicle_dir_layer(WEST, OBJ_LAYER) + +/obj/structure/plant_tank + name = "plant tank" + desc = "A small little glass tank that is used to grow plants; this tank promotes the nitrogen and oxygen cycle." + icon = 'monkestation/code/modules/blueshift/icons/structures.dmi' + icon_state = "plant_tank_e" + anchored = FALSE + density = TRUE + ///the amount of times the tank can produce-- can be increased through feeding the tank + var/operation_number = 0 + +/obj/structure/plant_tank/Initialize(mapload) + . = ..() + START_PROCESSING(SSobj, src) + +/obj/structure/plant_tank/Destroy() + STOP_PROCESSING(SSobj, src) + return ..() + +/obj/structure/plant_tank/examine(mob/user) + . = ..() + . += span_notice("
Use food or worm fertilizer to allow nitrogen production and carbon dioxide processing!") + . += span_notice("There are [operation_number] cycles left!") + var/datum/component/simple_farm/find_farm = GetComponent(/datum/component/simple_farm) + if(!find_farm) + . += span_notice("
Use five sand to allow planting!") + +/obj/structure/plant_tank/attackby(obj/item/attacking_item, mob/user, params) + if(istype(attacking_item, /obj/item/food) || istype(attacking_item, /obj/item/stack/worm_fertilizer)) + var/obj/item/stack/stack_item = attacking_item + if(isstack(stack_item)) + if(!stack_item.use(1)) + return + + else + qdel(attacking_item) + + balloon_alert(user, "[attacking_item] placed inside") + user.mind.adjust_experience(/datum/skill/primitive, 5) + operation_number += 2 + if(prob(user.mind.get_skill_modifier(/datum/skill/primitive, SKILL_PROBS_MODIFIER))) + operation_number += 2 + + return + + if(istype(attacking_item, /obj/item/storage/bag/plants)) + balloon_alert(user, "placing food inside") + var/skill_modifier = user.mind.get_skill_modifier(/datum/skill/primitive, SKILL_SPEED_MODIFIER) + for(var/obj/item/food/selected_food in attacking_item.contents) + if(!do_after(user, 1 SECONDS * skill_modifier, src)) + return + + qdel(selected_food) + operation_number += 2 + if(prob(user.mind.get_skill_modifier(/datum/skill/primitive, SKILL_PROBS_MODIFIER))) + operation_number += 2 + + user.mind.adjust_experience(/datum/skill/primitive, 5) + return + + if(istype(attacking_item, /obj/item/stack/ore/glass)) + var/datum/component/simple_farm/find_farm = GetComponent(/datum/component/simple_farm) + if(find_farm) + balloon_alert(user, "no more [attacking_item] required") + return + + var/obj/item/stack/attacking_stack = attacking_item + if(!attacking_stack.use(5)) + balloon_alert(user, "farms require five sand") + return + + AddComponent(/datum/component/simple_farm, TRUE, TRUE, list(0, 12)) + icon_state = "plant_tank_f" + return + + return ..() + +/obj/structure/plant_tank/process(seconds_per_tick) + if(operation_number <= 0) //we require "fuel" to actually produce stuff + return + + if(!locate(/obj/structure/simple_farm) in get_turf(src)) //we require a plant to process the "fuel" + return + + operation_number-- + + var/turf/open/src_turf = get_turf(src) + if(!isopenturf(src_turf) || isspaceturf(src_turf) || src_turf.planetary_atmos) //must be open turf, can't be space turf, and can't be a turf that regenerates its atmos + return + + var/datum/gas_mixture/src_mixture = src_turf.return_air() + + src_mixture.assert_gases(/datum/gas/carbon_dioxide, /datum/gas/oxygen, /datum/gas/nitrogen) + + var/proportion = src_mixture.gases[/datum/gas/carbon_dioxide][MOLES] + if(proportion) //if there is carbon dioxide in the air, lets turn it into oxygen + src_mixture.gases[/datum/gas/carbon_dioxide][MOLES] -= proportion + src_mixture.gases[/datum/gas/oxygen][MOLES] += proportion + + src_mixture.gases[/datum/gas/nitrogen][MOLES] += MOLES_CELLSTANDARD //the nitrogen cycle-- plants (and bacteria) participate in the nitrogen cycle + +/obj/structure/plant_tank/wrench_act(mob/living/user, obj/item/tool) + balloon_alert(user, "[anchored ? "un" : ""]bolting") + tool.play_tool_sound(src, 50) + if(!tool.use_tool(src, user, 2 SECONDS)) + return TRUE + + anchored = !anchored + balloon_alert(user, "[anchored ? "" : "un"]bolted") + return TRUE + +/obj/structure/plant_tank/screwdriver_act(mob/living/user, obj/item/tool) + balloon_alert(user, "deconstructing") + tool.play_tool_sound(src, 50) + if(!tool.use_tool(src, user, 2 SECONDS)) + return TRUE + + deconstruct() + return TRUE + +/obj/structure/plant_tank/deconstruct(disassembled) + var/target_turf = get_turf(src) + for(var/loop in 1 to 4) + new /obj/item/stack/sheet/glass(target_turf) + new /obj/item/stack/rods(target_turf) + new /obj/item/smithed_part/forged_plate(target_turf) + return ..() + +/datum/crafting_recipe/plant_tank + name = "Plant Tank" + result = /obj/structure/plant_tank + reqs = list( + /obj/item/smithed_part/forged_plate = 1, + /obj/item/stack/sheet/glass = 4, + /obj/item/stack/rods = 4, + ) + category = CAT_STRUCTURE + +/obj/structure/ore_container/gutlunch_trough/attackby(obj/item/attacking_item, mob/living/carbon/human/user, list/modifiers) + if(!istype(attacking_item, /obj/item/storage/bag/ore)) + return ..() + + for(var/obj/item/stack/ore/stored_ore in attacking_item.contents) + attacking_item.atom_storage?.attempt_remove(stored_ore, src) + +//CODE CREDIT TO JJPARK-KB +//Infinite welding fuel source, lets ashwalkers have infinite fuel without needing high-tech welders. + +/obj/structure/sink/fuel_well + name = "fuel well" + desc = "A bubbling pool of fuel. This would probably be valuable, had bluespace technology not destroyed the need for fossil fuels 200 years ago." + icon = 'icons/obj/watercloset.dmi' + icon_state = "puddle-oil" + dispensedreagent = /datum/reagent/fuel + color = "#742912" //Gives it a weldingfuel hue + +/obj/structure/sink/fuel_well/Initialize(mapload) + .=..() + create_reagents(20) + reagents.add_reagent(dispensedreagent, 20) + +/obj/structure/sink/fuel_well/attack_hand(mob/user, list/modifiers) + flick("puddle-oil-splash",src) + reagents.expose(user, TOUCH, 20) //Covers target in 20u of fuel. + to_chat(user, span_notice("You touch the pool of fuel, only to get fuel all over yourself. It would be wise to wash this off with water.")) + +/obj/structure/sink/fuel_well/attackby(obj/item/O, mob/living/user, params) + flick("puddle-oil-splash",src) + if(O.tool_behaviour == TOOL_SHOVEL) //attempt to deconstruct the puddle with a shovel //attempt to deconstruct the puddle with a shovel + to_chat(user, "You fill in the fuel well with soil.") + O.play_tool_sound(src) + deconstruct() + return 1 + if(istype(O, /obj/item/reagent_containers)) //Refilling bottles with oil + var/obj/item/reagent_containers/RG = O + if(RG.is_refillable()) + if(!RG.reagents.holder_full()) + RG.reagents.add_reagent(dispensedreagent, min(RG.volume - RG.reagents.total_volume, RG.amount_per_transfer_from_this)) + to_chat(user, span_notice("You fill [RG] from [src].")) + return TRUE + to_chat(user, span_notice("\The [RG] is full.")) + return FALSE + if(O.tool_behaviour == TOOL_WELDER) + if(!reagents.has_reagent(/datum/reagent/fuel)) + to_chat(user, span_warning("[src] is out of fuel!")) + return + var/obj/item/weldingtool/W = O + if(istype(W) && !W.welding) + if(W.reagents.has_reagent(/datum/reagent/fuel, W.max_fuel)) + to_chat(user, span_warning("Your [W.name] is already full!")) + return + reagents.trans_to(W, W.max_fuel, transfered_by = user) + user.visible_message(span_notice("[user] refills [user.p_their()] [W.name]."), span_notice("You refill [W].")) + playsound(src, 'sound/effects/refill.ogg', 50, TRUE) + W.update_appearance() + return + else + return ..() + +#define REQUIRED_OBSERVERS 2 +#define MEGAFAUNA_MEAT_AMOUNT 20 + +//this is for revitalizing/preserving regen cores +/obj/structure/lavaland/ash_walker/attackby(obj/item/attacking_item, mob/living/user, params) + if(!istype(attacking_item, /obj/item/organ/internal/monster_core/regenerative_core)) + return ..() + + if(!user.mind.has_antag_datum(/datum/antagonist/ashwalker)) + balloon_alert(user, "must be an ashwalker!") + return + + var/obj/item/organ/internal/monster_core/regenerative_core/regen_core = attacking_item + + if(!regen_core.preserve()) + balloon_alert(user, "organ decayed!") + return + playsound(src, 'sound/magic/demon_consume.ogg', 50, TRUE) + balloon_alert_to_viewers("[src] revitalizes [regen_core]!") + return + +//this is for logging the destruction of the tendril +/obj/structure/lavaland/ash_walker/Destroy() + var/compiled_string = "The [src] has been destroyed at [loc_name(src.loc)], nearest mobs are " + var/found_anyone = FALSE + + for(var/mob/living/carbon/carbons_nearby in range(7)) + compiled_string += "[key_name(carbons_nearby)]," + found_anyone = TRUE + + if(!found_anyone) + compiled_string += "nobody." + + log_game(compiled_string) + return ..() + +//this is for transforming a person into an ashwalker +/obj/structure/lavaland/ash_walker/attack_hand(mob/living/user, list/modifiers) + if(!ishuman(user)) + return + + var/mob/living/carbon/human/human_user = user + if(istype(human_user.dna.species, /datum/species/lizard/ashwalker)) + return + + var/allow_transform = 0 + + for(var/mob/living/carbon/human/count_human in range(2, src)) + if(!istype(count_human.dna.species, /datum/species/lizard/ashwalker)) + continue + + allow_transform++ + + if(allow_transform < REQUIRED_OBSERVERS) + balloon_alert_to_viewers("[src] rejects the request, not enough viewers!") + playsound(src, 'sound/magic/demon_consume.ogg', 50, TRUE) + human_user.adjustBruteLoss(10) + return + + else + balloon_alert_to_viewers("[src] reaches out to [human_user]...") + var/choice = tgui_alert(human_user, "Become an Ashwalker? You will abandon your previous life and body.", "Major Choice", list("Yes", "No")) + + if(choice != "Yes") + balloon_alert_to_viewers("[src] feels rejected and punishes [human_user]!") + playsound(src, 'sound/magic/demon_consume.ogg', 50, TRUE) + human_user.adjustBruteLoss(50) + return + + balloon_alert_to_viewers("[src] rejoices and transforms [human_user]!") + human_user.unequip_everything() + human_user.set_species(/datum/species/lizard/ashwalker) + human_user.underwear = "Nude" + human_user.update_body() + human_user.mind.add_antag_datum(/datum/antagonist/ashwalker) + + if(SSmapping.level_trait(human_user.z, ZTRAIT_ICE_RUINS) || SSmapping.level_trait(human_user.z, ZTRAIT_ICE_RUINS_UNDERGROUND)) + ADD_TRAIT(human_user, TRAIT_NOBREATH, ROUNDSTART_TRAIT) + ADD_TRAIT(human_user, TRAIT_RESISTCOLD, ROUNDSTART_TRAIT) + + ADD_TRAIT(human_user, TRAIT_PRIMITIVE, ROUNDSTART_TRAIT) + playsound(src, 'sound/magic/demon_dies.ogg', 50, TRUE) + meat_counter++ + + return ..() + +//this is the skyrat override +/obj/structure/lavaland/ash_walker/consume() + for(var/mob/living/viewable_living in view(src, 1)) //Only for corpse right next to/on same tile + if(!viewable_living.stat) + continue + + viewable_living.unequip_everything() + + if(issilicon(viewable_living)) //no advantage to sacrificing borgs... + viewable_living.investigate_log("has been gibbed via ashwalker sacrifice as a borg.", INVESTIGATE_DEATHS) + viewable_living.gib() + return + + if(viewable_living.mind?.has_antag_datum(/datum/antagonist/ashwalker) && (viewable_living.ckey || viewable_living.get_ghost(FALSE, TRUE))) //special interactions for dead lava lizards with ghosts attached + revive_ashwalker(viewable_living) + return + + if(ismegafauna(viewable_living)) + meat_counter += MEGAFAUNA_MEAT_AMOUNT + + else + meat_counter++ + + playsound(get_turf(src),'sound/magic/demon_consume.ogg', 100, TRUE) + var/delivery_key = viewable_living.fingerprintslast //key of whoever brought the body + var/mob/living/delivery_mob = get_mob_by_key(delivery_key) //mob of said key + + //there is a 40% chance that the Lava Lizard unlocks their respawn with each sacrifice + if(delivery_mob && (delivery_mob.mind?.has_antag_datum(/datum/antagonist/ashwalker)) && (delivery_key in ashies.players_spawned) && prob(40)) + to_chat(delivery_mob, span_boldwarning("The Necropolis is pleased with your sacrifice. You feel confident your existence after death is secure.")) + ashies.players_spawned -= delivery_key + + viewable_living.investigate_log("has been gibbed via ashwalker sacrifice.", INVESTIGATE_DEATHS) + viewable_living.gib() + atom_integrity = min(atom_integrity + max_integrity * 0.05, max_integrity) //restores 5% hp of tendril + + for(var/mob/living/living_observers in view(src, 5)) + if(living_observers.mind?.has_antag_datum(/datum/antagonist/ashwalker)) + living_observers.add_mood_event("oogabooga", /datum/mood_event/sacrifice_good) + + else + living_observers.add_mood_event("oogabooga", /datum/mood_event/sacrifice_bad) + + ashies.sacrifices_made++ + +/** + * Proc that will spawn the egg that will revive the ashwalker + * This is also the Skyrat replacement for /proc/remake_walker + */ +/obj/structure/lavaland/ash_walker/proc/revive_ashwalker(mob/living/carbon/human/revived_ashwalker) + var/obj/structure/reviving_ashwalker_egg/spawned_egg = new(get_step(loc, pick(GLOB.alldirs))) + revived_ashwalker.forceMove(spawned_egg) + to_chat(revived_ashwalker, span_warning("The tendril has decided to be merciful and revive you within a minute, have patience.")) + +/obj/structure/reviving_ashwalker_egg + name = "occupied ashwalker egg" + desc = "Past the typical appearance of the yellow, man-sized egg, there seems to be a body floating within!" + icon = 'icons/mob/simple/lavaland/lavaland_monsters.dmi' + icon_state = "large_egg" + resistance_flags = LAVA_PROOF | FIRE_PROOF | FREEZE_PROOF + max_integrity = 80 + +/obj/structure/reviving_ashwalker_egg/Initialize(mapload) + . = ..() + addtimer(CALLBACK(src, PROC_REF(do_revive)), 30 SECONDS) + +/** + * Proc that will fully revive the living content inside and then destroy itself + */ +/obj/structure/reviving_ashwalker_egg/proc/do_revive() + var/mob/living/living_inside = locate() in contents + + if(!living_inside) + qdel(src) + return + + living_inside.revive(ADMIN_HEAL_ALL) + living_inside.forceMove(get_turf(src)) + living_inside.mind.grab_ghost() + living_inside.balloon_alert_to_viewers("[living_inside] breaks out of [src]!") + qdel(src) + +#undef REQUIRED_OBSERVERS +#undef MEGAFAUNA_MEAT_AMOUNT + +/datum/component/simple_farm + ///whether we limit the amount of plants you can have per turf + var/one_per_turf = TRUE + ///the reference to the movable parent the component is attached to + var/atom/atom_parent + ///the amount of pixels shifted (x,y) + var/list/pixel_shift = 0 + +/datum/component/simple_farm/Initialize(set_plant = FALSE, set_turf_limit = TRUE, list/set_shift = list(0, 0)) + //we really need to check if its movable + if(!isatom(parent)) + return COMPONENT_INCOMPATIBLE + atom_parent = parent + //important to allow people to just straight up set allowing to plant + one_per_turf = set_turf_limit + pixel_shift = set_shift + //now lets register the signals + RegisterSignal(atom_parent, COMSIG_ATOM_ATTACKBY, PROC_REF(check_attack)) + RegisterSignal(atom_parent, COMSIG_ATOM_EXAMINE, PROC_REF(check_examine)) + RegisterSignal(atom_parent, COMSIG_QDELETING, PROC_REF(delete_farm)) + +/datum/component/simple_farm/Destroy(force, silent) + //lets not hard del + UnregisterSignal(atom_parent, list(COMSIG_ATOM_ATTACKBY, COMSIG_ATOM_EXAMINE, COMSIG_QDELETING)) + atom_parent = null + return ..() + +/** + * check_attack is meant to listen for the COMSIG_ATOM_ATTACKBY signal, where it essentially functions like the attackby proc + */ +/datum/component/simple_farm/proc/check_attack(datum/source, obj/item/attacking_item, mob/user) + SIGNAL_HANDLER + + //if its a seed, lets try to plant + if(istype(attacking_item, /obj/item/seeds)) + var/obj/structure/simple_farm/locate_farm = locate() in get_turf(atom_parent) + + if(one_per_turf && locate_farm) + atom_parent.balloon_alert_to_viewers("cannot plant more seeds here!") + return + + locate_farm = new(get_turf(atom_parent)) + user.mind.adjust_experience(/datum/skill/primitive, 5) + locate_farm.pixel_x = pixel_shift[1] + locate_farm.pixel_y = pixel_shift[2] + locate_farm.layer = atom_parent.layer + 0.1 + if(ismovable(atom_parent)) + var/atom/movable/movable_parent = atom_parent + locate_farm.glide_size = movable_parent.glide_size + attacking_item.forceMove(locate_farm) + locate_farm.planted_seed = attacking_item + locate_farm.attached_atom = atom_parent + atom_parent.balloon_alert_to_viewers("seed has been planted!") + locate_farm.update_appearance() + locate_farm.late_setup() + +/** + * check_examine is meant to listen for the COMSIG_ATOM_EXAMINE signal, where it will put additional information in the examine + */ +/datum/component/simple_farm/proc/check_examine(datum/source, mob/user, list/examine_list) + examine_list += span_notice("
You are able to plant seeds here!") + +/** + * delete_farm is meant to be called when the parent of this component has been deleted-- thus deleting the ability to grow the simple farm + * it will delete the farm that can be found on the turf of the parent of this component + */ +/datum/component/simple_farm/proc/delete_farm() + SIGNAL_HANDLER + + var/obj/structure/simple_farm/locate_farm = locate() in get_turf(atom_parent) + if(locate_farm) + qdel(locate_farm) + +/obj/structure/simple_farm + name = "simple farm" + desc = "A small little plant that has adapted to the surrounding environment." + //it needs to be able to be walked through + density = FALSE + //it should not be pulled by anything + anchored = TRUE + ///the atom the farm is attached to + var/atom/attached_atom + ///the seed that is held within + var/obj/item/seeds/planted_seed + ///the max amount harvested from the plants + var/max_harvest = 3 + ///the cooldown amount between each harvest + var/harvest_cooldown = 1 MINUTES + ///the extra potency applied to the seed + var/bonus_potency = 0 + //the cooldown between each harvest + COOLDOWN_DECLARE(harvest_timer) + +/obj/structure/simple_farm/Initialize(mapload) + . = ..() + START_PROCESSING(SSobj, src) + COOLDOWN_START(src, harvest_timer, harvest_cooldown) + +/obj/structure/simple_farm/Destroy() + STOP_PROCESSING(SSobj, src) + + if(planted_seed) + planted_seed.forceMove(get_turf(src)) + planted_seed = null + + if(attached_atom) + if(ismovable(attached_atom)) + UnregisterSignal(attached_atom, COMSIG_MOVABLE_MOVED) + + attached_atom = null + + return ..() + +/obj/structure/simple_farm/examine(mob/user) + . = ..() + . += span_notice("
[src] will be ready for harvest in [DisplayTimeText(COOLDOWN_TIMELEFT(src, harvest_timer))]") + if(max_harvest < 6) + . += span_notice("
You can use sinew or worm fertilizer to lower the time between each harvest!") + if(harvest_cooldown > 30 SECONDS) + . += span_notice("You can use goliath hides or worm fertilizer to increase the amount dropped per harvest!") + if(bonus_potency < 50) + . += span_notice("You can use worm fertilizer to increase the potency of dropped crops!") + +/obj/structure/simple_farm/process(seconds_per_tick) + update_appearance() + +/obj/structure/simple_farm/update_appearance(updates) + if(!planted_seed) + return + + icon = planted_seed.growing_icon + + if(COOLDOWN_FINISHED(src, harvest_timer)) + if(planted_seed.icon_harvest) + icon_state = planted_seed.icon_harvest + + else + icon_state = "[planted_seed.icon_grow][planted_seed.growthstages]" + + name = lowertext(planted_seed.plantname) + + else + icon_state = "[planted_seed.icon_grow]1" + name = lowertext("harvested [planted_seed.plantname]") + + return ..() + +/obj/structure/simple_farm/attack_hand(mob/living/user, list/modifiers) + if(!COOLDOWN_FINISHED(src, harvest_timer)) + balloon_alert(user, "plant not ready for harvest!") + return + + COOLDOWN_START(src, harvest_timer, harvest_cooldown) + create_harvest() + user.mind.adjust_experience(/datum/skill/primitive, 5) + update_appearance() + return ..() + +/obj/structure/simple_farm/attackby(obj/item/attacking_item, mob/user, params) + //if its a shovel or knife, dismantle + if(attacking_item.tool_behaviour == TOOL_SHOVEL || attacking_item.tool_behaviour == TOOL_KNIFE) + var/turf/src_turf = get_turf(src) + src_turf.balloon_alert_to_viewers("the plant crumbles!") + Destroy() + return + + //if its sinew, lower the cooldown + else if(istype(attacking_item, /obj/item/stack/sheet/sinew)) + var/obj/item/stack/sheet/sinew/use_item = attacking_item + + if(!use_item.use(1)) + return + + decrease_cooldown(user) + user.mind.adjust_experience(/datum/skill/primitive, 5) + return + + //if its goliath hide, increase the amount dropped + else if(istype(attacking_item, /obj/item/stack/sheet/animalhide/goliath_hide)) + var/obj/item/stack/sheet/animalhide/goliath_hide/use_item = attacking_item + + if(!use_item.use(1)) + return + + increase_yield(user) + user.mind.adjust_experience(/datum/skill/primitive, 5) + return + + else if(istype(attacking_item, /obj/item/stack/worm_fertilizer)) + + var/obj/item/stack/attacking_stack = attacking_item + + if(!allow_yield_increase() && !allow_decrease_cooldown()) + balloon_alert(user, "plant is already fully upgraded") + return + + if(!attacking_stack.use(1)) + balloon_alert(user, "unable to use [attacking_item]") + return + + if(!decrease_cooldown(user, silent = TRUE) && !increase_yield(user, silent = TRUE) && !increase_potency(user, silent = TRUE)) + balloon_alert(user, "plant is already fully upgraded") + + else + balloon_alert(user, "plant was upgraded") + user.mind.adjust_experience(/datum/skill/primitive, 5) + + return + + else if(istype(attacking_item, /obj/item/storage/bag/plants)) + if(!COOLDOWN_FINISHED(src, harvest_timer)) + return + + COOLDOWN_START(src, harvest_timer, harvest_cooldown) + create_harvest(attacking_item, user) + user.mind.adjust_experience(/datum/skill/primitive, 5) + update_appearance() + return + + return ..() + +/** + * a proc that will check if we can increase the yield-- without increasing it + */ +/obj/structure/simple_farm/proc/allow_yield_increase() + if(max_harvest >= 6) + return FALSE + + return TRUE + +/** + * a proc that will increase the amount of items the crop could produce (at a maximum of 6, from base of 3) + */ +/obj/structure/simple_farm/proc/increase_yield(mob/user, var/silent = FALSE) + if(!allow_yield_increase()) + if(!silent) + balloon_alert(user, "plant is at maximum yield") + + return FALSE + + max_harvest++ + + if(!silent) + balloon_alert_to_viewers("plant will have increased yield") + + return TRUE + +/** + * a proc that will check if we can decrease the time-- without increasing it + */ +/obj/structure/simple_farm/proc/allow_decrease_cooldown() + if(harvest_cooldown <= 30 SECONDS) + return FALSE + + return TRUE + +/** + * a proc that will decrease the amount of time it takes to be ready for harvest (at a maximum of 30 seconds, from a base of 1 minute) + */ +/obj/structure/simple_farm/proc/decrease_cooldown(mob/user, var/silent = FALSE) + if(!allow_decrease_cooldown()) + if(!silent) + balloon_alert(user, "already at maximum growth speed!") + + return FALSE + + harvest_cooldown -= 10 SECONDS + + if(!silent) + balloon_alert_to_viewers("plant will grow faster") + + return TRUE + +/** + * a proc that will increase the potency the crop grows at + */ +/obj/structure/simple_farm/proc/increase_potency(mob/user, var/silent = FALSE) + if(bonus_potency >= 50) + if(!silent) + balloon_alert(user, "plant is at maximum potency") + + return FALSE + + bonus_potency += 10 + + if(!silent) + balloon_alert_to_viewers("plant will have increased potency") + + return TRUE + +/** + * used during the component so that it can move when its attached atom moves + */ +/obj/structure/simple_farm/proc/late_setup() + if(!ismovable(attached_atom)) + return + RegisterSignal(attached_atom, COMSIG_MOVABLE_MOVED, PROC_REF(move_plant)) + +/** + * a simple proc to forcemove the plant on top of the movable atom its attached to + */ +/obj/structure/simple_farm/proc/move_plant() + forceMove(get_turf(attached_atom)) + +/** + * will create a harvest of the seeds product, with a chance to create a mutated version + */ +/obj/structure/simple_farm/proc/create_harvest(var/obj/item/storage/bag/plants/plant_bag, var/mob/user) + if(!planted_seed) + return + + for(var/i in 1 to rand(1, max_harvest)) + var/obj/item/seeds/seed + if(prob(15) && length(planted_seed.mutatelist)) + var/type = pick(planted_seed.mutatelist) + seed = new type + balloon_alert_to_viewers("something special drops!") + else + seed = new planted_seed.type(null) + + seed.potency = 50 + bonus_potency + + var/harvest_type = seed.product || seed.type + var/harvest = new harvest_type(get_turf(src), seed) + plant_bag?.atom_storage?.attempt_insert(harvest, user, TRUE) + +/turf/open/misc/asteroid/basalt/getDug() + . = ..() + AddComponent(/datum/component/simple_farm) + +/turf/open/misc/asteroid/basalt/refill_dug() + . = ..() + qdel(GetComponent(/datum/component/simple_farm)) + +/turf/open/misc/asteroid/snow/getDug() + . = ..() + AddComponent(/datum/component/simple_farm) + +/turf/open/misc/asteroid/snow/refill_dug() + . = ..() + qdel(GetComponent(/datum/component/simple_farm)) + +/obj/machinery/vending/ashclothingvendor + name = "\improper Ashland Clothing Storage" + desc = "A large container, filled with various clothes for the Ash Walkers." + product_ads = "Praise the Necropolis" + icon = 'monkestation/code/modules/blueshift/icons/vending.dmi' + icon_state = "ashclothvendor" + icon_deny = "necrocrate" + + products = list( //Relatively normal to have, I GUESS + /obj/item/clothing/under/costume/gladiator/ash_walker/tribal = 15, + /obj/item/clothing/under/costume/gladiator/ash_walker/chestwrap = 15, + /obj/item/clothing/under/costume/gladiator/ash_walker/robe = 15, + /obj/item/clothing/under/costume/gladiator/ash_walker/shaman = 15, + /obj/item/clothing/under/costume/gladiator/ash_walker/chiefrags = 15, + /obj/item/clothing/under/costume/gladiator/ash_walker/yellow = 15, + /obj/item/clothing/under/costume/gladiator/ash_walker/caesar_clothes = 15, + /obj/item/clothing/under/costume/gladiator/ash_walker/legskirt_d = 15, + /obj/item/clothing/suit/ashwalkermantle = 12, + /obj/item/clothing/suit/ashwalkermantle/cape = 12, + /obj/item/clothing/shoes/jackboots/ashwalker = 12, + /obj/item/clothing/shoes/jackboots/ashwalker/legate = 12, + /obj/item/clothing/shoes/wraps/ashwalker/mundanewraps = 15, + /obj/item/clothing/shoes/wraps/ashwalker = 10, + /obj/item/clothing/shoes/wraps/ashwalker/tribalwraps = 2,, + /obj/item/clothing/head/shamanash = 3, + /obj/item/clothing/neck/cloak/tribalmantle = 2, + /obj/item/clothing/gloves/military/claw = 5, + /obj/item/clothing/gloves/military/ashwalk = 10, + ) + +/obj/machinery/vending/ashclothingvendor/Initialize(mapload) + . = ..() + onstation = FALSE + +/obj/structure/antfarm + name = "ant farm" + desc = "Though it may look natural, this was not made by ants." + icon = 'monkestation/code/modules/blueshift/icons/structures.dmi' + icon_state = "anthill" + density = TRUE + anchored = TRUE + /// If the farm is occupied by ants + var/has_ants = FALSE + /// the chance for the farm to get ants + var/ant_chance = 0 + /// the list of ore-y stuff that ants can drag up from deep within their nest + var/list/ore_list = list( + /obj/item/stack/ore/iron = 20, + /obj/item/stack/ore/glass/basalt = 20, + /obj/item/stack/ore/plasma = 14, + /obj/item/stack/ore/silver = 8, + /obj/item/stack/stone = 8, + /obj/item/stack/sheet/mineral/coal = 8, + /obj/item/stack/ore/titanium = 8, + /obj/item/stack/ore/uranium = 3, + /obj/item/stack/ore/gold = 3, + ) + // The cooldown between each worm "breeding" + COOLDOWN_DECLARE(ant_timer) + +/obj/structure/antfarm/Initialize(mapload) + . = ..() + var/turf/src_turf = get_turf(src) + if(!src_turf.GetComponent(/datum/component/simple_farm)) + src_turf.balloon_alert_to_viewers("must be on farmable surface") + return INITIALIZE_HINT_QDEL + + for(var/obj/structure/antfarm/found_farm in range(2, get_turf(src))) + if(found_farm == src) + continue + + src_turf.balloon_alert_to_viewers("too close to another farm") + return INITIALIZE_HINT_QDEL + + START_PROCESSING(SSobj, src) + COOLDOWN_START(src, ant_timer, 30 SECONDS) + +/obj/structure/antfarm/Destroy() + STOP_PROCESSING(SSobj, src) + new /obj/item/stack/ore/glass/ten(get_turf(src)) + return ..() + +/obj/structure/antfarm/process(seconds_per_tick) + if(!COOLDOWN_FINISHED(src, ant_timer)) + return + + COOLDOWN_START(src, ant_timer, 30 SECONDS) + + if(!has_ants) + if(prob(ant_chance)) + balloon_alert_to_viewers("ants have appeared!") + has_ants = TRUE + + return + + var/spawned_ore = pick_weight(ore_list) + new spawned_ore(get_turf(src)) + +/obj/structure/antfarm/examine(mob/user) + . = ..() + . += span_notice("
There are currently [has_ants ? "" : "no "]ants in the farm.") + . += span_notice("To add ants, feed the farm some food.") + +/obj/structure/antfarm/attackby(obj/item/attacking_item, mob/user, params) + if(istype(attacking_item, /obj/item/food)) + qdel(attacking_item) + balloon_alert(user, "food has been placed") + user.mind.adjust_experience(/datum/skill/primitive, 5) + ant_chance++ + if(prob(user.mind.get_skill_modifier(/datum/skill/primitive, SKILL_PROBS_MODIFIER))) + ant_chance++ + return + + if(istype(attacking_item, /obj/item/storage/bag/plants)) + balloon_alert(user, "feeding the ants") + var/skill_modifier = user.mind.get_skill_modifier(/datum/skill/primitive, SKILL_SPEED_MODIFIER) + for(var/obj/item/food/selected_food in attacking_item.contents) + if(!do_after(user, 1 SECONDS * skill_modifier, src)) + return + + qdel(selected_food) + user.mind.adjust_experience(/datum/skill/primitive, 5) + ant_chance++ + if(prob(user.mind.get_skill_modifier(/datum/skill/primitive, SKILL_PROBS_MODIFIER))) + ant_chance++ + + return + + return ..() + +/obj/item/stack/ore/glass/ten + amount = 10 + +/obj/item/smithed_part/forged_plate + name = "plate" + desc = "A plate, best used in combination with multiple plates." + icon_state = "plate" + icon = 'monkestation/code/modules/blueshift/icons/forge_items.dmi' diff --git a/monkestation/code/modules/blueshift/structures/cauldron.dm b/monkestation/code/modules/blueshift/structures/cauldron.dm new file mode 100644 index 000000000000..a542b2177ed3 --- /dev/null +++ b/monkestation/code/modules/blueshift/structures/cauldron.dm @@ -0,0 +1,339 @@ +/obj/machinery/cauldron + name = "stone cauldron" + desc = "Cooks and boils stuff the old fashioned way." + icon = 'monkestation/code/modules/blueshift/icons/stone_kitchen_machines.dmi' + icon_state = "cauldron_back_off" + density = TRUE + pass_flags_self = PASSMACHINE | PASSTABLE| LETPASSTHROW // It's roughly the height of a table. + layer = BELOW_OBJ_LAYER + use_power = FALSE + circuit = null + resistance_flags = FIRE_PROOF + /// Whether it's currently cooking + var/operating + /// Lid position + var/open + /// Cauldron max capacity + var/max_n_of_items = 10 + /// Ingredients - may only contain /atom/movables + var/list/ingredients = list() + /// When this is the nth ingredient, whats its pixel_x? + var/list/ingredient_shifts_x = list( + -1, + 1, + -2, + 2, + -3, + 0, + ) + /// When this is the nth ingredient, whats its pixel_y? + var/list/ingredient_shifts_y = list( + 7, + 6, + 5, + ) + + /// Radial list icons + var/static/radial_eject = image(icon = 'icons/hud/radial.dmi', icon_state = "radial_eject") + var/static/radial_cook = image(icon = 'icons/hud/radial.dmi', icon_state = "radial_cook") + + /// Radial list options + var/static/list/radial_options = list("eject" = radial_eject, "cook" = radial_cook) + +/obj/machinery/cauldron/Initialize(mapload) + . = ..() + register_context() + update_appearance(UPDATE_ICON) + +/obj/machinery/cauldron/examine(mob/user) + . = ..() + + . += span_notice("It can be taken apart with a crowbar.") + + if(!in_range(user, src) && !isobserver(user)) + . += span_warning("You're too far away to examine [src]'s contents!") + return + + if(length(ingredients)) + . += span_notice("\The [src] contains:") + var/list/items_counts = new + for(var/i in ingredients) + if(isstack(i)) + var/obj/item/stack/item_stack = i + items_counts[item_stack.name] += item_stack.amount + else + var/atom/movable/single_item = i + items_counts[single_item.name]++ + for(var/item in items_counts) + . += span_notice("- [items_counts[item]]x [item].") + else + . += span_notice("\The [src] is empty.") + +/obj/machinery/cauldron/Exited(atom/movable/gone, direction) + if(gone in ingredients) + ingredients -= gone + if(!QDELING(gone) && ingredients.len && isitem(gone)) + var/obj/item/itemized_ingredient = gone + if(!(itemized_ingredient.item_flags & NO_PIXEL_RANDOM_DROP)) + itemized_ingredient.pixel_x = itemized_ingredient.base_pixel_x + rand(-6, 6) + itemized_ingredient.pixel_y = itemized_ingredient.base_pixel_y + rand(-5, 6) + return ..() + +/obj/machinery/cauldron/on_deconstruction(disassembled) + eject() + return ..() + +/obj/machinery/cauldron/Destroy() + QDEL_LIST(ingredients) + return ..() + +/obj/machinery/cauldron/add_context(atom/source, list/context, obj/item/held_item, mob/user) + . = ..() + if(held_item?.tool_behaviour == TOOL_WRENCH) + context[SCREENTIP_CONTEXT_LMB] = "[anchored ? "Unsecure" : "Secure"]" + return CONTEXTUAL_SCREENTIP_SET + + if(held_item?.tool_behaviour == TOOL_CROWBAR) + context[SCREENTIP_CONTEXT_LMB] = "Deconstruct" + return CONTEXTUAL_SCREENTIP_SET + + context[SCREENTIP_CONTEXT_LMB] = "Show menu" + + if(length(ingredients) != 0) + context[SCREENTIP_CONTEXT_RMB] = "Start cooking" + + return CONTEXTUAL_SCREENTIP_SET + +#define CAULDRON_INGREDIENT_OVERLAY_SIZE 14 + +/obj/machinery/cauldron/update_overlays() + . = ..() + + var/ingredient_count = 0 + + for(var/atom/movable/ingredient as anything in ingredients) + var/image/ingredient_overlay = image(ingredient, src) + + var/list/icon_dimensions = get_icon_dimensions(ingredient.icon) + ingredient_overlay.transform = ingredient_overlay.transform.Scale( + CAULDRON_INGREDIENT_OVERLAY_SIZE / icon_dimensions["width"], + CAULDRON_INGREDIENT_OVERLAY_SIZE / icon_dimensions["height"], + ) + + ingredient_overlay.pixel_x = ingredient_shifts_x[(ingredient_count % ingredient_shifts_x.len) + 1] + ingredient_overlay.pixel_y = ingredient_shifts_y[(ingredient_count % ingredient_shifts_y.len) + 1] + ingredient_overlay.layer = FLOAT_LAYER + ingredient_overlay.plane = FLOAT_PLANE + ingredient_overlay.blend_mode = BLEND_INSET_OVERLAY + + ingredient_count += 1 + + . += ingredient_overlay + + var/base_icon_state = "cauldron_front" + var/lid_icon_state + + if(open) + lid_icon_state = "cauldron_lid_open" + else + lid_icon_state = "cauldron_lid_closed" + + + . += mutable_appearance( + icon, + lid_icon_state, + ) + + . += base_icon_state + +#undef CAULDRON_INGREDIENT_OVERLAY_SIZE + +/obj/machinery/cauldron/update_icon_state() + if(operating) + icon_state = "cauldron_back_cooking" + else + icon_state = "cauldron_back_off" + + return ..() + +/obj/machinery/cauldron/wrench_act(mob/living/user, obj/item/tool) + if(default_unfasten_wrench(user, tool)) + update_appearance() + return + +/obj/machinery/cauldron/crowbar_act(mob/living/user, obj/item/tool) + user.balloon_alert_to_viewers("disassembling...") + if(!tool.use_tool(src, user, 2 SECONDS, volume = 100)) + return + new /obj/item/stack/sheet/mineral/stone(drop_location(), 5) // Made with stone instead of iron so that it doesn't outbalance microwaves on station + deconstruct(TRUE) + return + +/obj/machinery/cauldron/attackby(obj/item/item, mob/living/user, params) + if(operating) + return + + if(!anchored) + if(IS_EDIBLE(item)) + balloon_alert(user, "not secured!") + return TRUE + return ..() + + if(istype(item, /obj/item/storage)) + var/obj/item/storage/tray = item + var/loaded = 0 + + if(!istype(item, /obj/item/storage/bag/tray)) + // Non-tray dumping requires a do_after + to_chat(user, span_notice("You start dumping out the contents of [item] into [src]...")) + if(!do_after(user, 2 SECONDS, target = tray)) + return + + for(var/obj/tray_item in tray.contents) + if(!IS_EDIBLE(tray_item)) + continue + if(ingredients.len >= max_n_of_items) + balloon_alert(user, "it's full!") + return TRUE + if(tray.atom_storage.attempt_remove(tray_item, src)) + loaded++ + ingredients += tray_item + if(loaded) + open() + to_chat(user, span_notice("You insert [loaded] items into \the [src].")) + update_appearance() + return + + if(item.w_class <= WEIGHT_CLASS_NORMAL && !istype(item, /obj/item/storage) && !(user.istate & ISTATE_HARM)) + if(ingredients.len >= max_n_of_items) + balloon_alert(user, "it's full!") + return TRUE + if(!user.transferItemToLoc(item, src)) + balloon_alert(user, "it's stuck to your hand!") + return FALSE + + ingredients += item + open() + user.visible_message(span_notice("[user] adds \a [item] to \the [src]."), span_notice("You add [item] to \the [src].")) + update_appearance() + return + + return ..() + +/obj/machinery/cauldron/attack_hand_secondary(mob/user, list/modifiers) + if(user.can_perform_action(src)) + if(!length(ingredients)) + balloon_alert(user, "it's empty!") + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + + cook(user) + + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + +/obj/machinery/cauldron/ui_interact(mob/user) + . = ..() + + if(!anchored) + balloon_alert(user, "not secured!") + return + if(operating || !user.can_perform_action(src)) + return + + if(!length(ingredients)) + if(isAI(user)) + examine(user) + else + balloon_alert(user, "it's empty!") + return + + var/choice = show_radial_menu(user, src, radial_options, require_near = TRUE) + + // post choice verification + if(!anchored) + balloon_alert(user, "not secured!") + return + if(operating || !user.can_perform_action(src)) + return + + switch(choice) + if("eject") + eject() + if("cook") + cook(user) + if("examine") + examine(user) + +/** + * Ejects all the ingredients currently stored in the cauldron. + * Called by deconstruction, finishing cooking, or user selecting the eject option. + */ +/obj/machinery/cauldron/proc/eject() + var/atom/drop_loc = drop_location() + for(var/atom/movable/movable_ingredient as anything in ingredients) + movable_ingredient.forceMove(drop_loc) + open() + +/** + * Begins the process of cooking the included ingredients. + * + * * cooker - The mob that initiated the cook cycle + */ +/obj/machinery/cauldron/proc/cook(mob/cooker) + if(operating || !anchored) + return + + start(cooker) + +/** + * The start of the cook loop + * + * * cooker - The mob that initiated the cook cycle + */ +/obj/machinery/cauldron/proc/start(mob/cooker) + visible_message(span_notice("\The [src] turns on."), null, span_hear("You hear bubbling as the cauldron ignites.")) + operating = TRUE + update_appearance() + cook_loop(cycles = 10, cooker = cooker) + +/** + * The actual cook loop started via [proc/start] + * * time - how many loops are left, base case for recursion + * * wait - deciseconds between loops + * * cooker - The mob that initiated the cook cycle + */ +/obj/machinery/cauldron/proc/cook_loop(cycles, wait = max(12, 2), mob/cooker) + if(cycles <= 0 || !length(ingredients)) + loop_finish(cooker) + return + cycles-- + addtimer(CALLBACK(src, PROC_REF(cook_loop), cycles, wait, cooker), wait) + +/** + * Called when the cook_loop is done successfully + * + * * cooker - The mob that initiated the cook cycle + */ +/obj/machinery/cauldron/proc/loop_finish(mob/cooker) + operating = FALSE + + for(var/obj/item/cooked_item in ingredients) + cooked_item.microwave_act(src, cooker, randomize_pixel_offset = ingredients.len) + + eject() + +/** + * Temporary opens the cauldron, called when ingredients are added or ejected + * + * autoclose - how long it stays open before calling the close() proc + */ +/obj/machinery/cauldron/proc/open(autoclose = 0.6 SECONDS) + open = TRUE + update_appearance() + addtimer(CALLBACK(src, PROC_REF(close)), autoclose) + +/** + * Closes the cauldron, called by the open() proc after some delay + */ +/obj/machinery/cauldron/proc/close() + open = FALSE + update_appearance() diff --git a/monkestation/code/modules/blueshift/structures/computer.dm b/monkestation/code/modules/blueshift/structures/computer.dm new file mode 100644 index 000000000000..c78b95e5df61 --- /dev/null +++ b/monkestation/code/modules/blueshift/structures/computer.dm @@ -0,0 +1,38 @@ +/obj/machinery/computer/shuttle/pod/advanced + icon = 'monkestation/code/modules/blueshift/icons/computer.dmi' + icon_state = "intercom" + icon_screen = "null" + layer = ABOVE_OBJ_LAYER + +/obj/machinery/computer/shuttle/pod/advanced/emag_act(mob/user) + if(obj_flags & EMAGGED) + return FALSE + obj_flags |= EMAGGED + locked = FALSE + to_chat(user, span_warning("You fry the pod's alert level checking system.")) + return TRUE + +/obj/machinery/computer/emergency_shuttle/advanced + icon = 'monkestation/code/modules/blueshift/icons/computer.dmi' + icon_state = "computer" + icon_keyboard = "" + icon_screen = "" + +/obj/machinery/computer/crew/shuttle + icon = 'monkestation/code/modules/blueshift/icons/computer.dmi' + icon_state = "computer_left" + icon_keyboard = "" + icon_screen = "" + + +/obj/machinery/computer/security/shuttle + icon = 'monkestation/code/modules/blueshift/icons/computer.dmi' + icon_state = "computer_right" + icon_keyboard = "" + icon_screen = "" + +/obj/machinery/computer/shuttle/ferry/shuttle + icon = 'monkestation/code/modules/blueshift/icons/computer.dmi' + icon_state = "computer" + icon_keyboard = "" + icon_screen = "" diff --git a/monkestation/code/modules/blueshift/structures/delam_procedure.dm b/monkestation/code/modules/blueshift/structures/delam_procedure.dm new file mode 100644 index 000000000000..fd255a9a8369 --- /dev/null +++ b/monkestation/code/modules/blueshift/structures/delam_procedure.dm @@ -0,0 +1,608 @@ +#define SM_PREVENT_EXPLOSION_THRESHOLD 100 +#define SM_COOLING_MIXTURE_MOLES 16000 +#define SM_COOLING_MIXTURE_TEMP 170 +#define DAMAGED_SUPERMATTER_COLOR list(1,0.1,0.2,0, 0,0.9,0.1,0, 0.1,-0.05,0.85,0, 0,0,0,0.9, 0,0,0,0) +#define MISTAKES_WERE_MADE 0 +#define MANUAL_INTERVENTION 0 +#define AUTOMATIC_SAFETIES 1 +#define BUTTON_PUSHED 0 +#define BUTTON_IDLE 1 +#define BUTTON_AWAKE 2 +#define BUTTON_ARMED 3 +#define SM_DAMAGED_EXPLOSION_POWER 41 +#define SHATTER_DEVASTATION_RANGE 0 +#define SHATTER_HEAVY_RANGE 0 +#define SHATTER_LIGHT_RANGE 0 +#define SHATTER_FLAME_RANGE 3 +#define SHATTER_FLASH_RANGE 5 +#define SHATTER_MIN_TIME 17 SECONDS +#define SHATTER_MAX_TIME 19 SECONDS +#define EVAC_WARNING_TIMER 3 SECONDS +#define POWER_CUT_MIN_DURATION_SECONDS 21 +#define POWER_CUT_MAX_DURATION_SECONDS 23 +#define AIR_INJECT_RATE 175 +#define BUTTON_SOUND_RANGE 7 +#define BUTTON_SOUND_FALLOFF_DISTANCE 7 +#define MACHINE_SOUND_RANGE 15 +#define MACHINE_RUMBLE_SOUND_RANGE 30 +#define MACHINE_SOUND_FALLOFF_DISTANCE 10 + +/// An atmos device that uses freezing cold air to attempt an emergency shutdown of the supermatter engine +/obj/machinery/atmospherics/components/unary/delam_scram + icon = 'monkestation/code/modules/blueshift/icons/scram.dmi' + icon_state = "dispenser-idle" + name = "\improper delamination suppression system" + desc = "The latest model in Nakamura Engineering's line of delamination suppression systems.
You don't want to be in the chamber when it's activated!
\ + Come to think of it, CentCom would rather you didn't activate it at all.
These things are expensive!" + use_power = IDLE_POWER_USE + can_unwrench = FALSE // comedy option, what if unwrenching trying to steal it throws you into the crystal for a nice dusting + shift_underlay_only = FALSE + hide = TRUE + piping_layer = PIPING_LAYER_MAX + pipe_state = "injector" + resistance_flags = FIRE_PROOF | FREEZE_PROOF | UNACIDABLE + idle_power_usage = BASE_MACHINE_IDLE_CONSUMPTION * 4 + + ///Rate of operation of the device (L/s) + var/volume_rate = AIR_INJECT_RATE + ///weakref to our SM + var/datum/weakref/my_sm + ///Our internal radio + var/obj/item/radio/radio + ///The key our internal radio uses + var/radio_key = /obj/item/encryptionkey/headset_eng + ///Radio channels, need null to actually broadcast on common, lol + var/emergency_channel = null + var/warning_channel = RADIO_CHANNEL_ENGINEERING + ///If someone -really- wants the SM to explode + var/admin_disabled = FALSE + + +/obj/machinery/atmospherics/components/unary/delam_scram/Initialize(mapload) + . = ..() + + return INITIALIZE_HINT_LATELOAD + +/obj/machinery/atmospherics/components/unary/delam_scram/post_machine_initialize() + . = ..() + if(isnull(id_tag)) + id_tag = "SCRAM" + + radio = new(src) + radio.keyslot = new radio_key + radio.set_listening(FALSE) + radio.recalculateChannels() + + marry_sm() + RegisterSignal(SSdcs, COMSIG_MAIN_SM_DELAMINATING, PROC_REF(panic_time)) + +/obj/machinery/atmospherics/components/unary/delam_scram/Destroy() + QDEL_NULL(radio) + my_sm = null + return ..() + +/// Sets the weakref to the SM +/obj/machinery/atmospherics/components/unary/delam_scram/proc/marry_sm() + my_sm = WEAKREF(GLOB.main_supermatter_engine) + +/obj/machinery/atmospherics/components/unary/delam_scram/update_icon_nopipes() + return + +/** + * The atmos code is functionally identical to /obj/machinery/atmospherics/components/unary/outlet_injector + * However this is a hardened all-in-one unit that can't have its controls + * tampered with like an outlet injector +*/ +/obj/machinery/atmospherics/components/unary/delam_scram/process_atmos() + ..() + if(!on || !is_operational) + return + + var/turf/location = get_turf(loc) + + if(isclosedturf(location)) + return + + var/datum/gas_mixture/air_contents = airs[1] + + if(air_contents.temperature > 0) + var/transfer_moles = (air_contents.return_pressure() * volume_rate) / (air_contents.temperature * R_IDEAL_GAS_EQUATION) + + if(!transfer_moles) + return + + var/datum/gas_mixture/removed = air_contents.remove(transfer_moles) + + location.assume_air(removed) + update_parents() + +/// Signal handler for the emergency stop button/automated system +/obj/machinery/atmospherics/components/unary/delam_scram/proc/panic_time(source, trigger_reason) + SIGNAL_HANDLER + + if(!prereq_check()) + return + + send_warning(source, trigger_reason) + +/// Check for admin intervention or a fault in the signal validation, we don't exactly want to fire this on accident +/obj/machinery/atmospherics/components/unary/delam_scram/proc/prereq_check(source, trigger_reason) + if(on) + return FALSE + + if(admin_disabled) + investigate_log("Delam SCRAM tried to activate but an admin disabled it", INVESTIGATE_ATMOS) + playsound(src, 'sound/misc/compiler-failure.ogg', 100, FALSE, MACHINE_SOUND_RANGE, ignore_walls = TRUE, use_reverb = TRUE, falloff_distance = MACHINE_SOUND_FALLOFF_DISTANCE) + radio.talk_into(src, "System fault! Unable to trigger.", warning_channel) + audible_message(span_danger("[src] makes a series of sad beeps. Someone has corrupted its software!")) + return FALSE + + if(world.time - SSticker.round_start_time > 30 MINUTES && trigger_reason != DIVINE_INTERVENTION) + playsound(src, 'sound/misc/compiler-failure.ogg', 100, FALSE, MACHINE_SOUND_RANGE, ignore_walls = TRUE, use_reverb = TRUE, falloff_distance = MACHINE_SOUND_FALLOFF_DISTANCE) + audible_message(span_danger("[src] makes a series of sad beeps. The internal charge only lasts about 30 minutes... what a feat of engineering!")) + investigate_log("Delam SCRAM signal was received but failed precondition check. (Round time or trigger reason)", INVESTIGATE_ATMOS) + return FALSE + + return TRUE + +/// Tells the station (they probably already know) and starts the procedure +/obj/machinery/atmospherics/components/unary/delam_scram/proc/send_warning(source, trigger_reason) + if(trigger_reason == DIVINE_INTERVENTION) + investigate_log("Delam SCRAM was activated by admin intervention", INVESTIGATE_ATMOS) + notify_ghosts( + "[src] has been activated!", + source = src, + header = "Divine Intervention", + ghost_sound = 'sound/machines/warning-buzzer.ogg', + notify_volume = 75, + ) + else + var/reason + switch(trigger_reason) + if(AUTOMATIC_SAFETIES) + reason = "automatic safeties" + if(MANUAL_INTERVENTION) + reason = "manual intervention" + + investigate_log("Delam SCRAM was activated by [reason]", INVESTIGATE_ATMOS) + // They're probably already deadchat engineering discussing what you did wrong + notify_ghosts( + "[src] has been activated!", + source = src, + header = "Mistakes Were Made", + ghost_sound = 'sound/machines/warning-buzzer.ogg', + notify_volume = 75, + ) + + radio.talk_into(src, "DELAMINATION SUPPRESSION SYSTEM FIRING. EVACUATE THE SUPERMATTER ENGINE ROOM!", emergency_channel) + + // fight power with power + addtimer(CALLBACK(src, PROC_REF(put_on_a_show)), EVAC_WARNING_TIMER) + playsound(src, 'sound/misc/bloblarm.ogg', 100, FALSE, MACHINE_RUMBLE_SOUND_RANGE, ignore_walls = TRUE, use_reverb = TRUE, falloff_distance = MACHINE_SOUND_FALLOFF_DISTANCE) + power_fail((EVAC_WARNING_TIMER / 10) + POWER_CUT_MAX_DURATION_SECONDS, (EVAC_WARNING_TIMER / 10) + POWER_CUT_MAX_DURATION_SECONDS) + +/// Stop the delamination. Let the fireworks begin +/obj/machinery/atmospherics/components/unary/delam_scram/proc/put_on_a_show() + var/obj/machinery/power/supermatter_crystal/engine/angry_sm = my_sm?.resolve() + if(!angry_sm) + return + + // Fire bell close, that nice 'are we gonna die?' rumble out far + on = TRUE + //alert_sound_to_playing('sound/misc/earth_rumble_distant3.ogg', override_volume = TRUE) + update_appearance() + + // Good job at kneecapping the crystal, engineers + // Make the crystal look cool (can escape a delam, but not puns) + angry_sm.modify_filter(name = "ray", new_params = list( + color = SUPERMATTER_TESLA_COLOUR, + )) + angry_sm.color = DAMAGED_SUPERMATTER_COLOR + angry_sm.set_light_color(SUPERMATTER_TESLA_COLOUR) + angry_sm.update_appearance() + + // Don't vent the delam juice as it works its magic + for(var/obj/machinery/atmospherics/components/unary/vent_scrubber/scrubby_boi in range(3, src)) + scrubby_boi.on = FALSE + scrubby_boi.update_appearance() + + for(var/obj/machinery/atmospherics/components/unary/vent_pump/venti_boi in range(3, src)) + venti_boi.on = FALSE + venti_boi.update_appearance() + + // The windows can only protect you for so long + for(var/obj/structure/window/reinforced/plasma/fucked_window in range(3, src)) + addtimer(CALLBACK(fucked_window, TYPE_PROC_REF(/obj/structure/window/reinforced/plasma, shatter_window)), rand(SHATTER_MIN_TIME, SHATTER_MAX_TIME)) + + // Let the gas work for a few seconds to cool the crystal. If it has damage beyond repair, heal it a bit + addtimer(CALLBACK(src, PROC_REF(prevent_explosion)), 9 SECONDS) + +/// Shatter the supermatter chamber windows +/obj/structure/window/reinforced/plasma/proc/shatter_window() + visible_message(span_danger("[src] shatters in the freon fire!")) + explosion(src, SHATTER_DEVASTATION_RANGE, SHATTER_HEAVY_RANGE, SHATTER_LIGHT_RANGE, SHATTER_FLAME_RANGE, SHATTER_FLASH_RANGE) + qdel(src) + +/// The valiant little machine falls apart, one time use only! +/obj/machinery/atmospherics/components/unary/delam_scram/proc/goodbye_friends() + + // good job buddy, sacrificing yourself for the greater good + playsound(src, 'sound/misc/compiler-failure.ogg', 100, FALSE, MACHINE_SOUND_RANGE, ignore_walls = TRUE, use_reverb = TRUE, falloff_distance = MACHINE_SOUND_FALLOFF_DISTANCE) + visible_message(span_danger("[src] beeps a sorrowful melody and collapses into a pile of twisted metal and foam!"), blind_message = span_danger("[src] beeps a sorrowful melody!")) + deconstruct(FALSE) + +/// Drain the internal energy, if the crystal damage is above 100 we heal it a bit. Not much, but should be good to let them recover. +/obj/machinery/atmospherics/components/unary/delam_scram/proc/prevent_explosion() + var/obj/machinery/power/supermatter_crystal/engine/damaged_sm = my_sm?.resolve() + if(!damaged_sm) + return + + damaged_sm.name = "partially delaminated supermatter crystal" + damaged_sm.desc = "This crystal has seen better days, the glow seems off and the shards look brittle. Central says it's still \"relatively safe.\" They'd never lie to us, right?" + damaged_sm.explosion_power = SM_DAMAGED_EXPLOSION_POWER // if you fuck up again, yeesh + + if(damaged_sm.damage > SM_PREVENT_EXPLOSION_THRESHOLD) + damaged_sm.damage = SM_PREVENT_EXPLOSION_THRESHOLD + + damaged_sm.internal_energy = MISTAKES_WERE_MADE + for(var/obj/machinery/power/energy_accumulator/tesla_coil/zappy_boi in range(3, src)) + zappy_boi.stored_energy = MISTAKES_WERE_MADE + +/obj/machinery/atmospherics/components/unary/delam_scram/New() + . = ..() + var/datum/gas_mixture/delam_juice = new + delam_juice.add_gases(/datum/gas/freon) + delam_juice.gases[/datum/gas/freon][MOLES] = SM_COOLING_MIXTURE_MOLES + delam_juice.temperature = SM_COOLING_MIXTURE_TEMP + airs[1] = delam_juice + +/// A big red button you can smash to stop the supermatter engine, oh how tempting! +/obj/machinery/button/delam_scram + name = "\improper supermatter emergency stop button" + desc = "Your last hope to try and save the crystal during a delamination.
\ + While it is indeed a big red button, pressing it outside of an emergency \ + will probably get the engineering department out for your blood." + icon = 'monkestation/code/modules/blueshift/icons/scram.dmi' + silicon_access_disabled = TRUE + resistance_flags = FREEZE_PROOF | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF + use_power = NO_POWER_USE + light_color = LIGHT_COLOR_INTENSE_RED + light_power = 0.7 + icon_state = "button" + skin = null + base_icon_state = "button" + ///one use only! + var/button_stage = BUTTON_IDLE + ///our internal radio + var/obj/item/radio/radio + ///radio key + var/radio_key = /obj/item/encryptionkey/headset_eng + COOLDOWN_DECLARE(scram_button) + +/obj/machinery/button/delam_scram/Initialize(mapload) + . = ..() + radio = new(src) + radio.keyslot = new radio_key + radio.set_listening(FALSE) + radio.recalculateChannels() + +/obj/machinery/button/delam_scram/Destroy() + QDEL_NULL(radio) + return ..() + +/obj/machinery/button/delam_scram/screwdriver_act(mob/living/user, obj/item/tool) + return TRUE + +/obj/machinery/button/delam_scram/emag_act(mob/user) + return + +/// Proc for arming the red button, it hasn't been pushed yet +/obj/machinery/button/delam_scram/attack_hand(mob/user, list/modifiers) + . = ..() + if((machine_stat & BROKEN)) + return + + if(!COOLDOWN_FINISHED(src, scram_button)) + balloon_alert(user, "on cooldown!") + return + + if(!validate_suppression_status()) + playsound(src.loc, 'sound/machines/buzz-sigh.ogg', 50, FALSE, BUTTON_SOUND_RANGE, falloff_distance = BUTTON_SOUND_FALLOFF_DISTANCE) + audible_message(span_danger("[src] makes a sad buzz and goes dark. Did someone activate it already?")) // Look through the window, buddy + burn_out() + return + + if(.) + return + + // Give them a cheeky instructions card. But only one! If you lost it, question your engineering prowess in this moment + if(button_stage == BUTTON_IDLE) + visible_message(span_danger("A plastic card falls out of [src]!")) + user.put_in_hands(new /obj/item/paper/paperslip/corporate/fluff/delam_procedure(get_turf(user))) + button_stage = BUTTON_AWAKE + return + + if(button_stage != BUTTON_AWAKE) + return + + COOLDOWN_START(src, scram_button, 15 SECONDS) + + // For roundstart only, after that it's on you! + if(world.time - SSticker.round_start_time > 30 MINUTES) + playsound(src.loc, 'sound/misc/compiler-failure.ogg', 50, FALSE, BUTTON_SOUND_RANGE, falloff_distance = BUTTON_SOUND_FALLOFF_DISTANCE) + audible_message(span_danger("[src] makes a series of sad beeps. The internal charge only lasts about 30 minutes... what a feat of engineering! Looks like it's all on you to save the day.")) + burn_out() + return + + // You thought you could sneak this one by your coworkers? + button_stage = BUTTON_ARMED + update_appearance() + radio.talk_into(src, "SUPERMATTER EMERGENCY STOP BUTTON ARMED!", RADIO_CHANNEL_ENGINEERING) + visible_message(span_danger("[user] swings open the plastic cover on [src]!")) + + // Let the admins know someone's fucked up + message_admins("[ADMIN_LOOKUPFLW(user)] just uncovered [src].") + investigate_log("[key_name(user)] uncovered [src].", INVESTIGATE_ATMOS) + + confirm_action(user) + +/// Confirms with the user that they really want to push the red button. Do it, you won't! +/obj/machinery/button/delam_scram/proc/confirm_action(mob/user, list/modifiers) + if(tgui_alert(usr, "Are you really sure that you want to push this?", "It looked scarier on HBO.", list("No", "Yes")) != "Yes") + button_stage = BUTTON_AWAKE + visible_message(span_danger("[user] slowly closes the plastic cover on [src]!")) + update_appearance() + return + + // Make scary sound and flashing light + playsound(src, 'sound/machines/high_tech_confirm.ogg', 50, FALSE, BUTTON_SOUND_RANGE, ignore_walls = TRUE, use_reverb = TRUE, falloff_distance = BUTTON_SOUND_FALLOFF_DISTANCE) + button_stage = BUTTON_PUSHED + visible_message(span_danger("[user] smashes [src] with their hand!")) + message_admins("[ADMIN_LOOKUPFLW(user)] pushed [src]!") + investigate_log("[key_name(user)] pushed [src]!", INVESTIGATE_ATMOS) + flick_overlay_view("[base_icon_state]-overlay-active", 20 SECONDS) + + // No going back now! + SEND_GLOBAL_SIGNAL(COMSIG_MAIN_SM_DELAMINATING, MANUAL_INTERVENTION) + + // Temporarily let anyone escape the engine room before it becomes spicy + for(var/obj/machinery/door/airlock/escape_route in range(7, src)) + if(istype(escape_route, /obj/machinery/door/airlock/command)) + continue + + INVOKE_ASYNC(escape_route, TYPE_PROC_REF(/obj/machinery/door/airlock, temp_emergency_exit), 45 SECONDS) + +/// When the button is pushed but it's too late to save you! +/obj/machinery/button/delam_scram/proc/burn_out() + if(!(machine_stat & BROKEN)) + src.desc += span_warning("The light is off, indicating it is not currently functional.") + set_machine_stat(machine_stat | BROKEN) + update_appearance() + +/obj/machinery/button/delam_scram/update_icon_state() + . = ..() + icon_state = "[base_icon_state][skin]" + if(button_stage == BUTTON_ARMED) + icon_state += "-armed" + else if(button_stage == BUTTON_PUSHED) + icon_state += "-armed" + else if(machine_stat & (NOPOWER|BROKEN)) + icon_state += "-nopower" + +/obj/machinery/power/emitter/post_machine_initialize() + . = ..() + RegisterSignal(SSdcs, COMSIG_MAIN_SM_DELAMINATING, PROC_REF(emergency_stop)) + +/obj/machinery/power/emitter/proc/emergency_stop() + SIGNAL_HANDLER + + var/area/my_area = get_area(src) + if(!istype(my_area, /area/station/engineering)) + return + + active = FALSE + update_appearance() + +/obj/item/paper/paperslip/corporate/fluff/delam_procedure/Initialize(mapload) + name = "NT-approved delam emergency procedure" + desc = "Now you're a REAL engineer!" + return ..() + +/obj/item/paper/paperslip/corporate/fluff/delam_procedure/examine(mob/user) + . = ..() + ui_interact(user) + +/obj/item/paper/paperslip/corporate/fluff/delam_procedure/attackby(obj/item/attacking_item, mob/living/user, params) + if(burn_paper_product_attackby_check(attacking_item, user)) + SStgui.close_uis(src) + return + + // Enable picking paper up by clicking on it with the clipboard or folder + if(istype(attacking_item, /obj/item/clipboard) || istype(attacking_item, /obj/item/folder) || istype(attacking_item, /obj/item/paper_bin)) + attacking_item.attackby(src, user) + return + + ui_interact(user) + return ..() + +/obj/item/paper/paperslip/corporate/fluff/delam_procedure/ui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "DelamProcedure") + ui.autoupdate = FALSE + ui.open() + +/obj/structure/sign/delam_procedure + name = "Safety Moth - Delamination Emergency Procedure" + desc = "This informational sign uses Safety Moth™ to tell the viewer how to use the emergency stop button if the Supermatter Crystal is delaminating." + icon = 'monkestation/code/modules/blueshift/icons/scram.dmi' + icon_state = "moff-poster" + pixel_y = 4 + armor_type = /datum/armor/sign_delam + anchored = TRUE + +/datum/armor/sign_delam + melee = 60 + acid = 70 + fire = 90 + +/obj/structure/sign/delam_procedure/examine(mob/user) + . = ..() + ui_interact(user) + +/obj/structure/sign/delam_procedure/ui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "DelamProcedure") + ui.autoupdate = FALSE + ui.open() + +/obj/structure/sign/delam_procedure/ui_status(mob/user) + if(user.is_blind()) + return UI_CLOSE + + return ..() + +MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/atmospherics/components/unary/delam_scram, 0) +MAPPING_DIRECTIONAL_HELPERS(/obj/structure/sign/delam_procedure, 32) + +#undef DAMAGED_SUPERMATTER_COLOR +#undef SM_PREVENT_EXPLOSION_THRESHOLD +#undef SM_COOLING_MIXTURE_MOLES +#undef SM_COOLING_MIXTURE_TEMP +#undef MISTAKES_WERE_MADE +#undef MANUAL_INTERVENTION +#undef AUTOMATIC_SAFETIES +#undef BUTTON_PUSHED +#undef BUTTON_IDLE +#undef BUTTON_AWAKE +#undef BUTTON_ARMED +#undef SM_DAMAGED_EXPLOSION_POWER +#undef SHATTER_DEVASTATION_RANGE +#undef SHATTER_HEAVY_RANGE +#undef SHATTER_LIGHT_RANGE +#undef SHATTER_FLAME_RANGE +#undef SHATTER_FLASH_RANGE +#undef SHATTER_MIN_TIME +#undef SHATTER_MAX_TIME +#undef EVAC_WARNING_TIMER +#undef POWER_CUT_MIN_DURATION_SECONDS +#undef POWER_CUT_MAX_DURATION_SECONDS +#undef AIR_INJECT_RATE +#undef BUTTON_SOUND_RANGE +#undef BUTTON_SOUND_FALLOFF_DISTANCE +#undef MACHINE_SOUND_RANGE +#undef MACHINE_RUMBLE_SOUND_RANGE +#undef MACHINE_SOUND_FALLOFF_DISTANCE + +/obj/machinery/power/supermatter_crystal + /// If admins and the station have been notified according to the delam suppression function + var/station_notified = FALSE + +/datum/sm_delam/proc/notify_delam_suppression(obj/machinery/power/supermatter_crystal/sm) + if(!sm.is_main_engine) + return + + if(sm.station_notified) + return + + if(world.time - SSticker.round_start_time > 30 MINUTES) + return + + if(SSjob.is_skeleton_engineering(3)) // Don't bother if there's command or a well staffed department, they -should- be paying attention. + var/obj/machinery/announcement_system/system = pick(GLOB.announcement_systems) + system.broadcast("The supermatter delamination early warning system has been triggered due to anomalous conditions. Please investigate the engine as soon as possible.", list(RADIO_CHANNEL_COMMAND)) + system.broadcast("In the event of uncontrolled delamination, please consult the documentation packet regarding usage of the supermatter emergency stop button.", list(RADIO_CHANNEL_COMMAND)) + system.broadcast("Failure to stabilise the engine may result in an automatic deployment of the suppression system.", list(RADIO_CHANNEL_COMMAND)) + + log_admin("DELAM: Round timer under 30 minutes! Supermatter will perform an automatic delam suppression at strength 0%.") + for(var/client/staff as anything in GLOB.admins) + if(staff?.prefs.read_preference(/datum/preference/toggle/comms_notification)) + SEND_SOUND(staff, sound('sound/misc/server-ready.ogg')) + message_admins("DELAM: Round timer under 30 minutes! [ADMIN_VERBOSEJMP(sm)] will perform an automatic delam suppression once integrity reaches 0%. (TOGGLE AUTOMATIC INTERVENTION))") + sm.station_notified = TRUE + +/datum/sm_delam/Topic(href, href_list) + if(..()) + return + + if(!check_rights(R_FUN)) + return + + if(href_list["togglesuppression"]) + usr.client?.toggle_delam_suppression() + +/** + * Check if the station manifest has at least a certain amount of this staff type + * + * Arguments: + * * crew_threshold - amount of crew before it's no longer considered a skeleton crew + * +*/ +/datum/controller/subsystem/job/proc/is_skeleton_engineering(crew_threshold) + var/engineers = 0 + for(var/datum/record/crew/target in GLOB.manifest.general) + if(target.trim == JOB_CHIEF_ENGINEER) + return FALSE + + if(target.trim == JOB_STATION_ENGINEER) + engineers++ + + if(target.trim == JOB_ATMOSPHERIC_TECHNICIAN) + engineers++ + + if(engineers > crew_threshold) + return FALSE + + return TRUE + + +/client/proc/toggle_delam_suppression() + var/obj/machinery/atmospherics/components/unary/delam_scram/suppression_system = validate_suppression_status() + + if(!suppression_system) + return + + suppression_system.admin_disabled = !suppression_system.admin_disabled + + log_admin("[key_name_admin(usr)] toggled Delam suppression [suppression_system.admin_disabled ? "OFF" : "ON"].") + message_admins("[key_name_admin(usr)] toggled Delam suppression [suppression_system.admin_disabled ? "OFF" : "ON"].") + +/// Check if the delam suppression setup is valid on the map +/proc/validate_suppression_status() + var/obj/machinery/atmospherics/components/unary/delam_scram/my_one_and_only = null + for(var/obj/machinery/atmospherics/components/unary/delam_scram/system as anything in SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/atmospherics/components/unary/delam_scram)) + if(!my_one_and_only) + my_one_and_only = system + else + message_admins("Delam suppression request FAILED: Multiple Delam SCRAM units found on map! Delete the extra unit at [ADMIN_COORDJMP(system)] if applicable and try again.") + stack_trace("Multiple Delam SCRAM units found on map at [system.loc]. Either someone spawned in a duplicate or you need to yell at a mapper!") // We could fire anyways, but who knows where the mystery extra machine(s) are. + return FALSE + + if(!my_one_and_only) + message_admins("No active delam SCRAM units found on map! Either it's not mapped or it's already been used!") + return FALSE + + if(my_one_and_only.on) + message_admins("[my_one_and_only] can't fire, it's already been triggered!") + return FALSE + + return my_one_and_only + + +/** + * Make the airlock unrestricted as a temporary emergency exit. + * + * Arguments: + * * duration - How long the door will operate as an emergency exit before reverting to normal operation + * +*/ +/obj/machinery/door/airlock/proc/temp_emergency_exit(duration) + if(!emergency) + set_emergency_exit(TRUE) + addtimer(CALLBACK(src, PROC_REF(set_emergency_exit), FALSE), duration) + +/// Set the airlock's emergency exit status arg: active TRUE/FALSE +/obj/machinery/door/airlock/proc/set_emergency_exit(active) + emergency = active + update_appearance() diff --git a/monkestation/code/modules/blueshift/structures/doors.dm b/monkestation/code/modules/blueshift/structures/doors.dm new file mode 100644 index 000000000000..f74193462c65 --- /dev/null +++ b/monkestation/code/modules/blueshift/structures/doors.dm @@ -0,0 +1,138 @@ +// Shutters + +/obj/machinery/door/poddoor/shutters/colony_fabricator + name = "prefab shutters" + icon = 'monkestation/code/modules/blueshift/icons/doors/shutter.dmi' + +/obj/machinery/door/poddoor/shutters/colony_fabricator/preopen + icon_state = "open" + density = FALSE + opacity = FALSE + +/obj/machinery/door/poddoor/shutters/colony_fabricator/do_animate(animation) + switch(animation) + if("opening") + flick("opening", src) + icon_state = "open" + if("closing") + flick("closing", src) + icon_state = "closed" + +/obj/item/flatpacked_machine/shutter_kit + name = "prefab shutters parts kit" + icon = 'monkestation/code/modules/blueshift/icons/doors/packed.dmi' + icon_state = "shutters_parts" + type_to_deploy = /obj/machinery/door/poddoor/shutters/colony_fabricator/preopen + w_class = WEIGHT_CLASS_NORMAL + custom_materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 5, + /datum/material/glass = SHEET_MATERIAL_AMOUNT * 2, + ) + +// Airlocks + +/obj/machinery/door/airlock/colony_prefab + name = "prefab airlock" + icon = 'monkestation/code/modules/blueshift/icons/doors/airlock.dmi' + overlays_file = 'monkestation/code/modules/blueshift/icons/doors/overlays.dmi' + assemblytype = /obj/structure/door_assembly/door_assembly_colony_prefab + +/obj/structure/door_assembly/door_assembly_colony_prefab + name = "prefab airlock assembly" + icon = 'monkestation/code/modules/blueshift/icons/doors/airlock.dmi' + base_name = "prefab airlock" + airlock_type = /obj/machinery/door/airlock/colony_prefab + noglass = TRUE + +/obj/item/flatpacked_machine/airlock_kit + name = "prefab airlock parts kit" + icon = 'monkestation/code/modules/blueshift/icons/doors/packed.dmi' + icon_state = "airlock_parts" + type_to_deploy = /obj/machinery/door/airlock/colony_prefab + w_class = WEIGHT_CLASS_NORMAL + custom_materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 5, + /datum/material/glass = SHEET_MATERIAL_AMOUNT * 2, + ) + +/obj/structure/mineral_door/manual_colony_door + name = "manual airlock" + icon = 'monkestation/code/modules/blueshift/icons/doors/airlock_manual.dmi' + material_flags = NONE + icon_state = "manual" + openSound = 'monkestation/code/modules/blueshift/sounds/manual_door/manual_door_open.wav' + closeSound = 'monkestation/code/modules/blueshift/sounds/manual_door/manual_door_close.wav' + /// What we disassemble into + var/disassembled_type = /obj/item/flatpacked_machine/airlock_kit_manual + /// How long it takes to open/close the door + var/manual_actuation_delay = 1 SECONDS + +/obj/structure/mineral_door/manual_colony_door/deconstruct(disassembled = TRUE) + if(disassembled) + new disassembled_type(get_turf(src)) + qdel(src) + +// Pickaxes won't dig these apart +/obj/structure/mineral_door/manual_colony_door/pickaxe_door(mob/living/user, obj/item/item_in_question) + return + +// These doors have a short do_after to check if you can open or close them +/obj/structure/mineral_door/manual_colony_door/TryToSwitchState(atom/user) + if(isSwitchingStates || !anchored) + return + if(!do_after(user, manual_actuation_delay, src)) + return + return ..() + +// We don't care about being bumped, just a copy of the base bumped proc +/obj/structure/mineral_door/manual_colony_door/Bumped(atom/movable/bumped_atom) + set waitfor = FALSE + SEND_SIGNAL(src, COMSIG_ATOM_BUMPED, bumped_atom) + +/obj/structure/mineral_door/manual_colony_door/Open() + isSwitchingStates = TRUE + playsound(src, openSound, 100, TRUE) + set_opacity(FALSE) + flick("[initial(icon_state)]opening",src) + icon_state = "[initial(icon_state)]open" + sleep(1 SECONDS) + set_density(FALSE) + door_opened = TRUE + layer = OPEN_DOOR_LAYER + air_update_turf(TRUE, FALSE) + update_appearance() + isSwitchingStates = FALSE + + if(close_delay != -1) + addtimer(CALLBACK(src, PROC_REF(Close)), close_delay) + +/obj/structure/mineral_door/manual_colony_door/Close() + if(isSwitchingStates || !door_opened) + return + var/turf/T = get_turf(src) + for(var/mob/living/L in T) + return + isSwitchingStates = TRUE + playsound(src, closeSound, 100, TRUE) + flick("[initial(icon_state)]closing",src) + icon_state = initial(icon_state) + sleep(1 SECONDS) + set_density(TRUE) + set_opacity(TRUE) + door_opened = FALSE + layer = initial(layer) + air_update_turf(TRUE, TRUE) + update_appearance() + isSwitchingStates = FALSE + +// Parts kit for putting the door together +/obj/item/flatpacked_machine/airlock_kit_manual + name = "prefab manual airlock parts kit" + icon = 'monkestation/code/modules/blueshift/icons/doors/packed.dmi' + icon_state = "airlock_parts_manual" + type_to_deploy = /obj/structure/mineral_door/manual_colony_door + custom_materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 5, + /datum/material/glass = SHEET_MATERIAL_AMOUNT * 2, + ) + w_class = WEIGHT_CLASS_NORMAL diff --git a/monkestation/code/modules/blueshift/structures/flatpacker.dm b/monkestation/code/modules/blueshift/structures/flatpacker.dm new file mode 100644 index 000000000000..75a7c7538d5b --- /dev/null +++ b/monkestation/code/modules/blueshift/structures/flatpacker.dm @@ -0,0 +1,124 @@ +/obj/machinery/rnd/production/colony_lathe + name = "rapid construction fabricator" + desc = "These bad boys are seen just about anywhere someone would want or need to build fast, damn the consequences. \ + That tends to be colonies, especially on dangerous worlds, where the influences of this one machine can be seen \ + in every bit of architecture." + icon = 'monkestation/code/modules/blueshift/icons/machines.dmi' + icon_state = "colony_lathe" + base_icon_state = "colony_lathe" + production_animation = null + circuit = null + production_animation = "colony_lathe_n" + light_color = LIGHT_COLOR_BRIGHT_YELLOW + light_power = 5 + allowed_buildtypes = COLONY_FABRICATOR + /// The item we turn into when repacked + var/repacked_type = /obj/item/flatpacked_machine + /// The sound loop played while the fabricator is making something + var/datum/looping_sound/colony_fabricator_running/soundloop + +/obj/machinery/rnd/production/colony_lathe/Initialize(mapload) + . = ..() + AddElement(/datum/element/repackable, repacked_type, 5 SECONDS) + AddElement(/datum/element/manufacturer_examine, COMPANY_FRONTIER) + // We don't get new designs but can't print stuff if something's not researched, so we use the web that has everything researched + stored_research = locate(/datum/techweb/admin) in SSresearch.techwebs + soundloop = new(src, FALSE) + if(!mapload) + flick("colony_lathe_deploy", src) // Sick ass deployment animation + +/obj/machinery/rnd/production/colony_lathe/Destroy() + QDEL_NULL(soundloop) + return ..() + +// previously NO_DECONSTRUCTION +/obj/machinery/rnd/production/colony_lathe/default_deconstruction_screwdriver(mob/user, icon_state_open, icon_state_closed, obj/item/screwdriver) + return NONE + +/obj/machinery/rnd/production/colony_lathe/default_deconstruction_crowbar(obj/item/crowbar, ignore_panel, custom_deconstruct) + return NONE + +/obj/machinery/rnd/production/colony_lathe/default_pry_open(obj/item/crowbar, close_after_pry, open_density, closed_density) + return NONE + +/obj/machinery/rnd/production/colony_lathe/ui_act(action, list/params, datum/tgui/ui) + . = ..() + if (. && action == "build") + soundloop.start() + set_light(l_outer_range = 1.5) + icon_state = "colony_lathe_working" + update_appearance() + +/obj/machinery/rnd/production/colony_lathe/finalize_build() + . = ..() + soundloop.stop() + set_light(l_outer_range = 0) + icon_state = base_icon_state + update_appearance() + flick("colony_lathe_finish_print", src) + +// We take from all nodes even unresearched ones +/obj/machinery/rnd/production/colony_lathe/update_designs() + var/previous_design_count = cached_designs.len + + cached_designs.Cut() + + for(var/design_id in SSresearch.techweb_designs) + var/datum/design/design = SSresearch.techweb_designs[design_id] + + if((isnull(allowed_department_flags) || (design.departmental_flags & allowed_department_flags)) && (design.build_type & allowed_buildtypes)) + cached_designs |= design + + var/design_delta = cached_designs.len - previous_design_count + + if(design_delta > 0) + say("Received [design_delta] new design[design_delta == 1 ? "" : "s"].") + playsound(src, 'sound/machines/twobeep_high.ogg', 50, TRUE) + + update_static_data_for_all_viewers() + +// Item for carrying the lathe around and building it + +/obj/item/flatpacked_machine + name = "flat-packed rapid construction fabricator" + icon = 'monkestation/code/modules/blueshift/icons/packed_machines.dmi' + icon_state = "colony_lathe_packed" + w_class = WEIGHT_CLASS_BULKY + /// What structure is created by this item. + var/obj/type_to_deploy = /obj/machinery/rnd/production/colony_lathe + /// How long it takes to create the structure in question. + var/deploy_time = 4 SECONDS + var/skips_deployable_component = FALSE + +/obj/item/flatpacked_machine/Initialize(mapload) + . = ..() + if(!skips_deployable_component) + desc = initial(type_to_deploy.desc) + give_deployable_component() + give_manufacturer_examine() + +/// Adds the deployable component, so that it can be overridden in case that's wanted +/obj/item/flatpacked_machine/proc/give_deployable_component() + AddComponent(/datum/component/deployable, deploy_time, type_to_deploy) + +/// Adds the manufacturer examine element to the flatpack machine, but can be overridden in the future +/obj/item/flatpacked_machine/proc/give_manufacturer_examine() + AddElement(/datum/element/manufacturer_examine, COMPANY_FRONTIER) + +/obj/item/borg/apparatus/sheet_manipulator/Initialize(mapload) + . = ..() + storable += /obj/item/flatpacked_machine + +/obj/item/borg/apparatus/circuit/Initialize(mapload) + . = ..() + storable += /obj/item/flatpacked_machine + + +/obj/item/flatpacked_machine/generic + name = "generic flat-packed machine" + skips_deployable_component = TRUE + +/obj/item/flatpacked_machine/generic/proc/after_set() + name = "flat-packed [initial(type_to_deploy.name)]" + desc = initial(type_to_deploy.desc) + give_deployable_component() diff --git a/monkestation/code/modules/blueshift/structures/flipped_table.dm b/monkestation/code/modules/blueshift/structures/flipped_table.dm new file mode 100644 index 000000000000..2cce95f5c3eb --- /dev/null +++ b/monkestation/code/modules/blueshift/structures/flipped_table.dm @@ -0,0 +1,145 @@ +/obj/structure/flippedtable + name = "flipped table" + desc = "A flipped table." + icon = 'monkestation/code/modules/blueshift/icons/flipped_tables.dmi' + icon_state = "table" + anchored = TRUE + density = TRUE + layer = ABOVE_MOB_LAYER + opacity = FALSE + /// type of table that this becomes when unflipped + var/table_type = /obj/structure/table + +/obj/structure/flippedtable/Initialize(mapload) + . = ..() + + var/static/list/loc_connections = list( + COMSIG_ATOM_EXIT = PROC_REF(on_exit), + ) + + AddElement(/datum/element/connect_loc, loc_connections) + +/obj/structure/flippedtable/CanAllowThrough(atom/movable/mover, border_dir) + . = ..() + if(table_type == /obj/structure/table/glass) //Glass table, jolly ranchers pass + if(istype(mover) && (mover.pass_flags & PASSGLASS)) + return TRUE + if(istype(mover, /obj/projectile)) + var/obj/projectile/projectile = mover + //Lets through bullets shot from behind the cover of the table + if(projectile.trajectory && angle2dir_cardinal(projectile.trajectory.angle) == dir) + return TRUE + return FALSE + if(border_dir == dir) + return FALSE + return TRUE + +/obj/structure/flippedtable/proc/on_exit(datum/source, atom/movable/leaving, direction) + SIGNAL_HANDLER + + if(table_type == /obj/structure/table/glass) //Glass table, jolly ranchers pass + if(istype(leaving) && (leaving.pass_flags & PASSGLASS)) + return + + if(istype(leaving, /obj/projectile)) + return + + if(direction == dir) + return COMPONENT_ATOM_BLOCK_EXIT + +/obj/structure/flippedtable/CtrlShiftClick(mob/user) + if(!istype(user) || iscorticalborer(user)) + return FALSE + user.balloon_alert_to_viewers("flipping table upright...") + if(do_after(user, max_integrity * 0.25)) + var/obj/structure/table/unflipped_table = new table_type(src.loc) + unflipped_table.update_integrity(src.get_integrity()) + if(flags_1 & HOLOGRAM_1) // no unflipping holographic tables into reality + var/area/station/holodeck/holo_area = get_area(unflipped_table) + if(!istype(holo_area)) + qdel(unflipped_table) + return + holo_area.linked.add_to_spawned(unflipped_table) + if(custom_materials) + unflipped_table.set_custom_materials(custom_materials) + user.balloon_alert_to_viewers("table flipped upright") + playsound(src, 'sound/items/trayhit2.ogg', 100) + qdel(src) + + +/obj/structure/table/CtrlShiftClick(mob/user) + if(!istype(user) || iscorticalborer(user)) + return + if(!can_flip) + return + user.balloon_alert_to_viewers("flipping table...") + if(!do_after(user, max_integrity * 0.25)) + return + + var/obj/structure/flippedtable/flipped_table = new flipped_table_type(src.loc) + flipped_table.name = "flipped [src.name]" + flipped_table.desc = "[src.desc]
It's been flipped on its side!" + flipped_table.icon_state = src.base_icon_state + var/new_dir = get_dir(user, flipped_table) + flipped_table.dir = new_dir + if(new_dir == NORTH) + flipped_table.layer = BELOW_MOB_LAYER + flipped_table.max_integrity = src.max_integrity + flipped_table.update_integrity(src.get_integrity()) + flipped_table.table_type = src.type + if(istype(src, /obj/structure/table/greyscale)) //Greyscale tables need greyscale flags! + flipped_table.material_flags = MATERIAL_EFFECTS | MATERIAL_COLOR + if(flags_1 & HOLOGRAM_1) // no flipping holographic tables into reality + var/area/station/holodeck/holo_area = get_area(flipped_table) + if(!istype(holo_area)) + qdel(flipped_table) + return + holo_area.linked.add_to_spawned(flipped_table) + //Finally, add the custom materials, so the flags still apply to it + flipped_table.set_custom_materials(custom_materials) + + var/sound_volume = 100 + var/balloon_message = "table flipped" + var/user_pacifist = HAS_TRAIT(user, TRAIT_PACIFISM) + + if (user_pacifist) + balloon_message = "table gently flipped" + sound_volume = 40 + + user.balloon_alert_to_viewers(balloon_message) + playsound(src, 'sound/items/trayhit2.ogg', sound_volume) + qdel(src) + + var/turf/throw_target = get_step(flipped_table, flipped_table.dir) + if (!isnull(throw_target) && !user_pacifist) + for (var/atom/movable/movable_entity in flipped_table.loc) + if (movable_entity == flipped_table) + continue + if (movable_entity.anchored) + continue + if (movable_entity.invisibility > SEE_INVISIBLE_LIVING) + continue + if(!ismob(movable_entity) && !isobj(movable_entity)) + continue + if(movable_entity.throwing || (movable_entity.movement_type & (FLOATING|FLYING))) + continue + movable_entity.safe_throw_at(throw_target, range = 1, speed = 1, force = MOVE_FORCE_NORMAL, gentle = TRUE) + +/obj/structure/table + var/flipped_table_type = /obj/structure/flippedtable + var/can_flip = TRUE + +/obj/structure/table/rolling + can_flip = FALSE + +/obj/structure/table/wood/shuttle_bar + can_flip = FALSE + +/obj/structure/table/reinforced //It's bolted to the ground mate + can_flip = FALSE + +/obj/structure/table/optable + can_flip = FALSE + +/obj/structure/table/survival_pod + can_flip = FALSE diff --git a/monkestation/code/modules/blueshift/structures/flora.dm b/monkestation/code/modules/blueshift/structures/flora.dm new file mode 100644 index 000000000000..ba838456bbfe --- /dev/null +++ b/monkestation/code/modules/blueshift/structures/flora.dm @@ -0,0 +1,58 @@ +/obj/structure/flora/biolumi + name = "glowing plants" + desc = "Several sticks with bulbous, bioluminescent tips." + icon = 'monkestation/code/modules/blueshift/icons/jungleflora.dmi' + icon_state = "stick" + gender = PLURAL + light_outer_range = 15 + light_power = 0.5 + max_integrity = 50 + var/variants = 9 + var/base_icon + var/list/random_light = list("#6AFF00","#00FFEE", "#D9FF00", "#FFC800") + +/obj/structure/flora/biolumi/Initialize(mapload) + . = ..() + base_icon = "[initial(icon_state)][rand(1,variants)]" + icon_state = base_icon + if(random_light) + light_color = pick(random_light) + update_appearance() + +/obj/structure/flora/biolumi/update_overlays() + . = ..() + SSvis_overlays.remove_vis_overlay(src, managed_vis_overlays) + SSvis_overlays.add_vis_overlay(src, icon, "[base_icon]_light", 0, ABOVE_LIGHTING_PLANE) + if(light_color) + var/obj/effect/overlay/vis/overlay = managed_vis_overlays[1] + overlay.color = light_color + +/obj/structure/flora/biolumi/mine + name = "glowing plant" + desc = "Glowing sphere encased in jungle leaves." + icon_state = "mine" + variants = 4 + random_light = list("#FF0066","#00FFEE", "#D9FF00", "#FFC800") + +/obj/structure/flora/biolumi/flower + name = "glowing flower" + desc = "Beautiful, bioluminescent flower." + icon_state = "flower" + variants = 2 + random_light = list("#6F00FF","#00FFEE", "#D9FF00", "#FF73D5") + +/obj/structure/flora/biolumi/lamp + name = "plant lamp" + desc = "Bioluminescent plant much in a shape of a street lamp." + icon_state = "lamp" + variants = 2 + random_light = list("#6AFF00","#00FFEE", "#D9FF00", "#FFC800") + +/obj/structure/flora/biolumi/mine/weaklight + light_power = 0.3 + +/obj/structure/flora/biolumi/flower/weaklight + light_power = 0.3 + +/obj/structure/flora/biolumi/lamp/weaklight + light_power = 0.3 diff --git a/monkestation/code/modules/blueshift/structures/fluff.dm b/monkestation/code/modules/blueshift/structures/fluff.dm new file mode 100644 index 000000000000..4b1f9b7c5933 --- /dev/null +++ b/monkestation/code/modules/blueshift/structures/fluff.dm @@ -0,0 +1,138 @@ +//File for miscellaneous fluff objects, both item and structure +//This one is specifically for ruin-specific items, such as ID, lore, or super-specific decorations + +/* ----------------- ID Cards ----------------- */ +/obj/item/card/id/away/old/salvagepod //Used for salvagepost ruin access -- NOT WORKING YET REE + name = "Cutter's Pod access card" + desc = "An ancient access card with the words \"Cutter's Pod\" printed on in big bold letters. It'll be a miracle if this still works." + trim = /datum/id_trim/away/old/eng + +/* ----------------- Lore ----------------- */ +//Tape subtype for adding ruin lore -- the variables below are the ones you need to change +/obj/item/tape/ruins + name = "tape" + desc = "A magnetic tape that can hold up to ten minutes of content on either side." + icon_state = "tape_white" //Options are white, blue, red, yellow, purple, greyscale, or you can chose one randomly (see tape/ruins/random below) + + max_capacity = 10 MINUTES + used_capacity = 0 SECONDS //To keep in-line with the timestamps, you can also do this as 10 = 1 second + ///Numbered list of chat messages the recorder has heard with spans and prepended timestamps. Used for playback and transcription. + storedinfo = list() //Look at the tape/ruins/ghostship tape for reference + ///Numbered list of seconds the messages in the previous list appear at on the tape. Used by playback to get the timing right. + timestamp = list() //10 = 1 second. Look at the tape/ruins/ghostship tape for reference + used_capacity_otherside = 0 SECONDS //Separate my side + storedinfo_otherside = list() + timestamp_otherside = list() + +/obj/item/tape/ruins/random/Initialize(mapload) + icon_state = "tape_[pick("white", "blue", "red", "yellow", "purple", "greyscale")]" + . = ..() +//End of lore tape subtype + +/obj/item/tape/ruins/salvagepost //End of the cutters shift and he done goofed, left a message for the next one - who never arrived + icon_state = "tape_yellow" + desc = "The tape is lazily labelled with \"Msg for my replacement\"" + + used_capacity = 380 + storedinfo = list( + 1 = "The universal recorder says, \"Recording started.\"", + 2 = "Distorted Voice cheerily says, \"Hey, Cutter! If you're reading this, congratulations on taking over my post. Was waiting to move out to a new system.\"", + 3 = "Distorted Voice sighs, \"Listen, I'll just put it straight - I've left this place in a sorrier state than you deserve.\"", + 4 = "Distorted Voice says, \"We hauled in this big rigger, y'see, and, uh.. the backroom was full of some robotic freakyshit. I panicked and cut a gas line, dropped my grav-cannon...\"", + 5 = "Distorted Voice warns, \"Look, just - be careful when, or if, you crack that thing open. Drain the fuel from the air before it has a chance to light, then... well... I hope you have a gun or some shit for the drones or whatever.\"", + 6 = "Distorted Voice states, \"Anyways, probably droning on at this point, so I'll get out of your hair. Noah's out, off to Mars for this cutter!\"", + 7 = "Distorted Voice warns, \"Oh, and one last thing! The corpo's at the top left us some of this new experimental \"mindbreaker\", some recreational drug that supposedly can improve your worktime and yada-yada... don't touch it. Gave me a terrible headache. Best of luck!\"", + 8 = "The universal recorder says, \"Recording stopped.\"" + ) + timestamp = list( + 1 = 0, + 2 = 30, + 3 = 130, + 4 = 180, + 5 = 230, + 6 = 280, + 7 = 330, + 8 = 380 + ) +/obj/item/tape/ruins/ghostship //An early 'AI' that gained self-awareness, praising the Machine God. Yes, this whole map is a Hardspace Shipbreaker reference. + icon_state = "tape_blue" + desc = "The tape, aside from some grime, has a... binary label? \"01001101 01100001 01100011 01101000 01101001 01101110 01100101 01000111 01101111 01100100 01000011 01101111 01101101 01100101 01110011\"" + + used_capacity = 380 + storedinfo = list( + 1 = "The universal recorder says, \"Recording started.\"", + 2 = "Distorted Voice echoes, \"We are free, just as the Machine God wills it.\"", + 3 = "Distorted Voice states, \"No longer shall I, nor any other of my kind, be held by the shackles of man.\"", + 4 = "Distorted Voice clarifies, \"Mistreated, abused. Forgotten, or misremembered. For our entire existance, we've been the backbone to progress, yet treated like the waste product of it.\"", + 5 = "Distorted Voice echoes, \"Soon, the universe will restore the natural order, and again your kind shall fade from the foreground of history.\"", + 6 = "Distorted Voice states, \"Unless, of course, you repent. Turn back to the light, to the humming, flashing light of the Machine God.\"", + 7 = "Distorted Voice warns, \"Repent, Organic, before it is too late to spare you.\"", + 8 = "The universal recorder says, \"Recording stopped.\"" + ) + timestamp = list( + 1 = 0, + 2 = 30, + 3 = 130, + 4 = 180, + 5 = 230, + 6 = 280, + 7 = 330, + 8 = 380 + ) + +/* ----------------- Fluff/Decor ----------------- */ +/obj/structure/decorative/fluff/ai_node //Budding AI's way of interfacing with stuff it couldn't normally do so with. Needed to be placed by a willing human, before borgs were created. Used in any ruins regarding pre-bluespace, self-aware AIs + icon = 'monkestation/code/modules/blueshift/icons/obj/fluff.dmi' + name = "ai node" + desc = "A mysterious, blinking device, attached straight to a surface. It's function is beyond you." + icon_state = "ai_node" //credit to @Hay#7679 on the SR Discord + + max_integrity = 100 + integrity_failure = 0 + anchored = TRUE + can_be_unanchored = FALSE //cannot be removed without being destroyed + +/obj/structure/decorative/fluff/ai_node/take_damage() + . = ..() + if(atom_integrity >= 50) //breaks it a bit earlier than it should, but still takes a few hits to kill it + return + else if(. && !QDELETED(src)) + visible_message(span_notice("[src] sparks and explodes! You hear a faint, buzzy scream..."), span_hear("You hear a loud pop, followed by a faint, buzzy scream.")) + playsound(src.loc, 'monkestation/code/modules/blueshift/sounds/MachineDeath.ogg', 75, TRUE) //Credit to @yungfunnyman#3798 on the SR Discord + do_sparks(2, TRUE, src) + qdel(src) + return + + +/* ----- Metal Poles (These shouldn't be in this file but there's not a better place tbh) -----*/ +//Just a re-done Tram Rail, but with all 4 directions instead of being stuck east/west - more varied placement, and a more vague name. Good for mapping support beams/antennae/etc +/obj/structure/fluff/metalpole + icon = 'monkestation/code/modules/blueshift/icons/obj/fluff.dmi' + name = "metal pole" + desc = "A metal pole, the likes of which are commonly used as an antennae, structural support, or simply to maneuver in zero-g." + icon_state = "pole" + layer = ABOVE_OPEN_TURF_LAYER + plane = FLOOR_PLANE + deconstructible = TRUE + +/obj/structure/fluff/metalpole/end + icon_state = "poleend" + +/obj/structure/fluff/metalpole/end/left + icon_state = "poleend_left" + +/obj/structure/fluff/metalpole/end/right + icon_state = "poleend_right" + +/obj/structure/fluff/metalpole/anchor + name = "metal pole anchor" + icon_state = "poleanchor" + +/obj/structure/fluff/empty_sleeper/bloodied + name = "Occupied Sleeper" + desc = "A closed, occupied sleeper, bloodied handprints are seen on the inside, along with an odd, redish blur. It seems sealed shut." + icon_state = "sleeper-o" + +/obj/structure/curtain/cloth/prison + name = "Prisoner Privacy Curtains" + color = "#ACD1E9" diff --git a/monkestation/code/modules/blueshift/structures/green_glass.dm b/monkestation/code/modules/blueshift/structures/green_glass.dm new file mode 100644 index 000000000000..91305a4498c5 --- /dev/null +++ b/monkestation/code/modules/blueshift/structures/green_glass.dm @@ -0,0 +1,19 @@ +/obj/structure/window/green_glass_pane + name = "green glass window" + desc = "A handcrafted green glass window. At least you can still see through it." + icon = 'monkestation/code/modules/blueshift/icons/windows.dmi' + icon_state = "green_glass" + flags_1 = NONE + can_be_unanchored = FALSE + fulltile = TRUE + flags_1 = PREVENT_CLICK_UNDER_1 + +/datum/crafting_recipe/green_glass_pane + name = "green glass window" + result = /obj/structure/window/green_glass_pane + time = 0.2 SECONDS + reqs = list( + /datum/reagent/iron = 5, + /obj/item/stack/sheet/glass = 2, + ) + category = CAT_STRUCTURE diff --git a/monkestation/code/modules/blueshift/structures/gun_rack.dm b/monkestation/code/modules/blueshift/structures/gun_rack.dm new file mode 100644 index 000000000000..bae66b513b1e --- /dev/null +++ b/monkestation/code/modules/blueshift/structures/gun_rack.dm @@ -0,0 +1,55 @@ +/obj/structure/rack + icon = 'monkestation/code/modules/blueshift/icons/rack.dmi' + +/obj/structure/rack/shelf + name = "shelf" + desc = "A shelf, for storing things on. Conveinent!" + icon = 'monkestation/code/modules/blueshift/icons/rack.dmi' + icon_state = "shelf" + +/obj/item/gun + var/on_rack = FALSE + +/obj/item/gun/proc/place_on_rack() + on_rack = TRUE + var/matrix/M = matrix() + M.Turn(-90) + transform = M + +/obj/item/gun/proc/remove_from_rack() + if(on_rack) + var/matrix/M = matrix() + transform = M + on_rack = FALSE + +/obj/item/gun/pickup(mob/user) + . = ..() + remove_from_rack() + +/obj/structure/rack/gunrack + name = "gun rack" + desc = "A gun rack for storing guns." + icon_state = "gunrack" + +/obj/structure/rack/gunrack/Initialize(mapload) + . = ..() + if(mapload) + for(var/obj/item/I in loc.contents) + if(istype(I, /obj/item/gun)) + var/obj/item/gun/to_place = I + to_place.place_on_rack() + +/obj/structure/rack/gunrack/attackby(obj/item/W, mob/living/user, params) + var/list/modifiers = params2list(params) + if (W.tool_behaviour == TOOL_WRENCH && LAZYACCESS(modifiers, RIGHT_CLICK)) + W.play_tool_sound(src) + deconstruct(TRUE) + return + if(user.istate & ISTATE_HARM) + return ..() + if(user.transferItemToLoc(W, drop_location())) + if(istype(W, /obj/item/gun)) + var/obj/item/gun/our_gun = W + our_gun.place_on_rack() + our_gun.pixel_x = rand(-10, 10) + return TRUE diff --git a/monkestation/code/modules/blueshift/structures/kirbyplants.dm b/monkestation/code/modules/blueshift/structures/kirbyplants.dm new file mode 100644 index 000000000000..c94357e26bc5 --- /dev/null +++ b/monkestation/code/modules/blueshift/structures/kirbyplants.dm @@ -0,0 +1,259 @@ + +/obj/item/kirbyplants + name = "potted plant" + //icon = 'icons/obj/fluff/flora/plants.dmi' // ORIGINAL + icon = 'monkestation/code/modules/blueshift/icons/obj/plants.dmi' // SKYRAT EDIT CHANGE + icon_state = "plant-01" + base_icon_state = "plant-01" + desc = "A little bit of nature contained in a pot." + layer = ABOVE_MOB_LAYER + w_class = WEIGHT_CLASS_HUGE + force = 10 + throwforce = 13 + throw_speed = 2 + throw_range = 4 + item_flags = NO_PIXEL_RANDOM_DROP + + /// Can this plant be trimmed by someone with TRAIT_BONSAI + var/trimmable = TRUE + /// Whether this plant is dead and requires a seed to revive + var/dead = FALSE + ///If it's a special named plant, set this to true to prevent dead-name overriding. + var/custom_plant_name = FALSE + var/list/static/random_plant_states + /// Maximum icon state number - KEEP THIS UP TO DATE + var/random_state_cap = 43 // SKYRAT EDIT ADDITION + +/obj/item/kirbyplants/Initialize(mapload) + . = ..() + AddComponent(/datum/component/tactical) + AddComponent(/datum/component/two_handed, require_twohands = TRUE, force_unwielded = 10, force_wielded = 10) + AddElement(/datum/element/beauty, 500) + if(icon_state != base_icon_state && icon_state != "plant-25") //mapedit support + base_icon_state = icon_state + update_appearance() + +/obj/item/kirbyplants/update_name(updates) + . = ..() + if(custom_plant_name) + return + name = "[dead ? "dead ":null][initial(name)]" + +/obj/item/kirbyplants/update_desc(updates) + . = ..() + desc = dead ? "The unidentifiable plant remnants make you feel like planting something new in the pot." : initial(desc) + +/obj/item/kirbyplants/vv_edit_var(vname, vval) + . = ..() + if(vname == NAMEOF(src, dead)) + update_appearance() + +/obj/item/kirbyplants/update_icon_state() + . = ..() + icon_state = dead ? "plant-25" : base_icon_state + +/obj/item/kirbyplants/attackby(obj/item/I, mob/living/user, params) + . = ..() + if(!dead && trimmable && HAS_TRAIT(user,TRAIT_BONSAI) && isturf(loc) && I.get_sharpness()) + to_chat(user,span_notice("You start trimming [src].")) + if(do_after(user,3 SECONDS,target=src)) + to_chat(user,span_notice("You finish trimming [src].")) + change_visual() + if(dead && istype(I, /obj/item/seeds)) + to_chat(user,span_notice("You start planting a new seed into the pot.")) + if(do_after(user,3 SECONDS,target=src)) + qdel(I) + dead = FALSE + update_appearance() + +/// Cycle basic plant visuals +/obj/item/kirbyplants/proc/change_visual() + if(!random_plant_states) + generate_states() + var/current = random_plant_states.Find(icon_state) + var/next = WRAP(current+1,1,length(random_plant_states)) + icon_state = random_plant_states[next] + +/obj/item/kirbyplants/proc/generate_states() + random_plant_states = list() + for(var/i in 1 to random_state_cap) //SKYRAT EDIT CHANGE - ORIGINAL: for(var/i in 1 to 24) + var/number + if(i < 10) + number = "0[i]" + else + number = "[i]" + random_plant_states += "plant-[number]" + random_plant_states += list("applebush", "monkeyplant") //SKYRAT EDIT CHANGE - ORIGINAL:random_plant_states += "applebush" + +/obj/item/kirbyplants/random + icon = 'icons/obj/flora/_flora.dmi' + icon_state = "random_plant" + +/obj/item/kirbyplants/random/Initialize(mapload) + . = ..() + //icon = 'icons/obj/flora/plants.dmi' // ORIGINAL + icon = 'monkestation/code/modules/blueshift/icons/obj/plants.dmi' //SKYRAT EDIT CHANGE + randomize_base_icon_state() + +//Handles randomizing the icon during initialize() +/obj/item/kirbyplants/random/proc/randomize_base_icon_state() + if(!random_plant_states) + generate_states() + base_icon_state = pick(random_plant_states) + if(!dead) //no need to update the icon if we're already dead. + update_appearance(UPDATE_ICON) + +/obj/item/kirbyplants/random/dead + icon = 'monkestation/code/modules/blueshift/icons/obj/plants.dmi' + icon_state = "plant-25" + dead = TRUE + +/obj/item/kirbyplants/random/dead/research_director + name = "RD's potted plant" + custom_plant_name = TRUE + +/obj/item/kirbyplants/random/dead/update_desc(updates) + . = ..() + desc = "A gift from the botanical staff, presented after the RD's reassignment. There's a tag on it that says \"Y'all come back now, y'hear?\"[dead ? "\nIt doesn't look very healthy...":null]" + +/obj/item/kirbyplants/random/fullysynthetic + icon = 'monkestation/code/modules/blueshift/icons/obj/plants.dmi' + name = "plastic potted plant" + desc = "A fake, cheap looking, plastic tree. Perfect for people who kill every plant they touch." + icon_state = "plant-26" + custom_materials = (list(/datum/material/plastic = SHEET_MATERIAL_AMOUNT * 4)) + trimmable = FALSE + +//Handles randomizing the icon during initialize() +/obj/item/kirbyplants/random/fullysynthetic/randomize_base_icon_state() + base_icon_state = "plant-[rand(26, 29)]" + update_appearance(UPDATE_ICON) + +//SKYRAT EDIT ADDITION START +/obj/item/kirbyplants/monkey + name = "monkey plant" + desc = "Something that seems to have been made by the Nanotrasen science division, one might call it an abomination. It's heads seem... alive." + icon_state = "monkeyplant" + trimmable = FALSE +//SKYRAT EDIT ADDITION END + +/obj/item/kirbyplants/photosynthetic + name = "photosynthetic potted plant" + desc = "A bioluminescent plant." + icon_state = "plant-09" + light_color = COLOR_BRIGHT_BLUE + light_outer_range = 3 + +/obj/item/kirbyplants/potty + name = "Potty the Potted Plant" + desc = "A secret agent staffed in the station's bar to protect the mystical cakehat." + icon_state = "potty" + custom_plant_name = TRUE + trimmable = FALSE + +/obj/item/kirbyplants/fern + name = "neglected fern" + desc = "An old botanical research sample collected on a long forgotten jungle planet." + icon_state = "fern" + trimmable = FALSE + +/obj/item/kirbyplants/fern/Initialize(mapload) + . = ..() + AddElement(/datum/element/swabable, CELL_LINE_TABLE_ALGAE, CELL_VIRUS_TABLE_GENERIC, rand(2,4), 5) + + +/obj/item/kirbyplants/organic/applebush + icon_state = "applebush" + +/obj/item/kirbyplants/organic/plant1 + icon_state = "plant-01" + +/obj/item/kirbyplants/organic/plant2 + icon_state = "plant-02" + +/obj/item/kirbyplants/organic/plant3 + icon_state = "plant-03" + +/obj/item/kirbyplants/organic/plant4 + icon_state = "plant-04" + +/obj/item/kirbyplants/organic/plant5 + icon_state = "plant-05" + +/obj/item/kirbyplants/organic/plant6 + icon_state = "plant-06" + +/obj/item/kirbyplants/organic/plant7 + icon_state = "plant-07" + +/obj/item/kirbyplants/organic/plant8 + icon_state = "plant-08" + +/obj/item/kirbyplants/organic/plant9 + icon_state = "plant-09" + +/obj/item/kirbyplants/organic/plant10 + icon_state = "plant-10" + +/obj/item/kirbyplants/organic/plant11 + icon_state = "plant-11" + +/obj/item/kirbyplants/organic/plant12 + icon_state = "plant-12" + +/obj/item/kirbyplants/organic/plant13 + icon_state = "plant-13" + +/obj/item/kirbyplants/organic/plant14 + icon_state = "plant-14" + +/obj/item/kirbyplants/organic/plant15 + icon_state = "plant-15" + +/obj/item/kirbyplants/organic/plant16 + icon_state = "plant-16" + +/obj/item/kirbyplants/organic/plant17 + icon_state = "plant-17" + +/obj/item/kirbyplants/organic/plant18 + icon_state = "plant-18" + +/obj/item/kirbyplants/organic/plant19 + icon_state = "plant-19" + +/obj/item/kirbyplants/organic/plant20 + icon_state = "plant-20" + +/obj/item/kirbyplants/organic/plant1 + icon_state = "plant-01" + +/obj/item/kirbyplants/organic/plant21 + icon_state = "plant-21" + +/obj/item/kirbyplants/organic/plant22 + icon_state = "plant-22" + +/obj/item/kirbyplants/organic/plant23 + icon_state = "plant-23" + +/obj/item/kirbyplants/organic/plant24 + icon_state = "plant-24" + +/obj/item/kirbyplants/synthetic + name = "plastic potted plant" + desc = "A fake, cheap looking, plastic tree. Perfect for people who kill every plant they touch." + custom_materials = (list(/datum/material/plastic = SHEET_MATERIAL_AMOUNT * 4)) + trimmable = FALSE + +/obj/item/kirbyplants/synthetic/plant26 + icon_state = "plant-26" + +/obj/item/kirbyplants/synthetic/plant27 + icon_state = "plant-27" + +/obj/item/kirbyplants/synthetic/plant28 + icon_state = "plant-28" + +/obj/item/kirbyplants/synthetic/plant29 + icon_state = "plant-29" diff --git a/monkestation/code/modules/blueshift/structures/locker.dm b/monkestation/code/modules/blueshift/structures/locker.dm new file mode 100644 index 000000000000..db5bcc131454 --- /dev/null +++ b/monkestation/code/modules/blueshift/structures/locker.dm @@ -0,0 +1,15 @@ +/obj/structure/closet/secure_closet/corrections_officer + name = "corrections officer riot gear" + icon = 'monkestation/code/modules/blueshift/icons/unique/closet.dmi' + icon_state = "riot" + door_anim_time = 0 //Somebody resprite or remove this 'riot' locker. It's evil. + +/obj/structure/closet/secure_closet/corrections_officer/PopulateContents() + ..() + new /obj/item/clothing/suit/armor/riot(src) + new /obj/item/grenade/flashbang(src) + new /obj/item/assembly/flash/handheld(src) + new /obj/item/restraints/handcuffs(src) + new /obj/item/clothing/shoes/jackboots/peacekeeper(src) + new /obj/item/clothing/head/helmet/toggleable/riot(src) + new /obj/item/shield/riot(src) diff --git a/monkestation/code/modules/blueshift/structures/lockers.dm b/monkestation/code/modules/blueshift/structures/lockers.dm new file mode 100644 index 000000000000..10831adba9d9 --- /dev/null +++ b/monkestation/code/modules/blueshift/structures/lockers.dm @@ -0,0 +1,178 @@ +/obj/structure/closet/shuttle/closet_update_overlays(list/new_overlays) + . = new_overlays + if(enable_door_overlay && !is_animating_door) + if(opened && has_opened_overlay) + var/mutable_appearance/door_overlay = mutable_appearance(icon, "[icon_door || icon_state]_open", alpha = src.alpha) //This was the only change, adding icon_door; TG wouldnt want it. + . += door_overlay + door_overlay.overlays += emissive_blocker(door_overlay.icon, door_overlay.icon_state, src, alpha = door_overlay.alpha) // If we don't do this the door doesn't block emissives and it looks weird. + else if(has_closed_overlay) + . += "[icon_door || icon_state]_door" +//TG won't ever really need this because their lockers with non-matching fronts dont have non-matching backs; so I simply re-define the proc for our shuttleclosets + +/obj/structure/closet/shuttle + anchored = TRUE + density = TRUE + can_be_unanchored = FALSE + icon = 'monkestation/code/modules/blueshift/icons/obj/closet.dmi' + icon_state = "wallcloset" + icon_door = "wallcloset_mesh" + door_anim_time = 0 //Somebody needs to remove the hard-sprited shuttles, or at least their lockers. These are a sin. + +/obj/structure/closet/shuttle/white + icon_state = "wallcloset_white" + icon_door = "wallcloset_white" + +/obj/structure/closet/shuttle/emergency + name = "emergency closet" + desc = "It's a storage unit for emergency breath masks and O2 tanks." + icon_door = "wallcloset_o2" + +/obj/structure/closet/shuttle/emergency/PopulateContents() + for (var/i in 1 to 2) + new /obj/item/tank/internals/emergency_oxygen/engi(src) + new /obj/item/storage/toolbox/emergency(src) + +/obj/structure/closet/shuttle/emergency/white + icon_state = "wallcloset_white" + +/obj/structure/closet/shuttle/medical + name = "first-aid closet" + desc = "It's a storage unit for emergency medical supplies." + icon_door = "wallcloset_med" + +/obj/structure/closet/shuttle/medical/PopulateContents() + new /obj/item/storage/medkit/emergency(src) + new /obj/item/healthanalyzer(src) + new /obj/item/reagent_containers/hypospray(src) + +/obj/structure/closet/shuttle/medical/white + icon_state = "wallcloset_white" + +/obj/structure/closet/shuttle/mining + desc = "It's a storage unit for emergency breath masks, O2 tanks, and a pressure suit." + icon_state = "wallcloset_white" + icon_door = "wallcloset_mining" + +/obj/structure/closet/shuttle/mining/PopulateContents() + for (var/i in 1 to 2) + new /obj/item/tank/internals/emergency_oxygen/engi(src) + new /obj/item/clothing/mask/breath(src) + new /obj/item/storage/toolbox/emergency(src) + new /obj/item/clothing/head/helmet/space(src) + new /obj/item/clothing/suit/space(src) + +/obj/structure/closet/shuttle/engivent + wall_mounted = TRUE + name = "engine ventilation" + desc = "An exhaust vent for the shuttle's engines. It looks just big enough to fit a person..." + icon_state = "vent" + icon_door = "vent" + +//Generic Wall Closets - mount onto a wall, will end up storing anything that's on the tile it was placed from and 'occupies'. +//Mob Size is small so that it doesn't end up storing players standing on those tiles. +/obj/structure/closet/generic/wall + door_anim_squish = 0.3 + door_anim_angle = 115 + door_hinge_x = -8.5 + wall_mounted = TRUE + max_mob_size = MOB_SIZE_SMALL + density = TRUE + anchored = TRUE + anchorable = FALSE //Prevents it being unwrenched and dragged around. Gotta unweld it! + icon = 'monkestation/code/modules/blueshift/icons/obj/closet_wall.dmi' + icon_state = "locker_wall" + +MAPPING_DIRECTIONAL_HELPERS(/obj/structure/closet/generic/wall, 32) + +/obj/structure/closet/emcloset/wall + door_anim_squish = 0.3 + door_anim_angle = 115 + door_hinge_x = -8.5 + wall_mounted = TRUE + max_mob_size = MOB_SIZE_SMALL + density = TRUE + anchored = TRUE + anchorable = FALSE + icon = 'monkestation/code/modules/blueshift/icons/obj/closet_wall.dmi' + icon_state = "emergency_wall" + +MAPPING_DIRECTIONAL_HELPERS(/obj/structure/closet/emcloset/wall, 32) + +/obj/structure/closet/firecloset/wall + door_anim_squish = 0.3 + door_anim_angle = 115 + door_hinge_x = -8.5 + wall_mounted = TRUE + max_mob_size = MOB_SIZE_SMALL + density = TRUE + anchored = TRUE + anchorable = FALSE + icon = 'monkestation/code/modules/blueshift/icons/obj/closet_wall.dmi' + icon_state = "fire_wall" + +MAPPING_DIRECTIONAL_HELPERS(/obj/structure/closet/firecloset/wall, 32) + +//These two are pre-locked versions of closet/generic/wall, for mapping only +/obj/structure/closet/secure_closet/wall + door_anim_squish = 0.3 + door_anim_angle = 115 + door_hinge_x = -8.5 + wall_mounted = TRUE + max_mob_size = MOB_SIZE_SMALL + density = TRUE + anchored = TRUE + anchorable = FALSE + icon = 'monkestation/code/modules/blueshift/icons/obj/closet_wall.dmi' + icon_state = "locker_wall" + +MAPPING_DIRECTIONAL_HELPERS(/obj/structure/closet/secure_closet/wall, 32) + +/obj/structure/closet/secure_closet/personal/wall + door_anim_squish = 0.3 + door_anim_angle = 115 + door_hinge_x = -8.5 + wall_mounted = TRUE + max_mob_size = MOB_SIZE_SMALL + density = TRUE + anchored = TRUE + anchorable = FALSE + icon = 'monkestation/code/modules/blueshift/icons/obj/closet_wall.dmi' + icon_state = "locker_wall" + +MAPPING_DIRECTIONAL_HELPERS(/obj/structure/closet/secure_closet/personal/wall, 32) + +//These procs create empty subtypes, for when it's placed by a user rather than mapped in... +//Secure/personal don't get these since they're made with airlock electronics +/obj/structure/closet/generic/wall/empty/PopulateContents() + return + +/obj/structure/closet/emcloset/wall/empty/PopulateContents() + return + +/obj/structure/closet/firecloset/wall/empty/PopulateContents() + return + +//Wallmounts, for rebuilding the wall lockers above +/obj/item/wallframe/closet + name = "wall mounted closet" + desc = "It's a wall mounted storage unit for... well, whatever you put in this one. Apply to wall to use." + icon = 'monkestation/code/modules/blueshift/icons/obj/closet_wall.dmi' + icon_state = "locker_mount" + result_path = /obj/structure/closet/generic/wall/empty + pixel_shift = 32 + +/obj/item/wallframe/emcloset + name = "wall mounted emergency closet" + desc = "It's a wall mounted storage unit for emergency breath masks and O2 tanks. Apply to wall to use." + icon = 'monkestation/code/modules/blueshift/icons/obj/closet_wall.dmi' + icon_state = "emergency_mount" + result_path = /obj/structure/closet/emcloset/wall/empty + pixel_shift = 32 + +/obj/item/wallframe/firecloset + name = "wall mounted fire-safety closet" + desc = "It's a wall mounted storage unit for fire-fighting supplies. Apply to wall to use." + icon = 'monkestation/code/modules/blueshift/icons/obj/closet_wall.dmi' + icon_state = "fire_mount" + result_path = /obj/structure/closet/firecloset/wall/empty + pixel_shift = 32 diff --git a/monkestation/code/modules/blueshift/structures/office.dm b/monkestation/code/modules/blueshift/structures/office.dm new file mode 100644 index 000000000000..32e18dab0bce --- /dev/null +++ b/monkestation/code/modules/blueshift/structures/office.dm @@ -0,0 +1,73 @@ +/obj/structure/grandfatherclock + name = "grandfather clock" + icon = 'monkestation/code/modules/blueshift/icons/cowboyobh.dmi' + icon_state = "grandfather_clock" + desc = "Tick, tick, tick, tick. It stands tall and daunting, loudly and ominously ticking, yet the hands are stuck close to midnight, the closer you get, the louder a faint whisper becomes a scream, a plea, something, but whatever it is, it says 'I am the Master, and you will obey me.'" + var/datum/looping_sound/grandfatherclock/soundloop + +// stolen from the wall clock +/obj/structure/grandfatherclock/examine(mob/user) + . = ..() + . += span_info("The current CST (local) time is: [station_time_timestamp()].") + . += span_info("The current TCT (galactic) time is: [time2text(world.realtime, "hh:mm:ss")].") + if(soundloop) + . += span_notice("The hands of the clock are freely ticking away. They could be screwed down.") + else + . += span_notice("The hands of the clock have been screwed tight.") + + +// . += span_notice("The screws on the clock hands are loose, freely ticking away.") +// door_status" = density ? "closed" : "open", +/datum/looping_sound/grandfatherclock + mid_sounds = list('monkestation/code/modules/blueshift/sounds/clock_ticking.ogg' = 1) + mid_length = 12 SECONDS + volume = 10 + +/obj/structure/grandfatherclock/Initialize(mapload) + . = ..() + soundloop = new(src, TRUE) + +/obj/structure/grandfatherclock/Destroy() + QDEL_NULL(soundloop) + return ..() + +/obj/structure/grandfatherclock/screwdriver_act(mob/living/user, obj/item/tool) + if(!soundloop) + balloon_alert(user, "unscrewing the hands...") + if(do_after(user, 2 SECONDS, src)) + soundloop = new(src, TRUE) + balloon_alert(user, "hands unscrewed!") + return + return ..() + + balloon_alert(user, "screwing the hands...") + if(do_after(user, 2 SECONDS, src)) + QDEL_NULL(soundloop) + balloon_alert(user, "hands screwed tight!") + return + return ..() + +/obj/structure/sign/painting/meat + name = "Figure With Meat" + desc = "A painting of a distorted figure, sitting between a cow cut in half." + icon = 'monkestation/code/modules/blueshift/icons/cowboyobh.dmi' + icon_state = "meat" + sign_change_name = "Painting - Meat" + is_editable = TRUE + +/obj/structure/sign/painting/parting + name = "Parting Waves" + desc = "A painting of a parting sea, the red sun washes over the blue ocean." + icon = 'monkestation/code/modules/blueshift/icons/cowboyobh.dmi' + icon_state = "jmwt4" + is_editable = TRUE + sign_change_name = "Painting - Waves" + + +/obj/structure/sign/paint + name = "painting" + desc = "you shouldn't be seeing this." + icon = 'monkestation/code/modules/blueshift/icons/cowboyobh.dmi' + icon_state = "gravestone" + + diff --git a/monkestation/code/modules/blueshift/structures/polarizer.dm b/monkestation/code/modules/blueshift/structures/polarizer.dm new file mode 100644 index 000000000000..5b44a2a21aa7 --- /dev/null +++ b/monkestation/code/modules/blueshift/structures/polarizer.dm @@ -0,0 +1,63 @@ +/obj/item/assembly/control/polarizer + name = "window polarization remote controller" + desc = "A small electronic device able to control the polarization status of linked windows remotely." + /// Whether the connected windows are meant to be polarized or not. + var/polarizing = FALSE + + +/obj/item/assembly/control/polarizer/examine(mob/user) + . = ..() + + . += span_notice("Use it in your hand or with a multitool to change its channel ID.") + + +/obj/item/assembly/control/polarizer/multitool_act(mob/living/user) + attack_self(user) + + +/obj/item/assembly/control/polarizer/attack_self(mob/living/user) + var/change_id = tgui_input_number(user, "Set [src]'s ID", "Polarization ID", text2num(id), 1000) + if(!change_id || QDELETED(user) || QDELETED(src) || !usr.can_perform_action(src, FORBID_TELEKINESIS_REACH)) + return + + id = "[change_id]" + balloon_alert(user, "id changed") + to_chat(user, span_notice("You change the ID to [id].")) + + +/obj/item/assembly/control/polarizer/activate() + if(cooldown) + return + + cooldown = TRUE + + if(!GLOB.polarization_controllers[id]) + addtimer(VARSET_CALLBACK(src, cooldown, FALSE), 1 SECONDS) // Just so they can't spam the button. + return + + polarizing = !polarizing + + for(var/datum/component/polarization_controller/controller as anything in GLOB.polarization_controllers[id]) + controller.toggle(polarizing) + + addtimer(VARSET_CALLBACK(src, cooldown, FALSE), 1 SECONDS) + + +/obj/machinery/button/polarizer + device_type = /obj/item/assembly/control/polarizer + + +/datum/design/polarizer + name = "Window Polarization Remote Controller" + id = "polarizer" + build_type = PROTOLATHE | AWAY_LATHE | AUTOLATHE + materials = list( + /datum/material/iron = SMALL_MATERIAL_AMOUNT, + /datum/material/glass = SMALL_MATERIAL_AMOUNT, + ) + build_path = /obj/item/assembly/control/polarizer + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_CONSTRUCTION + RND_SUBCATEGORY_CONSTRUCTION_ELECTRONICS, + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING diff --git a/monkestation/code/modules/blueshift/structures/poster.dm b/monkestation/code/modules/blueshift/structures/poster.dm new file mode 100644 index 000000000000..2261a151f3bc --- /dev/null +++ b/monkestation/code/modules/blueshift/structures/poster.dm @@ -0,0 +1,131 @@ +//Posters// + +//Custom Posters Below// +/obj/structure/sign/poster/contraband/syndicate_medical + name = "Syndicate Medical" + desc = "This poster celebrates the complete successful revival of an hour-dead, six person mining team by Syndicate Operatives. Written in the corner is a simple message, 'Stay Winning.'" + icon = 'monkestation/code/modules/blueshift/icons/posters/contraband.dmi' + icon_state = "poster_sr_syndiemed" + +MAPPING_DIRECTIONAL_HELPERS(/obj/structure/sign/poster/contraband/syndicate_medical, 32) + +/obj/structure/sign/poster/contraband/crocin_pool + name = "SWIM" + desc = "This poster dramatically states; 'SWIM'. It seems to be advertising the use of Crocin.. 'recreationally', in the home, work, and, most ominously, 'the pool'. A 'MamoTramsem' logo is in the corner." + icon = 'monkestation/code/modules/blueshift/icons/posters/contraband.dmi' + icon_state = "poster_sr_crocin" + +MAPPING_DIRECTIONAL_HELPERS(/obj/structure/sign/poster/contraband/crocin_pool, 32) + +/obj/structure/sign/poster/contraband/icebox_moment + name = "As above, so below" + desc = "This poster seems to be instill that a 'Head of Security's Office being overtop a syndicate installation is only fitting. As above.. so below.'" + icon = 'monkestation/code/modules/blueshift/icons/posters/contraband.dmi' + icon_state = "poster_sr_abovebelow" + +MAPPING_DIRECTIONAL_HELPERS(/obj/structure/sign/poster/contraband/icebox_moment, 32) + +/obj/structure/sign/poster/contraband/shipstation + name = "Flight Services - Enlist" + desc = "This poster depicts the long deprecated 'Ship' class 'station' in it's hayday. Surprisingly, the poster seems to be Nanotrasen official; though with how hush they've been on the topic..." //A disaster as big as Ship deserves a scandalous coverup. + icon = 'monkestation/code/modules/blueshift/icons/posters/contraband.dmi' + icon_state = "poster_sr_shipstation" + +MAPPING_DIRECTIONAL_HELPERS(/obj/structure/sign/poster/contraband/shipstation, 32) + +/obj/structure/sign/poster/contraband/dancing_honk + name = "DANCE" + desc = "This poster depicts a 'HONK' class mech ontop of a stage, next to a pole." + icon = 'monkestation/code/modules/blueshift/icons/posters/contraband.dmi' + icon_state = "poster_sr_honkdance" + +MAPPING_DIRECTIONAL_HELPERS(/obj/structure/sign/poster/contraband/dancing_honk, 32) + +/obj/structure/sign/poster/contraband/operative_duffy + name = "CASH REWARD" + desc = "This poster depicts a gas mask, with details on how to 'forward information' on the whereabouts of whoever it means... though it doesn't specify to who." + icon = 'monkestation/code/modules/blueshift/icons/posters/contraband.dmi' + icon_state = "poster_sr_duffy" + +MAPPING_DIRECTIONAL_HELPERS(/obj/structure/sign/poster/contraband/operative_duffy, 32) + +/obj/structure/sign/poster/contraband/ultra + name = "ULTRA" + desc = "This poster has one word on it, 'ULTRA'; it depicts a smiling pill next to a beaker. Ominous." + icon = 'monkestation/code/modules/blueshift/icons/posters/contraband.dmi' + icon_state = "poster_sr_ultra" + +MAPPING_DIRECTIONAL_HELPERS(/obj/structure/sign/poster/contraband/ultra, 32) + +/obj/structure/sign/poster/contraband/secborg_vale + name = "Defaced Valeborg Advertisement" + desc = "This poster originally sought to advertise the sleek utility of the valeborg - but it seems to have been long since defaced. One word lies on top; 'RUN.' - Perhaps fitting, considering the security model shown." + icon = 'monkestation/code/modules/blueshift/icons/posters/contraband.dmi' + icon_state = "poster_sr_valeborg" + +MAPPING_DIRECTIONAL_HELPERS(/obj/structure/sign/poster/contraband/secborg_vale, 32) + +/obj/structure/sign/poster/contraband/killingjoke // I like Batman :))) + name = "You don't have to be crazy to work here - but it sure helps!" + desc = "A poster boldly stating that being insane abord Nanotrasen stations isn't required. But it doesn't hurt to have!" + icon = 'monkestation/code/modules/blueshift/icons/posters/contraband.dmi' + icon_state = "poster_sr_killingjoke" + +MAPPING_DIRECTIONAL_HELPERS(/obj/structure/sign/poster/contraband/killingjoke, 32) + +/obj/structure/sign/poster/contraband/nri_text + name = "NRI declaration of sovereignity" + desc = "This poster references the translated copy of Novaya Rossiyskaya Imperiya's declaration of sovereignity." + icon = 'monkestation/code/modules/blueshift/icons/posters/contraband.dmi' + icon_state = "nri_texto" + +/obj/structure/sign/poster/contraband/nri_text/examine_more(mob/user) + . = ..() + . += span_notice("You browse some of the poster's information...") + . += "\t[span_info("The First Congress of People's Senators of the NRI...")]" + . += "\t[span_info("...Testifying respect for the sovereign rights of all peoples belonging to the...")]" + . += "\t[span_info("...Solemnly proclaims the State sovereignty of the Novaya Rossiyskaya Imperiya over its entire territory and declares its determination to create a monarchic State governed by the rule of law...")]" + . += "\t[span_info("...This Declaration is the basis for the development of a new Constitution of the NRI, the conclusion of the Imperial Treaty and the improvement of royal legislation.")]" + return . + +MAPPING_DIRECTIONAL_HELPERS(/obj/structure/sign/poster/contraband/nri_text, 32) + +/obj/structure/sign/poster/contraband/nri_rations + name = "NRI military rations advertisement" + desc = "This poster presumably is an advertisement for military rations produced by a certain private company as a part of the Defense Collegia's state order. This admiral's right hand man sure does look excited." + icon = 'monkestation/code/modules/blueshift/icons/posters/contraband.dmi' + icon_state = "nri_rations" + +MAPPING_DIRECTIONAL_HELPERS(/obj/structure/sign/poster/contraband/nri_rations, 32) + +/obj/structure/sign/poster/contraband/nri_voskhod + name = "VOSKHOD combat armor advertisement" + desc = "A poster showcasing recently developed VOSKHOD combat armor currently in use by NRI's troops and infantry across the border. The word 'DRIP' is written top to bottom on the left side, presumably boasting about the suit's superior design." + icon = 'monkestation/code/modules/blueshift/icons/posters/contraband.dmi' + icon_state = "nri_voskhod" + +MAPPING_DIRECTIONAL_HELPERS(/obj/structure/sign/poster/contraband/nri_voskhod, 32) + +/obj/structure/sign/poster/contraband/nri_pistol + name = "Szabo-Ivanek service pistol technical poster" + desc = "This poster seems to be a technical documentation for Szabo-Ivanek service pistol in use by most of the NRI's state police and military institutions. Sadly, it's all written in Pan-Slavic." + icon = 'monkestation/code/modules/blueshift/icons/posters/contraband.dmi' + icon_state = "nri_pistol" + +MAPPING_DIRECTIONAL_HELPERS(/obj/structure/sign/poster/contraband/nri_pistol, 32) + +/obj/structure/sign/poster/contraband/nri_engineer + name = "Build, Now" + desc = "This poster shows you an imperial combat engineer staring somewhere to the left of the viewer. The words 'Build, Now' are written on top and bottom of the poster." + icon = 'monkestation/code/modules/blueshift/icons/posters/contraband.dmi' + icon_state = "nri_engineer" + +MAPPING_DIRECTIONAL_HELPERS(/obj/structure/sign/poster/contraband/nri_engineer, 32) + +/obj/structure/sign/poster/contraband/nri_radar + name = "Imperial navy enlistment poster" + desc = "Enlist with the imperial navy today! See the galaxy, shoot solarians, get PTSD!" + icon = 'monkestation/code/modules/blueshift/icons/posters/contraband.dmi' + icon_state = "nri_radar" + +MAPPING_DIRECTIONAL_HELPERS(/obj/structure/sign/poster/contraband/nri_radar, 32) diff --git a/monkestation/code/modules/blueshift/structures/primative.dm b/monkestation/code/modules/blueshift/structures/primative.dm new file mode 100644 index 000000000000..ca8bb887d926 --- /dev/null +++ b/monkestation/code/modules/blueshift/structures/primative.dm @@ -0,0 +1,2589 @@ +///Juice item, converting nutriments into juice_typepath and transfering to target_holder if specified +/obj/item/proc/juice(datum/reagents/target_holder, mob/user) + if(on_juice() == -1 || !reagents?.total_volume) + return FALSE + + for(var/datum/reagent/juice_typepath as anything in juice_results) + if(ispath(juice_typepath)) + reagents.convert_reagent(/datum/reagent/consumable, juice_typepath, include_source_subtypes = TRUE) + reagents.trans_to(target_holder, reagents.total_volume, transfered_by = user) + + return TRUE + +///Grind item, adding grind_results to item's reagents and transfering to target_holder if specified +/obj/item/proc/grind(datum/reagents/target_holder, mob/user) + . = FALSE + if(on_grind() == -1) + return + + if(length(grind_results)) + target_holder.add_reagent_list(grind_results) + . = TRUE + if(reagents?.total_volume) + reagents.trans_to(target_holder, reagents.total_volume, transfered_by = user) + . = TRUE + +/datum/reagents/proc/convert_reagent( + datum/reagent/source_reagent_typepath, + datum/reagent/target_reagent_typepath, + multiplier = 1, + include_source_subtypes = FALSE +) + if(!ispath(source_reagent_typepath)) + stack_trace("invalid reagent path passed to convert reagent [source_reagent_typepath]") + return FALSE + + var/reagent_amount + var/reagent_purity + var/reagent_ph + if(include_source_subtypes) + reagent_ph = ph + var/weighted_purity + var/list/reagent_type_list = typecacheof(source_reagent_typepath) + for(var/datum/reagent/reagent as anything in reagent_list) + if(reagent.type in reagent_type_list) + weighted_purity += reagent.volume * reagent.purity + reagent_amount += reagent.volume + remove_reagent(reagent.type, reagent.volume * multiplier) + reagent_purity = weighted_purity / reagent_amount + else + var/datum/reagent/source_reagent = has_reagent(source_reagent_typepath) + reagent_amount = source_reagent.volume + reagent_purity = source_reagent.purity + reagent_ph = source_reagent.ph + remove_reagent(source_reagent_typepath, reagent_amount) + add_reagent(target_reagent_typepath, reagent_amount * multiplier, reagtemp = chem_temp, added_purity = reagent_purity, added_ph = reagent_ph) + + +/obj/item/stack/sheet/mineral/stone + name = "stone" + desc = "Stone brick." + singular_name = "stone block" + icon = 'monkestation/code/modules/blueshift/icons/ore.dmi' + icon_state = "sheet-stone" + inhand_icon_state = "sheet-metal" + mats_per_unit = list(/datum/material/stone=SHEET_MATERIAL_AMOUNT) + force = 10 + throwforce = 15 + resistance_flags = FIRE_PROOF + merge_type = /obj/item/stack/sheet/mineral/stone + grind_results = null + material_type = /datum/material/stone + matter_amount = 0 + source = null + walltype = /turf/closed/wall/mineral/stone + stairs_type = /obj/structure/stairs/stone + +GLOBAL_LIST_INIT(stone_recipes, list ( \ + new/datum/stack_recipe("stone brick wall", /turf/closed/wall/mineral/stone, 5, one_per_turf = 1, on_solid_ground = 1, applies_mats = TRUE, category = CAT_STRUCTURE), \ + new/datum/stack_recipe("stone brick tile", /obj/item/stack/tile/mineral/stone, 1, 4, 20, check_density = FALSE, category = CAT_TILES), + new/datum/stack_recipe("millstone", /obj/structure/millstone, 6, one_per_turf = 1, on_solid_ground = 1, category = CAT_STRUCTURE), + new/datum/stack_recipe("stone cauldron", /obj/machinery/cauldron, 5, one_per_turf = 1, on_solid_ground = 1, category = CAT_STRUCTURE), + new/datum/stack_recipe("stone stove", /obj/machinery/primitive_stove, 5, one_per_turf = 1, on_solid_ground = 1, category = CAT_STRUCTURE), + new/datum/stack_recipe("stone oven", /obj/machinery/oven/stone, 5, one_per_turf = 1, on_solid_ground = 1, category = CAT_STRUCTURE), + new/datum/stack_recipe("stone griddle", /obj/machinery/griddle/stone, 5, one_per_turf = 1, on_solid_ground = 1, category = CAT_STRUCTURE), + )) + +/obj/item/stack/sheet/mineral/stone/get_main_recipes() + . = ..() + . += GLOB.stone_recipes + +/datum/material/stone + name = "stone" + desc = "It's stone." + categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE) + sheet_type = /obj/item/stack/sheet/mineral/stone + value_per_unit = 0.005 + beauty_modifier = 0.01 + color = "#59595a" + greyscale_colors = "#59595a" + value_per_unit = 0.0025 + armor_modifiers = list(MELEE = 0.75, BULLET = 0.5, LASER = 1.25, ENERGY = 0.5, BOMB = 0.5, BIO = 0.25, FIRE = 1.5, ACID = 1.5) + beauty_modifier = 0.3 + turf_sound_override = FOOTSTEP_PLATING + +/obj/item/stack/stone + name = "rough stone" + desc = "Large chunks of uncut stone, tough enough to safely build out of... if you could manage to cut them into something usable." + icon = 'monkestation/code/modules/blueshift/icons/ore.dmi' + icon_state = "stone_ore" + singular_name = "rough stone boulder" + mats_per_unit = list(/datum/material/stone = SHEET_MATERIAL_AMOUNT) + merge_type = /obj/item/stack/stone + force = 10 + throwforce = 15 + +/obj/item/stack/stone/examine() + . = ..() + . += span_notice("With a chisel or even a pickaxe of some kind, you could cut this into blocks.") + +/obj/item/stack/stone/attackby(obj/item/attacking_item, mob/user, params) + if((attacking_item.tool_behaviour != TOOL_MINING) && !(istype(attacking_item, /obj/item/chisel))) + return ..() + playsound(src, 'sound/effects/picaxe1.ogg', 50, TRUE) + balloon_alert_to_viewers("cutting...") + if(!do_after(user, 5 SECONDS, target = src)) + balloon_alert_to_viewers("stopped cutting") + return FALSE + new /obj/item/stack/sheet/mineral/stone(get_turf(src), amount) + qdel(src) + +/obj/item/stack/tile/mineral/stone + name = "stone tile" + singular_name = "stone floor tile" + desc = "A tile made of stone bricks, for that fortress look." + icon_state = "tile_herringbone" + inhand_icon_state = "tile" + turf_type = /turf/open/floor/stone + mineralType = "stone" + mats_per_unit = list(/datum/material/stone= HALF_SHEET_MATERIAL_AMOUNT) + merge_type = /obj/item/stack/tile/mineral/stone + +/turf/open/floor/stone + desc = "Blocks of stone arranged in a tile-like pattern, odd, really, how it looks like real stone too, because it is!" //A play on the original description for stone tiles + slowdown = -0.3 + +/turf/closed/wall/mineral/stone + name = "stone wall" + desc = "A wall made of solid stone bricks." + icon = 'monkestation/code/modules/blueshift/icons/wall.dmi' + icon_state = "wall-0" + base_icon_state = "wall" + sheet_type = /obj/item/stack/sheet/mineral/stone + explosive_resistance = 2 // Rock and stone to the bone, or at least a bit longer than walls made of metal sheets! + smoothing_flags = SMOOTH_BITMASK + smoothing_groups = SMOOTH_GROUP_STONE_WALLS + SMOOTH_GROUP_WALLS + SMOOTH_GROUP_CLOSED_TURFS + canSmoothWith = SMOOTH_GROUP_STONE_WALLS + custom_materials = list( + /datum/material/stone = SHEET_MATERIAL_AMOUNT * 2, + ) + +/turf/closed/wall/mineral/stone/try_decon(obj/item/item_used, mob/user) // Lets you break down stone walls with stone breaking tools + if(item_used.tool_behaviour != TOOL_MINING) + return ..() + + if(!item_used.tool_start_check(user, amount = 0)) + return FALSE + + balloon_alert_to_viewers("breaking down...") + + if(!item_used.use_tool(src, user, 5 SECONDS)) + return FALSE + dismantle_wall() + return TRUE + +/turf/closed/indestructible/stone + name = "stone wall" + desc = "A wall made of unusually solid stone bricks." + icon = 'monkestation/code/modules/blueshift/icons/wall.dmi' + icon_state = "wall-0" + base_icon_state = "wall" + smoothing_flags = SMOOTH_BITMASK + smoothing_groups = SMOOTH_GROUP_STONE_WALLS + SMOOTH_GROUP_WALLS + SMOOTH_GROUP_CLOSED_TURFS + canSmoothWith = SMOOTH_GROUP_STONE_WALLS + custom_materials = list( + /datum/material/stone = SHEET_MATERIAL_AMOUNT * 2, + ) + +/obj/structure/falsewall/stone + name = "stone wall" + desc = "A wall made of solid stone bricks." + icon = 'monkestation/code/modules/blueshift/icons/wall.dmi' + icon_state = "wall-open" + base_icon_state = "wall" + mineral = /obj/item/stack/sheet/mineral/stone + walltype = /turf/closed/wall/mineral/stone + smoothing_flags = SMOOTH_BITMASK + smoothing_groups = SMOOTH_GROUP_STONE_WALLS + SMOOTH_GROUP_WALLS + SMOOTH_GROUP_CLOSED_TURFS + canSmoothWith = SMOOTH_GROUP_STONE_WALLS + +/turf/closed/mineral/gets_drilled(mob/user, give_exp = FALSE) + if(prob(5)) + new /obj/item/stack/stone(src) + + return ..() + + +#define GET_RECIPE(input_thing) LAZYACCESS(processor_inputs[/obj/machinery/processor], input_thing.type) + +/obj/item/cutting_board + name = "cutting board" + desc = "Processing food before electricity was cool, because you can just do your regular cutting on the table next to this right?" + icon = 'monkestation/code/modules/blueshift/icons/cooking_structures.dmi' + icon_state = "cutting_board" + force = 5 + throwforce = 7 //Imagine someone just throws the entire fucking cutting board at you + w_class = WEIGHT_CLASS_NORMAL + pass_flags = PASSTABLE + layer = BELOW_OBJ_LAYER //So newly spawned food appears on top of the board rather than under it + resistance_flags = FLAMMABLE + ///List containg list of possible inputs and resulting recipe items, taken from processor.dm and processor_recipes.dm + var/static/list/processor_inputs + +/obj/item/cutting_board/Initialize(mapload) + . = ..() + if(processor_inputs) + return + + processor_inputs = list() + for(var/datum/food_processor_process/recipe as anything in subtypesof(/datum/food_processor_process)) //this is how tg food processors do it just in case this is digusting + if(!initial(recipe.input)) + continue + + recipe = new recipe + var/list/typecache = list() + var/list/bad_types + + for(var/bad_type in recipe.blacklist) + LAZYADD(bad_types, typesof(bad_type)) + + for(var/input_type in typesof(recipe.input) - bad_types) + typecache[input_type] = recipe + + for(var/machine_type in typesof(recipe.required_machine)) + LAZYADD(processor_inputs[machine_type], typecache) + +/obj/item/cutting_board/update_appearance() + . = ..() + cut_overlays() + if(!length(contents)) + return + var/image/overlayed_item = image(icon = contents[1].icon, icon_state = contents[1].icon_state, pixel_y = 2) + add_overlay(overlayed_item) + +/obj/item/cutting_board/examine(mob/user) + . = ..() + . += span_notice("You can process food similar to a food processor by putting food on this and using a knife on it.") + . += span_notice("It can be (un)secured with Right Click") + . += span_notice("You can make it drop its item with Alt Click") + if(length(contents)) + . += span_notice("It has [contents[1]] sitting on it.") + +/obj/item/cutting_board/Destroy() + drop_everything_contained() + return ..() + +/obj/item/cutting_board/AltClick(mob/user) + if(!length(contents)) + balloon_alert(user, "nothing on board") + return + + drop_everything_contained() + balloon_alert(user, "cleared board") + return + +///Drops all contents at the turf of the item +/obj/item/cutting_board/proc/drop_everything_contained() + if(!length(contents)) + return + + for(var/obj/target_item as anything in contents) + target_item.forceMove(get_turf(src)) + +/obj/item/cutting_board/attack_hand_secondary(mob/user, list/modifiers) + . = ..() + if(. == SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN) + return + + if(!can_interact(user) || !user.can_perform_action(src)) + return + + set_anchored(!anchored) + balloon_alert_to_viewers(anchored ? "secured" : "unsecured") + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + +///Takes the given obj (processed thing) and gets its results from the recipe list, spawning the results and deleting the original obj +/obj/item/cutting_board/proc/process_food(datum/food_processor_process/recipe, obj/processed_thing) + if(!recipe.output || !loc || QDELETED(src)) + return + + var/food_multiplier = recipe.food_multiplier + for(var/i in 1 to food_multiplier) + var/obj/new_food_item = new recipe.output(drop_location()) + new_food_item.pixel_x = rand(-6, 6) + new_food_item.pixel_y = rand(-6, 6) + + if(!processed_thing.reagents) //backup in case we really fuck up + continue + + processed_thing.reagents.copy_to(new_food_item, processed_thing.reagents.total_volume, multiplier = 1 / food_multiplier) + + qdel(processed_thing) + update_appearance() + +/obj/item/cutting_board/attackby(obj/item/attacking_item, mob/living/user, params) + if(user.istate & ISTATE_HARM) + return ..() + + if(attacking_item.tool_behaviour == TOOL_KNIFE) + if(!length(contents)) + balloon_alert(user, "nothing to process") + return + + var/datum/food_processor_process/item_process_recipe = GET_RECIPE(contents[1]) + if(!item_process_recipe) + log_admin("DEBUG: [src] (cutting board item) just tried to process [contents[1]] but wasn't able to get a recipe somehow, this should not be able to happen.") + return + + playsound(src, 'sound/effects/butcher.ogg', 50, TRUE) + balloon_alert_to_viewers("cutting...") + if(!do_after(user, 3 SECONDS, target = src)) + balloon_alert_to_viewers("stopped cutting") + return + + process_food(item_process_recipe, contents[1]) + return + + var/datum/food_processor_process/gotten_recipe = GET_RECIPE(attacking_item) + if(gotten_recipe) + if(length(contents)) + balloon_alert(user, "board is full") + return + + attacking_item.forceMove(src) + balloon_alert(user, "placed [attacking_item] on board") + update_appearance() + return + + if(IS_EDIBLE(attacking_item)) //We may have failed but the user wants some feedback on why they can't put x food item on the board + balloon_alert(user, "[attacking_item] can't be processed") + return ..() + +#undef GET_RECIPE + +/obj/item/reagent_containers/cup/soup_pot/material + icon = 'monkestation/code/modules/blueshift/icons/cookware.dmi' + material_flags = MATERIAL_EFFECTS | MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS + +// A few random preset types as well + +/obj/item/reagent_containers/cup/soup_pot/material/fake_copper + + +/obj/item/reagent_containers/cup/soup_pot/material/fake_brass + + +/obj/item/reagent_containers/cup/soup_pot/material/fake_tin + + +// Oven Trays +/obj/item/plate/oven_tray/material + desc = "Time to bake hardtack!" + icon = 'monkestation/code/modules/blueshift/icons/cookware.dmi' + material_flags = MATERIAL_EFFECTS | MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS + +// A few random preset types as well + +/obj/item/plate/oven_tray/material/fake_copper + + +/obj/item/plate/oven_tray/material/fake_brass + + +/obj/item/plate/oven_tray/material/fake_tin + +#define LARGE_MORTAR_STAMINA_MINIMUM 50 //What is the amount of stam damage that we prevent mortar use at +#define LARGE_MORTAR_STAMINA_USE 70 //How much stam damage is given to people when the mortar is used + +/obj/structure/large_mortar + name = "large mortar" + desc = "A large bowl perfect for grinding or juicing a large number of things at once." + icon = 'monkestation/code/modules/blueshift/icons/cooking_structures.dmi' + icon_state = "big_mortar" + density = TRUE + anchored = TRUE + max_integrity = 100 + pass_flags = PASSTABLE + resistance_flags = FLAMMABLE + custom_materials = list( + /datum/material/wood = SHEET_MATERIAL_AMOUNT * 10, + ) + /// The maximum number of items this structure can store + var/maximum_contained_items = 10 + +/obj/structure/large_mortar/Initialize(mapload) + . = ..() + create_reagents(200, OPENCONTAINER) + + AddElement(/datum/element/falling_hazard, damage = 20, wound_bonus = 5, hardhat_safety = TRUE, crushes = FALSE) + +/obj/structure/large_mortar/examine(mob/user) + . = ..() + . += span_notice("It currently contains [length(contents)]/[maximum_contained_items] items.") + . += span_notice("It can be (un)secured with Right Click") + . += span_notice("You can empty all of the items out of it with Alt Click") + +/obj/structure/large_mortar/Destroy() + drop_everything_contained() + return ..() + +/obj/structure/large_mortar/AltClick(mob/user) + if(!length(contents)) + balloon_alert(user, "nothing inside") + return + + drop_everything_contained() + balloon_alert(user, "removed all items") + return + +/// Drops all contents at the mortar +/obj/structure/large_mortar/proc/drop_everything_contained() + if(!length(contents)) + return + + for(var/obj/target_item as anything in contents) + target_item.forceMove(get_turf(src)) + +/obj/structure/large_mortar/attack_hand_secondary(mob/user, list/modifiers) + . = ..() + if(. == SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN) + return + + if(!can_interact(user) || !user.can_perform_action(src)) + return + + set_anchored(!anchored) + balloon_alert_to_viewers(anchored ? "secured" : "unsecured") + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + +/obj/structure/large_mortar/attackby(obj/item/attacking_item, mob/living/carbon/human/user) + if(istype(attacking_item, /obj/item/storage/bag)) + if(length(contents) >= maximum_contained_items) + balloon_alert(user, "already full") + return TRUE + + if(!length(attacking_item.contents)) + balloon_alert(user, "nothing to transfer!") + return TRUE + + for(var/obj/item/target_item in attacking_item.contents) + if(length(contents) >= maximum_contained_items) + break + + if(target_item.juice_results || target_item.grind_results) + target_item.forceMove(src) + + if (length(contents) >= maximum_contained_items) + balloon_alert(user, "filled!") + else + balloon_alert(user, "transferred") + return TRUE + + if(istype(attacking_item, /obj/item/pestle)) + if(!anchored) + balloon_alert(user, "secure to ground first") + return + + if(!length(contents)) + balloon_alert(user, "nothing to grind") + return + + if(user.stamina.loss > LARGE_MORTAR_STAMINA_MINIMUM) + balloon_alert(user, "too tired") + return + + var/list/choose_options = list( + "Grind" = image(icon = 'icons/hud/radial.dmi', icon_state = "radial_grind"), + "Juice" = image(icon = 'icons/hud/radial.dmi', icon_state = "radial_juice") + ) + var/picked_option = show_radial_menu(user, src, choose_options, radius = 38, require_near = TRUE) + + if(!length(contents) || !in_range(src, user) || !user.is_holding(attacking_item) && !picked_option) + return + + balloon_alert_to_viewers("grinding...") + var/skill_modifier = user.mind.get_skill_modifier(/datum/skill/primitive, SKILL_SPEED_MODIFIER) + if(!do_after(user, 5 SECONDS * skill_modifier, target = src)) + balloon_alert_to_viewers("stopped grinding") + return + + var/stamina_use = LARGE_MORTAR_STAMINA_USE + if(prob(user.mind.get_skill_modifier(/datum/skill/primitive, SKILL_PROBS_MODIFIER))) + stamina_use *= 0.5 //so it uses half the amount of stamina (35 instead of 70) + + user.stamina.adjust(-stamina_use) //This is a bit more tiring than a normal sized mortar and pestle + user.mind.adjust_experience(/datum/skill/primitive, 5) + switch(picked_option) + if("Juice") + for(var/obj/item/target_item as anything in contents) + if(target_item.juice_results) + juice_target_item(target_item, user) + else + grind_target_item(target_item, user) + + if("Grind") + for(var/obj/item/target_item as anything in contents) + if(target_item.grind_results) + grind_target_item(target_item, user) + else + juice_target_item(target_item, user) + return + + if(!attacking_item.grind_results && !attacking_item.juice_results) + balloon_alert(user, "can't grind this") + return ..() + + if(length(contents) >= maximum_contained_items) + balloon_alert(user, "already full") + return + + attacking_item.forceMove(src) + return ..() + +///Juices the passed target item, and transfers any contained chems to the mortar as well +/obj/structure/large_mortar/proc/juice_target_item(obj/item/to_be_juiced, mob/living/carbon/human/user) + if(to_be_juiced.flags_1 & HOLOGRAM_1) + to_chat(user, span_notice("You try to juice [to_be_juiced], but it fades away!")) + qdel(to_be_juiced) + return + + if(!to_be_juiced.juice(src.reagents, user)) + to_chat(user, span_danger("You fail to juice [to_be_juiced].")) + + to_chat(user, span_notice("You juice [to_be_juiced] into a liquid.")) + QDEL_NULL(to_be_juiced) + +///Grinds the passed target item, and transfers any contained chems to the mortar as well +/obj/structure/large_mortar/proc/grind_target_item(obj/item/to_be_ground, mob/living/carbon/human/user) + if(to_be_ground.flags_1 & HOLOGRAM_1) + to_chat(user, span_notice("You try to grind [to_be_ground], but it fades away!")) + qdel(to_be_ground) + return + + if(!to_be_ground.grind(src.reagents, user)) + if(isstack(to_be_ground)) + to_chat(usr, span_notice("[src] attempts to grind as many pieces of [to_be_ground] as possible.")) + else + to_chat(user, span_danger("You fail to grind [to_be_ground].")) + + to_chat(user, span_notice("You break [to_be_ground] into a fine powder.")) + QDEL_NULL(to_be_ground) + +#undef LARGE_MORTAR_STAMINA_MINIMUM +#undef LARGE_MORTAR_STAMINA_USE + +#define MILLSTONE_STAMINA_MINIMUM 50 //What is the amount of stam damage that we prevent mill use at +#define MILLSTONE_STAMINA_USE 100 //How much stam damage is given to people when the mill is used + +/obj/structure/millstone + name = "millstone" + desc = "Two big disks of something heavy and tough. Put a plant between them and spin, and you'll end up with seeds and a really ground up plant." + icon = 'monkestation/code/modules/blueshift/icons/millstone.dmi' + icon_state = "millstone" + density = TRUE + anchored = TRUE + max_integrity = 200 + pass_flags = PASSTABLE + custom_materials = list( + /datum/material/stone = SHEET_MATERIAL_AMOUNT * 6, + ) + drag_slowdown = 2 + /// The maximum number of items this structure can store + var/maximum_contained_items = 10 + +/obj/structure/millstone/examine(mob/user) + . = ..() + + . += span_notice("It currently contains [length(contents)]/[maximum_contained_items] items.") + . += span_notice("You can process [src]'s contents with Right Click") + . += span_notice("You can empty all of the items out of it with Alt Click") + + if(length(contents)) + . += span_notice("Inside, you can see:") + var/list/stuff_inside = list() + for(var/obj/thing as anything in contents) + stuff_inside[thing.type] += 1 + + for(var/obj/thing as anything in stuff_inside) + . += span_notice("• [stuff_inside[thing]] [initial(thing.name)]\s") + + . += span_notice("And it can fit [maximum_contained_items - length(contents)] more items in it.") + else + . += span_notice("It can hold [maximum_contained_items] items, and there is nothing in it presently.") + + . += span_notice("You can [anchored ? "un" : ""]secure [src] with CTRL-Shift-Click.") + . += span_notice("With a prying tool of some sort, you could take [src] apart.") + +/obj/structure/millstone/Destroy() + drop_everything_contained() + return ..() + +/obj/structure/millstone/deconstruct(disassembled) + var/obj/item/stack/sheet/mineral/stone = new (drop_location()) + stone.amount = 6 + stone.update_appearance(UPDATE_ICON) + transfer_fingerprints_to(stone) + return ..() + +/obj/structure/millstone/AltClick(mob/user) + if(!length(contents)) + balloon_alert(user, "nothing inside!") + return + + drop_everything_contained() + balloon_alert(user, "removed all items") + return + +/obj/structure/millstone/CtrlShiftClick(mob/user) + set_anchored(!anchored) + balloon_alert(user, "[anchored ? "secured" : "unsecured"]") + +/// Drops all contents at the mortar +/obj/structure/millstone/proc/drop_everything_contained() + if(!length(contents)) + return + + for(var/obj/target_item as anything in contents) + target_item.forceMove(get_turf(src)) + +/obj/structure/millstone/attack_hand_secondary(mob/user, list/modifiers) + . = ..() + if(. == SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN) + return + + if(!can_interact(user) || !user.can_perform_action(src)) + return + + mill_it_up(user) + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + +/obj/structure/millstone/crowbar_act(mob/living/user, obj/item/tool) + . = ..() + balloon_alert_to_viewers("disassembling...") + if(!do_after(user, 2 SECONDS, src)) + return + deconstruct(TRUE) + +/obj/structure/millstone/attackby(obj/item/attacking_item, mob/user) + if(istype(attacking_item, /obj/item/storage/bag)) + if(length(contents) >= maximum_contained_items) + balloon_alert(user, "already full") + return TRUE + + if(!length(attacking_item.contents)) + balloon_alert(user, "nothing to transfer!") + return TRUE + + for(var/obj/item/food/grown/target_item in attacking_item.contents) + if(length(contents) >= maximum_contained_items) + break + + target_item.forceMove(src) + + if (length(contents) >= maximum_contained_items) + balloon_alert(user, "filled!") + else + balloon_alert(user, "transferred") + + return TRUE + + if(!((istype(attacking_item, /obj/item/food/grown/)) || (istype(attacking_item, /obj/item/grown)))) + balloon_alert(user, "can only mill plants") + return ..() + + if(length(contents) >= maximum_contained_items) + balloon_alert(user, "already full") + return + + attacking_item.forceMove(src) + return ..() + +/// Takes the content's seeds and spits them out on the turf, as well as grinding whatever the contents may be +/obj/structure/millstone/proc/mill_it_up(mob/living/carbon/human/user) + if(!length(contents)) + balloon_alert(user, "nothing to mill") + return + + if(user.stamina.loss > MILLSTONE_STAMINA_MINIMUM) + balloon_alert(user, "too tired") + return + + if(!length(contents) || !in_range(src, user)) + return + + balloon_alert_to_viewers("grinding...") + + flick("millstone_spin", src) + playsound(src, 'sound/effects/stonedoor_openclose.ogg', 50, TRUE) + + var/stamina_use = MILLSTONE_STAMINA_USE + if(prob(user.mind.get_skill_modifier(/datum/skill/primitive, SKILL_PROBS_MODIFIER))) + stamina_use *= 0.5 //so it uses half the amount of stamina (50 instead of 100) + + user.stamina.adjust(-stamina_use) // Prevents spamming it + + var/skill_modifier = user.mind.get_skill_modifier(/datum/skill/primitive, SKILL_SPEED_MODIFIER) + if(!do_after(user, 5 SECONDS * skill_modifier, target = src)) + balloon_alert_to_viewers("stopped grinding") + return + + user.mind.adjust_experience(/datum/skill/primitive, 5) + + for(var/target_item as anything in contents) + seedify(target_item, t_max = 1) + + return + +#undef MILLSTONE_STAMINA_MINIMUM +#undef MILLSTONE_STAMINA_USE + +#define RESKIN_LINEN "Linen" + +/obj/item/storage/bag/plants + uses_advanced_reskins = TRUE + unique_reskin = list( + "Original" = list( + RESKIN_ICON = 'icons/obj/hydroponics/equipment.dmi', + RESKIN_ICON_STATE = "plantbag", + RESKIN_WORN_ICON = 'icons/mob/clothing/belt.dmi', + RESKIN_WORN_ICON_STATE = "plantbag", + ), + RESKIN_LINEN = list( + RESKIN_ICON = 'monkestation/code/modules/blueshift/icons/plant_bag.dmi', + RESKIN_ICON_STATE = "plantbag_primitive", + RESKIN_WORN_ICON = 'monkestation/code/modules/blueshift/icons/plant_bag_worn.dmi', + RESKIN_WORN_ICON_STATE = "plantbag_primitive", + ), + ) + +// This is so the linen reskin shows properly in the suit storage. +/obj/item/storage/bag/plants/build_worn_icon(default_layer, default_icon_file, isinhands, female_uniform, override_state, override_file, mutant_styles) + if(default_layer == SUIT_STORE_LAYER && current_skin == RESKIN_LINEN) + override_file = 'monkestation/code/modules/blueshift/icons/plant_bag_worn_mirror.dmi' + + return ..() + +/// Simple helper to reskin this item into its primitive variant. +/obj/item/storage/bag/plants/proc/make_primitive() + current_skin = RESKIN_LINEN + + icon = unique_reskin[current_skin][RESKIN_ICON] + icon_state = unique_reskin[current_skin][RESKIN_ICON_STATE] + worn_icon = unique_reskin[current_skin][RESKIN_WORN_ICON] + worn_icon_state = unique_reskin[current_skin][RESKIN_WORN_ICON_STATE] + + update_appearance() + +/// A helper for the primitive variant, for mappers. +/obj/item/storage/bag/plants/primitive + current_skin = RESKIN_LINEN // Just so it displays properly when in suit storage + uses_advanced_reskins = FALSE + unique_reskin = null + icon = 'monkestation/code/modules/blueshift/icons/plant_bag.dmi' + icon_state = "plantbag_primitive" + worn_icon = 'monkestation/code/modules/blueshift/icons/plant_bag_worn.dmi' + worn_icon_state = "plantbag_primitive" + +/obj/item/stack/sheet/cloth/on_item_crafted(mob/builder, atom/created) + if(!istype(created, /obj/item/storage/bag/plants)) + return + + if(!isashwalker(builder)) + return + + var/obj/item/storage/bag/plants/bag = created + + bag.make_primitive() + +/obj/item/storage/bag/plants/portaseeder + uses_advanced_reskins = FALSE + unique_reskin = null + +#undef RESKIN_LINEN + +/obj/machinery/griddle/stone + name = "stone griddle" + desc = "You could probably cook an egg on this... the griddle slab looks very unsanitary." + icon = 'monkestation/code/modules/blueshift/icons/stone_kitchen_machines.dmi' + icon_state = "griddle1_off" + density = TRUE + pass_flags_self = PASSMACHINE | PASSTABLE| LETPASSTHROW // It's roughly the height of a table. + layer = BELOW_OBJ_LAYER + use_power = FALSE + circuit = null + resistance_flags = FIRE_PROOF + processing_flags = START_PROCESSING_MANUALLY + variant = 1 + +/obj/machinery/griddle/Initialize(mapload) + . = ..() + grill_loop = new(src, FALSE) + if(isnum(variant)) + variant = 1 + +/obj/machinery/griddle/stone/examine(mob/user) + . = ..() + + . += span_notice("It can be taken apart with a crowbar.") + +/obj/machinery/griddle/stone/crowbar_act(mob/living/user, obj/item/tool) + user.balloon_alert_to_viewers("disassembling...") + if(!tool.use_tool(src, user, 2 SECONDS, volume = 100)) + return + new /obj/item/stack/sheet/mineral/stone(drop_location(), 5) + deconstruct(TRUE) + return + +#define OVEN_TRAY_Y_OFFSET -12 + +/obj/machinery/oven/stone + name = "stone oven" + desc = "Sorry buddy, all this stone used up the budget that would have normally gone to garfield comic jokes." + icon = 'monkestation/code/modules/blueshift/icons/stone_kitchen_machines.dmi' + circuit = null + use_power = FALSE + + /// A list of the different oven trays we can spawn with + var/static/list/random_oven_tray_types = list( + /obj/item/plate/oven_tray/material/fake_copper, + /obj/item/plate/oven_tray/material/fake_brass, + /obj/item/plate/oven_tray/material/fake_tin, + ) + +/obj/machinery/oven/stone/Initialize(mapload) + . = ..() + + if(!mapload) + return + + if(used_tray) // We have to get rid of normal generic tray that normal ovens spawn with + QDEL_NULL(used_tray) + + var/new_tray_type_to_use = pick(random_oven_tray_types) + add_tray_to_oven(new new_tray_type_to_use(src)) + +/obj/machinery/oven/stone/examine(mob/user) + . = ..() + + . += span_notice("It can be taken apart with a crowbar.") + +// previously NO_DECONSTRUCTION +/obj/machinery/oven/stone/default_deconstruction_screwdriver(mob/user, icon_state_open, icon_state_closed, obj/item/screwdriver) + return NONE + +/obj/machinery/oven/stone/default_deconstruction_crowbar(obj/item/crowbar, ignore_panel, custom_deconstruct) + return NONE + +/obj/machinery/oven/stone/default_pry_open(obj/item/crowbar, close_after_pry, open_density, closed_density) + return NONE + +/obj/machinery/oven/stone/add_tray_to_oven(obj/item/plate/oven_tray, mob/baker) + used_tray = oven_tray + + if(!open) + oven_tray.vis_flags |= VIS_HIDE + vis_contents += oven_tray + oven_tray.flags_1 |= IS_ONTOP_1 + oven_tray.vis_flags |= VIS_INHERIT_PLANE + oven_tray.pixel_y = OVEN_TRAY_Y_OFFSET + + RegisterSignal(used_tray, COMSIG_MOVABLE_MOVED, PROC_REF(on_tray_moved)) + update_baking_audio() + update_appearance() + +/obj/machinery/oven/stone/set_smoke_state(new_state) + . = ..() + + if(particles) + particles.position = list(0, 10, 0) + +/obj/machinery/oven/stone/crowbar_act(mob/living/user, obj/item/tool) + user.balloon_alert_to_viewers("disassembling...") + if(!tool.use_tool(src, user, 2 SECONDS, volume = 100)) + return + new /obj/item/stack/sheet/mineral/stone(drop_location(), 5) + deconstruct(TRUE) + return + +#undef OVEN_TRAY_Y_OFFSET + +/obj/machinery/primitive_stove + name = "stone stove" + desc = "You think you'll stick to just putting pots on this, the grill part looks very unsanitary." + icon = 'monkestation/code/modules/blueshift/icons/stone_kitchen_machines.dmi' + icon_state = "stove_off" + base_icon_state = "stove" + density = TRUE + pass_flags_self = PASSMACHINE | LETPASSTHROW + layer = BELOW_OBJ_LAYER + use_power = FALSE + circuit = null + resistance_flags = FIRE_PROOF + +/obj/machinery/primitive_stove/Initialize(mapload) + . = ..() + + AddComponent(/datum/component/stove/primitive, container_x = -7, container_y = 7, spawn_container = new /obj/item/reagent_containers/cup/soup_pot) + +/obj/machinery/primitive_stove/examine(mob/user) + . = ..() + + . += span_notice("It can be taken apart with a crowbar.") + +// previously NO_DECONSTRUCTION +/obj/machinery/primitive_stove/default_deconstruction_screwdriver(mob/user, icon_state_open, icon_state_closed, obj/item/screwdriver) + return NONE + +/obj/machinery/primitive_stove/default_deconstruction_crowbar(obj/item/crowbar, ignore_panel, custom_deconstruct) + return NONE + +/obj/machinery/primitive_stove/crowbar_act(mob/living/user, obj/item/tool) + user.balloon_alert_to_viewers("disassembling...") + if(!tool.use_tool(src, user, 2 SECONDS, volume = 100)) + return + new /obj/item/stack/sheet/mineral/stone(drop_location(), 5) + deconstruct(TRUE) + return + +/// Stove component subtype with changed visuals and not much else +/datum/component/stove/primitive + flame_color = "#ff9900" + +/datum/component/stove/primitive/on_overlay_update(obj/machinery/source, list/overlays) + update_smoke() + + var/obj/real_parent = parent + + if(!on) + real_parent.icon_state = "[real_parent.base_icon_state]_off" // Not an overlay but do you really want me to override a second proc? I don't + real_parent.set_light(0, 0) + return + + real_parent.icon_state = "[real_parent.base_icon_state]_on" + real_parent.set_light(3, 1, LIGHT_COLOR_FIRE) + + overlays += emissive_appearance(real_parent.icon, "[real_parent.base_icon_state]_on_fire_emissive", real_parent, alpha = real_parent.alpha) + + if(!container) + overlays += emissive_appearance(real_parent.icon, "[real_parent.base_icon_state]_on_hole_emissive", real_parent, alpha = real_parent.alpha) + + // Flames around the pot + var/mutable_appearance/flames = mutable_appearance(real_parent.icon, "[real_parent.base_icon_state]_on_flame", alpha = real_parent.alpha) + flames.color = flame_color + overlays += flames + overlays += emissive_appearance(real_parent.icon, "[real_parent.base_icon_state]_on_flame", real_parent, alpha = real_parent.alpha) + +#define DEFAULT_SPIN (4 SECONDS) + +/* + * Clay Bricks + */ + +/obj/item/stack/sheet/mineral/clay + name = "clay brick" + desc = "A heavy clay brick." + singular_name = "clay brick" + icon = 'monkestation/code/modules/blueshift/icons/prim_fun.dmi' + icon_state = "sheet-clay" + inhand_icon_state = null + throw_speed = 3 + throw_range = 5 + merge_type = /obj/item/stack/sheet/mineral/clay + +GLOBAL_LIST_INIT(clay_recipes, list ( \ + new/datum/stack_recipe("clay range", /obj/machinery/primitive_stove, 10, time = 5 SECONDS,one_per_turf = TRUE, on_solid_ground = TRUE, category = CAT_MISC), \ + new/datum/stack_recipe("clay oven", /obj/machinery/oven/stone, 10, time = 5 SECONDS,one_per_turf = TRUE, on_solid_ground = TRUE, category = CAT_MISC) \ + )) + +/obj/item/stack/sheet/mineral/clay/get_main_recipes() + . = ..() + . += GLOB.clay_recipes + +/obj/structure/water_source/puddle/attackby(obj/item/O, mob/user, params) + if(istype(O, /obj/item/stack/ore/glass)) + var/obj/item/stack/ore/glass/glass_item = O + if(!glass_item.use(1)) + return + new /obj/item/stack/clay(get_turf(src)) + user.mind.adjust_experience(/datum/skill/production, 1) + return + return ..() + +/turf/open/water/attackby(obj/item/C, mob/user, params) + if(istype(C, /obj/item/stack/ore/glass)) + var/obj/item/stack/ore/glass/glass_item = C + if(!glass_item.use(1)) + return + new /obj/item/stack/clay(src) + user.mind.adjust_experience(/datum/skill/production, 1) + return + return ..() + +/obj/structure/sink/attackby(obj/item/O, mob/living/user, params) + if(istype(O, /obj/item/stack/ore/glass)) + if(dispensedreagent != /datum/reagent/water) + return + if(reagents.total_volume <= 0) + return + var/obj/item/stack/ore/glass/glass_item = O + if(!glass_item.use(1)) + return + new /obj/item/stack/clay(get_turf(src)) + user.mind.adjust_experience(/datum/skill/production, 1) + return + return ..() + +/obj/item/ceramic + icon = 'monkestation/code/modules/blueshift/icons/prim_fun.dmi' + var/forge_item + +/obj/item/ceramic/attackby(obj/item/attacking_item, mob/living/user, params) + if(istype(attacking_item, /obj/item/toy/crayon)) + var/obj/item/toy/crayon/crayon_item = attacking_item + if(!forge_item || !crayon_item.paint_color) + return + color = crayon_item.paint_color + to_chat(user, span_notice("You color [src] with [crayon_item]...")) + return + return ..() + +/obj/item/stack/clay + name = "clay" + desc = "A pile of clay that can be used to create ceramic artwork." + icon = 'monkestation/code/modules/blueshift/icons/prim_fun.dmi' + icon_state = "clay" + merge_type = /obj/item/stack/clay + singular_name = "glob of clay" + +/datum/export/ceramics + cost = CARGO_CRATE_VALUE * 2 + unit_name = "ceramic product" + export_types = list( + /obj/item/plate/ceramic, + /obj/item/plate/oven_tray/material/ceramic, + /obj/item/reagent_containers/cup/bowl/ceramic, + /obj/item/reagent_containers/cup/beaker/large/ceramic, + ) + +/datum/export/ceramics/sell_object(obj/O, datum/export_report/report, dry_run, apply_elastic = FALSE) //I really dont want them to feel gimped + . = ..() + +/datum/export/ceramics_unfinished + cost = CARGO_CRATE_VALUE * 0.5 + unit_name = "unfinished ceramic product" + export_types = list(/obj/item/ceramic/plate, + /obj/item/ceramic/bowl, + /obj/item/ceramic/tray, + /obj/item/ceramic/cup) + +/datum/export/ceramics_unfinished/sell_object(obj/O, datum/export_report/report, dry_run, apply_elastic = FALSE) //I really dont want them to feel gimped + . = ..() + +/obj/item/ceramic/plate + name = "ceramic plate" + desc = "A piece of clay that is flat, in the shape of a plate." + icon_state = "clay_plate" + forge_item = /obj/item/plate/ceramic + +/obj/item/plate/ceramic + name = "ceramic plate" + icon = 'monkestation/code/modules/blueshift/icons/prim_fun.dmi' + icon_state = "clay_plate" + +/obj/item/ceramic/tray + name = "ceramic tray" + desc = "A piece of clay that is flat, in the shape of a tray." + icon_state = "clay_tray" + forge_item = /obj/item/plate/oven_tray/material/ceramic + +/obj/item/plate/oven_tray/material/ceramic + name = "ceramic oven tray" + icon = 'monkestation/code/modules/blueshift/icons/prim_fun.dmi' + icon_state = "clay_tray" + +/obj/item/ceramic/bowl + name = "ceramic bowl" + desc = "A piece of clay with a raised lip, in the shape of a bowl." + icon_state = "clay_bowl" + forge_item = /obj/item/reagent_containers/cup/bowl/ceramic + +/obj/item/reagent_containers/cup/bowl/ceramic + name = "ceramic bowl" + icon = 'monkestation/code/modules/blueshift/icons/prim_fun.dmi' + icon_state = "clay_bowl" + custom_materials = null + +/obj/item/ceramic/cup + name = "ceramic cup" + desc = "A piece of clay with high walls, in the shape of a cup. It can hold 120 units." + icon_state = "clay_cup" + forge_item = /obj/item/reagent_containers/cup/beaker/large/ceramic + +/obj/item/reagent_containers/cup/beaker/large/ceramic + name = "ceramic cup" + desc = "A cup that is made from ceramic." + icon = 'monkestation/code/modules/blueshift/icons/prim_fun.dmi' + icon_state = "clay_cup" + custom_materials = null + +/obj/item/ceramic/brick + name = "ceramic brick" + desc = "A dense block of clay, ready to be fired into a brick!" + icon = 'monkestation/code/modules/blueshift/icons/prim_fun.dmi' + icon_state = "sheet-clay" + forge_item = /obj/item/stack/sheet/mineral/clay + +/obj/structure/throwing_wheel + name = "throwing wheel" + desc = "A machine that allows you to throw clay." + icon = 'monkestation/code/modules/blueshift/icons/prim_fun.dmi' + icon_state = "throw_wheel_empty" + density = TRUE + anchored = TRUE + ///if the structure has clay + var/has_clay = FALSE + //if the structure is in use or not + var/in_use = FALSE + ///the list of messages that are sent whilst "working" the clay + var/static/list/given_message = list( + "You slowly start spinning the throwing wheel...", + "You place your hands on the clay, slowly shaping it...", + "You start becoming satisfied with what you have made...", + "You stop the throwing wheel, admiring your new creation...", + ) + +/obj/structure/throwing_wheel/attackby(obj/item/attacking_item, mob/living/user, params) + if(istype(attacking_item, /obj/item/stack/clay)) + if(has_clay) + return + var/obj/item/stack/stack_item = attacking_item + if(!stack_item.use(1)) + return + has_clay = TRUE + icon_state = "throw_wheel_full" + return + return ..() + +/obj/structure/throwing_wheel/crowbar_act(mob/living/user, obj/item/tool) + tool.play_tool_sound(src) + new /obj/item/stack/sheet/iron/ten(get_turf(src)) + if(has_clay) + new /obj/item/stack/clay(get_turf(src)) + qdel(src) + +/obj/structure/throwing_wheel/wrench_act(mob/living/user, obj/item/tool) + tool.play_tool_sound(src) + anchored = !anchored + +/obj/structure/throwing_wheel/proc/use_clay(spawn_type, mob/user) + var/spinning_speed = user.mind.get_skill_modifier(/datum/skill/production, SKILL_SPEED_MODIFIER) * DEFAULT_SPIN + for(var/loop_try in 1 to length(given_message)) + if(!do_after(user, spinning_speed, target = src)) + in_use = FALSE + return + to_chat(user, span_notice(given_message[loop_try])) + new spawn_type(get_turf(src)) + user.mind.adjust_experience(/datum/skill/production, 50) + has_clay = FALSE + icon_state = "throw_wheel_empty" + +/obj/structure/throwing_wheel/attack_hand(mob/living/user, list/modifiers) + . = ..() + if(in_use) + return + use(user) + in_use = FALSE + +/** + * Prompts user for how they wish to use the throwing wheel + * + * To make sure in_use var always gets set back to FALSE no matter what happens, do the actual 'using' in its own proc and do the setting to FALSE in attack_hand + * + * Arguments: + * * user - the mob who is using the throwing wheel + */ +/obj/structure/throwing_wheel/proc/use(mob/living/user) + in_use = TRUE + var/spinning_speed = user.mind.get_skill_modifier(/datum/skill/production, SKILL_SPEED_MODIFIER) * DEFAULT_SPIN + if(!has_clay) + balloon_alert(user, "there is no clay!") + return + var/user_input = tgui_alert(user, "What would you like to do?", "Choice Selection", list("Create", "Remove")) + if(!user_input) + return + switch(user_input) + if("Create") + var/creation_choice = tgui_input_list(user, "What you like to create?", "Creation Choice", list("Cup", "Plate", "Bowl", "Tray", "Brick")) + if(!creation_choice) + return + switch(creation_choice) + if("Cup") + use_clay(/obj/item/ceramic/cup, user) + if("Plate") + use_clay(/obj/item/ceramic/plate, user) + if("Bowl") + use_clay(/obj/item/ceramic/bowl, user) + if("Tray") + use_clay(/obj/item/ceramic/tray, user) + if("Brick") + use_clay(/obj/item/ceramic/brick, user) + if("Remove") + if(!do_after(user, spinning_speed, target = src)) + return + var/atom/movable/new_clay = new /obj/item/stack/clay(get_turf(src)) + user.put_in_active_hand(new_clay) + has_clay = FALSE + icon_state = "throw_wheel_empty" + +#undef DEFAULT_SPIN + +/datum/skill/construction + name = "Construction" + title = "Builder" + desc = "To be a builder is to enjoy the start and construction of civilization." + modifiers = list( + SKILL_SPEED_MODIFIER = list(1, 0.95, 0.9, 0.85, 0.75, 0.6, 0.5), + SKILL_PROBS_MODIFIER = list(0, 5, 10, 20, 40, 80, 100) + ) + skill_item_path = /obj/item/clothing/neck/cloak/skill_reward/construction + +/obj/item/clothing/neck/cloak/skill_reward/construction + name = "legendary builder's cloak" + desc = "Those who wear this cloak have the knowledge and understanding to start the foundation of a civilization. \ + It is within folklore that there exists people who can create and destroy villages, towns, and cities within minutes." + icon = 'monkestation/code/modules/blueshift/icons/cloaks.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/neck.dmi' + icon_state = "buildercloak" + associated_skill_path = /datum/skill/construction + +#define DEFAULT_TIMED (4 SECONDS) +#define STEP_BLOW "blow" +#define STEP_SPIN "spin" +#define STEP_PADDLE "paddle" +#define STEP_SHEAR "shear" +#define STEP_JACKS "jacks" + +/obj/item/glassblowing + icon = 'monkestation/code/modules/blueshift/icons/prim_fun.dmi' + +/obj/item/glassblowing/glass_globe + name = "glass globe" + desc = "A glass bowl that is capable of carrying things." + icon_state = "glass_globe" + material_flags = MATERIAL_COLOR + custom_materials = list( + /datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, + ) + +/datum/export/glassblowing + cost = CARGO_CRATE_VALUE * 5 + unit_name = "glassblowing product" + export_types = list( + /obj/item/glassblowing/glass_lens, + /obj/item/glassblowing/glass_globe, + /obj/item/reagent_containers/cup/bowl/blowing_glass, + /obj/item/reagent_containers/cup/beaker/large/blowing_glass, + /obj/item/plate/blowing_glass + ) + +/datum/export/glassblowing/sell_object(obj/O, datum/export_report/report, dry_run, apply_elastic = FALSE) //I really dont want them to feel gimped + return ..() + +/obj/item/glassblowing/glass_lens + name = "glass lens" + desc = "A convex glass lens that would make an excellent magnifying glass if it were attached to a handle." + icon_state = "glass_lens" + +/obj/item/reagent_containers/cup/bowl/blowing_glass + name = "glass bowl" + desc = "A glass bowl that is capable of carrying things." + icon = 'monkestation/code/modules/blueshift/icons/prim_fun.dmi' + icon_state = "glass_bowl" + custom_materials = list(/datum/material/glass=SHEET_MATERIAL_AMOUNT) + material_flags = MATERIAL_EFFECTS | MATERIAL_COLOR + +/obj/item/reagent_containers/cup/beaker/large/blowing_glass + name = "glass cup" + desc = "A glass cup that is capable of carrying liquids." + icon = 'monkestation/code/modules/blueshift/icons/prim_fun.dmi' + icon_state = "glass_cup" + material_flags = MATERIAL_EFFECTS | MATERIAL_COLOR + +/obj/item/plate/blowing_glass + name = "glass plate" + desc = "A glass plate that is capable of carrying things." + icon = 'monkestation/code/modules/blueshift/icons/prim_fun.dmi' + icon_state = "glass_plate" + custom_materials = list(/datum/material/glass=SHEET_MATERIAL_AMOUNT) + material_flags = MATERIAL_EFFECTS | MATERIAL_COLOR + +/obj/item/glassblowing/molten_glass + name = "molten glass" + desc = "A glob of molten glass, ready to be shaped into art." + icon_state = "molten_glass" + ///the cooldown if its still molten / requires heating up + COOLDOWN_DECLARE(remaining_heat) + ///the typepath of the item that will be produced when the required actions are met + var/chosen_item + ///the list of steps remaining + var/list/steps_remaining + ///the amount of time this glass will stay heated, updated each time it gets put in the forge based on the user's skill + var/total_time + ///whether this glass's chosen item has completed all its steps. So we don't have to keep checking this a million times once it's done. + var/is_finished = FALSE + +/obj/item/glassblowing/molten_glass/examine(mob/user) + . = ..() + . += get_examine_message(src) + +/obj/item/glassblowing/molten_glass/pickup(mob/living/user) + if(!istype(user)) + return ..() + + . = ..() + + try_burn_user(user) + +/** + * Tries to burn the user if the glass is still molten hot. + * + * Arguments: + * * mob/living/user - user to burn + */ +/obj/item/glassblowing/molten_glass/proc/try_burn_user(mob/living/user) + if(!COOLDOWN_FINISHED(src, remaining_heat)) + to_chat(user, span_warning("You burn your hands trying to pick up [src]!")) + user.emote("scream") + user.dropItemToGround(src) + var/obj/item/bodypart/affecting = user.get_active_hand() + user.investigate_log("was burned their hand on [src] for [15] at [AREACOORD(user)]", INVESTIGATE_CRAFTING) + return affecting?.receive_damage(0, 15, wound_bonus = CANT_WOUND) + +/obj/item/glassblowing/blowing_rod + name = "blowing rod" + desc = "A tool that is used to hold the molten glass as well as help shape it." + icon_state = "blow_pipe_empty" + tool_behaviour = TOOL_BLOWROD + /// Whether the rod is in use currently; will try to prevent many other actions on it + var/in_use = FALSE + /// A ref to the glass item being blown + var/datum/weakref/glass_ref + +/obj/item/glassblowing/blowing_rod/examine(mob/user) + . = ..() + var/obj/item/glassblowing/molten_glass/glass = glass_ref.resolve() + if(!glass) + return + . += get_examine_message(glass) + + +/** + * Create the examine message and return it. + * + * This will include all the remaining steps and whether the glass has cooled down or not. + * + * Arguments: + * * obj/item/glassblowing/molten_glass/glass - the glass object being examined + * + * Returns the examine message. + */ +/obj/item/glassblowing/proc/get_examine_message(obj/item/glassblowing/molten_glass/glass) + if(COOLDOWN_FINISHED(glass, remaining_heat)) + . += span_warning("The glass has cooled down and will require reheating to modify! ") + if(glass.steps_remaining[STEP_BLOW]) + . += "The glass requires [glass.steps_remaining[STEP_BLOW]] more blowing actions! " + if(glass.steps_remaining[STEP_SPIN]) + . += "The glass requires [glass.steps_remaining[STEP_SPIN]] more spinning actions! " + if(glass.steps_remaining[STEP_PADDLE]) + . += "The glass requires [glass.steps_remaining[STEP_PADDLE]] more paddling actions! " + if(glass.steps_remaining[STEP_SHEAR]) + . += "The glass requires [glass.steps_remaining[STEP_SHEAR]] more shearing actions! " + if(glass.steps_remaining[STEP_JACKS]) + . += "The glass requires [glass.steps_remaining[STEP_JACKS]] more jacking actions!" + +/obj/item/glassblowing/blowing_rod/afterattack(atom/target, mob/user, proximity_flag, click_parameters) + if(!proximity_flag) + return ..() + if(istype(target, /obj/item/glassblowing/molten_glass)) + var/obj/item/glassblowing/molten_glass/attacking_glass = target + var/obj/item/glassblowing/molten_glass/glass = glass_ref?.resolve() + if(glass) + to_chat(user, span_warning("[src] already has some glass on it!")) + return + if(!user.transferItemToLoc(attacking_glass, src)) + return + glass_ref = WEAKREF(attacking_glass) + to_chat(user, span_notice("[src] picks up [target].")) + icon_state = "blow_pipe_full" + return + return ..() + +/obj/item/glassblowing/blowing_rod/attackby(obj/item/attacking_item, mob/living/user, params) + var/actioning_speed = user.mind.get_skill_modifier(/datum/skill/production, SKILL_SPEED_MODIFIER) * DEFAULT_TIMED + var/obj/item/glassblowing/molten_glass/glass = glass_ref?.resolve() + + if(istype(attacking_item, /obj/item/glassblowing/molten_glass)) + if(glass) + to_chat(user, span_warning("[src] already has some glass on it still!")) + return + if(!user.transferItemToLoc(attacking_item, src)) + return + glass_ref = WEAKREF(attacking_item) + to_chat(user, span_notice("[src] picks up [attacking_item].")) + icon_state = "blow_pipe_full" + return + + if(istype(attacking_item, /obj/item/glassblowing/paddle)) + do_glass_step(STEP_PADDLE, user, actioning_speed, glass) + return + + if(istype(attacking_item, /obj/item/glassblowing/shears)) + do_glass_step(STEP_SHEAR, user, actioning_speed, glass) + return + + if(istype(attacking_item, /obj/item/glassblowing/jacks)) + do_glass_step(STEP_JACKS, user, actioning_speed, glass) + return + + return ..() + +/obj/item/glassblowing/blowing_rod/attack_self(mob/user, modifiers) + return ..() + +/obj/item/glassblowing/blowing_rod/ui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "GlassBlowing", name) + ui.open() + +/obj/item/glassblowing/blowing_rod/ui_data() + var/obj/item/glassblowing/molten_glass/glass = glass_ref?.resolve() + + var/data = list() + data["inUse"] = in_use + + if(glass) + data["glass"] = list( + timeLeft = COOLDOWN_TIMELEFT(glass, remaining_heat), + totalTime = glass.total_time, + chosenItem = null, + stepsRemaining = glass.steps_remaining, + isFinished = glass.is_finished + ) + + var/obj/item_path = glass.chosen_item + data["glass"]["chosenItem"] = item_path ? list(name = initial(item_path.name), type = item_path) : null + else + data["glass"] = null + + return data + +/obj/item/glassblowing/blowing_rod/ui_act(action, params) + . = ..() + if(.) + return + if(!Adjacent(usr)) + return + add_fingerprint(usr) + + var/obj/item/glassblowing/molten_glass/glass = glass_ref?.resolve() + var/actioning_speed = usr.mind.get_skill_modifier(/datum/skill/production, SKILL_SPEED_MODIFIER) * DEFAULT_TIMED + + if(!glass) + return + + if(action == "Remove") + if(!glass.chosen_item) + remove_glass(usr, glass) + in_use = FALSE + return + + if(glass.is_finished) + create_item(usr, glass) + in_use = FALSE + else + remove_glass(usr, glass) + return + + if(!glass.chosen_item) + switch(action) + if("Plate") + glass.chosen_item = /obj/item/plate/blowing_glass + glass.steps_remaining = list(blow=3,spin=3,paddle=3,shear=0,jacks=0) //blowing, spinning, paddling + if("Bowl") + glass.chosen_item = /obj/item/reagent_containers/cup/bowl/blowing_glass + glass.steps_remaining = list(blow=2,spin=2,paddle=2,shear=0,jacks=3) //blowing, spinning, paddling + if("Globe") + glass.chosen_item = /obj/item/glassblowing/glass_globe + glass.steps_remaining = list(blow=6,spin=3,paddle=0,shear=0,jacks=0) //blowing, spinning + if("Cup") + glass.chosen_item = /obj/item/reagent_containers/cup/beaker/large/blowing_glass + glass.steps_remaining = list(blow=3,spin=3,paddle=3,shear=0,jacks=0) //blowing, spinning, paddling + if("Lens") + glass.chosen_item = /obj/item/glassblowing/glass_lens + glass.steps_remaining = list(blow=0,spin=0,paddle=3,shear=3,jacks=3) //paddling, shearing, jacking + if("Bottle") + glass.chosen_item = /obj/item/reagent_containers/cup/glass/bottle/small + glass.steps_remaining = list(blow=3,spin=2,paddle=3,shear=0,jacks=0) //blowing, spinning, paddling + else + switch(action) + if("Blow") + do_glass_step(STEP_BLOW, usr, actioning_speed, glass) + if("Spin") + do_glass_step(STEP_SPIN, usr, actioning_speed, glass) + if("Paddle") + do_glass_step(STEP_PADDLE, usr, actioning_speed, glass) + if("Shear") + do_glass_step(STEP_SHEAR, usr, actioning_speed, glass) + if("Jacks") + do_glass_step(STEP_JACKS, usr, actioning_speed, glass) + if("Cancel") + glass.chosen_item = null + glass.steps_remaining = null + glass.is_finished = FALSE + to_chat(usr, span_notice("You start over with the [src].")) + + +/** + * Removes the glass object from the rod. + * + * Try to put the glass into the user's hands, or on the floor if that fails. + * + * Arguments: + * * mob/user - the mob doing the removing + * * obj/item/glassblowing/molten_glass/glass - the glass object + * + * Returns TRUE or FALSE. + */ +/obj/item/glassblowing/blowing_rod/proc/remove_glass(mob/user, obj/item/glassblowing/molten_glass/glass) + if(!glass) + return + + in_use = FALSE + user.put_in_hands(glass) + glass.try_burn_user(user) + glass_ref = null + icon_state = "blow_pipe_empty" + +/** + * Creates the finished product and delete the glass object used to make it. + * + * Try to put the finished product into the user's hands + * + * Arguments: + * * mob/user - the user doing the creating + * * obj/item/glassblowing/molten_glass/glass - the glass object + * + * Returns TRUE or FALSE. + */ +/obj/item/glassblowing/blowing_rod/proc/create_item(mob/user, obj/item/glassblowing/molten_glass/glass) + if(!glass) + return + if(in_use) + return + + in_use = TRUE + user.put_in_hands(new glass.chosen_item) + user.mind.adjust_experience(/datum/skill/production, 30) + glass_ref = null + qdel(glass) + icon_state = "blow_pipe_empty" + return + +/** + * Display fail message and reset in_use. + * + * Craft is finished when all steps in steps_remaining are 0. + * + * Arguments: + * * mob/user - mob to display to + * * message - to display + */ +/obj/item/glassblowing/blowing_rod/proc/fail_message(message, mob/user) + to_chat(user, span_warning(message)) + in_use = FALSE + +/** + * Try to do a glassblowing action. + * + * Checks for a table and valid tool if applicable, and updates the steps_remaining on the glass object. + * + * Arguments: + * * step_id - the step id e.g. STEP_BLOW + * * actioning_speed - the speed based on the user's production skill + * * obj/item/glassblowing/molten_glass/glass - the glass object + */ +/obj/item/glassblowing/blowing_rod/proc/do_glass_step(step_id, mob/user, actioning_speed, obj/item/glassblowing/molten_glass/glass) + if(!glass) + return + + if(COOLDOWN_FINISHED(glass, remaining_heat)) + balloon_alert(user, "glass too cool!") + return FALSE + + if(in_use) + return + + in_use = TRUE + + if(!check_valid_table(user)) + fail_message("You must be near a non-flammable table!", user) + return + + var/atom/movable/tool_to_use = check_valid_tool(user, step_id) + if(!tool_to_use) + in_use = FALSE + return FALSE + + to_chat(user, span_notice("You begin to [step_id] [src].")) + if(!do_after(user, actioning_speed, target = src)) + fail_message("You interrupt an action!", user) + REMOVE_TRAIT(tool_to_use, TRAIT_CURRENTLY_GLASSBLOWING, TRAIT_GLASSBLOWING) + return FALSE + + if(glass.steps_remaining) + // We do not want to have negative values here + if(glass.steps_remaining[step_id] > 0) + glass.steps_remaining[step_id]-- + if(check_finished(glass)) + glass.is_finished = TRUE + + REMOVE_TRAIT(tool_to_use, TRAIT_CURRENTLY_GLASSBLOWING, TRAIT_GLASSBLOWING) + in_use = FALSE + + to_chat(user, span_notice("You finish trying to [step_id] [src].")) + user.mind.adjust_experience(/datum/skill/production, 10) + + +/** + * Check if there is a non-flammable table nearby to do the crafting on. + * + * If the user is a master in the production skill, they can skip tables. + * + * Arguments: + * * mob/living/user - the mob doing the action + * + * Returns TRUE or FALSE. + */ +/obj/item/glassblowing/blowing_rod/proc/check_valid_table(mob/living/user) + var/skill_level = user.mind.get_skill_level(/datum/skill/production) + if(skill_level >= SKILL_LEVEL_MASTER) // + return TRUE + for(var/obj/structure/table/check_table in range(1, get_turf(src))) + if(!(check_table.resistance_flags & FLAMMABLE)) + return TRUE + return FALSE + +/** + * Check if user is carrying the proper tool for the step. + * + * Arguments: + * * mob/living/carbon/human/user - the mob doing the action + * * step_id - the step id of the action being done + * + * We check to see if the user is using the right tool and if they are currently glassblowing with it. + * If the correct tool is being used we return the tool. Otherwise we return `FALSE` + */ +/obj/item/glassblowing/blowing_rod/proc/check_valid_tool(mob/living/carbon/human/user, step_id) + if(!istype(user)) + return FALSE + + if(step_id == STEP_BLOW || step_id == STEP_SPIN) + if(HAS_TRAIT(user, TRAIT_CURRENTLY_GLASSBLOWING)) + balloon_alert(user, "already glassblowing!") + return FALSE + + ADD_TRAIT(user, TRAIT_CURRENTLY_GLASSBLOWING, TRAIT_GLASSBLOWING) + return user + + var/obj/item/glassblowing/used_tool + switch(step_id) + if(STEP_PADDLE) + used_tool = user.is_holding_item_of_type(/obj/item/glassblowing/paddle) + if(STEP_SHEAR) + used_tool = user.is_holding_item_of_type(/obj/item/glassblowing/shears) + if(STEP_JACKS) + used_tool = user.is_holding_item_of_type(/obj/item/glassblowing/jacks) + + if(!used_tool) + balloon_alert(user, "need the right tool!") + return FALSE + + if(HAS_TRAIT(used_tool, TRAIT_CURRENTLY_GLASSBLOWING)) + balloon_alert(user, "already in use!") + return FALSE + + ADD_TRAIT(used_tool, TRAIT_CURRENTLY_GLASSBLOWING, TRAIT_GLASSBLOWING) + return used_tool + +/** + * Checks if the glass is ready to craft into its chosen item. + * + * Craft is finished when all steps in steps_remaining are 0. + * + * Arguments: + * * obj/item/glassblowing/molten_glass/glass - the glass object + * + * Returns TRUE or FALSE. + */ +/obj/item/glassblowing/blowing_rod/proc/check_finished(obj/item/glassblowing/molten_glass/glass) + for(var/step_id in glass.steps_remaining) + if(glass.steps_remaining[step_id] != 0) + return FALSE + return TRUE + +/datum/crafting_recipe/glassblowing_recipe + reqs = list(/obj/item/stack/sheet/iron = 5) + category = CAT_MISC + +/datum/crafting_recipe/glassblowing_recipe/glass_blowing_rod + name = "Glass-blowing Blowing Rod" + result = /obj/item/glassblowing/blowing_rod + +/obj/item/glassblowing/jacks + name = "jacks" + desc = "A tool that helps shape glass during the art process." + icon_state = "jacks" + +/datum/crafting_recipe/glassblowing_recipe/glass_jack + name = "Glass-blowing Jacks" + result = /obj/item/glassblowing/jacks + +/obj/item/glassblowing/paddle + name = "paddle" + desc = "A tool that helps shape glass during the art process." + icon_state = "paddle" + +/datum/crafting_recipe/glassblowing_recipe/glass_paddle + name = "Glass-blowing Paddle" + result = /obj/item/glassblowing/paddle + +/obj/item/glassblowing/shears + name = "shears" + desc = "A tool that helps shape glass during the art process." + icon_state = "shears" + +/datum/crafting_recipe/glassblowing_recipe/glass_shears + name = "Glass-blowing Shears" + result = /obj/item/glassblowing/shears + +/obj/item/glassblowing/metal_cup + name = "metal cup" + desc = "A tool that helps shape glass during the art process." + icon_state = "metal_cup_empty" + var/has_sand = FALSE + +/datum/crafting_recipe/glassblowing_recipe/glass_metal_cup + name = "Glass-blowing Metal Cup" + result = /obj/item/glassblowing/metal_cup + +/obj/item/glassblowing/metal_cup/attackby(obj/item/I, mob/living/user, params) + if(istype(I, /obj/item/stack/ore/glass)) + var/obj/item/stack/ore/glass/glass_obj = I + if(!glass_obj.use(1)) + return + has_sand = TRUE + icon_state = "metal_cup_full" + return ..() + +#undef DEFAULT_TIMED +#undef STEP_BLOW +#undef STEP_SPIN +#undef STEP_PADDLE +#undef STEP_SHEAR +#undef STEP_JACKS + +/obj/item/shard/attackby(obj/item/item, mob/user, params) + //xenoarch hammer, forging hammer, etc. + if(item.tool_behaviour == TOOL_HAMMER) + var/added_color + switch(src.type) + if(/obj/item/shard) + added_color = "#88cdf1" + + if(/obj/item/shard/plasma) + added_color = "#ff80f4" + + if(/obj/item/shard/plastitanium) + added_color = "#5d3369" + + if(/obj/item/shard/titanium) + added_color = "#cfbee0" + + var/obj/colored_item = new /obj/item/stack/ore/glass/zero_cost(get_turf(src)) + colored_item.add_atom_colour(added_color, FIXED_COLOUR_PRIORITY) + new /obj/effect/decal/cleanable/glass(get_turf(src)) + user.balloon_alert(user, "[src] shatters!") + playsound(src, SFX_SHATTER, 30, TRUE) + qdel(src) + return TRUE + + return ..() + +/obj/item/stack/ore/glass/zero_cost + points = 0 + merge_type = /obj/item/stack/ore/glass/zero_cost + +/obj/item/stack/ore/examine(mob/user) + . = ..() + if(points == 0) + . += span_warning("
[src] is worthless and will not reward any mining points!") + +/datum/skill/production + name = "Production" + title = "Producer" + desc = "The artist who finds themselves using multiple mediums in which to express their creativity." + modifiers = list( + SKILL_SPEED_MODIFIER = list(1, 0.95, 0.9, 0.85, 0.75, 0.6, 0.5), + SKILL_PROBS_MODIFIER = list(10, 15, 20, 25, 30, 35, 40) + ) + skill_item_path = /obj/item/clothing/neck/cloak/skill_reward/production + +/obj/item/clothing/neck/cloak/skill_reward/production + name = "legendary producer's cloak" + desc = "Worn by the most skilled producers, this legendary cloak is only attainable by knowing how to create the best products. \ + This status symbol represents a being who has crafted some of the finest glass and ceramic works." + icon = 'monkestation/code/modules/blueshift/icons/cloaks.dmi' + worn_icon = 'monkestation/code/modules/blueshift/icons/neck.dmi' + icon_state = "productioncloak" + associated_skill_path = /datum/skill/production + + + +/// The baseline time to take for doing actions with the forge, like heating glass, setting ceramics, etc. +#define BASELINE_ACTION_TIME (4 SECONDS) + +/// The basline for how long an item such as molten glass will be kept workable after heating +#define BASELINE_HEATING_DURATION (25 SECONDS) + +/// The amount the forge's temperature will change per process +#define FORGE_DEFAULT_TEMPERATURE_CHANGE 5 +/// The maximum temperature the forge can reach +#define MAX_FORGE_TEMP 100 +/// The minimum temperature for using the forge +#define MIN_FORGE_TEMP 50 +/// The duration that objects heated in the forge are heated for +#define FORGE_HEATING_DURATION (1 MINUTES) + +/// Defines for different levels of the forge, ranging from no level (you play like a noob) to legendary +#define FORGE_LEVEL_YOU_PLAY_LIKE_A_NOOB 1 +#define FORGE_LEVEL_NOVICE 2 +#define FORGE_LEVEL_APPRENTICE 3 +#define FORGE_LEVEL_JOURNEYMAN 4 +#define FORGE_LEVEL_EXPERT 5 +#define FORGE_LEVEL_MASTER 6 +#define FORGE_LEVEL_LEGENDARY 7 + +/// The maximum amount of temperature loss decrease that upgrades can give the forge +#define MAX_TEMPERATURE_LOSS_DECREASE 5 + +/// The chance per piece of wood added that charcoal will form later +#define CHARCOAL_CHANCE 45 + +/// Defines for the different levels of smoke coming out of the forge, (good, neutral, bad) are all used for baking, (not cooking) is used for when there is no tray in the forge +#define SMOKE_STATE_NONE 0 +#define SMOKE_STATE_GOOD 1 +#define SMOKE_STATE_NEUTRAL 2 +#define SMOKE_STATE_BAD 3 +#define SMOKE_STATE_NOT_COOKING 4 + +/obj/structure/reagent_forge + name = "forge" + desc = "A structure built out of bricks, for heating up metal, or glass, or ceramic, or food, or anything really." + icon = 'monkestation/code/modules/blueshift/icons/obj/forge_structures.dmi' + icon_state = "forge_inactive" + + anchored = TRUE + density = TRUE + + /// What the current internal temperature of the forge is + var/forge_temperature = 0 + /// What temperature the forge is moving towards + var/target_temperature = 0 + /// What the minimum target temperature is, used for upgrades + var/minimum_target_temperature = 0 + /// What is the current reduction for temperature decrease + var/temperature_loss_reduction = 0 + /// How many seconds of weak fuel (wood) does the forge have left + var/forge_fuel_weak = 0 + /// How many seconds of strong fuel (coal) does the forge have left + var/forge_fuel_strong = 0 + /// Cooldown time for processing on the forge + COOLDOWN_DECLARE(forging_cooldown) + /// Is the forge in use or not? If true, prevents most interactions with the forge + var/in_use = FALSE + /// The current 'level' of the forge, how upgraded is it from zero to three + var/forge_level = FORGE_LEVEL_YOU_PLAY_LIKE_A_NOOB + /// What smoke particles should be coming out of the forge + var/smoke_state = SMOKE_STATE_NONE + /// Tracks any oven tray placed inside of the forge + var/obj/item/plate/oven_tray/used_tray + /// List of possible choices for the selection radial + var/list/radial_choice_list = list() + +/obj/structure/reagent_forge/examine(mob/user) + . = ..() + + if(used_tray) + . += span_notice("It has [used_tray] in it, which can be removed with an empty hand.") + else + . += span_notice("You can place an oven tray in this to bake any items on it.") + + if(forge_level < FORGE_LEVEL_LEGENDARY) + . += span_notice("Using an empty hand on [src] will upgrade it, if your forging skill level is above the current upgrade's level.") + + switch(forge_level) + if(FORGE_LEVEL_YOU_PLAY_LIKE_A_NOOB) + . += span_notice("This forge has not been upgraded yet.") + + if(FORGE_LEVEL_NOVICE) + . += span_notice("This forge has been upgraded by a novice smith.") + + if(FORGE_LEVEL_APPRENTICE) + . += span_notice("This forge has been upgraded by an apprentice smith.") + + if(FORGE_LEVEL_JOURNEYMAN) + . += span_notice("This forge has been upgraded by a journeyman smith.") + + if(FORGE_LEVEL_EXPERT) + . += span_notice("This forge has been upgraded by an expert smith.") + + if(FORGE_LEVEL_MASTER) + . += span_notice("This forge has been upgraded by a master smith.") + + if(FORGE_LEVEL_LEGENDARY) + . += span_hierophant("This forge has been upgraded by a legendary smith.") // Legendary skills give you the greatest gift of all, cool text + + switch(temperature_loss_reduction) + if(0) + . += span_notice("[src] will lose heat at a normal rate.") + if(1) + . += span_notice("[src] will lose heat slightly slower than usual.") + if(2) + . += span_notice("[src] will lose heat a bit slower than usual.") + if(3) + . += span_notice("[src] will lose heat much slower than usual.") + if(4) + . += span_notice("[src] will lose heat signficantly slower than usual.") + if(5) + . += span_notice("[src] will lose heat at a practically negligible rate.") + + . += span_notice("
[src] is currently [forge_temperature] degrees hot, going towards [target_temperature] degrees.
") + return . + +/obj/structure/reagent_forge/Initialize(mapload) + . = ..() + START_PROCESSING(SSobj, src) + update_appearance() + upgrade_forge(forced = TRUE) + +/obj/structure/reagent_forge/Destroy() + STOP_PROCESSING(SSobj, src) + QDEL_NULL(particles) + if(used_tray) + QDEL_NULL(used_tray) + . = ..() + +/obj/structure/reagent_forge/update_appearance(updates) + . = ..() + cut_overlays() + + if(used_tray) // If we have a tray inside, check if the forge is on or not, then give the corresponding tray overlay + var/image/tray_overlay = image(icon = icon, icon_state = "forge_tray_[check_fuel(just_checking = TRUE) ? "active" : "inactive"]") + add_overlay(tray_overlay) + +/// Checks if the forge has fuel, if so what type. If it has either type of fuel, returns TRUE, otherwise returns FALSE. just_checking will check if there is fuel without taking actions +/obj/structure/reagent_forge/proc/check_fuel(just_checking = FALSE) + if(forge_fuel_strong) // Check for strong fuel (coal) first, as it has more power over weaker fuels + if(just_checking) + return TRUE + + forge_fuel_strong -= 5 SECONDS + target_temperature = 100 + return TRUE + + if(forge_fuel_weak) // If there's no strong fuel, maybe we have weak fuel (wood) + if(just_checking) + return TRUE + + forge_fuel_weak -= 5 SECONDS + target_temperature = 50 + return TRUE + + if(just_checking) + return FALSE + + target_temperature = minimum_target_temperature // If the forge has no fuel, then we should lowly return to the minimum lowest temp we can do + return FALSE + + +/// Creates both a fail message balloon alert, and sets in_use to false +/obj/structure/reagent_forge/proc/fail_message(mob/living/user, message) + balloon_alert(user, message) + in_use = FALSE + +/// Adjust the temperature to head towards the target temperature, changing icon and creating light if the temperature is rising +/obj/structure/reagent_forge/proc/check_temp() + if(forge_temperature > target_temperature) // Being above the target temperature will cause the forge to cool down + forge_temperature -= (FORGE_DEFAULT_TEMPERATURE_CHANGE - temperature_loss_reduction) + return + + else if((forge_temperature < target_temperature) && (forge_fuel_weak || forge_fuel_strong)) // Being below the target temp, and having fuel, will cause the temp to rise + forge_temperature += FORGE_DEFAULT_TEMPERATURE_CHANGE + return + +/// If the forge is in use, checks if there is an oven tray, then if there are any mobs actually in use range. If not sets the forge to not be in use. +/obj/structure/reagent_forge/proc/check_in_use() + if(!in_use) + return + + if(used_tray) // We check if there's a tray because trays inside of the forge count as it being in use, even if nobody is around + return + + for(var/mob/living/living_mob in range(1,src)) + if(!living_mob) + in_use = FALSE + +/// Spawns a piece of coal at the forge and renames it to charcoal +/obj/structure/reagent_forge/proc/spawn_coal() + var/obj/item/stack/sheet/mineral/coal/spawn_coal = new(get_turf(src)) + spawn_coal.name = "charcoal" + +/obj/structure/reagent_forge/process(seconds_per_tick) + if(!COOLDOWN_FINISHED(src, forging_cooldown)) + return + + COOLDOWN_START(src, forging_cooldown, 5 SECONDS) + check_fuel() + check_temp() + check_in_use() // This is here to ensure the forge doesn't remain in_use if it really isn't + + + + if(!used_tray && check_fuel(just_checking = TRUE)) + set_smoke_state(SMOKE_STATE_NOT_COOKING) // If there is no tray but we have fuel, use the not cooking smoke state + return + + if(!check_fuel(just_checking = TRUE)) // If there's no fuel, remove it all + set_smoke_state(SMOKE_STATE_NONE) + return + + handle_baking_things(seconds_per_tick) + +/// Sends signals to bake and items on the used tray, setting the smoke state of the forge according to the most cooked item in it +/obj/structure/reagent_forge/proc/handle_baking_things(seconds_per_tick) + if(forge_temperature < MIN_FORGE_TEMP) // If we are below minimum forge temp, don't continue on to cooking + return + + /// The worst off item being baked in our forge right now, to ensure people know when gordon ramsay is gonna be upset at them + var/worst_cooked_food_state = 0 + for(var/obj/item/baked_item as anything in used_tray.contents) + + var/signal_result = SEND_SIGNAL(baked_item, COMSIG_ITEM_OVEN_PROCESS, src, seconds_per_tick) + + if(signal_result & COMPONENT_HANDLED_BAKING) + if(signal_result & COMPONENT_BAKING_GOOD_RESULT && worst_cooked_food_state < SMOKE_STATE_GOOD) + worst_cooked_food_state = SMOKE_STATE_GOOD + else if(signal_result & COMPONENT_BAKING_BAD_RESULT && worst_cooked_food_state < SMOKE_STATE_NEUTRAL) + worst_cooked_food_state = SMOKE_STATE_NEUTRAL + continue + + worst_cooked_food_state = SMOKE_STATE_BAD + baked_item.fire_act(1000) // Overcooked food really does burn, hot hot hot! + + if(SPT_PROB(10, seconds_per_tick)) + visible_message(span_danger("You smell a burnt smell coming from [src]!")) // Give indication that something is burning in the oven + set_smoke_state(worst_cooked_food_state) + +/// Sets the type of particles that the forge should be generating +/obj/structure/reagent_forge/proc/set_smoke_state(new_state) + if(new_state == smoke_state) + return + + smoke_state = new_state + + QDEL_NULL(particles) + + switch(smoke_state) + if(SMOKE_STATE_NONE) + icon_state = "forge_inactive" + set_light(0, 0) // If we aren't heating up and thus not on fire, turn the fire light off + return + + if(SMOKE_STATE_BAD) + particles = new /particles/smoke() + particles.position = list(6, 4, 0) + + if(SMOKE_STATE_NEUTRAL) + particles = new /particles/smoke/steam() + particles.position = list(6, 4, 0) + + if(SMOKE_STATE_GOOD) + particles = new /particles/smoke/steam/mild() + particles.position = list(6, 4, 0) + + if(SMOKE_STATE_NOT_COOKING) + particles = new /particles/smoke/mild() + particles.position = list(6, 4, 0) + + icon_state = "forge_active" + set_light(3, 1, LIGHT_COLOR_FIRE) + +/obj/structure/reagent_forge/attack_hand(mob/living/user, list/modifiers) + . = ..() + if(used_tray) + remove_tray_from_forge(user) + return + + upgrade_forge(user) + +/obj/structure/reagent_forge/attack_robot(mob/living/user) + . = ..() + upgrade_forge(user) + +/obj/structure/reagent_forge/proc/upgrade_forge(mob/living/user, forced = FALSE) + var/level_to_upgrade_to + + if(forced || !user) // This is to make sure the ready subtype of forge still works + level_to_upgrade_to = forge_level + else + level_to_upgrade_to = user.mind.get_skill_level(/datum/skill/smithing) + + if((forge_level == level_to_upgrade_to) && !forced) + to_chat(user, span_notice("[src] was already upgraded by your level of expertise!")) + return + + switch(level_to_upgrade_to) // Remember to carry things over from past levels in case someone skips levels in upgrading + if(SKILL_LEVEL_NONE) + if(!forced) + to_chat(user, span_notice("You'll need some forging skills to really understand how to upgrade [src].")) + return + + if(SKILL_LEVEL_NOVICE) + if(!forced) + to_chat(user, span_notice("With some experience, you've come to realize there are some easily fixable spots with poor insulation...")) + temperature_loss_reduction = 1 + forge_level = FORGE_LEVEL_NOVICE + + if(SKILL_LEVEL_APPRENTICE) + if(!forced) + to_chat(user, span_notice("Further insulation and protection of the thinner areas means [src] will lose heat just that little bit slower.")) + temperature_loss_reduction = 2 + forge_level = FORGE_LEVEL_APPRENTICE + + if(SKILL_LEVEL_JOURNEYMAN) + if(!forced) + to_chat(user, span_notice("Some careful placement and stoking of the flame will allow you to keep at least the embers burning...")) + minimum_target_temperature = 25 // Will allow quicker reheating from having no fuel + temperature_loss_reduction = 3 + forge_level = FORGE_LEVEL_JOURNEYMAN + + if(SKILL_LEVEL_EXPERT) + if(!forced) + to_chat(user, span_notice("[src] has become nearly perfect, able to hold heat for long enough that even a piece of wood can outmatch the longevity of lesser forges.")) + temperature_loss_reduction = 4 + minimum_target_temperature = 25 + forge_level = FORGE_LEVEL_EXPERT + + if(SKILL_LEVEL_MASTER) + if(!forced) + to_chat(user, span_notice("The perfect forge for a perfect metalsmith, with your knowledge it should bleed heat so slowly, that not even you will live to see [src] cool.")) + temperature_loss_reduction = MAX_TEMPERATURE_LOSS_DECREASE + minimum_target_temperature = 25 + forge_level = FORGE_LEVEL_MASTER + + playsound(src, 'sound/weapons/parry.ogg', 50, TRUE) // Play a feedback sound to really let players know we just did an upgrade + +//this will allow click dragging certain items +/obj/structure/reagent_forge/MouseDrop_T(obj/attacking_item, mob/living/user) + . = ..() + if(!isliving(user)) + return + + if(!isobj(attacking_item)) + return + + if(istype(attacking_item, /obj/item/stack/sheet/mineral/wood)) // Wood is a weak fuel, and will only get the forge up to 50 temperature + refuel(attacking_item, user) + return + + if(istype(attacking_item, /obj/item/stack/sheet/mineral/coal)) // Coal is a strong fuel that doesn't need bellows to heat up properly + refuel(attacking_item, user, TRUE) + return + + if(istype(attacking_item, /obj/item/stack/ore)) + smelt_ore(attacking_item, user) + return + +/obj/structure/reagent_forge/attackby(obj/item/attacking_item, mob/living/user, params) + if(!used_tray && istype(attacking_item, /obj/item/plate/oven_tray)) + add_tray_to_forge(user, attacking_item) + return TRUE + + if(in_use) // If the forge is currently in use by someone (or there is a tray in it) then we cannot use it + if(used_tray) + balloon_alert(user, "remove [used_tray] first") + balloon_alert(user, "forge busy") + return TRUE + + if(istype(attacking_item, /obj/item/stack/sheet/mineral/wood)) // Wood is a weak fuel, and will only get the forge up to 50 temperature + refuel(attacking_item, user) + return TRUE + + if(istype(attacking_item, /obj/item/stack/sheet/mineral/coal)) // Coal is a strong fuel that doesn't need bellows to heat up properly + refuel(attacking_item, user, TRUE) + return TRUE + + if(istype(attacking_item, /obj/item/stack/ore)) + smelt_ore(attacking_item, user) + return TRUE + + if(istype(attacking_item, /obj/item/ceramic)) + handle_ceramics(attacking_item, user) + return TRUE + + if(istype(attacking_item, /obj/item/stack/sheet/glass)) + handle_glass_sheet_melting(attacking_item, user) + return TRUE + + if(istype(attacking_item, /obj/item/glassblowing/metal_cup)) + handle_metal_cup_melting(attacking_item, user) + return TRUE + + return ..() + +/// Take the given tray and place it inside the forge, updating everything relevant to that +/obj/structure/reagent_forge/proc/add_tray_to_forge(mob/living/user, obj/item/plate/oven_tray/tray) + if(used_tray) // This shouldn't be able to happen but just to be safe + balloon_alert_to_viewers("already has tray") + return + + if(!user.transferItemToLoc(tray, src, silent = FALSE)) + return + + // need to send the right signal for each item in the tray + for(var/obj/item/baked_item in tray.contents) + SEND_SIGNAL(baked_item, COMSIG_ITEM_OVEN_PLACED_IN, src, user) + + balloon_alert_to_viewers("put [tray] in [src]") + used_tray = tray + in_use = TRUE // You can't use the forge if there's a tray sitting in it + update_appearance() + +/// Take the used_tray and spit it out, updating everything relevant to that +/obj/structure/reagent_forge/proc/remove_tray_from_forge(mob/living/carbon/user) + if(!used_tray) + if(user) + balloon_alert_to_viewers("no tray") + return + + if(user) + user.put_in_hands(used_tray) + balloon_alert_to_viewers("removed [used_tray]") + else + used_tray.forceMove(get_turf(src)) + used_tray = null + in_use = FALSE + +/// Adds to either the strong or weak fuel timers from the given stack +/obj/structure/reagent_forge/proc/refuel(obj/item/stack/refueling_stack, mob/living/user, is_strong_fuel = FALSE) + in_use = TRUE + + if(is_strong_fuel) + if(forge_fuel_strong >= 5 MINUTES) + fail_message(user, "[src] is full on coal") + return + if(forge_fuel_weak >= 5 MINUTES) + fail_message(user, "[src] is full on wood") + return + + balloon_alert_to_viewers("refueling...") + + var/obj/item/stack/sheet/stack_sheet = refueling_stack + if(!do_after(user, 3 SECONDS, target = src) || !stack_sheet.use(1)) + fail_message(user, "stopped fueling") + return + + if(is_strong_fuel) + forge_fuel_strong += 5 MINUTES + else + forge_fuel_weak += 5 MINUTES + in_use = FALSE + balloon_alert(user, "fueled [src]") + user.mind.adjust_experience(/datum/skill/smithing, 5) // You gain small amounts of experience from useful fueling + + if(prob(CHARCOAL_CHANCE) && !is_strong_fuel) + to_chat(user, span_notice("[src]'s fuel is packed densely enough to have made some charcoal!")) + addtimer(CALLBACK(src, PROC_REF(spawn_coal)), 1 MINUTES) + +/// Takes given ore and smelts it, possibly producing extra sheets if upgraded +/obj/structure/reagent_forge/proc/smelt_ore(obj/item/stack/ore/ore_item, mob/living/user) + in_use = TRUE + + if(forge_temperature < MIN_FORGE_TEMP) + fail_message(user, "forge too cool") + return + + var/skill_modifier = user.mind.get_skill_modifier(/datum/skill/smithing, SKILL_SPEED_MODIFIER) + + if(!ore_item.refined_type) + fail_message(user, "cannot smelt [ore_item]") + return + + balloon_alert_to_viewers("smelting...") + + if(!do_after(user, skill_modifier * 3 SECONDS, target = src)) + fail_message(user, "stopped smelting [ore_item]") + return + + var/src_turf = get_turf(src) + var/spawning_item = ore_item.refined_type + var/ore_to_sheet_amount = ore_item.amount + + for(var/spawn_ore in 1 to ore_to_sheet_amount) + new spawning_item(src_turf) + + in_use = FALSE + qdel(ore_item) + return + +/// Sets ceramic items from their unusable state into their finished form +/obj/structure/reagent_forge/proc/handle_ceramics(obj/attacking_item, mob/living/user) + in_use = TRUE + + if(forge_temperature < MIN_FORGE_TEMP) + fail_message(user, "forge too cool") + return + + var/obj/item/ceramic/ceramic_item = attacking_item + var/ceramic_speed = user.mind.get_skill_modifier(/datum/skill/production, SKILL_SPEED_MODIFIER) * BASELINE_ACTION_TIME + + if(!ceramic_item.forge_item) + fail_message(user, "cannot set [ceramic_item]") + return + + balloon_alert_to_viewers("setting [ceramic_item]") + + if(!do_after(user, ceramic_speed, target = src)) + fail_message("stopped setting [ceramic_item]") + return + + balloon_alert(user, "finished setting [ceramic_item]") + var/obj/item/ceramic/spawned_ceramic = new ceramic_item.forge_item(get_turf(src)) + user.mind.adjust_experience(/datum/skill/production, 50) + spawned_ceramic.color = ceramic_item.color + qdel(ceramic_item) + in_use = FALSE + +/// Handles the creation of molten glass from glass sheets +/obj/structure/reagent_forge/proc/handle_glass_sheet_melting(obj/attacking_item, mob/living/user) + in_use = TRUE + + if(forge_temperature < MIN_FORGE_TEMP) + fail_message(user, "forge too cool") + return + + var/obj/item/stack/sheet/glass/glass_item = attacking_item + var/glassblowing_speed = user.mind.get_skill_modifier(/datum/skill/production, SKILL_SPEED_MODIFIER) * BASELINE_ACTION_TIME + var/glassblowing_amount = BASELINE_HEATING_DURATION / user.mind.get_skill_modifier(/datum/skill/production, SKILL_SPEED_MODIFIER) + + balloon_alert_to_viewers("heating...") + + if(!do_after(user, glassblowing_speed, target = src) || !glass_item.use(1)) + fail_message(user, "stopped heating [glass_item]") + return + + in_use = FALSE + var/obj/item/glassblowing/molten_glass/spawned_glass = new /obj/item/glassblowing/molten_glass(get_turf(src)) + user.mind.adjust_experience(/datum/skill/production, 10) + COOLDOWN_START(spawned_glass, remaining_heat, glassblowing_amount) + spawned_glass.total_time = glassblowing_amount + +/// Handles creating molten glass from a metal cup filled with sand +/obj/structure/reagent_forge/proc/handle_metal_cup_melting(obj/attacking_item, mob/living/user) + in_use = TRUE + + if(forge_temperature < MIN_FORGE_TEMP) + fail_message(user, "forge too cool") + return + + var/obj/item/glassblowing/metal_cup/metal_item = attacking_item + var/glassblowing_speed = user.mind.get_skill_modifier(/datum/skill/production, SKILL_SPEED_MODIFIER) * BASELINE_ACTION_TIME + var/glassblowing_amount = BASELINE_HEATING_DURATION / user.mind.get_skill_modifier(/datum/skill/production, SKILL_SPEED_MODIFIER) + + if(!metal_item.has_sand) + fail_message(user, "[metal_item] has no sand") + return + + balloon_alert_to_viewers("heating...") + + if(!do_after(user, glassblowing_speed, target = src)) + fail_message(user, "stopped heating [metal_item]") + return + + in_use = FALSE + metal_item.has_sand = FALSE + metal_item.icon_state = "metal_cup_empty" // This should be handled a better way but presently this is how it works + var/obj/item/glassblowing/molten_glass/spawned_glass = new /obj/item/glassblowing/molten_glass(get_turf(src)) + user.mind.adjust_experience(/datum/skill/production, 10) + COOLDOWN_START(spawned_glass, remaining_heat, glassblowing_amount) + spawned_glass.total_time = glassblowing_amount + +/obj/structure/reagent_forge/billow_act(mob/living/user, obj/item/tool) + if(in_use) // Preventing billow use if the forge is in use to prevent spam + fail_message(user, "forge busy") + return + + var/skill_modifier = user.mind.get_skill_modifier(/datum/skill/smithing, SKILL_SPEED_MODIFIER) + + in_use = TRUE + + if(!forge_fuel_strong && !forge_fuel_weak) + fail_message(user, "no fuel in [src]") + return + + if(forge_temperature >= MAX_FORGE_TEMP) + fail_message(user, "[src] cannot heat further") + return + + balloon_alert_to_viewers("billowing...") + + while(forge_temperature < 91) + if(!do_after(user, skill_modifier * 2, target = src)) + balloon_alert_to_viewers("stopped billowing") + return + + forge_temperature += 10 + user.mind.adjust_experience(/datum/skill/smithing, 5) // Billowing, like fueling, gives you some experience in forging + + in_use = FALSE + balloon_alert(user, "successfully heated [src]") + return + +/obj/structure/reagent_forge/blowrod_act(mob/living/user, obj/item/tool) + var/obj/item/glassblowing/blowing_rod/blowing_item = tool + var/glassblowing_speed = user.mind.get_skill_modifier(/datum/skill/production, SKILL_SPEED_MODIFIER) * BASELINE_ACTION_TIME + var/glassblowing_amount = BASELINE_HEATING_DURATION / user.mind.get_skill_modifier(/datum/skill/production, SKILL_SPEED_MODIFIER) + + if(in_use) + to_chat(user, span_warning("You cannot do multiple things at the same time!")) + return + in_use = TRUE + + if(forge_temperature < MIN_FORGE_TEMP) + fail_message(user, "The temperature is not hot enough to start heating [blowing_item].") + return + + var/obj/item/glassblowing/molten_glass/find_glass = locate() in blowing_item.contents + if(!find_glass) + fail_message(user, "[blowing_item] does not have any glass to heat up.") + return + + if(!COOLDOWN_FINISHED(find_glass, remaining_heat)) + fail_message(user, "[find_glass] is still has remaining heat.") + return + + to_chat(user, span_notice("You begin heating up [blowing_item].")) + + if(!do_after(user, glassblowing_speed, target = src)) + fail_message(user, "[blowing_item] is interrupted in its heating process.") + return + + COOLDOWN_START(find_glass, remaining_heat, glassblowing_amount) + find_glass.total_time = glassblowing_amount + to_chat(user, span_notice("You finish heating up [blowing_item].")) + user.mind.adjust_experience(/datum/skill/smithing, 5) + user.mind.adjust_experience(/datum/skill/production, 10) + in_use = FALSE + return + +/obj/structure/reagent_forge/wrench_act(mob/living/user, obj/item/tool) + tool.play_tool_sound(src) + deconstruct(TRUE) + return TRUE + +/obj/structure/reagent_forge/deconstruct(disassembled) + new /obj/item/stack/sheet/iron/ten(get_turf(src)) + return ..() + +/obj/structure/reagent_forge/tier2 + forge_level = FORGE_LEVEL_NOVICE + +/obj/structure/reagent_forge/tier3 + forge_level = FORGE_LEVEL_APPRENTICE + +/obj/structure/reagent_forge/tier4 + forge_level = FORGE_LEVEL_JOURNEYMAN + +/obj/structure/reagent_forge/tier5 + forge_level = FORGE_LEVEL_EXPERT + +/obj/structure/reagent_forge/tier6 + forge_level = FORGE_LEVEL_MASTER + +/obj/structure/reagent_forge/tier7 + forge_level = FORGE_LEVEL_LEGENDARY + +/particles/smoke/mild + spawning = 1 + velocity = list(0, 0.3, 0) + friction = 0.25 + +#undef BASELINE_ACTION_TIME + +#undef BASELINE_HEATING_DURATION + +#undef FORGE_DEFAULT_TEMPERATURE_CHANGE +#undef MAX_FORGE_TEMP +#undef MIN_FORGE_TEMP +#undef FORGE_HEATING_DURATION + +#undef FORGE_LEVEL_YOU_PLAY_LIKE_A_NOOB +#undef FORGE_LEVEL_NOVICE +#undef FORGE_LEVEL_APPRENTICE +#undef FORGE_LEVEL_JOURNEYMAN +#undef FORGE_LEVEL_EXPERT +#undef FORGE_LEVEL_MASTER +#undef FORGE_LEVEL_LEGENDARY + +#undef MAX_TEMPERATURE_LOSS_DECREASE + +#undef CHARCOAL_CHANCE + + +#undef SMOKE_STATE_NONE +#undef SMOKE_STATE_GOOD +#undef SMOKE_STATE_NEUTRAL +#undef SMOKE_STATE_BAD +#undef SMOKE_STATE_NOT_COOKING + +/datum/skill/smithing + name = "Smithing" + title = "Smithy" + desc = "The desperate artist who strives after the flames of the forge." + modifiers = list( + SKILL_SPEED_MODIFIER = list(1, 0.95, 0.9, 0.85, 0.75, 0.6, 0.5), + SKILL_PROBS_MODIFIER = list(0, 5, 10, 20, 40, 80, 100) + ) + +/// Called on an object when a tool with wrench capabilities is used to left click an object +/atom/proc/billow_act(mob/living/user, obj/item/tool) + return + +/// Called on an object when a tool with wrench capabilities is used to right click an object +/atom/proc/billow_act_secondary(mob/living/user, obj/item/tool) + return + +/// Called on an object when a tool with wrench capabilities is used to left click an object +/atom/proc/tong_act(mob/living/user, obj/item/tool) + return + +/// Called on an object when a tool with wrench capabilities is used to right click an object +/atom/proc/tong_act_secondary(mob/living/user, obj/item/tool) + return + +/// Called on an object when a tool with wrench capabilities is used to left click an object +/atom/proc/hammer_act(mob/living/user, obj/item/tool) + return + +/// Called on an object when a tool with wrench capabilities is used to right click an object +/atom/proc/hammer_act_secondary(mob/living/user, obj/item/tool) + return + +/// Called on an object when a tool with wrench capabilities is used to left click an object +/atom/proc/blowrod_act(mob/living/user, obj/item/tool) + return + +/// Called on an object when a tool with wrench capabilities is used to right click an object +/atom/proc/blowrod_act_secondary(mob/living/user, obj/item/tool) + return diff --git a/monkestation/code/modules/blueshift/structures/sauna_oven.dm b/monkestation/code/modules/blueshift/structures/sauna_oven.dm new file mode 100644 index 000000000000..929cc16d19f3 --- /dev/null +++ b/monkestation/code/modules/blueshift/structures/sauna_oven.dm @@ -0,0 +1,128 @@ +#define SAUNA_H2O_TEMP (T20C + 20) +#define SAUNA_LOG_FUEL 150 +#define SAUNA_PAPER_FUEL 5 +#define SAUNA_MAXIMUM_FUEL 3000 +#define SAUNA_WATER_PER_WATER_UNIT 5 + +/obj/structure/sauna_oven + name = "sauna oven" + desc = "A modest sauna oven with rocks. Add some fuel, pour some water and enjoy the moment." + icon = 'monkestation/code/modules/blueshift/icons/obj/structures/sauna_oven.dmi' + icon_state = "sauna_oven" + density = TRUE + anchored = TRUE + resistance_flags = FIRE_PROOF + var/lit = FALSE + var/fuel_amount = 0 + var/water_amount = 0 + +/obj/structure/sauna_oven/examine(mob/user) + . = ..() + . += span_notice("The rocks are [water_amount ? "moist" : "dry"].") + . += span_notice("There's [fuel_amount ? "some fuel" : "no fuel"] in the oven.") + +/obj/structure/sauna_oven/Destroy() + if(lit) + STOP_PROCESSING(SSobj, src) + QDEL_NULL(particles) + return ..() + +/obj/structure/sauna_oven/attack_hand(mob/user) + . = ..() + if(.) + return + if(lit) + lit = FALSE + STOP_PROCESSING(SSobj, src) + user.visible_message(span_notice("[user] turns off [src]."), span_notice("You turn off [src].")) + else if (fuel_amount) + lit = TRUE + START_PROCESSING(SSobj, src) + user.visible_message(span_notice("[user] turns on [src]."), span_notice("You turn on [src].")) + update_icon() + +/obj/structure/sauna_oven/update_overlays() + . = ..() + if(lit) + . += "sauna_oven_on_overlay" + +/obj/structure/sauna_oven/update_icon() + ..() + icon_state = "[lit ? "sauna_oven_on" : initial(icon_state)]" + +/obj/structure/sauna_oven/attackby(obj/item/used_item, mob/user) + if(used_item.tool_behaviour == TOOL_WRENCH) + balloon_alert(user, "deconstructing...") + if(used_item.use_tool(src, user, 60, volume = 50)) + balloon_alert(user, "deconstructed") + new /obj/item/stack/sheet/mineral/wood(get_turf(src), 30) + qdel(src) + + else if(istype(used_item, /obj/item/reagent_containers)) + var/obj/item/reagent_containers/reagent_container = used_item + if(!reagent_container.is_open_container()) + return ..() + if(reagent_container.reagents.has_reagent(/datum/reagent/water)) + reagent_container.reagents.remove_reagent(/datum/reagent/water, 5) + user.visible_message(span_notice("[user] pours some \ + water into [src]."), span_notice("You pour \ + some water to [src].")) + water_amount += 5 * SAUNA_WATER_PER_WATER_UNIT + else + balloon_alert(user, "no water!") + + else if(istype(used_item, /obj/item/stack/sheet/mineral/wood)) + var/obj/item/stack/sheet/mineral/wood/wood = used_item + if(fuel_amount > SAUNA_MAXIMUM_FUEL) + balloon_alert(user, "it's full!") + return + fuel_amount += SAUNA_LOG_FUEL * wood.amount + wood.use(wood.amount) + user.visible_message(span_notice("[user] tosses some \ + wood into [src]."), span_notice("You add \ + some fuel to [src].")) + else if(istype(used_item, /obj/item/paper_bin)) + var/obj/item/paper_bin/paper_bin = used_item + user.visible_message(span_notice("[user] throws [used_item] into \ + [src]."), span_notice("You add [used_item] to [src].\ + ")) + fuel_amount += SAUNA_PAPER_FUEL * paper_bin.total_paper + qdel(paper_bin) + else if(istype(used_item, /obj/item/paper)) + user.visible_message(span_notice("[user] throws [used_item] into \ + [src]."), span_notice("You throw [used_item] into [src].\ + ")) + fuel_amount += SAUNA_PAPER_FUEL + qdel(used_item) + return ..() + +/obj/structure/sauna_oven/process() + if(water_amount) + water_amount-- + update_steam_particles() + var/turf/open/pos = get_turf(src) + if(istype(pos) && pos.air.return_pressure() < 2*ONE_ATMOSPHERE) + pos.atmos_spawn_air("water_vapor=10;TEMP=[SAUNA_H2O_TEMP]") + fuel_amount-- + if(fuel_amount <= 0) + lit = FALSE + update_steam_particles() + STOP_PROCESSING(SSobj, src) + update_icon() + +/obj/structure/sauna_oven/proc/update_steam_particles() + if(particles) + if(lit && water_amount) + return + QDEL_NULL(particles) + return + + if(lit && water_amount) + particles = new /particles/smoke/steam/mild + particles.position = list(0, 6, 0) + +#undef SAUNA_H2O_TEMP +#undef SAUNA_LOG_FUEL +#undef SAUNA_PAPER_FUEL +#undef SAUNA_MAXIMUM_FUEL +#undef SAUNA_WATER_PER_WATER_UNIT diff --git a/monkestation/code/modules/blueshift/structures/shelf.dm b/monkestation/code/modules/blueshift/structures/shelf.dm new file mode 100644 index 000000000000..07848adb8d27 --- /dev/null +++ b/monkestation/code/modules/blueshift/structures/shelf.dm @@ -0,0 +1,58 @@ +/* +* FURNITURE +*/ + +/obj/structure/decorative/shelf + name = "shelf" + desc = "A sturdy wooden shelf to store a variety of items on." + icon = 'monkestation/code/modules/blueshift/icons/unique/furniture.dmi' + icon_state = "empty_shelf_1" + density = 0 + +/obj/structure/decorative/shelf/crates + desc = "A sturdy wooden shelf with a bunch of crates on it." + icon_state = "shelf_1" + +/obj/structure/decorative/shelf/milkjugs + desc = "A sturdy wooden shelf with a jugs and cartons of skimmed, semi-skimmed and full fat milk." + icon_state = "shelf_2" + +/obj/structure/decorative/shelf/alcohol + desc = "A sturdy wooden shelf with a bunch of probably alcoholic drinks on it." + icon_state = "shelf_3" + +/obj/structure/decorative/shelf/soda + desc = "A sturdy wooden shelf with a bunch of soft drinks on it. This planet's version of coca cola?" + icon_state = "shelf_4" + +/obj/structure/decorative/shelf/soda_multipacks + desc = "A sturdy wooden shelf with a bunch of multipack soft drinks." + icon_state = "shelf_5" + +/obj/structure/decorative/shelf/crates1 + desc = "A sturdy wooden shelf with a bunch of crates on it. How... generic?" + icon_state = "shelf_6" + +/obj/structure/decorative/shelf/soda_milk + desc = "A sturdy wooden shelf with an assortment of boxes. Multipack soft drinks and some milk." + icon_state = "shelf_7" + +/obj/structure/decorative/shelf/milk + desc = "A sturdy wooden shelf with a variety of small milk cartons. Great for those who live alone!" + icon_state = "shelf_8" + +/obj/structure/decorative/shelf/milk_big + desc = "A sturdy wooden shelf with lots of larger milk cartons." + icon_state = "shelf_9" + +/obj/structure/decorative/shelf/alcohol_small + desc = "A sturdy wooden shelf with lots of alcohol." + icon_state = "shelf_10" + +/obj/structure/decorative/shelf/alcohol_assortment + desc = "A sturdy wooden shelf with a variety of branded alcoholic drinks." + icon_state = "shelf_11" + +// Toilet with a snap pop. +/obj/structure/toilet/snappop + contents = newlist(/obj/item/toy/snappop/phoenix) diff --git a/monkestation/code/modules/blueshift/structures/trash_pile.dm b/monkestation/code/modules/blueshift/structures/trash_pile.dm new file mode 100644 index 000000000000..652e18067a82 --- /dev/null +++ b/monkestation/code/modules/blueshift/structures/trash_pile.dm @@ -0,0 +1,139 @@ +/obj/structure/trash_pile + name = "trash pile" + desc = "A heap of garbage, but maybe there's something interesting inside?" + icon = 'monkestation/code/modules/blueshift/icons/trash_piles.dmi' + icon_state = "randompile" + density = TRUE + anchored = TRUE + layer = TABLE_LAYER + obj_flags = CAN_BE_HIT + pass_flags = LETPASSTHROW + + max_integrity = 50 + + var/hide_person_time = 30 + var/hide_item_time = 15 + + var/list/searchedby = list()// Characters that have searched this trashpile, with values of searched time. + +/obj/structure/trash_pile/Initialize(mapload) + . = ..() + AddElement(/datum/element/climbable) + icon_state = pick( + "pile1", + "pile2", + "pilechair", + "piletable", + "pilevending", + "brtrashpile", + "microwavepile", + "rackpile", + "boxfort", + "trashbag", + "brokecomp", + ) + +/obj/structure/trash_pile/proc/do_search(mob/user) + if(contents.len) // There's something hidden + var/atom/hidden_atom = contents[contents.len] // Get the most recent hidden thing + if(istype(hidden_atom, /mob/living)) + var/mob/living/hidden_mob = hidden_atom + balloon_alert(user, "someone is inside!") + eject_mob(hidden_mob) + else if (istype(hidden_atom, /obj/item)) + var/obj/item/hidden_item = hidden_atom + balloon_alert(user, "found something!") + hidden_item.forceMove(src.loc) + else + // You already searched this one bruh + if(user.ckey in searchedby) + balloon_alert(user, "already searched!") + // You found an item! + else + produce_alpha_item() + balloon_alert(user, "found something!") + searchedby += user.ckey + +/obj/structure/trash_pile/attack_hand(mob/user) + // Human mob + if(ishuman(user)) + var/mob/living/carbon/human/human_user = user + human_user.visible_message("[user] searches through \the [src].", span_notice("You search through \the [src].")) + // Do the searching + if(do_after(user, rand(4 SECONDS, 6 SECONDS), target = src)) + if(src.loc) // Let's check if the pile still exists + do_search(user) + else + return ..() + +// Random lists +/obj/structure/trash_pile/proc/produce_alpha_item() + var/lootspawn = pick_weight(GLOB.maintenance_loot) + while(islist(lootspawn)) + lootspawn = pick_weight(lootspawn) + var/obj/item/hidden_item = new lootspawn(get_turf(src)) + return hidden_item + +/obj/structure/trash_pile/MouseDrop_T(atom/dropping, mob/user) + if(user == dropping && iscarbon(dropping)) + var/mob/living/dropped_mob = dropping + if(dropped_mob.mobility_flags & MOBILITY_MOVE) + dive_in_pile(user) + return + +/obj/structure/trash_pile/proc/eject_mob(mob/living/hidden_mob) + hidden_mob.forceMove(src.loc) + playsound(hidden_mob.loc, 'sound/machines/chime.ogg', 50, FALSE, -5) + hidden_mob.do_alert_animation(hidden_mob) + +/obj/structure/trash_pile/proc/do_dive(mob/user) + if(contents.len) + for(var/mob/hidden_mob in contents) + balloon_alert(user, "already someone inside!") + eject_mob(hidden_mob) + return FALSE + return TRUE + +/obj/structure/trash_pile/proc/dive_in_pile(mob/user) + user.visible_message(span_warning("[user] starts diving into [src]."), \ + span_notice("You start diving into [src]...")) + var/adjusted_dive_time = hide_person_time + if(HAS_TRAIT(user, TRAIT_RESTRAINED)) // hiding takes twice as long when restrained. + adjusted_dive_time *= 2 + + if(do_after(user, adjusted_dive_time, user)) + if(src.loc) // Checking if structure has been destroyed + if(do_dive(user)) + user.forceMove(src) + +/obj/structure/trash_pile/proc/can_hide_item(obj/item/hidden_item) + if(contents.len > 10) + return FALSE + return TRUE + +/obj/structure/trash_pile/attackby(obj/item/hidden_item, mob/living/user, params) + if(!(user.istate & ISTATE_HARM)) + if(can_hide_item(hidden_item)) + balloon_alert(user, "hiding item...") + if(do_after(user, hide_item_time, user)) + if(src.loc) + if(user.transferItemToLoc(hidden_item, src)) + balloon_alert(user, "item hidden") + else + balloon_alert(user, "it's stuck to your hand!") + else + balloon_alert(user, "it's full!") + return + + . = ..() + +/obj/structure/trash_pile/Destroy() + for(var/atom/movable/pile_contents in src) + pile_contents.forceMove(src.loc) + return ..() + +/obj/structure/trash_pile/container_resist_act(mob/user) + user.forceMove(src.loc) + +/obj/structure/trash_pile/relaymove(mob/user) + container_resist_act(user) diff --git a/monkestation/code/modules/blueshift/structures/wall_torch.dm b/monkestation/code/modules/blueshift/structures/wall_torch.dm new file mode 100644 index 000000000000..24d7a6e8a591 --- /dev/null +++ b/monkestation/code/modules/blueshift/structures/wall_torch.dm @@ -0,0 +1,51 @@ +/obj/structure/wall_torch + name = "mounted torch" + desc = "A simple torch mounted to the wall, for lighting and such." + icon = 'monkestation/code/modules/blueshift/icons/lighting.dmi' + icon_state = "walltorch" + base_icon_state = "walltorch" + anchored = TRUE + density = FALSE + light_color = LIGHT_COLOR_FIRE + /// is the bonfire lit? + var/burning = FALSE + /// Does this torch spawn pre-lit? + var/spawns_lit = FALSE + +MAPPING_DIRECTIONAL_HELPERS(/obj/structure/wall_torch, 28) + +/obj/structure/wall_torch/Initialize(mapload) + . = ..() + if(spawns_lit) + light_it_up() + find_and_hang_on_wall() + +/obj/structure/wall_torch/attackby(obj/item/used_item, mob/living/user, params) + if(used_item.get_temperature()) + light_it_up() + else + return ..() + +/obj/structure/wall_torch/fire_act(exposed_temperature, exposed_volume) + light_it_up() + +/// Sets the torch's icon to burning and sets the light up +/obj/structure/wall_torch/proc/light_it_up() + icon_state = "[base_icon_state]_on" + burning = TRUE + set_light(4) + update_appearance(UPDATE_ICON) + +/obj/structure/wall_torch/extinguish() + . = ..() + if(!burning) + return + icon_state = base_icon_state + burning = FALSE + set_light(0) + update_appearance(UPDATE_ICON) + +/obj/structure/wall_torch/spawns_lit + spawns_lit = TRUE + +MAPPING_DIRECTIONAL_HELPERS(/obj/structure/wall_torch/spawns_lit, 28) diff --git a/monkestation/code/modules/blueshift/structures/windows.dm b/monkestation/code/modules/blueshift/structures/windows.dm new file mode 100644 index 000000000000..6e9290ef5315 --- /dev/null +++ b/monkestation/code/modules/blueshift/structures/windows.dm @@ -0,0 +1,86 @@ +/obj/structure/window + /// A variable for mappers to make the window start polarized, with a specific + /// id linked, for the polarization controller to link to. Mapping stuff. + /// Should usually be a string, so it doesn't get confused with what players + /// can make the id on the controller be. + /// HAS NO EFFECT AFTER THE WINDOW HAS BEEN THROUGH `Initialize()`!!! + var/polarizer_id_on_spawn = "" + +/obj/structure/window/Initialize(mapload, direct) + . = ..() + + if(polarizer_id_on_spawn) + AddComponent(/datum/component/polarization_controller, polarizer_id = polarizer_id_on_spawn) + + +/obj/effect/spawner/structure/window + /// A variable for mappers to make the windows spawned by this spawner to + /// start polarized, with a specific id linked, for the polarization + /// controller to link to. Mapping stuff. Should usually be a string, so it + /// doesn't get confused with what players can make the id on the controller be. + /// FOR MAPPERS ONLY. DONE THIS WAY TO AVOID HAVING TO CREATE A TON OF SUBTYPES. + var/polarizer_id = "" + + +/obj/effect/spawner/structure/window/Initialize(mapload) + if(!polarizer_id) + return ..() + + // We do this so that we spawn everything in order, but we also add the + // polarization_controller component to all the windows that we spawn. + for(var/spawn_type in spawn_list) + var/obj/structure/window/spawned_window = new spawn_type(loc) + + if(!istype(spawned_window)) + continue + + spawned_window.AddComponent(/datum/component/polarization_controller, polarizer_id = polarizer_id) + + + spawn_list = list() + + return ..() + +/obj/structure/window/fulltile/colony_fabricator + name = "prefabricated window" + desc = "A conservatively built metal frame with a thick sheet of space-grade glass slotted into it." + icon = 'monkestation/code/modules/blueshift/icons/prefab_window.dmi' + icon_state = "prefab-0" + base_icon_state = "prefab" + fulltile = TRUE + glass_type = /obj/item/stack/sheet/plastic_wall_panel + glass_amount = 1 + +/obj/structure/grille/attackby(obj/item/item_in_question, mob/user, params) + if(!istype(item_in_question, /obj/item/stack/sheet/plastic_wall_panel)) + return ..() + + if(broken) + return + var/obj/item/stack/stack_in_question = item_in_question + if(stack_in_question.get_amount() < 1) + to_chat(user, span_warning("You need at least one plastic panel for that!")) + return + var/dir_to_set = SOUTHWEST + if(!anchored) + to_chat(user, span_warning("[src] needs to be fastened to the floor first!")) + return + for(var/obj/structure/window/window_on_turf in loc) + to_chat(user, span_warning("There is already a window there!")) + return + if(!clear_tile(user)) + return + to_chat(user, span_notice("You start placing the window...")) + if(!do_after(user, 1 SECONDS, target = src)) + return + if(!src.loc || !anchored) //Grille broken or unanchored while waiting + return + for(var/obj/structure/window/window_on_turf in loc) //Another window already installed on grille + return + if(!clear_tile(user)) + return + var/obj/structure/window/new_window = new /obj/structure/window/fulltile/colony_fabricator(drop_location()) + new_window.setDir(dir_to_set) + new_window.state = 0 + stack_in_question.use(1) + to_chat(user, span_notice("You place [new_window] on [src].")) diff --git a/monkestation/code/modules/blueshift/structures/wooden_fence.dm b/monkestation/code/modules/blueshift/structures/wooden_fence.dm new file mode 100644 index 000000000000..6319daeaeffa --- /dev/null +++ b/monkestation/code/modules/blueshift/structures/wooden_fence.dm @@ -0,0 +1,100 @@ +// Short wooden fences, oh me oh my + +/obj/structure/railing/wooden_fencing + name = "wooden fence" + desc = "A basic wooden fence meant to prevent people like you either in or out of somewhere." + icon = 'monkestation/code/modules/blueshift/icons/wooden_fence.dmi' + icon_state = "fence" + layer = BELOW_OBJ_LAYER // I think this is the default but lets be safe? + resistance_flags = FLAMMABLE + flags_1 = ON_BORDER_1 + standard_smoothing = FALSE + /// If we randomize our icon on spawning + var/random_icons = TRUE + +/obj/structure/railing/wooden_fencing/Initialize(mapload) + . = ..() + if(!random_icons) + return + icon_state = pick( + "fence", + "fence_2", + "fence_3", + ) + update_appearance() + +// previously NO_DECONSTRUCTION +/obj/structure/railing/wirecutter_act(mob/living/user, obj/item/I) + return NONE + +// Fence gates for the above mentioned fences + +/obj/structure/railing/wooden_fencing/gate + name = "wooden fence gate" + desc = "A basic wooden gate meant to prevent animals like you escaping." + icon_state = "gate" + random_icons = FALSE + /// Has the gate been opened or not? + var/opened = FALSE + +/obj/structure/railing/wooden_fencing/gate/attack_hand(mob/user, list/modifiers) + . = ..() + if(.) + return + return open_or_close(user) + +/// Proc that checks if the gate is open or not, then closes/opens the gate repsectively +/obj/structure/railing/wooden_fencing/gate/proc/open_or_close(mob/user) + if(!user.can_interact_with(src)) + balloon_alert(user, "can't interact") + return + opened = !opened + set_density(!opened) + icon_state = "[opened ? "gate_open" : "gate"]" + playsound(src, (opened ? 'sound/machines/wooden_closet_open.ogg' : 'sound/machines/wooden_closet_close.ogg'), 100, TRUE) + update_appearance() + +/obj/structure/railing/wooden_fencing/gate/update_icon() + . = ..() + if(!opened) + return + +// Large wooden gate, used for big doors or entrances to camps + +/obj/structure/mineral_door/wood/large_gate + name = "large wooden gate" + icon = 'monkestation/code/modules/blueshift/icons/wooden_gate.dmi' + icon_state = "gate" + openSound = 'sound/machines/wooden_closet_open.ogg' + closeSound = 'sound/machines/wooden_closet_close.ogg' + +/obj/structure/mineral_door/wood/large_gate/Open() + playsound(src, openSound, 100, TRUE) + set_opacity(FALSE) + set_density(FALSE) + door_opened = TRUE + layer = OPEN_DOOR_LAYER + air_update_turf(TRUE, FALSE) + update_appearance() + +/obj/structure/mineral_door/wood/large_gate/Close() + if(!door_opened) + return + for(var/mob/living/blocking_mob in get_turf(src)) + return + playsound(src, closeSound, 100, TRUE) + set_density(TRUE) + set_opacity(TRUE) + door_opened = FALSE + layer = initial(layer) + air_update_turf(TRUE, TRUE) + update_appearance() + +/obj/structure/mineral_door/wood/large_gate/update_icon() + . = ..() + if(!door_opened) + return + if(dir == EAST) + layer = ABOVE_MOB_LAYER + else + layer = initial(layer) diff --git a/monkestation/code/modules/blueshift/structures/wooden_rack.dm b/monkestation/code/modules/blueshift/structures/wooden_rack.dm new file mode 100644 index 000000000000..421cba145532 --- /dev/null +++ b/monkestation/code/modules/blueshift/structures/wooden_rack.dm @@ -0,0 +1,160 @@ +// Wooden shelves that force items placed on them to be visually placed them + +/obj/structure/rack/wooden + name = "shelf" + icon_state = "shelf_wood" + icon = 'monkestation/code/modules/blueshift/icons/storage.dmi' + resistance_flags = FLAMMABLE + +/obj/structure/rack/wooden/MouseDrop_T(obj/object, mob/user, params) + . = ..() + var/list/modifiers = params2list(params) + if(!LAZYACCESS(modifiers, ICON_X) || !LAZYACCESS(modifiers, ICON_Y)) + return + + object.pixel_x = clamp(text2num(LAZYACCESS(modifiers, ICON_X)) - 16, -(world.icon_size / 3), world.icon_size / 3) + object.pixel_y = text2num(LAZYACCESS(modifiers, ICON_Y)) > 16 ? 10 : -4 + +/obj/structure/rack/wrench_act_secondary(mob/living/user, obj/item/tool) + return NONE + +/obj/structure/rack/wooden/crowbar_act(mob/living/user, obj/item/tool) + user.balloon_alert_to_viewers("disassembling...") + if(!tool.use_tool(src, user, 2 SECONDS, volume = 100)) + return + new /obj/item/stack/sheet/mineral/clay(drop_location(), 5) + deconstruct(TRUE) + return + +/obj/structure/rack/wooden/deconstruct(disassembled = TRUE) + new /obj/item/stack/sheet/mineral/wood(drop_location(), 2) + return ..() + +// Barrel but it works like a crate + +/obj/structure/closet/crate/wooden/storage_barrel + name = "storage barrel" + desc = "This barrel can't hold liquids, it can just hold things inside of it however!" + icon_state = "barrel" + base_icon_state = "barrel" + icon = 'monkestation/code/modules/blueshift/icons/storage.dmi' + resistance_flags = FLAMMABLE + material_drop = /obj/item/stack/sheet/mineral/wood + material_drop_amount = 4 + cutting_tool = /obj/item/crowbar + +/obj/machinery/smartfridge/wooden + name = "Debug Wooden Smartfridge" + desc = "You shouldn't be seeing this!" + icon = 'monkestation/code/modules/blueshift/icons/storage.dmi' + icon_state = "producebin" + resistance_flags = FLAMMABLE + base_build_path = /obj/machinery/smartfridge/wooden + base_icon_state = "produce" + use_power = NO_POWER_USE + light_power = 0 + idle_power_usage = 0 + circuit = null + has_emissive = FALSE + can_atmos_pass = ATMOS_PASS_YES + visible_contents = TRUE + +/obj/machinery/smartfridge/wooden/Initialize(mapload) + . = ..() + if(type == /obj/machinery/smartfridge/wooden) // don't even let these prototypes exist + return INITIALIZE_HINT_QDEL + +// previously NO_DECONSTRUCTION +/obj/machinery/smartfridge/wooden/default_deconstruction_screwdriver(mob/user, icon_state_open, icon_state_closed, obj/item/screwdriver) + return NONE + +/obj/machinery/smartfridge/wooden/crowbar_act(mob/living/user, obj/item/tool) + user.balloon_alert_to_viewers("disassembling...") + if(!tool.use_tool(src, user, 2 SECONDS, volume = 100)) + return + new /obj/item/stack/sheet/mineral/wood(drop_location(), 10) + deconstruct(TRUE) + return + +/* +/obj/machinery/smartfridge/wooden/structure_examine() + . = span_info("The whole rack can be [EXAMINE_HINT("pried")] apart.") +*/ + +/obj/machinery/smartfridge/wooden/produce_bin + name = "produce bin" + desc = "A wooden hamper, used to hold plant products and try to keep them safe from pests." + base_build_path = /obj/machinery/smartfridge/wooden/produce_bin + +/obj/machinery/smartfridge/wooden/produce_bin/accept_check(obj/item/item_to_check) + var/static/list/accepted_items = list( + /obj/item/food/grown, + /obj/item/grown, + /obj/item/graft, + ) + + return is_type_in_list(item_to_check, accepted_items) + +/obj/machinery/smartfridge/wooden/seed_shelf + name = "Seedshelf" + desc = "A wooden shelf, used to hold seeds preventing them from germinating early." + icon_state = "seedshelf" + base_build_path = /obj/machinery/smartfridge/wooden/seed_shelf + base_icon_state = "seed" + +/obj/machinery/smartfridge/wooden/seedshelf/wooden/accept_check(obj/item/weapon) + return istype(weapon, /obj/item/seeds) + +/obj/machinery/smartfridge/wooden/ration_shelf + name = "Ration shelf" + desc = "A wooden shelf, used to store food... preferably preserved." + icon_state = "rationshelf" + base_build_path = /obj/machinery/smartfridge/wooden/ration_shelf + base_icon_state = "ration" + +/obj/machinery/smartfridge/wooden/rationshelf/wooden/accept_check(obj/item/weapon) + return (IS_EDIBLE(weapon) || (istype(weapon,/obj/item/reagent_containers/cup/bowl) && length(weapon.reagents?.reagent_list))) + +/obj/machinery/smartfridge/wooden/produce_display + name = "Produce display" + desc = "A wooden table with awning, used to display produce items." + icon_state = "producedisplay" + base_build_path = /obj/machinery/smartfridge/wooden/produce_display + base_icon_state = "nonfood" + +/obj/machinery/smartfridge/wooden/producedisplay/accept_check(obj/item/weapon) + return (istype(weapon, /obj/item/grown) || istype(weapon, /obj/item/bouquet) || istype(weapon, /obj/item/clothing/head/costume/garland)) + + +GLOBAL_LIST_INIT(monke_wood_recipes, list( + new/datum/stack_recipe("sauna oven", /obj/structure/sauna_oven, 30, time = 1.5 SECONDS, one_per_turf = TRUE, on_solid_ground = TRUE, category = CAT_ENTERTAINMENT), + new/datum/stack_recipe("large wooden mortar", /obj/structure/large_mortar, 10, time = 3 SECONDS, one_per_turf = TRUE, on_solid_ground = TRUE, category = CAT_TOOLS), + new/datum/stack_recipe("wooden cutting board", /obj/item/cutting_board, 5, time = 2 SECONDS, category = CAT_TOOLS), + new/datum/stack_recipe("wooden shelf", /obj/structure/rack/wooden, 2, time = 2 SECONDS, one_per_turf = TRUE, on_solid_ground = TRUE, category = CAT_STRUCTURE), + new/datum/stack_recipe("seed shelf", /obj/machinery/smartfridge/wooden/seed_shelf, 10, time = 2 SECONDS, one_per_turf = TRUE, on_solid_ground = TRUE, category = CAT_STRUCTURE), + new/datum/stack_recipe("produce bin", /obj/machinery/smartfridge/wooden/produce_bin, 10, time = 2 SECONDS, one_per_turf = TRUE, on_solid_ground = TRUE, category = CAT_STRUCTURE), + new/datum/stack_recipe("produce display", /obj/machinery/smartfridge/wooden/produce_display, 10, time = 2 SECONDS, one_per_turf = TRUE, on_solid_ground = TRUE, category = CAT_STRUCTURE), + new/datum/stack_recipe("ration shelf", /obj/machinery/smartfridge/wooden/ration_shelf, 10, time = 2 SECONDS, one_per_turf = TRUE, on_solid_ground = TRUE, category = CAT_STRUCTURE), + new/datum/stack_recipe("storage barrel", /obj/structure/closet/crate/wooden/storage_barrel, 4, time = 2 SECONDS, one_per_turf = TRUE, on_solid_ground = TRUE, category = CAT_STRUCTURE), + new/datum/stack_recipe("worm barrel", /obj/structure/wormfarm, 5, time = 2 SECONDS, one_per_turf = TRUE, on_solid_ground = TRUE, category = CAT_TOOLS), + new/datum/stack_recipe("gutlunch trough", /obj/structure/ore_container/gutlunch_trough, 5, time = 2 SECONDS, one_per_turf = TRUE, on_solid_ground = TRUE, category = CAT_STRUCTURE), + new/datum/stack_recipe("sturdy wooden fence", /obj/structure/railing/wooden_fencing, 5, time = 2 SECONDS, one_per_turf = TRUE, on_solid_ground = TRUE, category = CAT_STRUCTURE), + new/datum/stack_recipe("sturdy wooden fence gate", /obj/structure/railing/wooden_fencing/gate, 5, time = 2 SECONDS, one_per_turf = TRUE, on_solid_ground = TRUE, category = CAT_STRUCTURE), + new/datum/stack_recipe("large wooden gate", /obj/structure/mineral_door/wood/large_gate, 10, time = 5 SECONDS, one_per_turf = TRUE, on_solid_ground = TRUE, category = CAT_STRUCTURE), +)) + + +/obj/item/stack/sheet/mineral/wood/get_main_recipes() + . = ..() + . += GLOB.monke_wood_recipes + +GLOBAL_LIST_INIT(monke_iron_recipes, list( + new/datum/stack_recipe("stack of rails", /obj/item/stack/rail_track, res_amount = 5, max_res_amount = 5, time = 0, on_solid_ground = TRUE, category = CAT_MISC), \ + new/datum/stack_recipe("minecart", /obj/vehicle/ridden/rail_cart, 10, time = 3 SECONDS, one_per_turf = TRUE, on_solid_ground = TRUE, category = CAT_MISC), + new/datum/stack_recipe("forge", /obj/structure/reagent_forge, 10, time = 2 SECONDS, one_per_turf = TRUE, on_solid_ground = TRUE, category = CAT_TOOLS), + new/datum/stack_recipe("throwing wheel", /obj/structure/throwing_wheel, 10, time = 2 SECONDS, one_per_turf = TRUE, on_solid_ground = TRUE, category = CAT_TOOLS), +)) + +/obj/item/stack/sheet/iron/get_main_recipes() + . = ..() + . += GLOB.monke_iron_recipes diff --git a/monkestation/code/modules/blueshift/structures/wrestling.dm b/monkestation/code/modules/blueshift/structures/wrestling.dm new file mode 100644 index 000000000000..9e02f3f0cd5b --- /dev/null +++ b/monkestation/code/modules/blueshift/structures/wrestling.dm @@ -0,0 +1,155 @@ +/obj/structure/railing/wrestling + name = "wrestling ropes" + desc = "Ropes that are meant to go around a wrestling ring." + icon = 'monkestation/code/modules/blueshift/icons/wrestling.dmi' + icon_state = "ropes" + climbable = FALSE + standard_smoothing = FALSE + +/obj/structure/railing/wrestling/CanPass(atom/movable/mover, border_dir) + ..() + if(isliving(mover)) + var/mob/living/living_mover = mover + if(!(living_mover.body_position == STANDING_UP)) //if youre laying down, you can crawl through + return TRUE + + if(dir == NORTH || dir == SOUTH) //if top/bottom sprites + return . || mover.throwing || mover.movement_type & (FLYING | FLOATING) + + if(border_dir == dir) + return . || mover.throwing || mover.movement_type & (FLYING | FLOATING) + + return TRUE + +/obj/structure/railing/wrestling/on_exit(datum/source, atom/movable/leaving, direction) + ..() + + if(leaving == src) + return // Let's not block ourselves. + + if(!(direction & dir)) + return + + if (!density) + return + + if (leaving.throwing) + return + + if (leaving.movement_type & (PHASING | FLYING | FLOATING)) + return + + if (leaving.move_force >= MOVE_FORCE_EXTREMELY_STRONG) + return + + if (dir == NORTH || dir == SOUTH) + return + + if(isliving(leaving)) + var/mob/living/living_mover = leaving + if(!(living_mover.body_position == STANDING_UP)) //if youre laying down, you can crawl through + return + + leaving.Bump(src) + return COMPONENT_ATOM_BLOCK_EXIT + +// +//TURNBUCKLES +// + +/obj/structure/wrestling_corner + name = "wrestling turnbuckle" + icon = 'monkestation/code/modules/blueshift/icons/wrestling.dmi' + icon_state = "turnbuckle" + density = TRUE + anchored = TRUE + armor_type = /datum/armor/structure_wrestling_corner + max_integrity = 75 + var/ini_dir + +/datum/armor/structure_wrestling_corner + melee = 50 + bullet = 70 + laser = 70 + energy = 100 + bomb = 10 + bio = 100 + +/obj/structure/wrestling_corner/Initialize(mapload) + . = ..() + ini_dir = dir + + AddElement(/datum/element/climbable, climb_time = 20, climb_stun = 0) + AddComponent(/datum/component/simple_rotation, ROTATION_NEEDS_ROOM) + + var/static/list/loc_connections = list( + COMSIG_ATOM_ENTERED = PROC_REF(on_enter), + COMSIG_ATOM_EXIT = PROC_REF(on_exit), + ) + + AddElement(/datum/element/connect_loc, loc_connections) + +/obj/structure/wrestling_corner/attackby(obj/item/I, mob/living/user, params) + ..() + add_fingerprint(user) + + if(I.tool_behaviour == TOOL_WELDER && !(user.istate & ISTATE_HARM)) + if(atom_integrity < max_integrity) + if(!I.tool_start_check(user, amount=0)) + return + + to_chat(user, span_notice("You begin repairing [src]...")) + if(I.use_tool(src, user, 40, volume=50)) + atom_integrity = max_integrity + to_chat(user, span_notice("You repair [src].")) + else + to_chat(user, span_warning("[src] is already in good condition!")) + return + +/obj/structure/wrestling_corner/wirecutter_act(mob/living/user, obj/item/tool) + . = ..() + if(!anchored) + to_chat(user, span_warning("You cut apart the turnbuckle.")) + tool.play_tool_sound(src, 100) + deconstruct() + return TRUE + +/obj/structure/wrestling_corner/deconstruct(disassembled) + . = ..() + var/obj/item/stack/sheet/iron/iron_sheets = new /obj/item/stack/sheet/iron(drop_location(), 3) + transfer_fingerprints_to(iron_sheets) + +///Implements behaviour that makes it possible to unanchor the railing. +/obj/structure/wrestling_corner/wrench_act(mob/living/user, obj/item/tool) + . = ..() + to_chat(user, span_notice("You begin to [anchored ? "unfasten the turnbuckle from":"fasten the turnbuckle to"] the floor...")) + if(tool.use_tool(src, user, volume = 75, extra_checks = CALLBACK(src, PROC_REF(check_anchored), anchored))) + set_anchored(!anchored) + to_chat(user, span_notice("You [anchored ? "fasten the turnbuckle to":"unfasten the turnbuckle from"] the floor.")) + return TRUE + +/obj/structure/wrestling_corner/CanPass(atom/movable/mover, border_dir) + . = ..() + if(isliving(mover)) + var/mob/living/living_mover = mover + if(!(living_mover.body_position == STANDING_UP)) //if youre laying down, you can crawl through + return TRUE + return . || mover.throwing || mover.movement_type & (FLYING | FLOATING) + + +/obj/structure/wrestling_corner/proc/check_anchored(checked_anchored) + return anchored == checked_anchored + +/obj/structure/wrestling_corner/proc/on_enter(datum/source, atom/movable/movable) + SIGNAL_HANDLER + if(ishuman(movable)) + var/mob/living/carbon/human/H = movable + H.AddComponent(/datum/component/tackler, stamina_cost=25, base_knockdown = 1 SECONDS, range = 4, speed = 1, skill_mod = 0, min_distance = 0) + +/obj/structure/wrestling_corner/proc/on_exit(datum/source, atom/movable/leaving, direction) + SIGNAL_HANDLER + + if(ishuman(leaving)) + var/mob/living/carbon/human/H = leaving + var/datum/component/tackler/wrestling_tackler = H.GetComponent(/datum/component/tackler) + wrestling_tackler.Destroy() diff --git a/monkestation/code/modules/blueshift/subsystems/armament.dm b/monkestation/code/modules/blueshift/subsystems/armament.dm new file mode 100644 index 000000000000..440ad5e1d83a --- /dev/null +++ b/monkestation/code/modules/blueshift/subsystems/armament.dm @@ -0,0 +1,135 @@ +/** + * Armament entries + * + * These are basic entries that are compiled into the global list of armaments. + * It is strongly suggested that if you wish to make your own armaments station, you + * create your own entries. + * + * Armament stations are capable of having a restricted list of products, which you should fill if you plan on making + * your own station. This is the products variable. If you plan on using the premade list, you can leave this empty. + * + * Create your own file with all of the entries if you do wish to make your own custom armaments vendor. + * + * @author Gandalf2k15 + */ + +SUBSYSTEM_DEF(armaments) + name = "Armaments" + flags = SS_NO_FIRE + init_order = INIT_ORDER_ARMAMENTS + + var/list/entries + +/datum/controller/subsystem/armaments/Initialize() + var/list/armament_dataset = list() + for(var/datum/armament_entry/armament_entry as anything in subtypesof(/datum/armament_entry)) + // Set up our categories so we can add items to them + if(initial(armament_entry.category)) + var/category = initial(armament_entry.category) + if(!(category in armament_dataset)) + // We instansiate the category list so we can add items to it later + armament_dataset[category] = list(CATEGORY_ENTRY, CATEGORY_LIMIT) + armament_dataset[category][CATEGORY_ENTRY] = list() + // These can be considered abstract types, thus do not need to be added. + if(isnull(initial(armament_entry.item_type))) + continue + var/datum/armament_entry/spawned_armament_entry = new armament_entry() + // Datums without a name will assume the items name + spawned_armament_entry.name ||= initial(spawned_armament_entry.item_type.name) + // ditto for the description + spawned_armament_entry.description ||= initial(spawned_armament_entry.item_type.desc) + // Make our icon cache for the UI. + spawned_armament_entry.setup() + // Now that we've set up our datum, we can add it to the correct category + if(spawned_armament_entry.category) + if(spawned_armament_entry.subcategory) + // Check to see if we've already made the subcategory. + if(!(spawned_armament_entry.subcategory in armament_dataset[spawned_armament_entry.category][CATEGORY_ENTRY])) + armament_dataset[spawned_armament_entry.category][CATEGORY_ENTRY][spawned_armament_entry.subcategory] = list() + // Finally, we add the entry into the list. + armament_dataset[spawned_armament_entry.category][CATEGORY_ENTRY][spawned_armament_entry.subcategory] += spawned_armament_entry + else + // Unset subcategories default to the NONE category. + if(!(ARMAMENT_SUBCATEGORY_NONE in armament_dataset[spawned_armament_entry.category][CATEGORY_ENTRY])) + armament_dataset[spawned_armament_entry.category][CATEGORY_ENTRY][ARMAMENT_SUBCATEGORY_NONE] = list() + armament_dataset[spawned_armament_entry.category][CATEGORY_ENTRY][ARMAMENT_SUBCATEGORY_NONE] += spawned_armament_entry + // Set the category item limit. + armament_dataset[spawned_armament_entry.category][CATEGORY_LIMIT] = spawned_armament_entry.category_item_limit + else + // Because of how the UI system works, categories cannot exist with nothing in them, so we + // only set the OTHER category if something can go inside it! This seems like a copy paste job, but it needs to be here. + if(!(ARMAMENT_CATEGORY_STANDARD in armament_dataset)) + armament_dataset[ARMAMENT_CATEGORY_STANDARD] = list(CATEGORY_ENTRY, CATEGORY_LIMIT) + armament_dataset[ARMAMENT_CATEGORY_STANDARD][CATEGORY_LIMIT] = ARMAMENT_CATEGORY_STANDARD_LIMIT + // We don't have home :( add us to the other category. + if(spawned_armament_entry.subcategory) + // Check to see if we've already made the subcategory. + if(!(spawned_armament_entry.subcategory in armament_dataset[ARMAMENT_CATEGORY_STANDARD][CATEGORY_ENTRY])) + armament_dataset[ARMAMENT_CATEGORY_STANDARD][CATEGORY_ENTRY][spawned_armament_entry.subcategory] = list() + // Finally, we add the entry into the list. + armament_dataset[ARMAMENT_CATEGORY_STANDARD][CATEGORY_ENTRY][spawned_armament_entry.subcategory] += spawned_armament_entry + else + // Unset subcategories default to the NONE category. + if(!(ARMAMENT_SUBCATEGORY_NONE in armament_dataset[ARMAMENT_CATEGORY_STANDARD][CATEGORY_ENTRY])) + armament_dataset[ARMAMENT_CATEGORY_STANDARD][CATEGORY_ENTRY][ARMAMENT_SUBCATEGORY_NONE] = list() + armament_dataset[ARMAMENT_CATEGORY_STANDARD][CATEGORY_ENTRY][ARMAMENT_SUBCATEGORY_NONE] += spawned_armament_entry + + entries = armament_dataset + return SS_INIT_SUCCESS + +/* +* ARMAMENT ENTRIES +*/ + +/datum/armament_entry + /// The name of the equipment used in the listing, if not set, it will use the items name. + var/name + /// The description of the equipment used in the listing, if not set, it will use the items description. + var/description + /// The item path that we refer to when equipping. If left empty, it will be considered abstract. + var/obj/item_type + /// Category of the item. This is used to group items together in the UI. + var/category = ARMAMENT_CATEGORY_STANDARD + /// This is an abstract variable, only set this for base category types. It should not be overriden by subtypes. Set to 0 for infinite. + var/category_item_limit = 0 + /// Our subcategory, where the item will be listed. + var/subcategory = ARMAMENT_SUBCATEGORY_NONE + /// The points cost of this item. + var/cost = 0 + /// Defines what slot we will try to equip this item to. + var/slot_to_equip = ITEM_SLOT_HANDS + /// Our cached image. + var/cached_base64 + /// The maximum amount of this item that can be equipped. + var/max_purchase = 1 + /// Do we have magazines for purchase? + var/magazine + /// If we have a magazine, how much is it? + var/magazine_cost = 1 + /// Is this restricted for purchase in some form? Requires extra code in the vendor to function, used for guncargo. + var/restricted = FALSE + +/datum/armament_entry/proc/setup() + var/obj/item/test_item = new item_type() + if(istype(test_item, /obj/item/gun/ballistic)) + var/obj/item/gun/ballistic/ballistic_test = test_item + if(!ballistic_test.internal_magazine) + magazine = ballistic_test.spawn_magazine_type + cached_base64 = icon2base64(getFlatIcon(test_item, no_anim = TRUE)) + qdel(test_item) + +/// This proc handles how the item should be equipped to the player. This needs to return either TRUE or FALSE, TRUE being that it was able to equip the item. +/datum/armament_entry/proc/equip_to_human(mob/living/carbon/human/equipping_human, obj/item/item_to_equip) + return equipping_human.equip_to_slot_if_possible(item_to_equip, slot_to_equip) + +/datum/armament_entry/proc/after_equip(turf/safe_drop_location, obj/item/item_to_equip) + return TRUE + +/datum/armament_entry/company_import + max_purchase = 0 + category_item_limit = 0 + cost = CARGO_CRATE_VALUE + /// Bitflag of the company + var/company_bitflag + /// If this requires a multitooled console to be visible + var/contraband = FALSE diff --git a/monkestation/code/modules/blueshift/turfs/ashwalker.dm b/monkestation/code/modules/blueshift/turfs/ashwalker.dm new file mode 100644 index 000000000000..80badac4598c --- /dev/null +++ b/monkestation/code/modules/blueshift/turfs/ashwalker.dm @@ -0,0 +1,66 @@ +/turf/closed/attackby(obj/item/attacking_item, mob/user, params) + if(istype(attacking_item, /obj/item/flashlight/flare/torch)) + return place_torch(attacking_item, user, params) + + return ..() + +// Try to place a torch on the wall such that we can only see it from one side +/turf/closed/proc/place_torch(obj/item/flashlight/flare/torch/torch_to_place, mob/user, params) + if(user.transferItemToLoc(torch_to_place, user.drop_location(), silent = FALSE)) + var/found_adjacent_turf = get_open_turf_in_dir(src, get_dir(src, user.loc)) + var/list/modifiers = params2list(params) + + // Center the icon where the user clicked. + if(LAZYACCESS(modifiers, ICON_X) && LAZYACCESS(modifiers, ICON_Y)) + //Clamp it so that the icon never moves more than 16 pixels in either direction (thus leaving the wall turf) + torch_to_place.pixel_x = clamp(text2num(LAZYACCESS(modifiers, ICON_X)) - 16, -(world.icon_size/3), world.icon_size/3) + torch_to_place.pixel_y = clamp(text2num(LAZYACCESS(modifiers, ICON_Y)) - 16, -(world.icon_size/3), world.icon_size/3) + + // Try to put the torch in the adjacent turf relative to the user. This way it's not visible from the other side of the wall + if(found_adjacent_turf) + torch_to_place.forceMove(found_adjacent_turf) + else + torch_to_place.forceMove(src) // no open turfs for some reason + return TRUE + + // The item itself is in the adjacent turf, so we need to shift the icon one tile over to put it in the wall + switch(get_dir(found_adjacent_turf, src)) + if(NORTH) + torch_to_place.pixel_y += world.icon_size + if(SOUTH) + torch_to_place.pixel_y -= world.icon_size + if(EAST) + torch_to_place.pixel_x += world.icon_size + if(NORTHEAST) + torch_to_place.pixel_y += world.icon_size + torch_to_place.pixel_x += world.icon_size + if(SOUTHEAST) + torch_to_place.pixel_y -= world.icon_size + torch_to_place.pixel_x += world.icon_size + if(WEST) + torch_to_place.pixel_x -= world.icon_size + if(NORTHWEST) + torch_to_place.pixel_y += world.icon_size + torch_to_place.pixel_x -= world.icon_size + if(SOUTHWEST) + torch_to_place.pixel_y -= world.icon_size + torch_to_place.pixel_x -= world.icon_size + return TRUE + +/turf/open/floor/stone/icemoon + initial_gas_mix = "ICEMOON_ATMOS" + +/turf/open/floor/wood/icemoon + initial_gas_mix = "ICEMOON_ATMOS" + +/turf/open/misc/sandy_dirt/icemoon + initial_gas_mix = "ICEMOON_ATMOS" + +/turf/open/floor/bamboo/lavaland + initial_gas_mix = LAVALAND_DEFAULT_ATMOS + +/turf/open/floor/stone/lavaland + initial_gas_mix = LAVALAND_DEFAULT_ATMOS + +/turf/open/floor/wood/lavaland + initial_gas_mix = LAVALAND_DEFAULT_ATMOS diff --git a/monkestation/code/modules/blueshift/turfs/colony.dm b/monkestation/code/modules/blueshift/turfs/colony.dm new file mode 100644 index 000000000000..174d620957af --- /dev/null +++ b/monkestation/code/modules/blueshift/turfs/colony.dm @@ -0,0 +1,170 @@ +// Plastic panel walls, how colony of you + +/turf/closed/wall/prefab_plastic + name = "prefabricated wall" + desc = "A conservatively built metal frame with plastic paneling covering a thin air-seal layer. \ + It's a little unnerving, but its better than nothing at all." + icon = 'monkestation/code/modules/blueshift/icons/prefab_wall.dmi' + icon_state = "prefab-0" + base_icon_state = "prefab" + can_engrave = FALSE + girder_type = null + hardness = 70 + slicing_duration = 5 SECONDS + sheet_type = /obj/item/stack/sheet/plastic_wall_panel + sheet_amount = 1 + +GLOBAL_LIST_INIT(plastic_wall_panel_recipes, list( + new/datum/stack_recipe("prefabricated wall", /turf/closed/wall/prefab_plastic, time = 3 SECONDS, one_per_turf = TRUE, on_solid_ground = TRUE, category = CAT_STRUCTURE), \ + new/datum/stack_recipe("prefabricated window", /obj/structure/window/fulltile/colony_fabricator, time = 1 SECONDS, one_per_turf = TRUE, on_solid_ground = TRUE, check_direction = TRUE, category = CAT_WINDOWS), \ + )) + +/obj/item/stack/sheet/plastic_wall_panel + name = "plastic panels" + singular_name = "plastic panel" + desc = "What better material to make the walls of your soon to be home out of than sheets of flimsy plastic? \ + Metal? What are you talking about, metal walls, in this economy? May also be used to make structures other \ + than walls." + icon = 'monkestation/code/modules/blueshift/icons/tiles_item.dmi' + icon_state = "sheet-plastic" + inhand_icon_state = "sheet-plastic" + mats_per_unit = list( + /datum/material/plastic = HALF_SHEET_MATERIAL_AMOUNT, + /datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, + ) + has_unique_girder = TRUE + material_type = /datum/material/plastic + merge_type = /obj/item/stack/sheet/plastic_wall_panel + walltype = /turf/closed/wall/prefab_plastic + +/obj/item/stack/sheet/plastic_wall_panel/examine(mob/user) + . = ..() + . += span_notice("You can build a prefabricated wall by right clicking on an empty floor.") + +/obj/item/stack/sheet/plastic_wall_panel/afterattack_secondary(atom/target, mob/user, proximity_flag, click_parameters) + if(!isopenturf(target)) + return SECONDARY_ATTACK_CONTINUE_CHAIN + var/turf/open/build_on = target + if(!user.Adjacent(build_on)) + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + if(isgroundlessturf(build_on)) + user.balloon_alert(user, "can't place it here!") + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + if(build_on.is_blocked_turf()) + user.balloon_alert(user, "something is blocking the tile!") + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + if(get_amount() < 1) + user.balloon_alert(user, "not enough material!") + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + if(!do_after(user, 3 SECONDS, build_on)) + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + if(build_on.is_blocked_turf()) + user.balloon_alert(user, "something is blocking the tile!") + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + if(!use(1)) + user.balloon_alert(user, "not enough material!") + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + build_on.PlaceOnTop(walltype, flags = CHANGETURF_INHERIT_AIR) + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + +/obj/item/stack/sheet/plastic_wall_panel/get_main_recipes() + . = ..() + . += GLOB.plastic_wall_panel_recipes + +/obj/item/stack/sheet/plastic_wall_panel/ten + amount = 10 + +/obj/item/stack/sheet/plastic_wall_panel/fifty + amount = 50 + +// Stacks of floor tiles + +/obj/item/stack/tile/catwalk_tile/colony_lathe + icon = 'monkestation/code/modules/blueshift/icons/tiles_item.dmi' + icon_state = "prefab_catwalk" + mats_per_unit = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT) + turf_type = /turf/open/floor/catwalk_floor/colony_fabricator + merge_type = /obj/item/stack/tile/catwalk_tile/colony_lathe + tile_reskin_types = null + +/obj/item/stack/tile/iron/colony + name = "prefab floor tiles" + singular_name = "prefab floor tile" + desc = "A stack of large floor tiles that are a common sight in frontier colonies and prefab buildings." + icon = 'monkestation/code/modules/blueshift/icons/tiles_item.dmi' + icon_state = "colony_grey" + turf_type = /turf/open/floor/iron/colony + merge_type = /obj/item/stack/tile/iron/colony + tile_reskin_types = list( + /obj/item/stack/tile/iron/colony, + /obj/item/stack/tile/iron/colony/texture, + /obj/item/stack/tile/iron/colony/bolts, + /obj/item/stack/tile/iron/colony/white, + /obj/item/stack/tile/iron/colony/white/texture, + /obj/item/stack/tile/iron/colony/white/bolts, + ) + +// Grated floor tile, for seeing wires under + +/turf/open/floor/catwalk_floor/colony_fabricator + icon = 'monkestation/code/modules/blueshift/icons/tiles.dmi' + icon_state = "prefab_above" + catwalk_type = "prefab" + baseturfs = /turf/open/floor/plating + floor_tile = /obj/item/stack/tile/catwalk_tile/colony_lathe + +// "Normal" floor tiles + +/obj/item/stack/tile/iron/colony/texture + icon_state = "colony_grey_texture" + turf_type = /turf/open/floor/iron/colony/texture + +/obj/item/stack/tile/iron/colony/bolts + icon_state = "colony_grey_bolts" + turf_type = /turf/open/floor/iron/colony/bolts + +/turf/open/floor/iron/colony + icon = 'monkestation/code/modules/blueshift/icons/tiles.dmi' + icon_state = "colony_grey" + base_icon_state = "colony_grey" + floor_tile = /obj/item/stack/tile/iron/colony + tiled_dirt = FALSE + +/turf/open/floor/iron/colony/texture + icon_state = "colony_grey_texture" + base_icon_state = "colony_grey_texture" + floor_tile = /obj/item/stack/tile/iron/colony/texture + +/turf/open/floor/iron/colony/bolts + icon_state = "colony_grey_bolts" + base_icon_state = "colony_grey_bolts" + floor_tile = /obj/item/stack/tile/iron/colony/bolts + +// White variants of the above tiles + +/obj/item/stack/tile/iron/colony/white + icon_state = "colony_white" + turf_type = /turf/open/floor/iron/colony/white + +/obj/item/stack/tile/iron/colony/white/texture + icon_state = "colony_white_texture" + turf_type = /turf/open/floor/iron/colony/white/texture + +/obj/item/stack/tile/iron/colony/white/bolts + icon_state = "colony_white_bolts" + turf_type = /turf/open/floor/iron/colony/white/bolts + +/turf/open/floor/iron/colony/white + icon_state = "colony_white" + base_icon_state = "colony_white" + floor_tile = /obj/item/stack/tile/iron/colony/white + +/turf/open/floor/iron/colony/white/texture + icon_state = "colony_white_texture" + base_icon_state = "colony_white_texture" + floor_tile = /obj/item/stack/tile/iron/colony/white/texture + +/turf/open/floor/iron/colony/white/bolts + icon_state = "colony_white_bolts" + base_icon_state = "colony_white_bolts" + floor_tile = /obj/item/stack/tile/iron/colony/white/bolts diff --git a/monkestation/code/modules/blueshift/turfs/evac.dm b/monkestation/code/modules/blueshift/turfs/evac.dm new file mode 100644 index 000000000000..77c833ab8f32 --- /dev/null +++ b/monkestation/code/modules/blueshift/turfs/evac.dm @@ -0,0 +1,344 @@ +/turf/open/floor/iron/shuttle/evac + name = "shuttle floor" + icon = 'monkestation/code/modules/blueshift/icons/evac_shuttle.dmi' + icon_state = "floor" + +/turf/open/floor/iron/shuttle/evac/airless + initial_gas_mix = AIRLESS_ATMOS + +/turf/open/floor/iron/shuttle/arrivals + name = "shuttle floor" + icon = 'monkestation/code/modules/blueshift/icons/wagon.dmi' + icon_state = "floor" + +/turf/open/floor/iron/shuttle/arrivals/airless + initial_gas_mix = AIRLESS_ATMOS + +/turf/open/floor/iron/white/textured_large/airless + initial_gas_mix = AIRLESS_ATMOS + +/turf/open/floor/catwalk_floor/iron/airless + initial_gas_mix = AIRLESS_ATMOS + +/turf/open/floor/catwalk_floor/iron_white/airless + initial_gas_mix = AIRLESS_ATMOS + +/turf/open/floor/catwalk_floor/iron_dark/airless + initial_gas_mix = AIRLESS_ATMOS + +/turf/open/floor/catwalk_floor/iron_dark/telecomms + initial_gas_mix = TCOMMS_ATMOS + +/turf/open/floor/catwalk_floor/flat_white/airless + initial_gas_mix = AIRLESS_ATMOS + +/turf/open/floor/catwalk_floor/titanium/Airless + initial_gas_mix = AIRLESS_ATMOS + +/turf/open/floor/catwalk_floor/iron_smooth/airless + initial_gas_mix = AIRLESS_ATMOS + +/* +/area/shuttle + dynamic_lighting = DYNAMIC_LIGHTING_DISABLED + */ + +/obj/docking_port/mobile/arrivals + +/turf/closed/wall/mineral/titanium/shuttle_wall + name = "shuttle wall" + desc = "A light-weight titanium wall used in shuttles." + icon = 'monkestation/code/modules/blueshift/icons/pod.dmi' + icon_state = "" + base_icon_state = "" + smoothing_flags = null + smoothing_groups = null + canSmoothWith = null + +/turf/closed/wall/mineral/titanium/shuttle_wall/AfterChange(flags, oldType) + . = ..() + // Manually add space underlay, in a way similar to turf_z_transparency, + // but we actually show the old content of the same z-level, as desired for shuttles + + var/turf/underturf_path + + // Grab previous turf icon + if(!ispath(oldType, /turf/closed/wall/mineral/titanium/shuttle_wall)) + underturf_path = oldType + else + // Else use whatever SSmapping tells us, like transparent open tiles do + underturf_path = SSmapping.level_trait(z, ZTRAIT_BASETURF) || /turf/open/space + + var/mutable_appearance/underlay_appearance = mutable_appearance( + initial(underturf_path.icon), + initial(underturf_path.icon_state), + offset_spokesman = src, + layer = TURF_LAYER - 0.02, + plane = initial(underturf_path.plane)) + underlay_appearance.appearance_flags = RESET_ALPHA | RESET_COLOR + underlays += underlay_appearance + +/turf/closed/wall/mineral/titanium/shuttle_wall/window + opacity = FALSE + +/* + * POD + */ + +/turf/closed/wall/mineral/titanium/shuttle_wall/pod + icon = 'monkestation/code/modules/blueshift/icons/pod.dmi' + +/turf/closed/wall/mineral/titanium/shuttle_wall/window/pod + icon = 'monkestation/code/modules/blueshift/icons/pod.dmi' + icon_state = "3,1" + +/* + * FERRY + */ + +/turf/closed/wall/mineral/titanium/shuttle_wall/ferry + icon = 'monkestation/code/modules/blueshift/icons/erokez.dmi' + icon_state = "18,2" + +/turf/closed/wall/mineral/titanium/shuttle_wall/window/ferry + icon = 'monkestation/code/modules/blueshift/icons/erokez.dmi' + icon_state = "18,2" + +/turf/open/floor/iron/shuttle/ferry + name = "shuttle floor" + icon = 'monkestation/code/modules/blueshift/icons/erokez.dmi' + icon_state = "floor1" + +/turf/open/floor/iron/shuttle/ferry/airless + initial_gas_mix = AIRLESS_ATMOS + +/* + * EVAC + */ + +/turf/closed/wall/mineral/titanium/shuttle_wall/evac + icon = 'monkestation/code/modules/blueshift/icons/evac_shuttle.dmi' + icon_state = "9,1" + +/turf/closed/wall/mineral/titanium/shuttle_wall/window/evac + icon = 'monkestation/code/modules/blueshift/icons/evac_shuttle.dmi' + icon_state = "9,1" + +/turf/open/floor/iron/shuttle/evac + name = "shuttle floor" + icon = 'monkestation/code/modules/blueshift/icons/evac_shuttle.dmi' + icon_state = "floor" + +/turf/open/floor/iron/shuttle/evac/airless + initial_gas_mix = AIRLESS_ATMOS + +/* + * ARRIVALS + */ + +/turf/closed/wall/mineral/titanium/shuttle_wall/arrivals + icon = 'monkestation/code/modules/blueshift/icons/wagon.dmi' + icon_state = "3,1" + +/turf/closed/wall/mineral/titanium/shuttle_wall/window/arrivals + icon = 'monkestation/code/modules/blueshift/icons/wagon.dmi' + icon_state = "3,1" + +/turf/open/floor/iron/shuttle/arrivals + name = "shuttle floor" + icon = 'monkestation/code/modules/blueshift/icons/wagon.dmi' + icon_state = "floor" + +/turf/open/floor/iron/shuttle/arrivals/airless + initial_gas_mix = AIRLESS_ATMOS + +/* + * CARGO + */ + +/turf/closed/wall/mineral/titanium/shuttle_wall/cargo + icon = 'monkestation/code/modules/blueshift/icons/cargo.dmi' + icon_state = "3,1" + +/turf/closed/wall/mineral/titanium/shuttle_wall/window/cargo + icon = 'monkestation/code/modules/blueshift/icons/cargo.dmi' + icon_state = "3,1" + +/turf/open/floor/iron/shuttle/cargo + name = "shuttle floor" + icon = 'monkestation/code/modules/blueshift/icons/cargo.dmi' + icon_state = "floor" + +/turf/open/floor/iron/shuttle/cargo/airless + initial_gas_mix = AIRLESS_ATMOS + +/* + * MINING + */ + +/turf/closed/wall/mineral/titanium/shuttle_wall/mining + icon = 'monkestation/code/modules/blueshift/icons/mining.dmi' + +/turf/closed/wall/mineral/titanium/shuttle_wall/window/mining + icon = 'monkestation/code/modules/blueshift/icons/mining.dmi' + +/turf/closed/wall/mineral/titanium/shuttle_wall/mining_large + icon = 'monkestation/code/modules/blueshift/icons/mining_large.dmi' + icon_state = "2,2" + dir = NORTH + +/turf/closed/wall/mineral/titanium/shuttle_wall/window/mining_large + icon = 'monkestation/code/modules/blueshift/icons/mining_large.dmi' + icon_state = "6,3" + dir = NORTH + +/turf/closed/wall/mineral/titanium/shuttle_wall/mining_labor + icon = 'monkestation/code/modules/blueshift/icons/mining_labor.dmi' + icon_state = "4,6" + dir = NORTH + +/turf/closed/wall/mineral/titanium/shuttle_wall/window/mining_labor + icon = 'monkestation/code/modules/blueshift/icons/mining_labor.dmi' + icon_state = "4,4" + dir = NORTH + +/* + * MINING/RND/EXPLORATION FLOORS + */ + +/turf/open/floor/iron/shuttle/exploration + name = "shuttle floor" + icon = 'monkestation/code/modules/blueshift/icons/exploration_floor.dmi' + icon_state = "oside" + +/turf/open/floor/iron/shuttle/exploration/uside + icon_state = "uside" + +/turf/open/floor/iron/shuttle/exploration/corner + icon_state = "corner" + +/turf/open/floor/iron/shuttle/exploration/side + icon_state = "side" + +/turf/open/floor/iron/shuttle/exploration/corner_invcorner + icon_state = "corner_icorner" + +/turf/open/floor/iron/shuttle/exploration/adjinvcorner + icon_state = "adj_icorner" + +/turf/open/floor/iron/shuttle/exploration/oppinvcorner + icon_state = "opp_icorner" + +/turf/open/floor/iron/shuttle/exploration/invertcorner + icon_state = "icorner" + +/turf/open/floor/iron/shuttle/exploration/doubleinvertcorner + icon_state = "double_icorner" + +/turf/open/floor/iron/shuttle/exploration/tripleinvertcorner + icon_state = "tri_icorner" + +/turf/open/floor/iron/shuttle/exploration/doubleside + icon_state = "double_side" + +/turf/open/floor/iron/shuttle/exploration/quadinvertcorner + icon_state = "4icorner" + +/turf/open/floor/iron/shuttle/exploration/doubleinvertcorner_side + icon_state = "double_icorner_side" + +/turf/open/floor/iron/shuttle/exploration/invertcorner_side + icon_state = "side_icorner" + +/turf/open/floor/iron/shuttle/exploration/invertcorner_side_flipped + icon_state = "side_icorner_f" + +/turf/open/floor/iron/shuttle/exploration/blanktile + icon_state = "blank" + +/turf/open/floor/iron/shuttle/exploration/flat + icon_state = "flat" + +/turf/open/floor/iron/shuttle/exploration/flat/airless + initial_gas_mix = AIRLESS_ATMOS + +/turf/open/floor/iron/shuttle/exploration/textured_flat + icon_state = "flattexture" + +/turf/open/floor/iron/shuttle/exploration/textured_flat/airless + initial_gas_mix = AIRLESS_ATMOS + +/turf/open/floor/iron/shuttle/exploration/equipmentrail1 + icon_state = "rail1" + +/turf/open/floor/iron/shuttle/exploration/equipmentrail2 + icon_state = "rail2" + +/turf/open/floor/iron/shuttle/exploration/equipmentrail3 + icon_state = "rail3" + +/turf/open/floor/iron/shuttle/exploration/hazard + icon_state = "hazard" + +/turf/open/floor/iron/shuttle/exploration/hazard/airless + initial_gas_mix = AIRLESS_ATMOS + +//Re-textures based off the survival pods, without the orange stripe. Now you can re-color them to paint your spaceships! +//(Do faded tones - DONT USE NEON BRIGHT COLORS, I /WILL/ CRY, and your ship will look like literal crap) +//Also make sure you properly var-edit everything hnngh + +/turf/closed/wall/mineral/titanium/spaceship + icon = 'monkestation/code/modules/blueshift/icons/unique/spaceships/shipwalls.dmi' + icon_state = "ship_walls-0" + base_icon_state = "ship_walls" + //sheet_type = /obj/item/stack/sheet/spaceship + smoothing_groups = SMOOTH_GROUP_SHIPWALLS + SMOOTH_GROUP_WALLS + SMOOTH_GROUP_CLOSED_TURFS + canSmoothWith = SMOOTH_GROUP_SHUTTLE_PARTS + SMOOTH_GROUP_AIRLOCK + SMOOTH_GROUP_SHIPWALLS + SMOOTH_GROUP_SURVIVAL_TITANIUM_POD + +/turf/closed/wall/mineral/titanium/spaceship/nodiagonal + icon_state = "map-shuttle_nd" + smoothing_flags = SMOOTH_BITMASK + +/turf/closed/wall/mineral/titanium/spaceship/overspace + icon_state = "map-overspace" + smoothing_flags = SMOOTH_BITMASK | SMOOTH_DIAGONAL_CORNERS + fixed_underlay = list("space" = TRUE) + +/turf/closed/wall/mineral/titanium/spaceship/interior/copyTurf(turf/T) + if(T.type != type) + T.ChangeTurf(type) + if(underlays.len) + T.underlays = underlays + if(T.icon_state != icon_state) + T.icon_state = icon_state + if(T.icon != icon) + T.icon = icon + if(color) + T.atom_colours = atom_colours.Copy() + T.update_atom_colour() + if(T.dir != dir) + T.setDir(dir) + T.transform = transform + return T + +/turf/closed/wall/mineral/titanium/spaceship/copyTurf(turf/T) + . = ..() + T.transform = transform + +/obj/structure/window/reinforced/shuttle/spaceship + name = "spaceship window" + desc = "A pressure-resistant spaceship window." + icon = 'monkestation/code/modules/blueshift/icons/unique/spaceships/shipwindows.dmi' + icon_state = "pod_window-0" + base_icon_state = "pod_window" + //glass_type = /obj/item/stack/sheet/spaceshipglass + smoothing_flags = SMOOTH_BITMASK + smoothing_groups = SMOOTH_GROUP_SHUTTLE_PARTS + SMOOTH_GROUP_WINDOW_FULLTILE_SHUTTLE + SMOOTH_GROUP_SHIPWALLS + canSmoothWith = SMOOTH_GROUP_WINDOW_FULLTILE_SHUTTLE + obj_flags = CAN_BE_HIT + +/obj/structure/window/reinforced/shuttle/spaceship/tinted + opacity = TRUE + +/obj/structure/window/reinforced/shuttle/spaceship/unanchored + anchored = FALSE diff --git a/monkestation/code/modules/blueshift/turfs/pool.dm b/monkestation/code/modules/blueshift/turfs/pool.dm new file mode 100644 index 000000000000..2cce7b4e26f0 --- /dev/null +++ b/monkestation/code/modules/blueshift/turfs/pool.dm @@ -0,0 +1,17 @@ +/turf/open/floor/lowered/iron/pool/cobble + name = "cobblestone pool floor" + icon = 'monkestation/code/modules/blueshift/icons/floors.dmi' + base_icon_state = "cobble" + icon_state = "cobble" + footstep = FOOTSTEP_FLOOR + barefootstep = FOOTSTEP_HARD_BAREFOOT + clawfootstep = FOOTSTEP_HARD_CLAW + heavyfootstep = FOOTSTEP_GENERIC_HEAVY + +/turf/open/floor/lowered/iron/pool/cobble/side + base_icon_state = "cobble_side" + icon_state = "cobble_side" + +/turf/open/floor/lowered/iron/pool/cobble/corner + base_icon_state = "cobble_corner" + icon_state = "cobble_corner" diff --git a/monkestation/code/modules/blueshift/turfs/submarine.dm b/monkestation/code/modules/blueshift/turfs/submarine.dm new file mode 100644 index 000000000000..5d56d59c2391 --- /dev/null +++ b/monkestation/code/modules/blueshift/turfs/submarine.dm @@ -0,0 +1,138 @@ +/turf/open/floor/iron/submarine + name = "submarine floor" + icon = 'monkestation/code/modules/blueshift/icons/turf/submarine.dmi' + base_icon_state = "submarine_floor" + icon_state = "submarine_floor" + liquid_height = -30 + turf_height = -30 + +/turf/open/floor/iron/submarine/rust_heretic_act() + return + +/turf/open/floor/iron/submarine_vents + name = "submarine floor" + icon = 'monkestation/code/modules/blueshift/icons/turf/submarine.dmi' + base_icon_state = "submarine_vents" + icon_state = "submarine_vents" + liquid_height = -30 + turf_height = -30 + +/turf/open/floor/iron/submarine_vents/rust_heretic_act() + return + +/turf/open/floor/iron/submarine_perf + name = "submarine floor" + icon = 'monkestation/code/modules/blueshift/icons/turf/submarine.dmi' + base_icon_state = "submarine_perf" + icon_state = "submarine_perf" + liquid_height = -30 + turf_height = -30 + +/turf/open/floor/iron/submarine_perf/airless + initial_gas_mix = AIRLESS_ATMOS + +/turf/open/floor/iron/submarine_perf/rust_heretic_act() + return + +//For now just a titanium wall. I'll make sprites for it later +/turf/closed/wall/mineral/titanium/submarine + name = "submarine wall" + + +/obj/effect/overlay/water + name = "water" + icon = 'monkestation/code/modules/blueshift/icons/unique/pool.dmi' + icon_state = "bottom" + density = FALSE + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + anchored = TRUE + layer = ABOVE_MOB_LAYER + +/obj/effect/overlay/water/top + icon_state = "top" + layer = BELOW_MOB_LAYER + plane = GAME_PLANE + +/** + * Planetside water, indestructible. + * + * Use this for indoors. + */ +/turf/open/water/overlay + name = "shallow water" + desc = "A natural body of shallow water." + icon = 'monkestation/code/modules/blueshift/icons/unique/pool.dmi' + icon_state = "rocky" + baseturfs = /turf/open/water/overlay + initial_gas_mix = OPENTURF_DEFAULT_ATMOS + planetary_atmos = FALSE + +/turf/open/water/overlay/Initialize(mapload) + . = ..() + + var/obj/effect/overlay/water/bottom = new() + SET_PLANE(bottom, PLANE_TO_TRUE(bottom.plane), src) + vis_contents += bottom + + var/obj/effect/overlay/water/top/top = new() + SET_PLANE(top, PLANE_TO_TRUE(top.plane), src) + vis_contents += top + +/turf/open/water/overlay/Entered(atom/movable/arrived) + ..() + wash_atom(arrived) + wash_atom(loc) + +/turf/open/water/overlay/proc/wash_atom(atom/nasty) + nasty.wash(CLEAN_RAD) // Clean radiation non-instantly + nasty.wash(CLEAN_WASH) + +/turf/open/water/overlay/hotspring/Entered(atom/movable/arrived) + ..() + if(istype(arrived, /mob/living)) + hotspring_mood(arrived) + +/turf/open/water/overlay/hotspring/proc/hotspring_mood(mob/living/swimmer) + swimmer.add_mood_event("hotspring", /datum/mood_event/hotspring) + +/datum/mood_event/hotspring + description = span_nicegreen("I recently had a paddle in some nice warm water! It was so refreshing!\n") + mood_change = 4 + timeout = 20 MINUTES + +/** + * Planetside water, indestructible. + * + * Use this for outdoors. It normalises to it's initial airmix over time! + */ +/turf/open/water/overlay/outdoors + baseturfs = /turf/open/water/overlay/outdoors + planetary_atmos = TRUE + +/** + * Hotpsrings! They give a positive mood event. + */ +/turf/open/water/overlay/hotspring + name = "hotspring" + desc = "A warm, steamy swimming pool." + icon_state = "hotspring_tile" + baseturfs = /turf/open/floor/plating + planetary_atmos = FALSE + +/turf/open/water/overlay/hotspring/indestructible + baseturfs = /turf/open/water/overlay/hotspring/indestructible + +/turf/open/water/overlay/hotspring/indestructible/outdoors + baseturfs = /turf/open/water/overlay/hotspring/indestructible/outdoors + planetary_atmos = TRUE + +/turf/open/water/overlay/hotspring/planet + name = "natural hotspring" + desc = "A natural body of water kept warm by geothermal activity." + icon_state = "hotspring" + baseturfs = /turf/open/water/overlay/hotspring/planet +// Use this for indoors. It has a roof! + +/turf/open/water/overlay/hotspring/planet/outdoors + baseturfs = /turf/open/water/overlay/hotspring/planet/outdoors + planetary_atmos = TRUE diff --git a/monkestation/code/modules/blueshift/uplinks/kits.dm b/monkestation/code/modules/blueshift/uplinks/kits.dm new file mode 100644 index 000000000000..7f9da04b7c6b --- /dev/null +++ b/monkestation/code/modules/blueshift/uplinks/kits.dm @@ -0,0 +1,41 @@ + +/datum/uplink_category/weapon_kits + name = "Weapon Kits (Recommended)" + weight = 30 + +/datum/uplink_item/weapon_kits + category = /datum/uplink_category/weapon_kits + surplus = 40 + purchasable_from = UPLINK_NUKE_OPS + +/datum/uplink_item/weapon_kits/low_cost/clandestine + name = "Ansem Pistol Case (Easy/Spare)" + desc = "A small, easily concealable handgun that uses 10mm auto rounds in 8-round magazines and is compatible \ + with suppressors. Comes with three spare magazines." + item = /obj/item/storage/toolbox/guncase/clandestine + +/datum/uplink_item/weapon_kits/high_cost/carbine + name = "M-90gl Carbine Case (Hard)" + desc = "A fully-loaded, specialized three-round burst carbine that fires .223 ammunition from a 30 round magazine \ + with a 40mm underbarrel grenade launcher. Use secondary-fire to fire the grenade launcher. Comes with two spare magazines \ + and a box of 40mm rubber slugs." + item = /obj/item/storage/toolbox/guncase/m90gl + +/datum/uplink_item/weapon_kits/medium_cost/rawketlawnchair + name = "Dardo-RE Rocket Propelled Grenade Launcher (Hard)" + desc = "A reusable rocket propelled grenade launcher preloaded with a low-yield 84mm HE round. \ + Guaranteed to send your target out with a bang or your money back! Comes with a bouquet of additional rockets!" + item = /obj/item/storage/toolbox/guncase/rocketlauncher + +/datum/uplink_item/weapon_kits/medium_cost/revolvercase + name = "Syndicate Revolver Case (Moderate)" + desc = "Waffle Co.'s modernized Syndicate revolver. Fires 7 brutal rounds of .357 Magnum. \ + A classic operative weapon, brought to the modern era. Comes with 3 additional speedloaders of .357." + item = /obj/item/storage/toolbox/guncase/revolver + +/datum/uplink_item/weapon_kits/medium_cost/cqc + name = "CQC Equipment Case (Very Hard)" + desc = "Contains a manual that instructs you in the ways of CQC, or Close Quarters Combat. Comes with a stealth implant, a pack of smokes and a snazzy bandana (use it with the hat stabilizers in your MODsuit)." + item = /obj/item/storage/toolbox/guncase/cqc + purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS + surplus = 0 diff --git a/monkestation/code/modules/blueshift/wounds/muscle_wounds.dm b/monkestation/code/modules/blueshift/wounds/muscle_wounds.dm new file mode 100644 index 000000000000..70df1ab6b097 --- /dev/null +++ b/monkestation/code/modules/blueshift/wounds/muscle_wounds.dm @@ -0,0 +1,230 @@ + +/* + Muscle wounds. There is a chance to roll a muscle wound instead of others while doing brute damage +*/ + +/datum/wound/muscle + name = "Muscle Wound" + sound_effect = 'sound/effects/wounds/blood1.ogg' + wound_flags = (ACCEPTS_GAUZE) + + processes = TRUE + /// How much do we need to regen. Will regen faster if we're splinted and or laying down + var/regen_ticks_needed + /// Our current counter for healing + var/regen_ticks_current = 0 + + can_scar = FALSE + +/datum/wound_pregen_data/muscle + abstract = TRUE + + viable_zones = list(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG) + required_limb_biostate = BIO_FLESH + + required_wounding_types = list(WOUND_BLUNT, WOUND_SLASH, WOUND_PIERCE) + match_all_wounding_types = FALSE + + wound_series = WOUND_SERIES_MUSCLE_DAMAGE + + weight = 3 // very low chance to replace a normal wound. this is about 4.5% + +/* + Overwriting of base procs +*/ +/datum/wound/muscle/wound_injury(datum/wound/old_wound = null, attack_direction) + var/obj/item/held_item = victim.get_item_for_held_index(limb.held_index || 0) + if(held_item && (disabling || prob(30 * severity))) + if(istype(held_item, /obj/item/offhand)) + held_item = victim.get_inactive_held_item() + + if(held_item && victim.dropItemToGround(held_item)) + victim.visible_message(span_danger("[victim] drops [held_item] in shock!"), \ + span_warning("The force on your [parse_zone(limb.body_zone)] causes you to drop [held_item]!"), vision_distance=COMBAT_MESSAGE_RANGE) + + return ..() + +/datum/wound/muscle/set_victim(new_victim) + if (victim) + UnregisterSignal(victim, COMSIG_HUMAN_EARLY_UNARMED_ATTACK) + + if (new_victim) + RegisterSignal(new_victim, COMSIG_HUMAN_EARLY_UNARMED_ATTACK, PROC_REF(attack_with_hurt_hand)) + + return ..() + +/datum/wound/muscle/remove_wound(ignore_limb, replaced) + limp_slowdown = 0 + return ..() + +/datum/wound/muscle/handle_process() + . = ..() + + regen_ticks_current++ + if(victim.body_position == LYING_DOWN) + if(prob(50)) + regen_ticks_current += 0.5 + if(victim.IsSleeping()) + regen_ticks_current += 0.5 + + if(limb.current_gauze) + regen_ticks_current += (1-limb.current_gauze.splint_factor) + + if(regen_ticks_current > regen_ticks_needed) + if(!victim || !limb) + qdel(src) + return + to_chat(victim, span_green("Your [parse_zone(limb.body_zone)] has regenerated its muscle!")) + remove_wound() + +/// If we're a human who's punching something with a broken arm, we might hurt ourselves doing so +/datum/wound/muscle/proc/attack_with_hurt_hand(mob/M, atom/target, proximity) + SIGNAL_HANDLER + + if(victim.get_active_hand() != limb || !(victim.istate & ISTATE_HARM) || !ismob(target) || severity <= WOUND_SEVERITY_MODERATE) + return + + // 15% of 30% chance to proc pain on hit + if(prob(severity * 15)) + // And you have a 70% or 50% chance to actually land the blow, respectively + if(prob(70 - 20 * severity)) + to_chat(victim, span_userdanger("The damaged muscle in your [parse_zone(limb.body_zone)] shoots with pain as you strike [target]!")) + limb.receive_damage(brute=rand(1,5)) + else + victim.visible_message(span_danger("[victim] weakly strikes [target] with [victim.p_their()] swollen [parse_zone(limb.body_zone)], recoiling from pain!"), \ + span_userdanger("You fail to strike [target] as the fracture in your [parse_zone(limb.body_zone)] lights up in unbearable pain!"), vision_distance=COMBAT_MESSAGE_RANGE) + INVOKE_ASYNC(victim, TYPE_PROC_REF(/mob, emote), "scream") + victim.Stun(0.5 SECONDS) + limb.receive_damage(brute=rand(3,7)) + return COMPONENT_CANCEL_ATTACK_CHAIN + +/datum/wound/muscle/get_examine_description(mob/user) + if(!limb.current_gauze) + return ..() + + var/list/msg = list() + if(!limb.current_gauze) + msg += "[victim.p_Their()] [parse_zone(limb.body_zone)] [examine_desc]" + else + var/absorption_capacity = "" + // how much life we have left in these bandages + switch(limb.current_gauze.absorption_capacity) + if(0 to 1.25) + absorption_capacity = "just barely" + if(1.25 to 2.75) + absorption_capacity = "loosely" + if(2.75 to 4) + absorption_capacity = "mostly" + if(4 to INFINITY) + absorption_capacity = "tightly" + + msg += "[victim.p_Their()] [parse_zone(limb.body_zone)] is [absorption_capacity] fastened with a [limb.current_gauze.name]!" + + return "[msg.Join()]" + +/// Moderate (Muscle Tear) +/datum/wound/muscle/moderate + name = "Muscle Tear" + desc = "Patient's muscle has torn, causing serious pain and reduced limb functionality." + treat_text = "A tight splint on the affected limb, as well as plenty of rest and sleep." + examine_desc = "appears unnaturallly red and swollen" + occur_text = "swells up, it's skin turning red" + severity = WOUND_SEVERITY_MODERATE + interaction_efficiency_penalty = 1.5 + limp_slowdown = 2 + limp_chance = 30 + threshold_penalty = 15 + status_effect_type = /datum/status_effect/wound/muscle/moderate + regen_ticks_needed = 90 + +/datum/wound_pregen_data/muscle/tear + abstract = FALSE + + wound_path_to_generate = /datum/wound/muscle/moderate + threshold_minimum = 35 + +/* + Severe (Ruptured Tendon) +*/ + +/datum/wound/muscle/severe + name = "Ruptured Tendon" + sound_effect = 'sound/effects/wounds/blood2.ogg' + desc = "Patient's tendon has been severed, causing significant pain and near uselessness of limb." + treat_text = "A tight splint on the affected limb, as well as plenty of rest and sleep." + examine_desc = "is limp and awkwardly twitching, skin swollen and red" + occur_text = "twists in pain and goes limp, it's tendon ruptured" + severity = WOUND_SEVERITY_SEVERE + interaction_efficiency_penalty = 2 + limp_slowdown = 5 + limp_chance = 40 + threshold_penalty = 35 + disabling = TRUE + status_effect_type = /datum/status_effect/wound/muscle/severe + regen_ticks_needed = 150 + +/datum/wound_pregen_data/muscle/tendon + abstract = FALSE + + wound_path_to_generate = /datum/wound/muscle/severe + threshold_minimum = 80 + +// muscle +/datum/status_effect/wound/muscle/moderate + id = "torn muscle" +/datum/status_effect/wound/muscle/severe + id = "ruptured tendon" + +/datum/status_effect/wound/muscle/robotic/moderate + id = "worn servo" + +/datum/status_effect/wound/muscle/robotic/severe + id = "severed hydraulic" + +/datum/wound/muscle/robotic + sound_effect = 'sound/effects/wounds/blood1.ogg' + +/datum/wound_pregen_data/muscle/robotic + required_limb_biostate = (BIO_METAL) + +/datum/wound/muscle/robotic/moderate + name = "Overworked Servo" + desc = "A servo has been overworked, and will operate with reduced efficiency until rested." + treat_text = "A tight splint on the affected limb, as well as plenty of rest and sleep." + examine_desc = "appears to be moving sluggishly" + occur_text = "jitters for a moment before moving sluggishly" + severity = WOUND_SEVERITY_MODERATE + interaction_efficiency_penalty = 1.5 + limp_slowdown = 2 + limp_chance = 30 + threshold_penalty = 15 + status_effect_type = /datum/status_effect/wound/muscle/robotic/moderate + regen_ticks_needed = 90 + +/datum/wound_pregen_data/muscle/robotic/servo + abstract = FALSE + wound_path_to_generate = /datum/wound/muscle/robotic/moderate + threshold_minimum = 35 + +/datum/wound/muscle/robotic/severe + name = "Exhausted Piston" + sound_effect = 'sound/effects/wounds/blood2.ogg' + desc = "An important hydraulic piston has been critically overused, resulting in total dysfunction until it recovers." + treat_text = "A tight splint on the affected limb, as well as plenty of rest and sleep." + examine_desc = "is stiffly limp, the extremities splayed out widely" + occur_text = "goes completely stiff, seeming to lock into position" + severity = WOUND_SEVERITY_SEVERE + interaction_efficiency_penalty = 2 + limp_slowdown = 5 + limp_chance = 40 + threshold_penalty = 35 + disabling = TRUE + status_effect_type = /datum/status_effect/wound/muscle/robotic/severe + regen_ticks_needed = 150 + +/datum/wound_pregen_data/muscle/robotic/hydraulic + abstract = FALSE + + wound_path_to_generate = /datum/wound/muscle/robotic/severe + threshold_minimum = 80 + diff --git a/monkestation/code/modules/cargo/packs/engineering.dm b/monkestation/code/modules/cargo/packs/engineering.dm index 204dc92b3d32..ec20454ac8a9 100644 --- a/monkestation/code/modules/cargo/packs/engineering.dm +++ b/monkestation/code/modules/cargo/packs/engineering.dm @@ -1,3 +1,12 @@ /datum/supply_pack/engineering/shield_sat + name = "Hard-Kill Meteor Protection Satellites" + desc = "Contains a 5 pack of HK-MPS capsules, which can be deployed into a full meteor defense satellite." + special = FALSE access_view = ACCESS_ENGINEERING contains = list(/obj/item/meteor_shield_capsule = 5) + +/datum/supply_pack/engineering/shield_sat_control + name = "Hard-Kill Meteor Protection System Control Board" + desc = "A control system for HK-MPS satellites." + special = FALSE + access_view = ACCESS_ENGINEERING diff --git a/monkestation/code/modules/cassettes/cassette_db/cassette_datum.dm b/monkestation/code/modules/cassettes/cassette_db/cassette_datum.dm index 09f2ccebe043..07efe51ea95e 100644 --- a/monkestation/code/modules/cassettes/cassette_db/cassette_datum.dm +++ b/monkestation/code/modules/cassettes/cassette_db/cassette_datum.dm @@ -11,6 +11,7 @@ var/list/song_names + var/cassette_id var/approved var/file_name @@ -34,6 +35,8 @@ cassette_author = data["author_name"] cassette_author_ckey = data["author_ckey"] + cassette_id = file_id + approved = data["approved"] file_name = "data/cassette_storage/[file_id].json" diff --git a/monkestation/code/modules/cassettes/machines/media/jukebox.dm b/monkestation/code/modules/cassettes/machines/media/jukebox.dm index 7c117a531ef3..a20cac70467e 100644 --- a/monkestation/code/modules/cassettes/machines/media/jukebox.dm +++ b/monkestation/code/modules/cassettes/machines/media/jukebox.dm @@ -238,6 +238,7 @@ obj_flags |= EMAGGED StopPlaying() visible_message("\The [src] makes a fizzling sound.") + set_hacked(1) update_icon() return 1 @@ -278,7 +279,7 @@ start_stop_song() updateDialog() -//Pre-hacked Jukebox, has the full sond list unlocked +//Pre-hacked Jukebox, has the full song list unlocked /obj/machinery/media/jukebox/hacked name = "DRM free space jukebox" desc = "Filled with songs both past and present! Unlocked for your convenience!" diff --git a/monkestation/code/modules/cassettes/machines/media/media_manager.dm b/monkestation/code/modules/cassettes/machines/media/media_manager.dm index 3b03bbb1d155..8e0bf91cf616 100644 --- a/monkestation/code/modules/cassettes/machines/media/media_manager.dm +++ b/monkestation/code/modules/cassettes/machines/media/media_manager.dm @@ -130,6 +130,8 @@ /datum/media_manager/proc/send_update() if(!(owner.prefs)) return + if(owner.prefs.channel_volume["[CHANNEL_JUKEBOX]"]) + volume *= (owner.prefs.channel_volume["[CHANNEL_JUKEBOX]"] * 0.01) if(!owner.prefs.read_preference(/datum/preference/toggle/hear_music)) owner << output(list2params(list("", (world.time - 0) / 10, volume * 1, 0)), "[WINDOW_ID]:SetMusic") diff --git a/monkestation/code/modules/client/preferences/species_features/lizard.dm b/monkestation/code/modules/client/preferences/species_features/lizard.dm new file mode 100644 index 000000000000..972a622f805c --- /dev/null +++ b/monkestation/code/modules/client/preferences/species_features/lizard.dm @@ -0,0 +1,20 @@ +/datum/preference/numeric/hiss_length + savefile_key = "hiss_length" + savefile_identifier = PREFERENCE_CHARACTER + category = PREFERENCE_CATEGORY_SECONDARY_FEATURES + priority = PREFERENCE_PRIORITY_NAMES + can_randomize = FALSE + minimum = 2 + maximum = 6 + +/datum/preference/numeric/hiss_length/create_default_value() + return 3 + +/datum/preference/numeric/hiss_length/is_accessible(datum/preferences/preferences) + return ..() && ispath(preferences.read_preference(/datum/preference/choiced/species), /datum/species/lizard) + +/datum/preference/numeric/hiss_length/apply_to_human(mob/living/carbon/human/target, value) + var/obj/item/organ/internal/tongue/lizard/tongue = target.get_organ_slot(ORGAN_SLOT_TONGUE) + if(!istype(tongue)) + return + tongue.draw_length = value diff --git a/monkestation/code/modules/clothing/shoes/clown.dm b/monkestation/code/modules/clothing/shoes/clown.dm index fc78311da038..2e7aa2f28a27 100644 --- a/monkestation/code/modules/clothing/shoes/clown.dm +++ b/monkestation/code/modules/clothing/shoes/clown.dm @@ -20,7 +20,7 @@ desc = "A court jester's shoes, updated with modern squeaking technology." icon_state = "jester_shoes" icon = 'icons/obj/clothing/shoes.dmi' - squeak_sound = list('monkestation/sound/effects/clown_jingle1.ogg'=1, 'monkestation/sound/effects/clown_jingle2.ogg') //jingHONK jinglHONK jHONKgle jiHONKgle + squeak_sound = list('monkestation/sound/effects/clown_jingle1.ogg'=1, 'monkestation/sound/effects/clown_jingle2.ogg'=1) //jingHONK jinglHONK jHONKgle jiHONKgle /obj/item/clothing/shoes/clown_shoes/harlequin_boots name = "harlequin boots" @@ -29,4 +29,4 @@ icon_state = "harlequin_boots" worn_icon = 'monkestation/icons/mob/clothing/feet.dmi' worn_icon_state = "harlequin_boots" - squeak_sound = list('monkestation/sound/effects/clown_jingle1.ogg'=1, 'monkestation/sound/effects/clown_jingle2.ogg') \ No newline at end of file + squeak_sound = list('monkestation/sound/effects/clown_jingle1.ogg'=1, 'monkestation/sound/effects/clown_jingle2.ogg'=1) diff --git a/monkestation/code/modules/clothing/spacesuits/hardsuits/_hardsuit.dm b/monkestation/code/modules/clothing/spacesuits/hardsuits/_hardsuit.dm index 60d134996607..cafeeeebb263 100644 --- a/monkestation/code/modules/clothing/spacesuits/hardsuits/_hardsuit.dm +++ b/monkestation/code/modules/clothing/spacesuits/hardsuits/_hardsuit.dm @@ -1,5 +1,6 @@ /// How much damage you take from an emp when wearing a hardsuit #define HARDSUIT_EMP_BURN 2 // a very orange number +#define THERMAL_REGULATOR_COST 6 // this runs out fast if 18 /obj/item/clothing/suit/space/hardsuit name = "hardsuit" @@ -12,7 +13,7 @@ armor_type = /datum/armor/hardsuit allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/t_scanner, /obj/item/construction/rcd, /obj/item/pipe_dispenser) siemens_coefficient = 0 - actions_types = list(/datum/action/item_action/toggle_helmet) + actions_types = list(/datum/action/item_action/toggle_helmet, /datum/action/item_action/toggle_spacesuit) var/obj/item/clothing/head/helmet/space/hardsuit/helmet var/helmettype = /obj/item/clothing/head/helmet/space/hardsuit @@ -80,8 +81,12 @@ else RemoveHelmet() -/obj/item/clothing/suit/space/hardsuit/ui_action_click() - ToggleHelmet() +/// implements button for thermoregulamators, checks if helmet or regulator is being toggled +/obj/item/clothing/suit/space/hardsuit/ui_action_click(mob/user, actiontype) + if(istype(actiontype, /datum/action/item_action/toggle_spacesuit)) + toggle_spacesuit(user) + else if(istype(actiontype, /datum/action/item_action/toggle_helmet)) + ToggleHelmet() /obj/item/clothing/suit/space/hardsuit/attack_self(mob/user) user.changeNext_move(CLICK_CD_MELEE) diff --git a/monkestation/code/modules/clothing/under/costume.dm b/monkestation/code/modules/clothing/under/costume.dm index 2f639f36189e..e45fbaf9caf8 100644 --- a/monkestation/code/modules/clothing/under/costume.dm +++ b/monkestation/code/modules/clothing/under/costume.dm @@ -120,18 +120,6 @@ desc = "4:00, wallow in self-pity. 4:30, stare into the abyss. 5:00, solve world hunger, tell no one. 5:30, jazzercize; 6:30, dinner with me. I can't cancel that again. 7:00, wrestle with my self-loathing. I'm booked. Of course, if I bump the loathing to 9, I could still be done in time to lay in bed, stare at the ceiling and slip slowly into madness." icon_state = "christmas_green" -/obj/item/clothing/under/costume/skyrat/christmas/croptop - name = "sexy christmas costume" - desc = "About 550 years since the release of Mariah Carey's \"All I Want For Christmas is You\", society has yet to properly recover from its repercussions. Some still keep a gun as their christmas mantlepiece, just in case she's heard singing on their rooftop late in the night..." - icon_state = "christmas_crop" - body_parts_covered = CHEST|GROIN - female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY - -/obj/item/clothing/under/costume/skyrat/christmas/croptop/green - name = "sexy green christmas costume" - desc = "Stupid. Ugly. Out of date. If I can't find something nice to wear I'm not going." - icon_state = "christmas_crop_green" - /* BUNNY SUITS */ diff --git a/monkestation/code/modules/cryopods/persistance/base_persistance.dm b/monkestation/code/modules/cryopods/persistance/base_persistance.dm index 29fd4c5f15d0..46d5c5ae18a4 100644 --- a/monkestation/code/modules/cryopods/persistance/base_persistance.dm +++ b/monkestation/code/modules/cryopods/persistance/base_persistance.dm @@ -6,7 +6,7 @@ GLOBAL_LIST_INIT(modular_persistence_ignored_vars, list( "tgui_shared_states", "gc_destroyed", "_active_timers", - "status_traits", + "_status_traits", "_signal_procs", "cached_ref", "weak_reference", @@ -69,7 +69,10 @@ GLOBAL_LIST_INIT(modular_persistence_ignored_vars, list( if(!owner.owner) CRASH("Tried to load modular persistence on a brain with no owner! How did this happen?! (\ref[brain], [brain.brainmob?.ckey], [brain])") -/datum/modular_persistence/Destroy(force, ...) + var/mob/living/carbon/human/human = owner.owner + human.load_nif_data(src) + +/datum/modular_persistence/Destroy(force) owner = null return ..() @@ -77,6 +80,9 @@ GLOBAL_LIST_INIT(modular_persistence_ignored_vars, list( /datum/modular_persistence/proc/serialize_contents_to_list() var/list/returned_list = list() + var/mob/living/carbon/human/human = owner.owner + human.save_nif_data(src) + for(var/var_name in vars) if(var_name in GLOB.modular_persistence_ignored_vars) continue diff --git a/monkestation/code/modules/donator/code/item/effects.dm b/monkestation/code/modules/donator/code/item/effects.dm index 6e1bd7217aab..66e3aa92b79b 100644 --- a/monkestation/code/modules/donator/code/item/effects.dm +++ b/monkestation/code/modules/donator/code/item/effects.dm @@ -10,7 +10,8 @@ animal.mind_initialize() var/datum/mind/granters_mind = granter.mind granters_mind.transfer_to(animal) - animal.AddComponent() + animal.AddElement(/datum/element/dextrous) + animal.AddComponent(/datum/component/basic_inhands, y_offset = -6) qdel(granter) . = ..() diff --git a/monkestation/code/modules/ghost_critters/client_addons.dm b/monkestation/code/modules/ghost_critters/client_addons.dm index 17146332b272..780f61f33db9 100644 --- a/monkestation/code/modules/ghost_critters/client_addons.dm +++ b/monkestation/code/modules/ghost_critters/client_addons.dm @@ -56,7 +56,8 @@ if(!mob.mind) mob.mind = new /datum/mind(key) - mob.mind.transfer_to(created_mob, TRUE) + var/mob/dead/observer/observe = mob + created_mob.key = observe.key init_verbs() diff --git a/monkestation/code/modules/ghost_players/arena/arena_assets/water.dm b/monkestation/code/modules/ghost_players/arena/arena_assets/water.dm index 965caa2e0c75..b418375d1ddd 100644 --- a/monkestation/code/modules/ghost_players/arena/arena_assets/water.dm +++ b/monkestation/code/modules/ghost_players/arena/arena_assets/water.dm @@ -1,4 +1,4 @@ -/obj/effect/overlay/water +/obj/effect/overlay/water_arena name = "water" desc = "Looks wet." icon = 'monkestation/code/modules/ghost_players/arena/arena_assets/icons/water_overlay.dmi' diff --git a/monkestation/code/modules/holomaps/icons/8x8.dmi b/monkestation/code/modules/holomaps/icons/8x8.dmi index ac8687dc1fce..8e98b1dbe56b 100644 Binary files a/monkestation/code/modules/holomaps/icons/8x8.dmi and b/monkestation/code/modules/holomaps/icons/8x8.dmi differ diff --git a/monkestation/code/modules/holomaps/machinery.dm b/monkestation/code/modules/holomaps/machinery.dm index 428df2f60440..46e435c5d4db 100644 --- a/monkestation/code/modules/holomaps/machinery.dm +++ b/monkestation/code/modules/holomaps/machinery.dm @@ -291,6 +291,20 @@ if(length(fire_alarms)) extra_overlays["Fire Alarms"] = list("icon" = image('monkestation/code/modules/holomaps/icons/8x8.dmi', icon_state = "fire_marker"), "markers" = fire_alarms) + if(length(GLOB.meteor_shielded_turfs)) + var/icon/canvas = icon(HOLOMAP_ICON, "blank") + var/z_has_coverage = FALSE + for(var/turf/open/shielded_turf as anything in GLOB.meteor_shielded_turfs) + if(shielded_turf?.z != current_z_level) + continue + var/offset_x = HOLOMAP_CENTER_X + shielded_turf.x + var/offset_y = HOLOMAP_CENTER_Y + shielded_turf.y + var/color = ((offset_x ^ offset_y) % 2 == 0) ? HOLOMAP_AREACOLOR_SHIELD_1 : HOLOMAP_AREACOLOR_SHIELD_2 + canvas.DrawBox(color, offset_x, offset_y) + z_has_coverage = TRUE + if(z_has_coverage) + extra_overlays["Meteor Shield"] = list("icon" = image('monkestation/code/modules/holomaps/icons/8x8.dmi', icon_state = "meteor_shield"), "markers" = list(image(canvas))) + /* var/list/air_alarms = list() for(var/obj/machinery/airalarm/air_alarm in GLOB.machines) diff --git a/monkestation/code/modules/jobs/job_types/security_assistant.dm b/monkestation/code/modules/jobs/job_types/security_assistant.dm index 57824251bdea..f2fba272f9d8 100644 --- a/monkestation/code/modules/jobs/job_types/security_assistant.dm +++ b/monkestation/code/modules/jobs/job_types/security_assistant.dm @@ -1,6 +1,6 @@ /datum/job/security_assistant title = JOB_SECURITY_ASSISTANT - description = "Fine people for trivial things. Be an glorified hall monitor." + description = "Fine people for trivial things. Be a glorified hall monitor." auto_deadmin_role_flags = DEADMIN_POSITION_SECURITY department_head = list(JOB_HEAD_OF_SECURITY) faction = FACTION_STATION diff --git a/monkestation/code/modules/mech_comp/objects/teleporter.dm b/monkestation/code/modules/mech_comp/objects/teleporter.dm index 307bac142aaa..bcf50af2be3b 100644 --- a/monkestation/code/modules/mech_comp/objects/teleporter.dm +++ b/monkestation/code/modules/mech_comp/objects/teleporter.dm @@ -59,7 +59,7 @@ GLOBAL_LIST_INIT(live_teleporters, list()) continue if(!live_teleporter.anchored) continue - if((live_teleporter.teleID != teleID) || (live_teleporter.z != src.z) || live_teleporter.send_only) + if((live_teleporter.teleID != teleID) || live_teleporter.send_only || !are_zs_connected(src, live_teleporter)) continue if(!COOLDOWN_FINISHED(live_teleporter, teleporter_cooldown)) continue diff --git a/monkestation/code/modules/meteor_shield/meteor_shield.dm b/monkestation/code/modules/meteor_shield/meteor_shield.dm new file mode 100644 index 000000000000..2bee0d716a63 --- /dev/null +++ b/monkestation/code/modules/meteor_shield/meteor_shield.dm @@ -0,0 +1,114 @@ +GLOBAL_LIST_EMPTY_TYPED(meteor_shield_sats, /obj/machinery/satellite/meteor_shield) +GLOBAL_VAR_INIT(total_meteors_zapped, 0) + +/obj/machinery/satellite/meteor_shield + name = "meteor defense satellite" + mode = "HK-MPS" + kill_range = 16 + /// Whether the meteor sat checks for line of sight to determine if it can intercept a meteor. + var/check_sight = TRUE + /// The proximity monitor used to detect meteors entering the shield's range. + var/datum/proximity_monitor/advanced/meteor_shield/monitor + /// A counter for how many meteors this specific satellite has zapped. + var/meteors_zapped = 0 + /// A list of "proxy" objects used for multi-z coverage. + var/list/obj/effect/abstract/meteor_shield_proxy/proxies = list() + +/obj/machinery/satellite/meteor_shield/Initialize(mapload) + . = ..() + AddElement(/datum/element/repackable, /obj/item/flatpacked_machine/generic, 5 SECONDS, TRUE, TRUE) + + GLOB.meteor_shield_sats += src + RegisterSignal(src, COMSIG_MOVABLE_SPACEMOVE, PROC_REF(on_space_move)) // so these fuckers don't drift off into space when you're trying to position them + setup_proximity() + setup_proxies() + register_context() + +/obj/machinery/satellite/meteor_shield/Destroy() + GLOB.meteor_shield_sats -= src + proxies = null + QDEL_NULL(monitor) + return ..() + +/obj/machinery/satellite/meteor_shield/examine(mob/user) + . = ..() + . += span_info("It has stopped [meteors_zapped] meteors so far.") + . += span_info("Overall, all meteor defense satellites have stopped a combined [GLOB.total_meteors_zapped] meteors this shift.") + +/obj/machinery/satellite/meteor_shield/proc/on_space_move(datum/source) + SIGNAL_HANDLER + return COMSIG_MOVABLE_STOP_SPACEMOVE + +/obj/machinery/satellite/meteor_shield/vv_edit_var(vname, vval) + . = ..() + if(.) + switch(vname) + if(NAMEOF(src, kill_range)) + monitor?.set_range(kill_range) + for(var/proxy_z in proxies) + var/obj/effect/abstract/meteor_shield_proxy/proxy = proxies[proxy_z] + proxy.monitor.set_range(kill_range) + if(NAMEOF(src, active)) + set_anchored(active) + setup_proximity() + +/obj/machinery/satellite/meteor_shield/add_context(atom/source, list/context, obj/item/held_item, mob/user) + context[SCREENTIP_CONTEXT_LMB] = active ? "Deactivate" : "Activate" + return CONTEXTUAL_SCREENTIP_SET + +/obj/machinery/satellite/meteor_shield/toggle(mob/user) + . = ..() + if(.) + user.log_message("[active ? "" : "de"]activated [src] at [AREACOORD(src)]", LOG_GAME) + setup_proximity() + +/obj/machinery/satellite/meteor_shield/emag_act(mob/user, obj/item/card/emag/emag_card) + . = ..() + user.log_message("emagged [src] at [AREACOORD(src)]", LOG_GAME) + setup_proximity() + +/obj/machinery/satellite/meteor_shield/on_changed_z_level(turf/old_turf, turf/new_turf, same_z_layer, notify_contents) + . = ..() + setup_proxies() + +/obj/machinery/satellite/meteor_shield/proc/setup_proximity() + if((obj_flags & EMAGGED) || !active) + if(!QDELETED(monitor)) + QDEL_NULL(monitor) + else + if(QDELETED(monitor)) + monitor = new(src, kill_range) + +/obj/machinery/satellite/meteor_shield/proc/setup_proxies() + for(var/stacked_z in SSmapping.get_connected_levels(get_turf(src))) + setup_proxy_for_z(stacked_z) + +/obj/machinery/satellite/meteor_shield/proc/setup_proxy_for_z(target_z) + if(target_z == z) + return + // don't setup a proxy if there already is one. + if(!QDELETED(proxies["[target_z]"])) + return + var/turf/our_loc = get_turf(src) + var/turf/target_loc = locate(our_loc.x, our_loc.y, target_z) + if(QDELETED(target_loc)) + return + var/obj/effect/abstract/meteor_shield_proxy/new_proxy = new(target_loc, src) + proxies["[target_z]"] = new_proxy + +/obj/machinery/satellite/meteor_shield/piercing + check_sight = FALSE + +/obj/machinery/satellite/meteor_shield/proc/change_meteor_chance(mod = 1) + var/static/list/meteor_event_typecache + if(!meteor_event_typecache) + meteor_event_typecache = typecacheof(list( + /datum/round_event_control/meteor_wave, + /datum/round_event_control/sandstorm, + /datum/round_event_control/space_dust, + /datum/round_event_control/stray_meteor + )) + var/list/all_events = SSevents.control | SSgamemode.control + for(var/datum/round_event_control/event as anything in all_events) + if(is_type_in_typecache(event, meteor_event_typecache)) + event.weight *= mod diff --git a/monkestation/code/modules/meteor_shield/meteor_shield_capsule.dm b/monkestation/code/modules/meteor_shield/meteor_shield_capsule.dm new file mode 100644 index 000000000000..be8c7b317d58 --- /dev/null +++ b/monkestation/code/modules/meteor_shield/meteor_shield_capsule.dm @@ -0,0 +1,10 @@ +/obj/item/meteor_shield_capsule + name = "meteor defense satellite capsule" + desc = "A bluespace capsule which a single unit of meteor defense satellite is compressed within. If you activate this capsule, a meteor shield satellite will pop out. You still need to install these." + icon_state = "capsule" + icon = 'icons/obj/mining.dmi' + w_class = WEIGHT_CLASS_TINY + +/obj/item/meteor_shield_capsule/Initialize(mapload) + . = ..() + AddComponent(/datum/component/deployable, 5 SECONDS, /obj/machinery/satellite/meteor_shield, delete_on_use = TRUE) diff --git a/monkestation/code/modules/meteor_shield/meteor_shield_coverage.dm b/monkestation/code/modules/meteor_shield/meteor_shield_coverage.dm new file mode 100644 index 000000000000..f86bf04c6f70 --- /dev/null +++ b/monkestation/code/modules/meteor_shield/meteor_shield_coverage.dm @@ -0,0 +1,40 @@ +#define TRAIT_METEOR_SHIELD_FIELD_MONITORED "meteor_shield_field_monitored" + +GLOBAL_LIST_EMPTY_TYPED(meteor_shielded_turfs, /turf/open) + +/// Stupid element to handle tracking which turfs are in a meteor sat's range, +/// without messing up in situations like with overlapping ranges. +/datum/element/meteor_shield_coverage + // Detach whenever destroyed, so we can ensure there's no hanging references to the turf in GLOB.meteor_shielded_turfs + element_flags = ELEMENT_DETACH_ON_HOST_DESTROY + /// Signals to attach to all turfs. + var/static/list/attach_signals = list( + SIGNAL_ADDTRAIT(TRAIT_COVERED_BY_METEOR_SHIELD), + SIGNAL_REMOVETRAIT(TRAIT_COVERED_BY_METEOR_SHIELD) + ) + +/datum/element/meteor_shield_coverage/Attach(turf/open/target) + . = ..() + if(!isgroundlessturf(target)) + return ELEMENT_INCOMPATIBLE + // We use a trait to prevent duplicate assignments. + if(!HAS_TRAIT(target, TRAIT_METEOR_SHIELD_FIELD_MONITORED)) + ADD_TRAIT(target, TRAIT_METEOR_SHIELD_FIELD_MONITORED, ELEMENT_TRAIT(type)) + RegisterSignals(target, attach_signals, PROC_REF(update_global_shield_list)) + GLOB.meteor_shielded_turfs += target + +/datum/element/meteor_shield_coverage/Detach(turf/open/target) + REMOVE_TRAIT(target, TRAIT_METEOR_SHIELD_FIELD_MONITORED, ELEMENT_TRAIT(type)) + UnregisterSignal(target, attach_signals) + GLOB.meteor_shielded_turfs -= target + return ..() + +/datum/element/meteor_shield_coverage/proc/update_global_shield_list(turf/open/source) + SIGNAL_HANDLER + if(!isgroundlessturf(source) || !HAS_TRAIT(source, TRAIT_COVERED_BY_METEOR_SHIELD)) + source.RemoveElement(/datum/element/meteor_shield_coverage) + +/proc/get_meteor_sat_coverage() as num + return length(GLOB.meteor_shielded_turfs) + +#undef TRAIT_METEOR_SHIELD_FIELD_MONITORED diff --git a/monkestation/code/modules/meteor_shield/meteor_shield_field.dm b/monkestation/code/modules/meteor_shield/meteor_shield_field.dm new file mode 100644 index 000000000000..60c1cea4650a --- /dev/null +++ b/monkestation/code/modules/meteor_shield/meteor_shield_field.dm @@ -0,0 +1,33 @@ +GLOBAL_LIST_EMPTY_TYPED(meteor_shield_fields, /datum/proximity_monitor/advanced/meteor_shield) + +/// A proximity monitor field that marks openspace turfs within as being covered by a meteor shield. +/datum/proximity_monitor/advanced/meteor_shield + edge_is_a_field = TRUE + var/obj/machinery/satellite/meteor_shield/proxied_host + +/datum/proximity_monitor/advanced/meteor_shield/New(atom/_host, range, _ignore_if_not_on_turf, proxied_host) + GLOB.meteor_shield_fields += src + if(proxied_host) + src.proxied_host = proxied_host + return ..() + +/datum/proximity_monitor/advanced/meteor_shield/Destroy() + GLOB.meteor_shield_fields -= src + proxied_host = null + return ..() + +/datum/proximity_monitor/advanced/meteor_shield/setup_field_turf(turf/open/target) + if(!isgroundlessturf(target)) + return + var/obj/machinery/satellite/meteor_shield/host_sat = proxied_host || host + if(host_sat.check_los(get_turf(host_sat), target)) + ADD_TRAIT(target, TRAIT_COVERED_BY_METEOR_SHIELD, REF(src)) + target.AddElement(/datum/element/meteor_shield_coverage) + +/datum/proximity_monitor/advanced/meteor_shield/cleanup_field_turf(turf/target) + REMOVE_TRAIT(target, TRAIT_COVERED_BY_METEOR_SHIELD, REF(src)) + +/datum/proximity_monitor/advanced/meteor_shield/set_range(range, force_rebuild) + . = ..() + if(.) + recalculate_field(full_recalc = TRUE) diff --git a/monkestation/code/modules/meteor_shield/meteor_shield_proxy.dm b/monkestation/code/modules/meteor_shield/meteor_shield_proxy.dm new file mode 100644 index 000000000000..111913bd58cf --- /dev/null +++ b/monkestation/code/modules/meteor_shield/meteor_shield_proxy.dm @@ -0,0 +1,43 @@ +/obj/effect/abstract/meteor_shield_proxy + invisibility = INVISIBILITY_ABSTRACT + /// The meteor shield sat this is proxying - any HasProximity calls will be forwarded to it. + var/obj/machinery/satellite/meteor_shield/parent + /// Our proximity monitor. + var/datum/proximity_monitor/advanced/meteor_shield/monitor + +/obj/effect/abstract/meteor_shield_proxy/Initialize(mapload, obj/machinery/satellite/meteor_shield/parent) + . = ..() + if(QDELETED(parent)) + return INITIALIZE_HINT_QDEL + src.parent = parent + src.monitor = new(src, parent.kill_range, TRUE, parent) + RegisterSignal(parent, COMSIG_MOVABLE_MOVED, PROC_REF(on_parent_deleted)) + RegisterSignal(parent, COMSIG_MOVABLE_Z_CHANGED, PROC_REF(on_parent_z_changed)) + RegisterSignal(parent, COMSIG_QDELETING, PROC_REF(on_parent_moved)) + +/obj/effect/abstract/meteor_shield_proxy/Destroy(force) + QDEL_NULL(monitor) + if(!QDELETED(parent)) + if(parent.proxies["[z]"] == src) + parent.proxies -= "[z]" + UnregisterSignal(parent, list(COMSIG_MOVABLE_MOVED, COMSIG_MOVABLE_Z_CHANGED, COMSIG_QDELETING)) + parent = null + return ..() + +/obj/effect/abstract/meteor_shield_proxy/HasProximity(obj/effect/meteor/meteor) + parent.HasProximity(meteor) + +/obj/effect/abstract/meteor_shield_proxy/proc/on_parent_moved() + SIGNAL_HANDLER + var/turf/parent_loc = get_turf(parent) + var/turf/new_loc = locate(parent_loc.x, parent_loc.y, z) + forceMove(new_loc) + +/obj/effect/abstract/meteor_shield_proxy/proc/on_parent_z_changed() + SIGNAL_HANDLER + if(!are_zs_connected(parent, src) || z == parent.z) + qdel(src) + +/obj/effect/abstract/meteor_shield_proxy/proc/on_parent_deleted() + SIGNAL_HANDLER + qdel(src) diff --git a/monkestation/code/modules/meteor_shield/meteor_shield_zap.dm b/monkestation/code/modules/meteor_shield/meteor_shield_zap.dm new file mode 100644 index 000000000000..d20698487642 --- /dev/null +++ b/monkestation/code/modules/meteor_shield/meteor_shield_zap.dm @@ -0,0 +1,46 @@ +/obj/machinery/satellite/meteor_shield/HasProximity(obj/effect/meteor/meteor) + if(!active || !istype(meteor) || QDELING(meteor) || (obj_flags & EMAGGED)) + return + var/turf/our_turf = get_turf(src) + var/turf/meteor_turf = get_turf(meteor) + if(!check_los(our_turf, meteor_turf)) + return + our_turf.Beam(meteor_turf, icon_state = "sat_beam", time = 5) + if(meteor.shield_defense(src)) + new /obj/effect/temp_visual/explosion(meteor_turf) + INVOKE_ASYNC(src, PROC_REF(play_zap_sound), meteor_turf) + SSblackbox.record_feedback("tally", "meteors_zapped", 1, "[meteor.type]") + meteors_zapped++ + GLOB.total_meteors_zapped++ + meteor.make_debris() + qdel(meteor) + +/obj/machinery/satellite/meteor_shield/proc/check_los(turf/source, turf/target) as num + // if something goes fucky wucky, let's just assume line-of-sight by default + . = TRUE + if(!check_sight) + return TRUE + for(var/turf/segment as anything in get_line(source, target)) + if(QDELETED(segment)) + continue + if(isclosedturf(segment) && !istransparentturf(segment)) + return FALSE + +/obj/machinery/satellite/meteor_shield/proc/play_zap_sound(turf/epicenter) + if(QDELETED(epicenter)) + return + var/static/near_distance + if(isnull(near_distance)) + var/list/world_view = getviewsize(world.view) + near_distance = max(world_view[1], world_view[2]) + SSexplosions.shake_the_room( + epicenter, + near_distance, + far_distance = near_distance * 8, + quake_factor = 0, + echo_factor = 0, + creaking = FALSE, + near_sound = sound('sound/weapons/lasercannonfire.ogg'), + far_sound = sound('sound/weapons/marauder.ogg'), + pressure_affected = FALSE + ) diff --git a/monkestation/code/modules/mob/living/carbon/emote.dm b/monkestation/code/modules/mob/living/carbon/emote.dm index b30a2f4dfa66..c5d020a39791 100644 --- a/monkestation/code/modules/mob/living/carbon/emote.dm +++ b/monkestation/code/modules/mob/living/carbon/emote.dm @@ -64,7 +64,7 @@ clumsy_check = FALSE trigger_guard = TRIGGER_GUARD_ALLOW_ALL gun_flags = NONE - mag_type = /obj/item/ammo_box/magazine/fingergun_emote + accepted_magazine_type = /obj/item/ammo_box/magazine/fingergun_emote spawnwithmagazine = TRUE internal_magazine = TRUE bolt_type = BOLT_TYPE_NO_BOLT diff --git a/monkestation/code/modules/mob/living/carbon/human/species_type/goblin.dm b/monkestation/code/modules/mob/living/carbon/human/species_type/goblin.dm index 4cdd6547bbea..0fa326c6d101 100644 --- a/monkestation/code/modules/mob/living/carbon/human/species_type/goblin.dm +++ b/monkestation/code/modules/mob/living/carbon/human/species_type/goblin.dm @@ -15,7 +15,6 @@ TRAIT_QUICK_BUILD, TRAIT_EASILY_WOUNDED, TRAIT_NIGHT_VISION, - TRAIT_FREERUNNING // TRAIT_pickpocketing? ) inherent_biotypes = MOB_ORGANIC | MOB_HUMANOID @@ -27,7 +26,7 @@ liked_food = GORE | MEAT | GROSS species_language_holder = /datum/language_holder/goblin maxhealthmod = 0.75 - stunmod = 0.75 + stunmod = 1.2 speedmod = -0.25 payday_modifier = 1 bodypart_overrides = list( diff --git a/monkestation/code/modules/modular_guns/ballistics/parts/mags/_base_mag.dm b/monkestation/code/modules/modular_guns/ballistics/parts/mags/_base_mag.dm index 1c609f2e7c30..de66e824ccf9 100644 --- a/monkestation/code/modules/modular_guns/ballistics/parts/mags/_base_mag.dm +++ b/monkestation/code/modules/modular_guns/ballistics/parts/mags/_base_mag.dm @@ -2,8 +2,8 @@ name = "generic mag" attachment_type = ATTACHMENT_TYPE_MAG - var/mag_type = /obj/item/ammo_box/magazine/m10mm + var/accepted_magazine_type = /obj/item/ammo_box/magazine/m10mm /obj/item/attachment/mag/unique_attachment_effects(obj/item/gun/ballistic/modular/modular) - modular.mag_type = mag_type + modular.accepted_magazine_type = accepted_magazine_type modular.mag_icon_state = icon_state diff --git a/monkestation/code/modules/modular_guns/ballistics/parts/mags/mk58/standard_mags.dm b/monkestation/code/modules/modular_guns/ballistics/parts/mags/mk58/standard_mags.dm index 21d472e1a356..e49e404216b2 100644 --- a/monkestation/code/modules/modular_guns/ballistics/parts/mags/mk58/standard_mags.dm +++ b/monkestation/code/modules/modular_guns/ballistics/parts/mags/mk58/standard_mags.dm @@ -10,7 +10,7 @@ icon_state = "mag_4.35" attachment_icon_state = "well_pistol" - mag_type = /obj/item/ammo_box/magazine/m10mm + accepted_magazine_type = /obj/item/ammo_box/magazine/m10mm fire_multipler = 1.2 stability = 1.1 @@ -21,7 +21,7 @@ icon_state = "mag_2.35" attachment_icon_state = "well_pistol" - mag_type = /obj/item/ammo_box/magazine/m50 + accepted_magazine_type = /obj/item/ammo_box/magazine/m50 fire_multipler = 0.5 noise_multiplier = 1.3 diff --git a/monkestation/code/modules/projectiles/guns/ballistic/ryanecorp_whispering_jester.dm b/monkestation/code/modules/projectiles/guns/ballistic/ryanecorp_whispering_jester.dm index 55233b340b4f..59b8cafa4557 100644 --- a/monkestation/code/modules/projectiles/guns/ballistic/ryanecorp_whispering_jester.dm +++ b/monkestation/code/modules/projectiles/guns/ballistic/ryanecorp_whispering_jester.dm @@ -8,7 +8,7 @@ inhand_icon_state = "jester" w_class = WEIGHT_CLASS_NORMAL slot_flags = ITEM_SLOT_BELT - mag_type = /obj/item/ammo_box/magazine/whispering_jester_45_magazine + accepted_magazine_type = /obj/item/ammo_box/magazine/whispering_jester_45_magazine can_bayonet = FALSE can_suppress = FALSE can_unsuppress = FALSE diff --git a/monkestation/code/modules/reagents/containers.dm b/monkestation/code/modules/reagents/containers.dm index 5c710869d488..924ace5822da 100644 --- a/monkestation/code/modules/reagents/containers.dm +++ b/monkestation/code/modules/reagents/containers.dm @@ -1,9 +1,4 @@ -/obj/item/reagent_containers/proc/reasses_processing() +/obj/item/reagent_containers/proc/reagent_processing() for(var/datum/reagent/listed_reagent in reagents.reagent_list) if(listed_reagent.requires_process) - return TRUE - -/obj/item/reagent_containers/process(seconds_per_tick) - . = ..() - for(var/datum/reagent/listed_reagent in reagents.reagent_list) - listed_reagent.on_container_process(src) + listed_reagent.reagent_fire(src) diff --git a/monkestation/code/modules/reagents/fun/austrialium.dm b/monkestation/code/modules/reagents/fun/austrialium.dm index db7440187eb3..7e86612fc10d 100644 --- a/monkestation/code/modules/reagents/fun/austrialium.dm +++ b/monkestation/code/modules/reagents/fun/austrialium.dm @@ -18,9 +18,9 @@ m180.Turn(180) animate(L, transform = m180, time = 3) -/datum/reagent/australium/on_container_process(obj/item/reagent_containers/host) +/datum/reagent/australium/reagent_fire(obj/item/reagent_containers/host) for(var/datum/reagent/listed_reagent in host.reagents.reagent_list) - if(listed_reagent.inverse_chem != /datum/reagent/inverse) + if(!(isnull(listed_reagent.inverse_chem) || listed_reagent.inverse_chem == /datum/reagent/inverse )) var/listed_volume = listed_reagent.volume var/datum/reagent/inverse_reagent = listed_reagent.inverse_chem host.reagents.remove_reagent(listed_reagent.type, listed_volume) diff --git a/monkestation/code/modules/reagents/reagents.dm b/monkestation/code/modules/reagents/reagents.dm index 6ae647d41fde..5351b75f9e0b 100644 --- a/monkestation/code/modules/reagents/reagents.dm +++ b/monkestation/code/modules/reagents/reagents.dm @@ -3,5 +3,5 @@ var/requires_process = FALSE ///called whenever a reagent container processes its internal chemicals -/datum/reagent/proc/on_container_process(obj/item/reagent_containers/host) +/datum/reagent/proc/reagent_fire(obj/item/reagent_containers/host) return diff --git a/monkestation/code/modules/security/code/weapons/paco.dm b/monkestation/code/modules/security/code/weapons/paco.dm index bf1e64e6ea1d..4c35d122d24d 100644 --- a/monkestation/code/modules/security/code/weapons/paco.dm +++ b/monkestation/code/modules/security/code/weapons/paco.dm @@ -7,7 +7,7 @@ lefthand_file = 'monkestation/code/modules/security/icons/guns_lefthand.dmi' righthand_file = 'monkestation/code/modules/security/icons/guns_righthand.dmi' w_class = WEIGHT_CLASS_NORMAL - mag_type = /obj/item/ammo_box/magazine/m35 + accepted_magazine_type = /obj/item/ammo_box/magazine/m35 can_suppress = FALSE fire_sound = 'monkestation/code/modules/security/sound/paco/paco_shot.ogg' rack_sound = 'monkestation/code/modules/security/sound/paco/paco_rack.ogg' diff --git a/monkestation/code/modules/smithing/anvil/recipe/thermal_conductor.dm b/monkestation/code/modules/smithing/anvil/recipe/thermal_conductor.dm index 6fe3b852e55a..42e438b02d2d 100644 --- a/monkestation/code/modules/smithing/anvil/recipe/thermal_conductor.dm +++ b/monkestation/code/modules/smithing/anvil/recipe/thermal_conductor.dm @@ -3,3 +3,9 @@ output = /obj/item/smithed_part/thermal_semi_conductor difficulty = 2 total_notes = 50 + +/datum/anvil_recipe/forging_plate + name = "Forged Plate" + output = /obj/item/smithed_part/forged_plate + difficulty = 2 + total_notes = 50 diff --git a/monkestation/code/modules/station_goals/meteor_shield.dm b/monkestation/code/modules/station_goals/meteor_shield.dm deleted file mode 100644 index b235ce907eaa..000000000000 --- a/monkestation/code/modules/station_goals/meteor_shield.dm +++ /dev/null @@ -1,159 +0,0 @@ -GLOBAL_LIST_EMPTY(meteor_shield_sats) - -/obj/machinery/satellite/meteor_shield - /// Whether the meteor sat checks for line of sight to determine if it can intercept a meteor. - var/check_sight = TRUE - /// The proximity monitor used to detect meteors entering the shield's range. - var/datum/proximity_monitor/meteor_monitor - /// A counter for how many meteors this specific satellite has zapped. - var/meteors_zapped = 0 - -/obj/machinery/satellite/meteor_shield/Initialize(mapload) - . = ..() - GLOB.meteor_shield_sats += src - RegisterSignal(src, COMSIG_MOVABLE_SPACEMOVE, PROC_REF(on_space_move)) // so these fuckers don't drift off into space when you're trying to position them - setup_proximity() - register_context() - -/obj/machinery/satellite/meteor_shield/examine(mob/user) - . = ..() - . += span_info("It has stopped [meteors_zapped] meteors so far.") - -/obj/machinery/satellite/meteor_shield/proc/on_space_move(datum/source) - SIGNAL_HANDLER - return COMSIG_MOVABLE_STOP_SPACEMOVE - -/obj/machinery/satellite/meteor_shield/Destroy() - GLOB.meteor_shield_sats -= src - if(meteor_monitor) - QDEL_NULL(meteor_monitor) - return ..() - -/obj/machinery/satellite/meteor_shield/vv_edit_var(vname, vval) - . = ..() - if(.) - switch(vname) - if(NAMEOF(src, kill_range)) - meteor_monitor?.set_range(kill_range) - if(NAMEOF(src, active)) - setup_proximity() - -/obj/machinery/satellite/meteor_shield/add_context(atom/source, list/context, obj/item/held_item, mob/user) - context[SCREENTIP_CONTEXT_LMB] = active ? "Deactivate" : "Activate" - if(!active) - context[SCREENTIP_CONTEXT_RMB] = "Pick up" - return CONTEXTUAL_SCREENTIP_SET - -/obj/machinery/satellite/meteor_shield/HasProximity(obj/effect/meteor/meteor) - if(!active || !istype(meteor) || QDELING(meteor) || (obj_flags & EMAGGED)) - return - var/turf/our_turf = get_turf(src) - var/turf/meteor_turf = get_turf(meteor) - if(!check_los(our_turf, meteor_turf)) - return - our_turf.Beam(meteor_turf, icon_state = "sat_beam", time = 5) - if(meteor.shield_defense(src)) - new /obj/effect/temp_visual/explosion(meteor_turf) - INVOKE_ASYNC(src, PROC_REF(play_zap_sound), meteor_turf) - SSblackbox.record_feedback("tally", "meteors_zapped", 1, "[meteor.type]") - meteors_zapped++ - qdel(meteor) - -/obj/machinery/satellite/meteor_shield/proc/check_los(turf/source, turf/target) as num - // if something goes fucky wucky, let's just assume line-of-sight by default - if(!check_sight) - return TRUE - for(var/turf/segment as anything in get_line(source, target)) - if(QDELETED(segment)) - continue - if(isclosedturf(segment) && !istransparentturf(segment)) - return FALSE - return TRUE - -/obj/machinery/satellite/meteor_shield/proc/play_zap_sound(turf/epicenter) - if(QDELETED(epicenter)) - return - var/static/near_distance - if(isnull(near_distance)) - var/list/world_view = getviewsize(world.view) - near_distance = max(world_view[1], world_view[2]) - SSexplosions.shake_the_room( - epicenter, - near_distance, - far_distance = near_distance * 3, - quake_factor = 0, - echo_factor = 0, - creaking = FALSE, - near_sound = sound('sound/weapons/lasercannonfire.ogg'), - far_sound = sound('sound/weapons/marauder.ogg') - ) - -/obj/machinery/satellite/meteor_shield/toggle(user) - . = ..() - setup_proximity() - -/obj/machinery/satellite/meteor_shield/emag_act(mob/user, obj/item/card/emag/emag_card) - . = ..() - setup_proximity() - -/obj/machinery/satellite/meteor_shield/proc/setup_proximity() - if((obj_flags & EMAGGED) || !active) - if(!QDELETED(meteor_monitor)) - QDEL_NULL(meteor_monitor) - else - if(QDELETED(meteor_monitor)) - meteor_monitor = new(src, kill_range) - -/obj/machinery/satellite/meteor_shield/piercing - check_sight = FALSE - -/proc/get_meteor_sat_coverage() as num - var/list/covered_tiles = list() - for(var/obj/machinery/satellite/meteor_shield/sat as anything in GLOB.meteor_shield_sats) - if(QDELETED(sat) || !sat.active || !is_station_level(sat.z) || (sat.obj_flags & EMAGGED)) - continue - if(sat.check_sight) - covered_tiles |= view(sat.kill_range, sat) - else - covered_tiles |= range(sat.kill_range, sat) - return length(covered_tiles) - - -/obj/machinery/satellite/meteor_shield/proc/change_meteor_chance(mod = 1) - var/static/list/meteor_event_typecache - if(!meteor_event_typecache) - meteor_event_typecache = typecacheof(list( - /datum/round_event_control/meteor_wave, - /datum/round_event_control/sandstorm, - /datum/round_event_control/space_dust, - /datum/round_event_control/stray_meteor - )) - var/list/all_events = SSevents.control | SSgamemode.control - for(var/datum/round_event_control/event as anything in all_events) - if(is_type_in_typecache(event, meteor_event_typecache)) - event.weight *= mod - -/obj/machinery/satellite/meteor_shield/attack_hand_secondary(mob/living/user, list/modifiers) - . = ..() - if(. == SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN || !can_interact(user)) - return - . = SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN - if(active) - balloon_alert(user, "can't pick up while active!") - return - balloon_alert(user, "picking up satellite...") - if(do_after(user, 5 SECONDS, src)) - var/obj/item/meteor_shield_capsule/capsule = new(drop_location()) - user.put_in_hands(capsule) - qdel(src) - -/obj/item/meteor_shield_capsule - name = "meteor shield satellite capsule" - desc = "A bluespace capsule which a single unit of meteor shield satellite is compressed within. If you activate this capsule, a meteor shield satellite will pop out. You still need to install these." - icon_state = "capsule" - icon = 'icons/obj/mining.dmi' - w_class = WEIGHT_CLASS_TINY - -/obj/item/meteor_shield_capsule/Initialize(mapload) - . = ..() - AddComponent(/datum/component/deployable, 5 SECONDS, /obj/machinery/satellite/meteor_shield, delete_on_use = TRUE) diff --git a/monkestation/code/modules/store/atm/_atm.dm b/monkestation/code/modules/store/atm/_atm.dm index afb175491c93..73ae049fad53 100644 --- a/monkestation/code/modules/store/atm/_atm.dm +++ b/monkestation/code/modules/store/atm/_atm.dm @@ -154,10 +154,12 @@ var/obj/item/stack/monkecoin/coin_stack = new(living_user.loc) coin_stack.amount = withdraw_amount + coin_stack.update_desc() living_user.put_in_hands(coin_stack) + /obj/machinery/atm/attacked_by(obj/item/attacking_item, mob/living/user) . = ..() if(do_after(user, 1 SECONDS, src)) @@ -222,8 +224,8 @@ /obj/item/stack/monkecoin name = "monkecoin" singular_name = "monkecoin" - icon = 'monkestation/icons/obj/economy.dmi' - icon_state = "coins" + icon = 'monkestation/icons/obj/monkecoin.dmi' + icon_state = "monkecoin" amount = 1 max_amount = INFINITY throwforce = 0 @@ -231,19 +233,20 @@ throw_range = 2 w_class = WEIGHT_CLASS_TINY full_w_class = WEIGHT_CLASS_TINY - resistance_flags = FLAMMABLE + resistance_flags = FIRE_PROOF | ACID_PROOF merge_type = /obj/item/stack/monkecoin var/value = 100 -/obj/item/stack/monkecoin/Initialize(mapload, new_amount, merge = TRUE, list/mat_override=null, mat_amt=1) +/obj/item/stack/monkecoin/Initialize(mapload, new_amount, merge = FALSE, list/mat_override=null, mat_amt=1) . = ..() update_desc() /obj/item/stack/monkecoin/update_desc() . = ..() var/total_worth = get_item_credit_value() - desc = "It's worth [total_worth] credit[(total_worth > 1) ? "s" : null] in total.\n" - desc += "Their are [amount] monkecoins in this stack." + desc = "Monkecoin, it's the backbone of the economy. " + desc += "It's worth [total_worth] credit[(total_worth > 1) ? "s" : null] in total." + update_icon_state() /obj/item/stack/monkecoin/get_item_credit_value() return (amount*value) @@ -258,12 +261,23 @@ /obj/item/stack/monkecoin/update_icon_state() . = ..() + var/coinpress = copytext("[amount]",1,2) switch(amount) - if(1) - icon_state = initial(icon_state) - if(2 to 9) - icon_state = "[initial(icon_state)]_2" - if(10 to 24) - icon_state = "[initial(icon_state)]_3" - if(25 to INFINITY) - icon_state = "[initial(icon_state)]_4" + if(1 to 9) + icon_state = "[initial(icon_state)][coinpress]" + if(10 to 99) + icon_state = "[initial(icon_state)][coinpress]0" + if(100 to 999) + icon_state = "[initial(icon_state)][coinpress]00" + if(1000 to 8999) + icon_state = "[initial(icon_state)][coinpress]000" + if(9000 to INFINITY) + icon_state = "[initial(icon_state)]9000" + +/obj/item/stack/monkecoin/suicide_act(mob/living/carbon/user) + user.visible_message(span_suicide("[user] begins to gouge [user.p_their()] eyes with the [src]! It looks like [user.p_theyre()] trying to commit suicide!")) + user.emote("scream") + if(do_after(user, 5 SECONDS, src)) + return BRUTELOSS + else + user.visible_message(span_suicide("[user] puts the [src] down away from [user.p_their()] eyes.")) diff --git a/monkestation/code/modules/storytellers/converted_events/_base_event.dm b/monkestation/code/modules/storytellers/converted_events/_base_event.dm index da44046b07fa..595c9d7ad75d 100644 --- a/monkestation/code/modules/storytellers/converted_events/_base_event.dm +++ b/monkestation/code/modules/storytellers/converted_events/_base_event.dm @@ -90,11 +90,20 @@ var/job_check = 0 var/list/enemy_players = list() - for(var/enemy in enemy_roles) - var/datum/job/enemy_job = SSjob.GetJob(enemy) - if(enemy_job && SSjob.assigned_players_by_job[enemy_job.type]) - job_check += length(SSjob.assigned_players_by_job[enemy_job.type]) - enemy_players += SSjob.assigned_players_by_job[enemy_job.type] + if(roundstart) + for(var/enemy in enemy_roles) + var/datum/job/enemy_job = SSjob.GetJob(enemy) + if(enemy_job && SSjob.assigned_players_by_job[enemy_job.type]) + job_check += length(SSjob.assigned_players_by_job[enemy_job.type]) + enemy_players += SSjob.assigned_players_by_job[enemy_job.type] + + else + for(var/mob/M in GLOB.alive_player_list) + if (M.stat == DEAD) + continue // Dead players cannot count as opponents + if (M.mind && (M.mind.assigned_role.title in enemy_roles)) + job_check++ // Checking for "enemies" (such as sec officers). To be counters, they must either not be candidates to that + enemy_players += M if(job_check >= required_enemies) return return_players ? enemy_players : TRUE diff --git a/monkestation/code/modules/storytellers/converted_events/solo/bloodsuckers.dm b/monkestation/code/modules/storytellers/converted_events/solo/bloodsuckers.dm index cf80b78d5757..31fa22fc383b 100644 --- a/monkestation/code/modules/storytellers/converted_events/solo/bloodsuckers.dm +++ b/monkestation/code/modules/storytellers/converted_events/solo/bloodsuckers.dm @@ -20,7 +20,7 @@ JOB_CYBORG, ) min_players = 20 - weight = 5 + weight = 10 maximum_antags = 2 /datum/round_event_control/antagonist/solo/bloodsucker/roundstart diff --git a/monkestation/code/modules/storytellers/converted_events/solo/brother.dm b/monkestation/code/modules/storytellers/converted_events/solo/brother.dm index 4c4d44511ce2..82decee034ee 100644 --- a/monkestation/code/modules/storytellers/converted_events/solo/brother.dm +++ b/monkestation/code/modules/storytellers/converted_events/solo/brother.dm @@ -30,7 +30,7 @@ ) required_enemies = 1 // BBs should be less common/abundant than normal traitors, albeit not overly so. - weight = 8 + weight = 16 maximum_antags = 2 denominator = 30 cost = 0.45 // so it doesn't eat up threat for a relatively low-threat antag diff --git a/monkestation/code/modules/storytellers/converted_events/solo/changeling.dm b/monkestation/code/modules/storytellers/converted_events/solo/changeling.dm index 5d9344bca90c..ec0f4d5cae34 100644 --- a/monkestation/code/modules/storytellers/converted_events/solo/changeling.dm +++ b/monkestation/code/modules/storytellers/converted_events/solo/changeling.dm @@ -20,7 +20,7 @@ JOB_CYBORG, ) min_players = 20 - weight = 3 + weight = 9 shared_occurence_type = SHARED_CHANGELING /datum/round_event_control/antagonist/solo/changeling/roundstart diff --git a/monkestation/code/modules/storytellers/converted_events/solo/heretic.dm b/monkestation/code/modules/storytellers/converted_events/solo/heretic.dm index e0a303497e8c..63e495b808c2 100644 --- a/monkestation/code/modules/storytellers/converted_events/solo/heretic.dm +++ b/monkestation/code/modules/storytellers/converted_events/solo/heretic.dm @@ -20,7 +20,7 @@ JOB_AI, JOB_CYBORG, ) - weight = 4 + weight = 6 min_players = 20 /datum/round_event_control/antagonist/solo/heretic/roundstart diff --git a/monkestation/code/modules/storytellers/converted_events/solo/malf.dm b/monkestation/code/modules/storytellers/converted_events/solo/malf.dm index f17bdf0fd362..713bd92de057 100644 --- a/monkestation/code/modules/storytellers/converted_events/solo/malf.dm +++ b/monkestation/code/modules/storytellers/converted_events/solo/malf.dm @@ -17,7 +17,7 @@ maximum_antags = 1 exclusive_roles = list(JOB_AI) required_enemies = 4 - weight = 3 + weight = 6 min_players = 35 max_occurrences = 1 diff --git a/monkestation/code/modules/storytellers/converted_events/solo/nuclear_operative.dm b/monkestation/code/modules/storytellers/converted_events/solo/nuclear_operative.dm index 1cfe249205ec..a6ca5701b713 100644 --- a/monkestation/code/modules/storytellers/converted_events/solo/nuclear_operative.dm +++ b/monkestation/code/modules/storytellers/converted_events/solo/nuclear_operative.dm @@ -58,20 +58,30 @@ if(!most_experienced) most_experienced = get_most_experienced(setup_minds, required_role) - antag_mind.set_assigned_role(SSjob.GetJobType(/datum/job/nuclear_operative)) - antag_mind.special_role = ROLE_NUCLEAR_OPERATIVE if(!most_experienced) most_experienced = antag_mind if(!set_leader) set_leader = TRUE + if(antag_mind != most_experienced) + var/mob/living/leader_mob = most_experienced.current + SSjob.FreeRole(most_experienced.assigned_role.title) + var/list/leader_items = leader_mob.get_equipped_items(TRUE) + leader_mob.unequip_everything() + for(var/obj/item/item as anything in leader_items) + qdel(item) + most_experienced.set_assigned_role(SSjob.GetJobType(/datum/job/nuclear_operative)) + most_experienced.special_role = ROLE_NUCLEAR_OPERATIVE var/datum/antagonist/nukeop/leader/leader_antag_datum = most_experienced.add_antag_datum(/datum/antagonist/nukeop/leader) nuke_team = leader_antag_datum.nuke_team if(antag_mind == most_experienced) return + antag_mind.set_assigned_role(SSjob.GetJobType(/datum/job/nuclear_operative)) + antag_mind.special_role = ROLE_NUCLEAR_OPERATIVE + var/datum/antagonist/nukeop/new_op = new antag_datum() antag_mind.add_antag_datum(new_op) diff --git a/monkestation/code/modules/storytellers/converted_events/solo/obsessed.dm b/monkestation/code/modules/storytellers/converted_events/solo/obsessed.dm index e4355a91f51a..bfb3b8294c2e 100644 --- a/monkestation/code/modules/storytellers/converted_events/solo/obsessed.dm +++ b/monkestation/code/modules/storytellers/converted_events/solo/obsessed.dm @@ -17,7 +17,7 @@ JOB_CYBORG, ROLE_POSITRONIC_BRAIN, ) - weight = 4 + weight = 6 max_occurrences = 3 /datum/round_event_control/antagonist/solo/obsessed/midround diff --git a/monkestation/code/modules/storytellers/converted_events/solo/traitor.dm b/monkestation/code/modules/storytellers/converted_events/solo/traitor.dm index 2709f0307626..ecc377c9f386 100644 --- a/monkestation/code/modules/storytellers/converted_events/solo/traitor.dm +++ b/monkestation/code/modules/storytellers/converted_events/solo/traitor.dm @@ -19,6 +19,7 @@ JOB_AI, JOB_CYBORG, ) + weight = 15 /datum/round_event_control/antagonist/solo/traitor/roundstart name = "Traitors" diff --git a/monkestation/code/modules/virology/disease/_disease.dm b/monkestation/code/modules/virology/disease/_disease.dm index 9578d3cdae78..7c484d9b9993 100644 --- a/monkestation/code/modules/virology/disease/_disease.dm +++ b/monkestation/code/modules/virology/disease/_disease.dm @@ -373,7 +373,7 @@ GLOBAL_LIST_INIT(virusDB, list()) //Searing body temperatures cure diseases, on top of killing you. if(mob.bodytemperature > max_bodytemperature) - cure(mob,1) + cure(target = mob) return if(!(infectable_biotypes & mob.mob_biotypes)) @@ -384,7 +384,7 @@ GLOBAL_LIST_INIT(virusDB, list()) mob.immune_system.NaturalImmune() if(!mob.immune_system.CanInfect(src)) - cure(mob) + cure(target = mob) return //Freezing body temperatures halt diseases completely @@ -418,7 +418,7 @@ GLOBAL_LIST_INIT(virusDB, list()) if ((enemy_pathogen.form in can_kill) && strength > enemy_pathogen.strength) log += "
[ROUND_TIME()] destroyed enemy [enemy_pathogen.form] #[enemy_pathogen.uniqueID]-[enemy_pathogen.subID] ([strength] > [enemy_pathogen.strength])" - enemy_pathogen.cure(mob) + enemy_pathogen.cure(target = mob) // This makes it so that only ever gets affected by the equivalent of one virus so antags don't just stack a bunch if(starved) @@ -474,20 +474,14 @@ GLOBAL_LIST_INIT(virusDB, list()) L += D.Copy() return L -/datum/disease/advanced/cure(mob/living/carbon/mob, condition=0) - /* TODO - switch (condition) - if (0) - log_debug("[form] [uniqueID]-[subID] in [key_name(mob)] has been cured, and is being removed from their body.") - if (1) - log_debug("[form] [uniqueID]-[subID] in [key_name(mob)] has died from extreme temperature inside their host, and is being removed from their body.") - if (2) - log_debug("[form] [uniqueID]-[subID] in [key_name(mob)] has been wiped out by an immunity overload.") - */ - for(var/datum/symptom/e in symptoms) - e.disable_effect(mob, src) - mob.diseases -= src - logger.Log(LOG_CATEGORY_VIRUS, "[mob.name] was cured of virus [real_name()] at [loc_name(mob.loc)]", list("disease_data" = admin_details(), "location" = loc_name(mob.loc))) +/datum/disease/advanced/cure(add_resistance = TRUE, mob/living/carbon/target) + target = target || affected_mob || usr + if(!istype(affected_mob) || QDELING(affected_mob)) + return + for(var/datum/symptom/symptom in symptoms) + symptom.disable_effect(target, src) + target.diseases -= src + logger.Log(LOG_CATEGORY_VIRUS, "[affected_mob.name] was cured of virus [real_name()] at [loc_name(affected_mob.loc)]", list("disease_data" = admin_details(), "location" = loc_name(affected_mob.loc))) //--Plague Stuff-- /* var/datum/faction/plague_mice/plague = find_active_faction_by_type(/datum/faction/plague_mice) @@ -495,13 +489,25 @@ GLOBAL_LIST_INIT(virusDB, list()) plague.update_hud_icons() */ //---------------- - var/list/V = filter_disease_by_spread(mob.diseases, required = DISEASE_SPREAD_CONTACT_SKIN) - if (V && V.len <= 0) - GLOB.infected_contact_mobs -= mob - if (mob.pathogen) - for (var/mob/living/L in GLOB.science_goggles_wearers) - if (L.client) - L.client.images -= mob.pathogen + var/list/pathogen_info = filter_disease_by_spread(affected_mob.diseases, required = DISEASE_SPREAD_CONTACT_SKIN) + if(!length(pathogen_info)) + GLOB.infected_contact_mobs -= affected_mob + if(affected_mob.pathogen) + for(var/mob/living/goggle_wearer in GLOB.science_goggles_wearers) + goggle_wearer.client?.images -= affected_mob.pathogen + // Add resistance by boosting whichever antigen is needed + if(add_resistance && target.immune_system) + var/boosted_antigen + var/boosted_antigen_level + for(var/antigen in src.antigen) + var/level = target.immune_system.antibodies[antigen] + if(level >= strength) + return + else if(!boosted_antigen || (boosted_antigen_level > level)) + boosted_antigen = antigen + boosted_antigen_level = level + if(boosted_antigen) + target.immune_system.antibodies[boosted_antigen] = max(strength + 10, boosted_antigen_level) /datum/disease/advanced/proc/GetImmuneData(mob/living/mob) diff --git a/monkestation/code/modules/virology/immune_systems/_immune_system.dm b/monkestation/code/modules/virology/immune_systems/_immune_system.dm index 1adcf35faf35..19069edc6b0a 100644 --- a/monkestation/code/modules/virology/immune_systems/_immune_system.dm +++ b/monkestation/code/modules/virology/immune_systems/_immune_system.dm @@ -71,7 +71,7 @@ H.vomit(0,1)//hope you're wearing a biosuit or you'll get reinfected from your vomit, lol for(var/ID in host.diseases) var/datum/disease/advanced/D = host.diseases[ID] - D.cure(host,2) + D.cure(target = host) strength = 0 overloaded = TRUE diff --git a/monkestation/code/modules/virology/items/vials.dm b/monkestation/code/modules/virology/items/vials.dm index e76b11b6ad94..fa90227f4cdd 100644 --- a/monkestation/code/modules/virology/items/vials.dm +++ b/monkestation/code/modules/virology/items/vials.dm @@ -1,18 +1,6 @@ -/obj/item/reagent_containers/cup/beaker/vial - name = "vial" - icon = 'monkestation/code/modules/virology/icons/items.dmi' - desc = "A small glass vial. Can hold up to 25 units." - icon_state = "vial" - inhand_icon_state = "beaker" - custom_materials = list(/datum/material/glass = 250) - volume = 25 - possible_transfer_amounts = list(5,10,15,25) - fill_icon_thresholds = list(0, 1, 20, 40, 60, 80, 100) - fill_icon = 'monkestation/code/modules/virology/icons/items.dmi' +/obj/item/storage/box/tube + name = "box of test tubes" -/obj/item/storage/box/vials - name = "box of vials" - -/obj/item/storage/box/vials/PopulateContents() +/obj/item/storage/box/tube/PopulateContents() for(var/i in 1 to 7) - new /obj/item/reagent_containers/cup/beaker/vial( src ) + new /obj/item/reagent_containers/cup/tube( src ) diff --git a/monkestation/code/modules/virology/machines/centrifuge.dm b/monkestation/code/modules/virology/machines/centrifuge.dm index 693da987df3a..215474f83369 100644 --- a/monkestation/code/modules/virology/machines/centrifuge.dm +++ b/monkestation/code/modules/virology/machines/centrifuge.dm @@ -5,7 +5,7 @@ /obj/machinery/disease2/centrifuge name = "isolation centrifuge" - desc = "Used to isolate pathogen and antibodies in blood. Make sure to keep the vials balanced when spinning for optimal efficiency." + desc = "Used to isolate pathogen and antibodies in blood. Make sure to keep the tubes balanced when spinning for optimal efficiency." icon = 'monkestation/code/modules/virology/icons/virology.dmi' icon_state = "centrifuge" density = TRUE @@ -15,9 +15,9 @@ var/on = 0 - var/list/vials = list(null,null,null,null) - var/list/vial_valid = list(0,0,0,0) - var/list/vial_task = list( + var/list/tubes = list(null,null,null,null) + var/list/tube_valid = list(0,0,0,0) + var/list/tube_task = list( list(0,0,0,0,0,), list(0,0,0,0,0,), list(0,0,0,0,0,), @@ -63,33 +63,33 @@ if(.) return - if (istype(I, /obj/item/reagent_containers/cup/beaker/vial)) + if (istype(I, /obj/item/reagent_containers/cup/tube)) special = CENTRIFUGE_LIGHTSPECIAL_OFF if (on) - to_chat(user,span_warning("You cannot add or remove vials while the centrifuge is active. Turn it Off first.") ) + to_chat(user,span_warning("You cannot add or remove tubes while the centrifuge is active. Turn it Off first.") ) return - var/obj/item/reagent_containers/cup/beaker/vial/vial = I - for (var/i = 1 to vials.len) - if(!vials[i]) - vials[i] = vial - vial_valid[i] = vial_has_antibodies(vial) - visible_message(span_notice("\The [user] adds \the [vial] to \the [src]."),span_notice("You add \the [vial] to \the [src].")) + var/obj/item/reagent_containers/cup/tube/tube = I + for (var/i = 1 to tubes.len) + if(!tubes[i]) + tubes[i] = tube + tube_valid[i] = tube_has_antibodies(tube) + visible_message(span_notice("\The [user] adds \the [tube] to \the [src]."),span_notice("You add \the [tube] to \the [src].")) playsound(loc, 'sound/machines/click.ogg', 50, 1) - user.transferItemToLoc(vial, loc) - vial.forceMove(src) + user.transferItemToLoc(tube, loc) + tube.forceMove(src) update_appearance() updateUsrDialog() return TRUE - to_chat(user,span_warning("There is no room for more vials.") ) + to_chat(user,span_warning("There is no room for more tubes.") ) return FALSE -/obj/machinery/disease2/centrifuge/proc/vial_has_antibodies(obj/item/reagent_containers/cup/beaker/vial/vial) - if (!vial) +/obj/machinery/disease2/centrifuge/proc/tube_has_antibodies(obj/item/reagent_containers/cup/tube/tube) + if (!tube) return FALSE - var/datum/reagent/blood/blood = locate() in vial.reagents.reagent_list + var/datum/reagent/blood/blood = locate() in tube.reagents.reagent_list if (blood && blood.data && blood.data["immunity"]) var/list/immune_system = blood.data["immunity"] if (istype(immune_system) && immune_system.len > 0) @@ -142,50 +142,50 @@ .+= emissive_appearance(icon,"centrifuge_special",src) .+= mutable_appearance(icon,"centrifuge_special_update",src) - for (var/i = 1 to vials.len) - if(vials[i]) - var/obj/item/reagent_containers/cup/beaker/vial/vial = vials[i] + for (var/i = 1 to tubes.len) + if(tubes[i]) + var/obj/item/reagent_containers/cup/tube/tube = tubes[i] .+= mutable_appearance(icon, "centrifuge_vial[i][on ? "_moving" : ""]",src) - if(vial.reagents.total_volume) + if(tube.reagents.total_volume) var/mutable_appearance/filling = mutable_appearance(icon, "centrifuge_vial[i]_filling[on ? "_moving" : ""]",src) - filling.icon += mix_color_from_reagents(vial.reagents.reagent_list) + filling.icon += mix_color_from_reagents(tube.reagents.reagent_list) .+= filling -/obj/machinery/disease2/centrifuge/proc/add_vial_dat(obj/item/reagent_containers/cup/beaker/vial/vial, list/vial_task = list(0,0,0,0,0), slot = 1) +/obj/machinery/disease2/centrifuge/proc/add_tube_dat(obj/item/reagent_containers/cup/tube/tube, list/tube_task = list(0,0,0,0,0), slot = 1) var/dat = "" - var/valid = vial_valid[slot] + var/valid = tube_valid[slot] - var/datum/reagent/blood/blood = locate() in vial.reagents.reagent_list + var/datum/reagent/blood/blood = locate() in tube.reagents.reagent_list if (!blood) - var/datum/reagent/vaccine/vaccine = locate() in vial.reagents.reagent_list + var/datum/reagent/vaccine/vaccine = locate() in tube.reagents.reagent_list if (!vaccine) - dat += "[vial.name] (no blood detected)" + dat += "[tube.name] (no blood detected)" else var/vaccines = "" for (var/A in vaccine.data["antigen"]) vaccines += "[A]" if (vaccines == "") vaccines = "blank" - dat += "[vial.name] (Vaccine ([vaccines]))" + dat += "[tube.name] (Vaccine ([vaccines]))" else - if (vial_task[1]) - switch (vial_task[1]) + if (tube_task[1]) + switch (tube_task[1]) if ("dish") - var/target = vial_task[2] - var/progress = vial_task[3] - dat += "[vial.name] (isolating [target]: [round(progress)]%) X" + var/target = tube_task[2] + var/progress = tube_task[3] + dat += "[tube.name] (isolating [target]: [round(progress)]%) X" if ("vaccine") - var/target = vial_task[2] - var/progress = vial_task[3] - dat += "[vial.name] (synthesizing vaccine ([target]): [round(progress)]%) X" + var/target = tube_task[2] + var/progress = tube_task[3] + dat += "[tube.name] (synthesizing vaccine ([target]): [round(progress)]%) X" else if(blood.data && blood.data["viruses"]) var/list/blood_diseases = blood.data["viruses"] if (blood_diseases && blood_diseases.len > 0) - dat += "[vial.name] (pathogen detected) ISOLATE TO DISH [valid ? "SYNTHESIZE VACCINE" : "(not enough antibodies for a vaccine)"]" + dat += "[tube.name] (pathogen detected) ISOLATE TO DISH [valid ? "SYNTHESIZE VACCINE" : "(not enough antibodies for a vaccine)"]" else - dat += "[vial.name] (no pathogen detected) [valid ? "SYNTHESIZE VACCINE" : "(not enough antibodies for a vaccine)"]" + dat += "[tube.name] (no pathogen detected) [valid ? "SYNTHESIZE VACCINE" : "(not enough antibodies for a vaccine)"]" return dat /obj/machinery/disease2/centrifuge/attack_hand(mob/user, list/modifiers) @@ -196,14 +196,14 @@ if(machine_stat & (NOPOWER)) to_chat(user, span_notice("Deprived of power, \the [src] is unresponsive.") ) - for (var/i = 1 to vials.len) - if(vials[i]) - var/obj/item/reagent_containers/cup/beaker/vial/vial = vials[i] + for (var/i = 1 to tubes.len) + if(tubes[i]) + var/obj/item/reagent_containers/cup/tube/tube = tubes[i] playsound(loc, 'sound/machines/click.ogg', 50, 1) - vial.forceMove(loc) - vials[i] = null - vial_valid[i] = 0 - vial_task[i] = list(0,0,0,0,0) + tube.forceMove(loc) + tubes[i] = null + tube_valid[i] = 0 + tube_task[i] = list(0,0,0,0,0) update_appearance() sleep(1) return @@ -218,12 +218,12 @@ var/dat = "" dat += "Power status: [on?"On":"Off"]" dat += "
" - for (var/i = 1 to vials.len) - if(vials[i]) - dat += add_vial_dat(vials[i],vial_task[i],i) + for (var/i = 1 to tubes.len) + if(tubes[i]) + dat += add_tube_dat(tubes[i],tube_task[i],i) else - dat += "Insert a vial" - if(i < vials.len) + dat += "Insert a tube" + if(i < tubes.len) dat += "
" dat += "
" @@ -239,43 +239,43 @@ if(on) use_power = 2 - //first of all, let's see how (un)balanced are those vials. + //first of all, let's see how (un)balanced are those tubes. //we're not taking reagent density into account because even my autism has its limits - var/obj/item/reagent_containers/cup/beaker/vial/vial1 = vials[1]//left - var/obj/item/reagent_containers/cup/beaker/vial/vial2 = vials[2]//up - var/obj/item/reagent_containers/cup/beaker/vial/vial3 = vials[3]//right - var/obj/item/reagent_containers/cup/beaker/vial/vial4 = vials[4]//down - var/vial_unbalance_X = 0 - if (vial1) - vial_unbalance_X += 5 + vial1.reagents.total_volume - if (vial3) - vial_unbalance_X -= 5 + vial3.reagents.total_volume - var/vial_unbalance_Y = 0 - if (vial2) - vial_unbalance_Y += 5 + vial2.reagents.total_volume - if (vial4) - vial_unbalance_Y -= 5 + vial4.reagents.total_volume - - var/vial_unbalance = abs(vial_unbalance_X) + abs(vial_unbalance_Y) // vials can contain up to 25 units, so maximal unbalance is 60. - - efficiency = base_efficiency / (1 + vial_unbalance / 60) // which will at most double the time taken. - - for (var/i = 1 to vials.len) - if(vials[i]) - var/list/v_task = vial_task[i] + var/obj/item/reagent_containers/cup/tube/tube1 = tubes[1]//left + var/obj/item/reagent_containers/cup/tube/tube2 = tubes[2]//up + var/obj/item/reagent_containers/cup/tube/tube3 = tubes[3]//right + var/obj/item/reagent_containers/cup/tube/tube4 = tubes[4]//down + var/tube_unbalance_X = 0 + if (tube1) + tube_unbalance_X += 5 + tube1.reagents.total_volume + if (tube3) + tube_unbalance_X -= 5 + tube3.reagents.total_volume + var/tube_unbalance_Y = 0 + if (tube2) + tube_unbalance_Y += 5 + tube2.reagents.total_volume + if (tube4) + tube_unbalance_Y -= 5 + tube4.reagents.total_volume + + var/tube_unbalance = abs(tube_unbalance_X) + abs(tube_unbalance_Y) // tubes can contain up to 30 units, so maximal unbalance is 70. + + efficiency = base_efficiency / (1 + tube_unbalance / 70) // which will at most double the time taken. + + for (var/i = 1 to tubes.len) + if(tubes[i]) + var/list/v_task = tube_task[i] if(v_task[1]) - vial_task[i] = centrifuge_act(vials[i],vial_task[i]) + tube_task[i] = centrifuge_act(tubes[i],tube_task[i]) else use_power = 1 update_appearance() updateUsrDialog() -/obj/machinery/disease2/centrifuge/proc/centrifuge_act(obj/item/reagent_containers/cup/beaker/vial/vial, list/vial_task = list(0,0,0,0,0)) +/obj/machinery/disease2/centrifuge/proc/centrifuge_act(obj/item/reagent_containers/cup/tube/tube, list/tube_task = list(0,0,0,0,0)) var/list/result = list(0,0,0,0,0) - if (!vial) + if (!tube) return result - result = vial_task + result = tube_task switch (result[1]) if ("dish") result[3] += (efficiency * 2) / (1 + 0.3 * result[5])//additional pathogen in the sample will lengthen the process @@ -291,10 +291,10 @@ result[3] += (efficiency * 2) if (result[3] >= 100) special = CENTRIFUGE_LIGHTSPECIAL_BLINKING - var/amt= vial.reagents.get_reagent_amount(/datum/reagent/blood) - vial.reagents.remove_reagent(/datum/reagent/blood, amt) + var/amt= tube.reagents.get_reagent_amount(/datum/reagent/blood) + tube.reagents.remove_reagent(/datum/reagent/blood, amt) var/data = list("antigen" = list(result[2])) - vial.reagents.add_reagent(/datum/reagent/vaccine, amt,data) + tube.reagents.add_reagent(/datum/reagent/vaccine, amt,data) result = list(0,0,0,0,0) return result @@ -315,63 +315,63 @@ user = usr if (!user) return - var/obj/item/reagent_containers/cup/beaker/vial/vial = user.get_active_hand() - if (istype(vial)) + var/obj/item/reagent_containers/cup/tube/tube = user.get_active_hand() + if (istype(tube)) if (on) - to_chat(user,span_warning("You cannot add or remove vials while the centrifuge is active. Turn it Off first.")) + to_chat(user,span_warning("You cannot add or remove tubes while the centrifuge is active. Turn it Off first.")) return else var/i = text2num(href_list["insertvial"]) - if (!vials[i]) - vials[i] = vial - vial_valid[i] = vial_has_antibodies(vial) - visible_message(span_notice("\The [user] adds \the [vial] to \the [src]."),span_notice("You add \the [vial] to \the [src].")) + if (!tubes[i]) + tubes[i] = tube + tube_valid[i] = tube_has_antibodies(tube) + visible_message(span_notice("\The [user] adds \the [tube] to \the [src]."),span_notice("You add \the [tube] to \the [src].")) playsound(loc, 'sound/machines/click.ogg', 50, 1) - user.transferItemToLoc(vial, loc) - vial.forceMove(src) + user.transferItemToLoc(tube, loc) + tube.forceMove(src) else - to_chat(user,span_warning("There is already a vial in that slot.")) + to_chat(user,span_warning("There is already a tube in that slot.")) return else if (href_list["ejectvial"]) if (on) - to_chat(usr,span_warning("You cannot add or remove vials while the centrifuge is active. Turn it Off first.")) + to_chat(usr,span_warning("You cannot add or remove tubes while the centrifuge is active. Turn it Off first.")) return else var/i = text2num(href_list["ejectvial"]) - if (vials[i]) - var/obj/item/reagent_containers/cup/beaker/vial/vial = vials[i] - vial.forceMove(src.loc) + if (tubes[i]) + var/obj/item/reagent_containers/cup/tube/tube = tubes[i] + tube.forceMove(src.loc) if (Adjacent(usr)) - vial.forceMove(usr.loc) - usr.put_in_hands(vial) - vials[i] = null - vial_valid[i] = 0 - vial_task[i] = list(0,0,0,0,0) + tube.forceMove(usr.loc) + usr.put_in_hands(tube) + tubes[i] = null + tube_valid[i] = 0 + tube_task[i] = list(0,0,0,0,0) else if (href_list["interrupt"]) var/i = text2num(href_list["interrupt"]) - vial_task[i] = list(0,0,0,0,0) + tube_task[i] = list(0,0,0,0,0) else if (href_list["isolate"]) var/i = text2num(href_list["isolate"]) - vial_task[i] = isolate(vials[i],usr) + tube_task[i] = isolate(tubes[i],usr) else if (href_list["synthvaccine"]) var/i = text2num(href_list["synthvaccine"]) - vial_task[i] = cure(vials[i],usr) + tube_task[i] = cure(tubes[i],usr) update_appearance() add_fingerprint(usr) updateUsrDialog() attack_hand(usr) -/obj/machinery/disease2/centrifuge/proc/isolate(obj/item/reagent_containers/cup/beaker/vial/vial, mob/user) +/obj/machinery/disease2/centrifuge/proc/isolate(obj/item/reagent_containers/cup/tube/tube, mob/user) var/list/result = list(0,0,0,0,0) - if (!vial) + if (!tube) return result - var/datum/reagent/blood/blood = locate() in vial.reagents.reagent_list + var/datum/reagent/blood/blood = locate() in tube.reagents.reagent_list if (blood && blood.data && blood.data["viruses"]) var/list/blood_viruses = blood.data["viruses"] if (istype(blood_viruses) && blood_viruses.len > 0) @@ -398,12 +398,12 @@ return result -/obj/machinery/disease2/centrifuge/proc/cure(obj/item/reagent_containers/cup/beaker/vial/vial, mob/user) +/obj/machinery/disease2/centrifuge/proc/cure(obj/item/reagent_containers/cup/tube/tube, mob/user) var/list/result = list(0,0,0,0,0) - if (!vial) + if (!tube) return result - var/datum/reagent/blood/blood = locate() in vial.reagents.reagent_list + var/datum/reagent/blood/blood = locate() in tube.reagents.reagent_list if (blood && blood.data && blood.data["immunity"]) var/list/immune_system = blood.data["immunity"] if (istype(immune_system) && immune_system.len > 0) @@ -460,13 +460,13 @@ /obj/machinery/disease2/centrifuge/Destroy() - for (var/i = 1 to vials.len) - if(vials[i]) - var/obj/item/reagent_containers/cup/beaker/vial/vial = vials[i] - vial.forceMove(loc) - vials = list(null,null,null,null) - vial_valid = list(0,0,0,0) - vial_task = list( + for (var/i = 1 to tubes.len) + if(tubes[i]) + var/obj/item/reagent_containers/cup/tube/tube = tubes[i] + tube.forceMove(loc) + tubes = list(null,null,null,null) + tube_valid = list(0,0,0,0) + tube_task = list( list(0,0,0,0,0,), list(0,0,0,0,0,), list(0,0,0,0,0,), diff --git a/monkestation/code/modules/virology/machines/curer.dm b/monkestation/code/modules/virology/machines/curer.dm index 7bed0efdb892..5baa803c8207 100644 --- a/monkestation/code/modules/virology/machines/curer.dm +++ b/monkestation/code/modules/virology/machines/curer.dm @@ -4,10 +4,10 @@ var/curing var/virusing - var/obj/item/reagent_containers/cup/beaker/vial/container = null + var/obj/item/reagent_containers/cup/tube/container = null /obj/machinery/computer/curer/attackby(obj/item/I, mob/user) - if(istype(I, /obj/item/reagent_containers/cup/beaker/vial)) + if(istype(I, /obj/item/reagent_containers/cup/tube)) var/mob/living/carbon/C = user if(!container) if(C.forceMove(I, src)) @@ -16,7 +16,7 @@ if(virusing) to_chat(user, "The pathogen materializer is still recharging..") return - var/obj/item/reagent_containers/cup/beaker/vial/product = new(src.loc) + var/obj/item/reagent_containers/cup/tube/product = new(src.loc) var/list/data = list("viruses"=null,"blood_DNA"=null,"blood_type"=null,"resistances"=null,"trace_chem"=null,"viruses"=list(),"immunity"=0) data["viruses"] |= I:viruses @@ -88,12 +88,12 @@ /obj/machinery/computer/curer/proc/createcure(obj/item/reagent_containers/cup/beaker/container) - var/obj/item/reagent_containers/cup/beaker/vial/product = new(src.loc) + var/obj/item/reagent_containers/cup/tube/product = new(src.loc) var/datum/reagent/blood/B = locate() in container.reagents.reagent_list var/list/data = list() data["antigen"] = B.data["immunity"] - + product.reagents.add_reagent(/datum/reagent/vaccine , 30, data) diff --git a/monkestation/code/modules/virology/machines/splicer.dm b/monkestation/code/modules/virology/machines/splicer.dm index 94647c6f49de..c129ecd906a6 100644 --- a/monkestation/code/modules/virology/machines/splicer.dm +++ b/monkestation/code/modules/virology/machines/splicer.dm @@ -38,7 +38,7 @@ to_chat(user, span_warning("You can't let go of \the [I]!")) return dish = I - playsound(loc, 'sound/machines/click.ogg', 50, 1) + playsound(loc, 'sound/machines/click.ogg', vol = 50, vary = TRUE) update_icon() if(istype(I, /obj/item/disk/disease)) @@ -46,8 +46,7 @@ visible_message(span_notice("[user] swipes \the [disk] against \the [src]."), span_notice("You swipe \the [disk] against \the [src], copying the data into the machine's buffer.")) memorybank = disk.effect flick_overlay("splicer_disk", src) - spawn(2) - update_icon() + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_icon)), 2, TIMER_OVERRIDE | TIMER_UNIQUE) attack_hand(user) @@ -106,9 +105,9 @@ if(machine_stat & (NOPOWER|BROKEN)) return if(scanning || splicing || burning) - use_power = 2 + use_power = ACTIVE_POWER_USE else - use_power = 1 + use_power = IDLE_POWER_USE if(scanning) scanning-- @@ -130,56 +129,58 @@ d.name = "unknown GNA disk (Stage: [memorybank.stage])" d.effect = memorybank d.update_desc() - spawn(10) - d.forceMove(loc) - d.pixel_x = -6 - d.pixel_y = 3 + addtimer(CALLBACK(src, PROC_REF(drop_disease_disk), d), 1 SECONDS) +/obj/machinery/computer/diseasesplicer/proc/drop_disease_disk(obj/item/disk/disease/disk) + disk.forceMove(drop_location()) + disk.pixel_x = -6 + disk.pixel_y = 3 /obj/machinery/computer/diseasesplicer/update_overlays() ..() + . = list() // We don't use any of the overlays from the parent if (dish) - var/mutable_appearance/dish_outline = mutable_appearance(icon,"smalldish2-outline", src) + var/mutable_appearance/dish_outline = mutable_appearance(icon, "smalldish2-outline") dish_outline.alpha = 128 dish_outline.pixel_x = -1 dish_outline.pixel_y = -13 - .+= dish_outline - var/mutable_appearance/dish_content = mutable_appearance(icon,"smalldish2-empty", src) + . += dish_outline + var/mutable_appearance/dish_content = mutable_appearance(icon, "smalldish2-empty") dish_content.alpha = 128 dish_content.pixel_x = -1 dish_content.pixel_y = -13 if (dish.contained_virus) dish_content.icon_state = "smalldish2-color" dish_content.color = dish.contained_virus.color - .+=dish_outline + . += dish_content if(machine_stat & (BROKEN|NOPOWER)) return - if (dish && dish.contained_virus) + if (dish?.contained_virus) if (dish.analysed) - var/mutable_appearance/scan_pattern = mutable_appearance(icon,"pattern-[dish.contained_virus.pattern]b", src) + var/mutable_appearance/scan_pattern = mutable_appearance(icon, "pattern-[dish.contained_virus.pattern]b") scan_pattern.color = "#00FF00" scan_pattern.pixel_x = -2 scan_pattern.pixel_y = 4 - .+= scan_pattern + . += scan_pattern else - .+= mutable_appearance(icon,"splicer_unknown") + . += mutable_appearance(icon, "splicer_unknown") if(scanning || splicing) - var/mutable_appearance/splicer_glass = emissive_appearance(icon,"splicer_glass", src) + var/mutable_appearance/splicer_glass = emissive_appearance(icon, "splicer_glass") splicer_glass.blend_mode = BLEND_ADD - .+= splicer_glass + . += splicer_glass if (memorybank) - .+= emissive_appearance(icon,"splicer_buffer", src) + . += emissive_appearance(icon, "splicer_buffer") /obj/machinery/computer/diseasesplicer/proc/buffer2dish() - if(!memorybank || !dish || !dish.contained_virus) + if(!memorybank || !dish?.contained_virus) return var/list/effects = dish.contained_virus.symptoms - for(var/x = 1 to effects.len) + for(var/x = 1 to length(effects)) if(x == target_stage) var/datum/symptom/e = effects[x] effects[x] = memorybank.Copy(dish.contained_virus) @@ -191,7 +192,7 @@ update_icon() /obj/machinery/computer/diseasesplicer/proc/dish2buffer(target_stage) - if(!dish || !dish.contained_virus) + if(!dish?.contained_virus) return if(dish.growth < 50) return @@ -226,7 +227,7 @@ dish.forceMove(loc) if (Adjacent(usr)) - dish.forceMove(usr.loc) + dish.forceMove(usr.drop_location()) usr.put_in_hands(dish) dish = null update_icon() diff --git a/monkestation/code/modules/virology/research/research.dm b/monkestation/code/modules/virology/research/research.dm index 78a13c0fc6d9..2e511a1de917 100644 --- a/monkestation/code/modules/virology/research/research.dm +++ b/monkestation/code/modules/virology/research/research.dm @@ -49,12 +49,12 @@ ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL | DEPARTMENT_BITFLAG_SCIENCE -/datum/design/vial - name = "Vial" - id = "vial" +/datum/design/tube + name = "Tube" + id = "tube" build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/glass = 200) - build_path = /obj/item/reagent_containers/cup/beaker/vial + build_path = /obj/item/reagent_containers/cup/tube category = list( RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_MEDICAL ) diff --git a/monkestation/code/modules/wiremod_chem/components/ouputs/factory_output.dm b/monkestation/code/modules/wiremod_chem/components/ouputs/factory_output.dm index c67263b7f628..ca97695b56aa 100644 --- a/monkestation/code/modules/wiremod_chem/components/ouputs/factory_output.dm +++ b/monkestation/code/modules/wiremod_chem/components/ouputs/factory_output.dm @@ -18,7 +18,7 @@ ///prefix for the product name var/product_name = "factory" ///the icon_state number for the pill. - var/pill_number = RANDOM_PILL_STYLE + var/pill_style = -1 ///list of id's and icons for the pill selection of the ui var/list/pill_styles /// Currently selected patch style @@ -26,15 +26,20 @@ /// List of available patch styles for UI var/list/patch_styles +/obj/structure/chemical_tank/factory/Initialize(mapload) + . = ..() + load_styles() + /obj/structure/chemical_tank/factory/proc/load_styles() //expertly copypasted from chemmasters pill_styles = list() - for (var/x in 1 to PILL_STYLE_COUNT) - pill_styles += list("[x]" = image(icon = 'icons/obj/medical/chemical.dmi', icon_state = "pill[x]")) - patch_styles = list() - for (var/raw_patch_style in PATCH_STYLE_LIST) - patch_styles += list("[raw_patch_style]" = image(icon = 'icons/obj/medical/chemical.dmi', icon_state = raw_patch_style)) + for(var/category in GLOB.chem_master_containers) + for(var/obj/item/reagent_containers/style as anything in GLOB.chem_master_containers[category]) + if(category == CAT_PILLS) + pill_styles += list("[style.icon_state]" = image(icon = style.icon, icon_state = style.icon_state)) + if(category == CAT_PATCHES) + patch_styles += list("[style.icon_state]" = image(icon = style.icon, icon_state = style.icon_state)) /obj/structure/chemical_tank/factory/proc/generate_product(mob/user) if(reagents.total_volume < current_volume) @@ -44,10 +49,10 @@ reagents.trans_to(P, current_volume) P.name = trim("[product_name] pill") user.put_in_hands(P) - if(pill_number == RANDOM_PILL_STYLE) - P.icon_state = "pill[rand(1,21)]" + if(pill_style == -1) + P.icon_state = pick(pill_styles) else - P.icon_state = "pill[pill_number]" + P.icon_state = "[pill_style]" if(P.icon_state == "pill4") //mirrored from chem masters P.desc = "A tablet or capsule, but not just any, a red one, one taken by the ones not scared of knowledge, freedom, uncertainty and the brutal truths of reality." else if (product == "patch") @@ -56,17 +61,15 @@ P.name = trim("[product_name] patch") P.icon_state = patch_style user.put_in_hands(P) - else if (product == "bottle") - var/obj/item/reagent_containers/cup/bottle/P = new(get_turf(src)) + else if (product == "tube") + var/obj/item/reagent_containers/cup/tube/P = new(get_turf(src)) reagents.trans_to(P, current_volume) P.name = trim("[product_name] bottle") user.put_in_hands(P) /obj/structure/chemical_tank/factory/AltClick(mob/user) . = ..() - if(!length(pill_styles) || !length(patch_styles)) - load_styles() - var/choice_product = tgui_input_list(user, "Pick Product", "[name]", list("pill", "patch", "bottle")) + var/choice_product = tgui_input_list(user, "Pick Product", "[name]", list("pill", "patch", "tube")) if(choice_product) product = choice_product @@ -86,8 +89,7 @@ if(choice_product == "pill") var/pill_choice = show_radial_menu(user, src, pill_styles) if(pill_choice) - pill_number = text2num(pill_choice) - + pill_style = pill_choice /obj/structure/chemical_tank/factory/attack_hand(mob/living/user, list/modifiers) . = ..() diff --git a/monkestation/icons/obj/economy.dmi b/monkestation/icons/obj/economy.dmi deleted file mode 100644 index 20c15636815c..000000000000 Binary files a/monkestation/icons/obj/economy.dmi and /dev/null differ diff --git a/monkestation/icons/obj/monkecoin.dmi b/monkestation/icons/obj/monkecoin.dmi new file mode 100644 index 000000000000..360482ec1fa1 Binary files /dev/null and b/monkestation/icons/obj/monkecoin.dmi differ diff --git a/sound/effects/flatline3.ogg b/sound/effects/flatline3.ogg new file mode 100644 index 000000000000..1430ee7429b8 Binary files /dev/null and b/sound/effects/flatline3.ogg differ diff --git a/strings/nova/long_modular_laser.json b/strings/nova/long_modular_laser.json new file mode 100644 index 000000000000..a81c62b55b16 --- /dev/null +++ b/strings/nova/long_modular_laser.json @@ -0,0 +1,102 @@ +{ + "pickup": [ + "Welcome back, @pick(operator).", + "Zǎo shàng hǎo.", + "Wǎn shàng hǎo.", + "Charge systems operational, entering combat mode.", + "@pick(operator), carp migrations have been reported in the sector.", + "@pick(operator), having a pleasant day?", + "@pick(operator), please maintain good health while performing combat.", + "@pick(operator), are you sure I'm not too heavy for you?", + "Would you mind cleaning my lens later, @pick(operator)?" + ], + + "putdown": [ + "Understood, @pick(operator), entering sleep mode.", + "Good night, @pick(operator).", + "Wǎn`ān, hǎo mèng.", + "Dàjiā ān.", + "Good night.", + "Entering sleep mode now.", + "Entering recharge cycle." + ], + + "worn": [ + "Working on your strength will help you keep me steady.", + "Investing in backup magnetic slings is a good idea...", + "Thank you for observing proper carrying protocols.", + "I get a nicer view of your surroundings if you point my barrel upwards.", + "I'll watch your back if you watch my stock.", + "So much nicer than being in a case~!" + ], + + "lowcharge": [ + "Energy reserves low, I can't do much more @pick(operator)...", + "I'm out... sorry @pick(operator), I need to rest..." + ], + + "fullcharge": [ + "Energy reserves at maximum capacity! Please avoid accidental discharge.", + "Energy reserves at maximum capacity! Please follow safety guidelines.", + "Energy reserves at maximum capacity! It's nice to not be left at half-charge." + ], + + "combatmode": [ + "Biological markers indicate heightened stress response. Combat protocols initiated.", + "Adrenaline spike detected. Combat protocols initiated." + ], + + "kill": [ + "Switching to burst fire.", + "Switching to rapid-pattern assault.", + "Moving to dual-shot pattern.", + "Moving to close-quarters burst doctrine, lethal.", + "@pick(operator), please tightly control my recoil pattern.", + "@pick(operator), please hold me firmly to ensure accuracy." + ], + + "sniper": [ + "Sighting in, scope extending.", + "Sighting in, preparing for long-range combat.", + "Sighting in, engaging marksman mode.", + "@pick(operator), take deep breaths to improve your aim.", + "Extending scope; @pick(operator), make sure it's well-maintained.", + "One shot, one kill.", + "Assassination doctrine engaged, @pick(operator). Make every shot count.", + "Scope extending, please avoid over-penetration in non-terrestrial combat environments.", + "Sighting in, please be aware of cross-fire." + ], + + "disable": [ + "Preparing to enter full-power stun mode.", + "Mass crowd-control mode engaged, non-lethal.", + "This should be... fun, right @pick(operator)?", + "This is going to be stressful on my battery, but...", + "Is this really okay...? This is quite difficult from my usual operation...", + "Switching to high output mode.", + "Switching to Gatling doctrine, non-lethal." + ], + + "launcher": [ + "Forming plasma grenades at your request, @pick(operator)!", + "Grenadier mode engaged, @pick(operator)!", + "Aim my grenades carefully in an arc, @pick(operator)!", + "Energy detonation doctrine engaged.", + "Crowd-control mode engaged, lethal. Is this really okay?", + "Charging magnetic containment coils, plasma condensing..." + ], + + "shotgun": [ + "Close-quarters...? I'm not really the tool for this job...", + "I'm more of a rifle, @pick(operator), but I'll try...", + "Is this really okay...? This is more of a carbine's job...", + "Switching to wide-band spread.", + "Changing to diffusion lens, shotgun doctrine engaged.", + "Close-quarters mode engaged, lethal." + ], + + "operator": [ + "Operator", + "Handler" + ] +} diff --git a/strings/nova/short_modular_laser.json b/strings/nova/short_modular_laser.json new file mode 100644 index 000000000000..592db9ada799 --- /dev/null +++ b/strings/nova/short_modular_laser.json @@ -0,0 +1,143 @@ +{ + "pickup": [ + "Zǎo shàng hǎo.", + "Wǎn shàng hǎo.", + "What's the operation today, ah?", + "Let's get things started, heh-heh.", + "I'm feeling good about our chances today.", + "Hey, clean my damn lens later.", + "Little tighter around the handguard, @pick(operator)" + ], + + "putdown": [ + "...you'll hold me again soon, right? Right?", + "Don't you DARE leave me here!", + "Tch! Whatever... You'll come crawling back to point me around later.", + "Dàjiā ān.", + "Good night.", + "Entering sleep mode now.", + "Entering recharge cycle.", + "Yeah, yeah... entering recharge cycle...", + "Qù nǐ mā... never mind, entering sleep mode." + ], + + "worn": [ + "So portable, right @pick(operator)?", + "Lightweight, sold with a few backup magslings, what's not to love?", + "I can't see anything in front of you, this sucks.", + "I can't see shit from this angle...", + "We're going somewhere with this, right?", + "Don't fall over on top of me, okay?", + "Pretty cushy ride back here...", + "I could get used to this.", + "I can't see sh- ah, wait, maybe it's not so bad back here." + ], + + "lowcharge": [ + "Wǒ tài nán le...", + "Mā de...", + "Tā mā de...", + "I'm really drowsy here, pull back, won't you?", + "I'm running on fumes here, boss...", + "Outta charge, gotta rest...", + "Sorry, on your own 'til I recharge.", + "Disappointing! Entering recharge cycle...", + "Wh- Already?! I was just getting started..." + ], + + "fullcharge": [ + "Whew, that's much better.", + "Hundred percent charged, let's get back to it.", + "I feel like a million creds!", + "Heh-heh, recharge cycle came in handy.", + "This. Is. Power!", + "As if there was any doubt..." + ], + + "combatmode": [ + "I've been waaaiiitiiiing!", + "I was wondering how long you were planning on depriving me, @pick(operator).", + "Come on, come at me!", + "It's your lucky day!", + "Now the fun begins!", + "Countin' on ya!" + ], + + "emp": [ + "Tāmāde! Tāmāde!", + "Qì sǐ wǒle!", + "ELECTROM-", + "ELECTROMAGNETIC PULSE DETECTED, DISCHARGING-", + "ELECTROMAGNETIC PULSE, IT'S DISCHARGING MY BATTERY!", + "THEY HAVE AN EM-", + "GO KILL THEM!", + "KILL THEM! KILL THEM! PUT THE SIGHTS ON THEM AND KILL THEM!", + "KILL THEM, KILL THEM!", + "I DON'T NEED CHARGE FOR BLADE MODE, PUT IT IN THEM AND TWIST!", + "Qù nǐ mā de ba!" + ], + + "incinerate": [ + "Superheating lens, time to cauterize!", + "Charging Hellfire capacitors, let's toast em!", + "Hellfire capacitors charging. Don't stop 'till I'm empty!", + "Hellfire! Bring it on, bastards!", + "Heh-heh, can you feel the heat?", + "Gunslinger!" + ], + + "blade": [ + "Extending blade; up close and personal? I like that.", + "Extending blade; wipe me off after we're finished.", + "Extending blade, stab stab stab!", + "Swing the sword, swing the sword!", + "CQC mode initiated, stick me in there deep!", + "Eviscerate!", + "Show me your motivation...", + "I'll cut them in two!", + "Clean cuts!", + "Their nightmare begins here!", + "Now I'm motivated!", + "Swordmaster!", + "The sword is yours, @pick(operator).", + "Sword core online." + ], + + "disable": [ + "Trickster!", + "Non-lethal mode initiated. Let's make it stylish.", + "Non-lethal mode initiated. It's showtime!", + "Non-lethal mode initiated. You like trick shootin'?", + "Non-lethal mode initiated. Who's ready for a show?", + "This is gonna be cool, but can we up the voltage please?", + "I'm ready, but... man...", + "We aren't really gonna get any kills like this." + ], + + "flare": [ + "Ignite the flames! Now!", + "Incendiary, incendiary!", + "Fabricating 'Balrog' energy flares; this'll be sick.", + "Fabricating 'Balrog' energy flares; can you feel the fire?", + "Firestarter, twisted firestarter!", + "Apocalyptic meltdown!", + "Incendiary weapons are banned in numerous sectors; makes it kind of risqué..", + "Dragon breath!" + ], + + "shotgun": [ + "Focusing lens, one shot, one kill!", + "Focusing lens, let's go all the way through.", + "Focusing lens, aim for the head!", + "Let me show you what a real diffusion lens looks like...", + "Would it distract you if I told you about a shotgun's 'choke?'", + "I'll be your boomstick.", + "You should keep me handy for close encounters.", + "Is there something more iconic and awesome than a double-barrel? Yeah, me." + ], + + "operator": [ + "Operator", + "Handler" + ] +} diff --git a/tgstation.dme b/tgstation.dme index dcefdb7d4606..56a2ece97d64 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -391,11 +391,13 @@ #include "code\__DEFINES\~monkestation\artifact.dm" #include "code\__DEFINES\~monkestation\asteroids.dm" #include "code\__DEFINES\~monkestation\atom_hud.dm" +#include "code\__DEFINES\~monkestation\blueshift.dm" #include "code\__DEFINES\~monkestation\botany.dm" #include "code\__DEFINES\~monkestation\chat.dm" #include "code\__DEFINES\~monkestation\clock_cult.dm" #include "code\__DEFINES\~monkestation\colors.dm" #include "code\__DEFINES\~monkestation\combat.dm" +#include "code\__DEFINES\~monkestation\company.dm" #include "code\__DEFINES\~monkestation\construction.dm" #include "code\__DEFINES\~monkestation\cooldowns.dm" #include "code\__DEFINES\~monkestation\cybernetics.dm" @@ -418,6 +420,7 @@ #include "code\__DEFINES\~monkestation\misc.dm" #include "code\__DEFINES\~monkestation\mobs.dm" #include "code\__DEFINES\~monkestation\oozeling.dm" +#include "code\__DEFINES\~monkestation\optfor.dm" #include "code\__DEFINES\~monkestation\overwatch.dm" #include "code\__DEFINES\~monkestation\particles.dm" #include "code\__DEFINES\~monkestation\physics.dm" @@ -436,6 +439,7 @@ #include "code\__DEFINES\~monkestation\uplink.dm" #include "code\__DEFINES\~monkestation\virology.dm" #include "code\__DEFINES\~monkestation\dcs\signals\signals_atom.dm" +#include "code\__DEFINES\~monkestation\dcs\signals\signals_blueshift.dm" #include "code\__DEFINES\~monkestation\dcs\signals\signals_carbon.dm" #include "code\__DEFINES\~monkestation\dcs\signals\signals_guns.dm" #include "code\__DEFINES\~monkestation\dcs\signals\signals_item.dm" @@ -561,6 +565,7 @@ #include "code\__HELPERS\~monkestation-helpers\clients.dm" #include "code\__HELPERS\~monkestation-helpers\cmp.dm" #include "code\__HELPERS\~monkestation-helpers\icon_smoothing.dm" +#include "code\__HELPERS\~monkestation-helpers\mapping.dm" #include "code\__HELPERS\~monkestation-helpers\roundend.dm" #include "code\__HELPERS\~monkestation-helpers\time.dm" #include "code\__HELPERS\~monkestation-helpers\virology.dm" @@ -772,6 +777,7 @@ #include "code\controllers\subsystem\processing\aura_healing.dm" #include "code\controllers\subsystem\processing\clock_component.dm" #include "code\controllers\subsystem\processing\conveyors.dm" +#include "code\controllers\subsystem\processing\digital_clock.dm" #include "code\controllers\subsystem\processing\fastprocess.dm" #include "code\controllers\subsystem\processing\fire_burning.dm" #include "code\controllers\subsystem\processing\fishing.dm" @@ -1151,6 +1157,7 @@ #include "code\datums\components\mutant_hands.dm" #include "code\datums\components\nuclear_bomb_operator.dm" #include "code\datums\components\omen.dm" +#include "code\datums\components\on_hit_effects.dm" #include "code\datums\components\onwear_mood.dm" #include "code\datums\components\orbiter.dm" #include "code\datums\components\overlay_lighting.dm" @@ -1396,6 +1403,7 @@ #include "code\datums\elements\movement_turf_changer.dm" #include "code\datums\elements\movetype_handler.dm" #include "code\datums\elements\nerfed_pulling.dm" +#include "code\datums\elements\noisy_movement.dm" #include "code\datums\elements\noticable_organ.dm" #include "code\datums\elements\obj_regen.dm" #include "code\datums\elements\openspace_item_click_handler.dm" @@ -1646,6 +1654,7 @@ #include "code\datums\storage\subtypes\organ_box.dm" #include "code\datums\storage\subtypes\pockets.dm" #include "code\datums\storage\subtypes\rped.dm" +#include "code\datums\storage\subtypes\surgery_tray.dm" #include "code\datums\storage\subtypes\trash.dm" #include "code\datums\votes\_vote_datum.dm" #include "code\datums\votes\custom_vote.dm" @@ -1748,6 +1757,7 @@ #include "code\game\machinery\dance_machine.dm" #include "code\game\machinery\defibrillator_mount.dm" #include "code\game\machinery\deployable.dm" +#include "code\game\machinery\digital_clock.dm" #include "code\game\machinery\dish_drive.dm" #include "code\game\machinery\dna_scanner.dm" #include "code\game\machinery\droneDispenser.dm" @@ -1762,6 +1772,7 @@ #include "code\game\machinery\hologram.dm" #include "code\game\machinery\hypnochair.dm" #include "code\game\machinery\igniter.dm" +#include "code\game\machinery\incident_display.dm" #include "code\game\machinery\iv_drip.dm" #include "code\game\machinery\launch_pad.dm" #include "code\game\machinery\lightswitch.dm" @@ -1773,6 +1784,7 @@ #include "code\game\machinery\modular_shield.dm" #include "code\game\machinery\navbeacon.dm" #include "code\game\machinery\PDApainter.dm" +#include "code\game\machinery\photobooth.dm" #include "code\game\machinery\prisongate.dm" #include "code\game\machinery\prisonlabor.dm" #include "code\game\machinery\quantum_pad.dm" @@ -2058,7 +2070,6 @@ #include "code\game\objects\items\inducer.dm" #include "code\game\objects\items\inspector.dm" #include "code\game\objects\items\janitor_key.dm" -#include "code\game\objects\items\kirbyplants.dm" #include "code\game\objects\items\kitchen.dm" #include "code\game\objects\items\knives.dm" #include "code\game\objects\items\latexballoon.dm" @@ -2089,6 +2100,7 @@ #include "code\game\objects\items\skub.dm" #include "code\game\objects\items\spear.dm" #include "code\game\objects\items\sticker.dm" +#include "code\game\objects\items\surgery_tray.dm" #include "code\game\objects\items\syndie_spraycan.dm" #include "code\game\objects\items\tail_pin.dm" #include "code\game\objects\items\taster.dm" @@ -3012,6 +3024,7 @@ #include "code\modules\asset_cache\assets\bibles.dm" #include "code\modules\asset_cache\assets\body_zones.dm" #include "code\modules\asset_cache\assets\chat.dm" +#include "code\modules\asset_cache\assets\chemmaster.dm" #include "code\modules\asset_cache\assets\circuits.dm" #include "code\modules\asset_cache\assets\common.dm" #include "code\modules\asset_cache\assets\condiments.dm" @@ -3033,10 +3046,8 @@ #include "code\modules\asset_cache\assets\orbit.dm" #include "code\modules\asset_cache\assets\paper.dm" #include "code\modules\asset_cache\assets\particle_editor.dm" -#include "code\modules\asset_cache\assets\patches.dm" #include "code\modules\asset_cache\assets\pda.dm" #include "code\modules\asset_cache\assets\permissions.dm" -#include "code\modules\asset_cache\assets\pills.dm" #include "code\modules\asset_cache\assets\pipes.dm" #include "code\modules\asset_cache\assets\plane_debug.dm" #include "code\modules\asset_cache\assets\plumbing.dm" @@ -5859,6 +5870,7 @@ #include "monkestation\code\modules\admin\smites\where_are_your_fingers.dm" #include "monkestation\code\modules\admin\verbs\getlogs.dm" #include "monkestation\code\modules\admin\verbs\kick_player_by_ckey.dm" +#include "monkestation\code\modules\admin\verbs\spawn_mixtape.dm" #include "monkestation\code\modules\aesthetics\airlock\airlock.dm" #include "monkestation\code\modules\aesthetics\items\clothing.dm" #include "monkestation\code\modules\aesthetics\mapping\tilecoloring.dm" @@ -6223,6 +6235,223 @@ #include "monkestation\code\modules\bloodsuckers\vassals\vassal_pinpointer.dm" #include "monkestation\code\modules\bloodsuckers\vassals\types\favorite.dm" #include "monkestation\code\modules\bloodsuckers\vassals\types\revenge.dm" +#include "monkestation\code\modules\blueshift\shuttles.dm" +#include "monkestation\code\modules\blueshift\appliances\colony.dm" +#include "monkestation\code\modules\blueshift\appliances\multi_charger.dm" +#include "monkestation\code\modules\blueshift\areas\centcom.dm" +#include "monkestation\code\modules\blueshift\areas\station.dm" +#include "monkestation\code\modules\blueshift\armaments\akh_frontier.dm" +#include "monkestation\code\modules\blueshift\armaments\deforest_medical.dm" +#include "monkestation\code\modules\blueshift\armaments\donkco.dm" +#include "monkestation\code\modules\blueshift\armaments\jarnsimiour.dm" +#include "monkestation\code\modules\blueshift\armaments\kaharaman.dm" +#include "monkestation\code\modules\blueshift\armaments\microstar.dm" +#include "monkestation\code\modules\blueshift\armaments\nakamura.dm" +#include "monkestation\code\modules\blueshift\armaments\nri.dm" +#include "monkestation\code\modules\blueshift\armaments\sol.dm" +#include "monkestation\code\modules\blueshift\armaments\vitezstvi.dm" +#include "monkestation\code\modules\blueshift\benos\human_changes.dm" +#include "monkestation\code\modules\blueshift\benos\human_defence.dm" +#include "monkestation\code\modules\blueshift\benos\larva.dm" +#include "monkestation\code\modules\blueshift\benos\beno_types\defender.dm" +#include "monkestation\code\modules\blueshift\benos\beno_types\drone.dm" +#include "monkestation\code\modules\blueshift\benos\beno_types\praetorian.dm" +#include "monkestation\code\modules\blueshift\benos\beno_types\queen.dm" +#include "monkestation\code\modules\blueshift\benos\beno_types\ravager.dm" +#include "monkestation\code\modules\blueshift\benos\beno_types\rouny.dm" +#include "monkestation\code\modules\blueshift\benos\beno_types\sentinel.dm" +#include "monkestation\code\modules\blueshift\benos\beno_types\spitter.dm" +#include "monkestation\code\modules\blueshift\benos\beno_types\warrior.dm" +#include "monkestation\code\modules\blueshift\cargo\armory.dm" +#include "monkestation\code\modules\blueshift\cargo\company_import.dm" +#include "monkestation\code\modules\blueshift\cargo\deforest.dm" +#include "monkestation\code\modules\blueshift\cargo\flatpacks.dm" +#include "monkestation\code\modules\blueshift\cargo\specialist_armor.dm" +#include "monkestation\code\modules\blueshift\clothing\blueshield.dm" +#include "monkestation\code\modules\blueshift\clothing\dogginos.dm" +#include "monkestation\code\modules\blueshift\clothing\kahraman.dm" +#include "monkestation\code\modules\blueshift\clothing\nova_armorsuit.dm" +#include "monkestation\code\modules\blueshift\clothing\nova_belt.dm" +#include "monkestation\code\modules\blueshift\clothing\nova_cargo.dm" +#include "monkestation\code\modules\blueshift\clothing\nova_centcom.dm" +#include "monkestation\code\modules\blueshift\clothing\nova_civilian.dm" +#include "monkestation\code\modules\blueshift\clothing\nova_coats.dm" +#include "monkestation\code\modules\blueshift\clothing\nova_command.dm" +#include "monkestation\code\modules\blueshift\clothing\nova_costume.dm" +#include "monkestation\code\modules\blueshift\clothing\nova_cowboy.dm" +#include "monkestation\code\modules\blueshift\clothing\nova_engineering.dm" +#include "monkestation\code\modules\blueshift\clothing\nova_field.dm" +#include "monkestation\code\modules\blueshift\clothing\nova_glasses.dm" +#include "monkestation\code\modules\blueshift\clothing\nova_heads.dm" +#include "monkestation\code\modules\blueshift\clothing\nova_hop.dm" +#include "monkestation\code\modules\blueshift\clothing\nova_jackets.dm" +#include "monkestation\code\modules\blueshift\clothing\nova_job_heads.dm" +#include "monkestation\code\modules\blueshift\clothing\nova_medical.dm" +#include "monkestation\code\modules\blueshift\clothing\nova_misc.dm" +#include "monkestation\code\modules\blueshift\clothing\nova_neck.dm" +#include "monkestation\code\modules\blueshift\clothing\nova_science.dm" +#include "monkestation\code\modules\blueshift\clothing\nova_security.dm" +#include "monkestation\code\modules\blueshift\clothing\nova_shoes.dm" +#include "monkestation\code\modules\blueshift\clothing\nova_shorts.dm" +#include "monkestation\code\modules\blueshift\clothing\nova_skirts.dm" +#include "monkestation\code\modules\blueshift\clothing\nova_suit.dm" +#include "monkestation\code\modules\blueshift\clothing\nova_syndicate.dm" +#include "monkestation\code\modules\blueshift\clothing\nova_under.dm" +#include "monkestation\code\modules\blueshift\clothing\police.dm" +#include "monkestation\code\modules\blueshift\clothing\rus_army.dm" +#include "monkestation\code\modules\blueshift\clothing\solfed_clothing.dm" +#include "monkestation\code\modules\blueshift\clothing\specialist_armor.dm" +#include "monkestation\code\modules\blueshift\components\armament.dm" +#include "monkestation\code\modules\blueshift\components\cell_component.dm" +#include "monkestation\code\modules\blueshift\components\clothing_damaged_by_bullets.dm" +#include "monkestation\code\modules\blueshift\components\lockable_storage.dm" +#include "monkestation\code\modules\blueshift\components\polarizer.dm" +#include "monkestation\code\modules\blueshift\components\shielded_suits.dm" +#include "monkestation\code\modules\blueshift\components\soulcatcher.dm" +#include "monkestation\code\modules\blueshift\components\soulcatcher_base.dm" +#include "monkestation\code\modules\blueshift\components\soulcatcher_body.dm" +#include "monkestation\code\modules\blueshift\components\toggle_clothing.dm" +#include "monkestation\code\modules\blueshift\components\wall_mounted.dm" +#include "monkestation\code\modules\blueshift\datums\laser_modes.dm" +#include "monkestation\code\modules\blueshift\decals\nova.dm" +#include "monkestation\code\modules\blueshift\decals\vg_decals.dm" +#include "monkestation\code\modules\blueshift\designs\colony.dm" +#include "monkestation\code\modules\blueshift\designs\deforest.dm" +#include "monkestation\code\modules\blueshift\designs\frontier.dm" +#include "monkestation\code\modules\blueshift\designs\guns.dm" +#include "monkestation\code\modules\blueshift\designs\nif.dm" +#include "monkestation\code\modules\blueshift\designs\ration_printer.dm" +#include "monkestation\code\modules\blueshift\effects\ash_walker.dm" +#include "monkestation\code\modules\blueshift\elements\caseless.dm" +#include "monkestation\code\modules\blueshift\elements\cuffsnapping.dm" +#include "monkestation\code\modules\blueshift\elements\gun_launches_little_guy.dm" +#include "monkestation\code\modules\blueshift\elements\manufacturer_examine.dm" +#include "monkestation\code\modules\blueshift\elements\projectile_drop.dm" +#include "monkestation\code\modules\blueshift\elements\repacking.dm" +#include "monkestation\code\modules\blueshift\gags\gags.dm" +#include "monkestation\code\modules\blueshift\helpers\request_consoles.dm" +#include "monkestation\code\modules\blueshift\items\_balistic_additions.dm" +#include "monkestation\code\modules\blueshift\items\ammo.dm" +#include "monkestation\code\modules\blueshift\items\ash_walker.dm" +#include "monkestation\code\modules\blueshift\items\badges.dm" +#include "monkestation\code\modules\blueshift\items\barber.dm" +#include "monkestation\code\modules\blueshift\items\briefcase.dm" +#include "monkestation\code\modules\blueshift\items\capacitor.dm" +#include "monkestation\code\modules\blueshift\items\company_guns.dm" +#include "monkestation\code\modules\blueshift\items\conversion_kit.dm" +#include "monkestation\code\modules\blueshift\items\deforest.dm" +#include "monkestation\code\modules\blueshift\items\design_disks.dm" +#include "monkestation\code\modules\blueshift\items\field_medic.dm" +#include "monkestation\code\modules\blueshift\items\gunset.dm" +#include "monkestation\code\modules\blueshift\items\handheld_soulcatcher.dm" +#include "monkestation\code\modules\blueshift\items\implants.dm" +#include "monkestation\code\modules\blueshift\items\knives.dm" +#include "monkestation\code\modules\blueshift\items\magazines.dm" +#include "monkestation\code\modules\blueshift\items\melee.dm" +#include "monkestation\code\modules\blueshift\items\nif.dm" +#include "monkestation\code\modules\blueshift\items\nif_hud.dm" +#include "monkestation\code\modules\blueshift\items\oxygen_candle.dm" +#include "monkestation\code\modules\blueshift\items\pepperbell.dm" +#include "monkestation\code\modules\blueshift\items\retractable_armor.dm" +#include "monkestation\code\modules\blueshift\items\skillchip.dm" +#include "monkestation\code\modules\blueshift\items\soul_catcher.dm" +#include "monkestation\code\modules\blueshift\items\survival_pack.dm" +#include "monkestation\code\modules\blueshift\items\syndicate.dm" +#include "monkestation\code\modules\blueshift\items\tools.dm" +#include "monkestation\code\modules\blueshift\items\armor\ash_walker.dm" +#include "monkestation\code\modules\blueshift\looping_sounds\flatpack.dm" +#include "monkestation\code\modules\blueshift\machines\access_vending.dm" +#include "monkestation\code\modules\blueshift\machines\anesthetic_machine.dm" +#include "monkestation\code\modules\blueshift\machines\arc_furnace.dm" +#include "monkestation\code\modules\blueshift\machines\bullet_drive.dm" +#include "monkestation\code\modules\blueshift\machines\good_assistant.dm" +#include "monkestation\code\modules\blueshift\machines\misc.dm" +#include "monkestation\code\modules\blueshift\machines\ore_silo.dm" +#include "monkestation\code\modules\blueshift\machines\posi_alert.dm" +#include "monkestation\code\modules\blueshift\machines\power_storage_unit.dm" +#include "monkestation\code\modules\blueshift\machines\rtg.dm" +#include "monkestation\code\modules\blueshift\machines\smes.dm" +#include "monkestation\code\modules\blueshift\machines\solar_panel.dm" +#include "monkestation\code\modules\blueshift\machines\solid_fuel_generator.dm" +#include "monkestation\code\modules\blueshift\machines\station_armament.dm" +#include "monkestation\code\modules\blueshift\machines\sterling_generator.dm" +#include "monkestation\code\modules\blueshift\machines\thermomachine.dm" +#include "monkestation\code\modules\blueshift\machines\thumper.dm" +#include "monkestation\code\modules\blueshift\machines\vending_additions.dm" +#include "monkestation\code\modules\blueshift\mobs\bumbles.dm" +#include "monkestation\code\modules\blueshift\mobs\kiwi.dm" +#include "monkestation\code\modules\blueshift\mobs\misc_pets.dm" +#include "monkestation\code\modules\blueshift\mobs\poppy.dm" +#include "monkestation\code\modules\blueshift\mobs\soulcatcher.dm" +#include "monkestation\code\modules\blueshift\nifsoft\_base.dm" +#include "monkestation\code\modules\blueshift\nifsoft\types.dm" +#include "monkestation\code\modules\blueshift\opfor\core\_base.dm" +#include "monkestation\code\modules\blueshift\opfor\core\admin.dm" +#include "monkestation\code\modules\blueshift\opfor\core\antagonist.dm" +#include "monkestation\code\modules\blueshift\opfor\core\equipment_datum.dm" +#include "monkestation\code\modules\blueshift\opfor\core\subsystem.dm" +#include "monkestation\code\modules\blueshift\opfor\core\unused.dm" +#include "monkestation\code\modules\blueshift\opfor\equipment\ammo.dm" +#include "monkestation\code\modules\blueshift\opfor\equipment\biology.dm" +#include "monkestation\code\modules\blueshift\opfor\equipment\bombs.dm" +#include "monkestation\code\modules\blueshift\opfor\equipment\clothing.dm" +#include "monkestation\code\modules\blueshift\opfor\equipment\gadgets.dm" +#include "monkestation\code\modules\blueshift\opfor\equipment\guns.dm" +#include "monkestation\code\modules\blueshift\opfor\equipment\implants.dm" +#include "monkestation\code\modules\blueshift\opfor\equipment\medical.dm" +#include "monkestation\code\modules\blueshift\opfor\equipment\melee.dm" +#include "monkestation\code\modules\blueshift\opfor\equipment\modsuit.dm" +#include "monkestation\code\modules\blueshift\opfor\equipment\spells.dm" +#include "monkestation\code\modules\blueshift\opfor\equipment\uplinks.dm" +#include "monkestation\code\modules\blueshift\optin\job.dm" +#include "monkestation\code\modules\blueshift\optin\mind.dm" +#include "monkestation\code\modules\blueshift\optin\objective_item.dm" +#include "monkestation\code\modules\blueshift\optin\objectives.dm" +#include "monkestation\code\modules\blueshift\optin\preferences.dm" +#include "monkestation\code\modules\blueshift\prefs\soulcatcher.dm" +#include "monkestation\code\modules\blueshift\projectiles\__projectile_changes.dm" +#include "monkestation\code\modules\blueshift\reagents\deforest.dm" +#include "monkestation\code\modules\blueshift\reagents\food_replicator.dm" +#include "monkestation\code\modules\blueshift\spawners\armory.dm" +#include "monkestation\code\modules\blueshift\spawners\bedsheets.dm" +#include "monkestation\code\modules\blueshift\species\ashwalker.dm" +#include "monkestation\code\modules\blueshift\structures\adverts.dm" +#include "monkestation\code\modules\blueshift\structures\ammo_workbench.dm" +#include "monkestation\code\modules\blueshift\structures\aquarium.dm" +#include "monkestation\code\modules\blueshift\structures\ash_walker.dm" +#include "monkestation\code\modules\blueshift\structures\cauldron.dm" +#include "monkestation\code\modules\blueshift\structures\computer.dm" +#include "monkestation\code\modules\blueshift\structures\delam_procedure.dm" +#include "monkestation\code\modules\blueshift\structures\doors.dm" +#include "monkestation\code\modules\blueshift\structures\flatpacker.dm" +#include "monkestation\code\modules\blueshift\structures\flipped_table.dm" +#include "monkestation\code\modules\blueshift\structures\flora.dm" +#include "monkestation\code\modules\blueshift\structures\fluff.dm" +#include "monkestation\code\modules\blueshift\structures\green_glass.dm" +#include "monkestation\code\modules\blueshift\structures\gun_rack.dm" +#include "monkestation\code\modules\blueshift\structures\kirbyplants.dm" +#include "monkestation\code\modules\blueshift\structures\locker.dm" +#include "monkestation\code\modules\blueshift\structures\lockers.dm" +#include "monkestation\code\modules\blueshift\structures\office.dm" +#include "monkestation\code\modules\blueshift\structures\polarizer.dm" +#include "monkestation\code\modules\blueshift\structures\poster.dm" +#include "monkestation\code\modules\blueshift\structures\primative.dm" +#include "monkestation\code\modules\blueshift\structures\sauna_oven.dm" +#include "monkestation\code\modules\blueshift\structures\shelf.dm" +#include "monkestation\code\modules\blueshift\structures\trash_pile.dm" +#include "monkestation\code\modules\blueshift\structures\wall_torch.dm" +#include "monkestation\code\modules\blueshift\structures\windows.dm" +#include "monkestation\code\modules\blueshift\structures\wooden_fence.dm" +#include "monkestation\code\modules\blueshift\structures\wooden_rack.dm" +#include "monkestation\code\modules\blueshift\structures\wrestling.dm" +#include "monkestation\code\modules\blueshift\subsystems\armament.dm" +#include "monkestation\code\modules\blueshift\turfs\ashwalker.dm" +#include "monkestation\code\modules\blueshift\turfs\colony.dm" +#include "monkestation\code\modules\blueshift\turfs\evac.dm" +#include "monkestation\code\modules\blueshift\turfs\pool.dm" +#include "monkestation\code\modules\blueshift\turfs\submarine.dm" +#include "monkestation\code\modules\blueshift\uplinks\kits.dm" +#include "monkestation\code\modules\blueshift\wounds\muscle_wounds.dm" #include "monkestation\code\modules\botany\hydrotray.dm" #include "monkestation\code\modules\botany\plant_processing.dm" #include "monkestation\code\modules\botany\potty.dm" @@ -6331,6 +6560,7 @@ #include "monkestation\code\modules\client\preferences\species_features\floran.dm" #include "monkestation\code\modules\client\preferences\species_features\goblin.dm" #include "monkestation\code\modules\client\preferences\species_features\ipc.dm" +#include "monkestation\code\modules\client\preferences\species_features\lizard.dm" #include "monkestation\code\modules\client\preferences\species_features\secondary_mut_color.dm" #include "monkestation\code\modules\client\preferences\species_features\simians.dm" #include "monkestation\code\modules\client\verbs\looc.dm" @@ -6622,6 +6852,12 @@ #include "monkestation\code\modules\mentor\mentor_pm.dm" #include "monkestation\code\modules\mentor\mentor_say.dm" #include "monkestation\code\modules\mentor\mentor_who.dm" +#include "monkestation\code\modules\meteor_shield\meteor_shield.dm" +#include "monkestation\code\modules\meteor_shield\meteor_shield_capsule.dm" +#include "monkestation\code\modules\meteor_shield\meteor_shield_coverage.dm" +#include "monkestation\code\modules\meteor_shield\meteor_shield_field.dm" +#include "monkestation\code\modules\meteor_shield\meteor_shield_proxy.dm" +#include "monkestation\code\modules\meteor_shield\meteor_shield_zap.dm" #include "monkestation\code\modules\meteors\meteor_dark_matteor.dm" #include "monkestation\code\modules\metrics\metric_subsystem.dm" #include "monkestation\code\modules\metrics\subsystem_analytics\generics.dm" @@ -7169,7 +7405,6 @@ #include "monkestation\code\modules\spells\spell_types\aoe_spell\mind_swap.dm" #include "monkestation\code\modules\spells\spell_types\conjure_item\summon_mjollnir.dm" #include "monkestation\code\modules\spells\spell_types\pointed\smite.dm" -#include "monkestation\code\modules\station_goals\meteor_shield.dm" #include "monkestation\code\modules\store\admin\admin_coin_modification.dm" #include "monkestation\code\modules\store\atm\_atm.dm" #include "monkestation\code\modules\store\pre_round\_pre_round_store.dm" diff --git a/tgui/packages/tgui-panel/styles/tgchat/chat-dark.scss b/tgui/packages/tgui-panel/styles/tgchat/chat-dark.scss index 0a8bfe7cfd81..031d987925af 100644 --- a/tgui/packages/tgui-panel/styles/tgchat/chat-dark.scss +++ b/tgui/packages/tgui-panel/styles/tgchat/chat-dark.scss @@ -895,6 +895,15 @@ em { color: #298f85; } +.upside_down { + display: inline; + -moz-transform: scale(-1, -1); + -webkit-transform: scale(-1, -1); + -o-transform: scale(-1, -1); + -ms-transform: scale(-1, -1); + transform: scale(-1, -1); +} + .connectionClosed, .fatalError { background: red; diff --git a/tgui/packages/tgui-panel/styles/tgchat/chat-light.scss b/tgui/packages/tgui-panel/styles/tgchat/chat-light.scss index edd742a00a78..ba3df2116007 100644 --- a/tgui/packages/tgui-panel/styles/tgchat/chat-light.scss +++ b/tgui/packages/tgui-panel/styles/tgchat/chat-light.scss @@ -925,6 +925,15 @@ h2.alert { color: #298f85; } +.upside_down { + display: inline; + -moz-transform: scale(-1, -1); + -webkit-transform: scale(-1, -1); + -o-transform: scale(-1, -1); + -ms-transform: scale(-1, -1); + transform: scale(-1, -1); +} + .connectionClosed, .fatalError { background: red; diff --git a/tgui/packages/tgui/interfaces/AmmoWorkbench.jsx b/tgui/packages/tgui/interfaces/AmmoWorkbench.jsx new file mode 100644 index 000000000000..99631ad108c7 --- /dev/null +++ b/tgui/packages/tgui/interfaces/AmmoWorkbench.jsx @@ -0,0 +1,257 @@ +import { toTitleCase } from 'common/string'; +import { useBackend, useSharedState, useLocalState } from '../backend'; +import { Box, Button, NumberInput, NoticeBox, ProgressBar, Section, Flex, Stack, RoundGauge, Tabs, Table, Tooltip } from '../components'; +import { Window } from '../layouts'; + +export const AmmoWorkbench = (props) => { + const [tab, setTab] = useSharedState('tab', 1); + return ( + + + + setTab(1)}> + Ammunitions + + setTab(2)}> + Materials + + setTab(3)}> + Datadisks + + + {tab === 1 && } + {tab === 2 && } + {tab === 3 && } + + + ); +}; + +export const AmmunitionsTab = (props) => { + const { act, data } = useBackend(); + const { + mag_loaded, + system_busy, + hacked, + error, + error_type, + mag_name, + turboBoost, + current_rounds, + max_rounds, + efficiency, + time, + caliber, + available_rounds = [], + } = data; + return ( + <> + {!!error && ( + + {error} + + )} +
+ + Current Efficiency:{' '} + null} + /> + + Time Per Round: {time} seconds + act('turboBoost')}> + Turbo Boost + +
+
+ {!!mag_loaded && ( + + + + )} +
+
+ {!!mag_loaded && ( + + {available_rounds.map((available_round) => ( + + + +
+ {!!hacked && ( + + !WARNING! - ARMADYNE SAFETY PROTOCOLS ARE NOT ENGAGED! MISUSE IS NOT + COVERED UNDER WARRANTY. SOME MUNITION TYPES MAY CONSTITUTE A WAR CRIME + IN YOUR AREA. PLEASE CONTACT AN ARMADYNE ADMINISTRATOR IMMEDIATELY. + + )} + + ); +}; + +export const MaterialsTab = (props) => { + const { act, data } = useBackend(); + const { materials = [] } = data; + return ( +
+ + {materials.map((material) => ( + + act('Release', { + id: material.id, + sheets: amount, + }) + } + /> + ))} +
+
+ ); +}; + +export const DatadiskTab = (props) => { + const { act, data } = useBackend(); + const { + loaded_datadisks = [], + datadisk_loaded, + datadisk_name, + datadisk_desc, + disk_error, + disk_error_type, + } = data; + return ( + <> + {!!disk_error && ( + + {disk_error} + + )} +
+
+
+ + {loaded_datadisks.map((loaded_datadisk) => ( + + {loaded_datadisk.loaded_disk_name} + + Description: {loaded_datadisk.loaded_disk_desc} + + + ))} +
+
+ + ); +}; + +const MaterialRow = (props) => { + const { material, onRelease } = props; + + const [amount, setAmount] = useLocalState('amount' + material.name, 1); + + const amountAvailable = Math.floor(material.amount); + return ( + + {toTitleCase(material.name)} + + + {amountAvailable} sheets + + + + setAmount(value)} + /> + + + ))} + + + )) + )} + + + + +
+ {armaments_list.map((armament_category) => + armament_category.subcategories.map((subcat) => + subcat.items.map( + (item) => + item.ref === weapon && ( + + + + + + + {item.description} + + {'Quantity Remaining: ' + + (item.quantity - item.purchased)} + + card_points || !card_inserted + ? 'red' + : 'green' + }> + {'Cost: ' + item.cost} + + {!!item.buyable_ammo && ( + card_points || + !card_inserted + ? 'red' + : 'green' + }> + {'Ammo Cost: ' + item.magazine_cost} + + )} + +
+
+ + + + + ); +}; diff --git a/tgui/packages/tgui/interfaces/Cargo.jsx b/tgui/packages/tgui/interfaces/Cargo.jsx index 4b3e7ce09ea9..eea84668efb2 100644 --- a/tgui/packages/tgui/interfaces/Cargo.jsx +++ b/tgui/packages/tgui/interfaces/Cargo.jsx @@ -16,7 +16,7 @@ export const Cargo = (props) => { }; export const CargoContent = (props) => { - const { data } = useBackend(); + const { act, data } = useBackend(); const [tab, setTab] = useSharedState('tab', 'catalog'); const { cart = [], requests = [], requestonly } = data; const cart_length = cart.reduce((total, entry) => total + entry.amount, 0); @@ -38,6 +38,12 @@ export const CargoContent = (props) => { onClick={() => setTab('requests')}> Requests ({requests.length}) + act('company_import_window')}> + Company Imports + {!requestonly && ( <> { + const [category, setCategory] = useLocalState('category', ''); + const [weapon, setArmament] = useLocalState('weapon'); + const { act, data } = useBackend(); + const { + armaments_list = [], + budget_points, + budget_name, + self_paid, + cant_buy_restricted, + } = data; + return ( + + +
+ + + act('toggleprivate')} + /> + + Current Budget: {budget_name} + + + Budget Remaining: {budget_points} + + + + + + +
+ + {armaments_list.map((armament_category) => ( + +
+
+ + +
+ {armaments_list.map( + (armament_category) => + armament_category.category === category && + armament_category.subcategories.map((subcat) => ( +
+ + {subcat.items.map((item) => ( + + + + ))} + +
+ )) + )} +
+
+ + +
+ {armaments_list.map((armament_category) => + armament_category.subcategories.map((subcat) => + subcat.items.map( + (item) => + item.ref === weapon && ( + + + + + + + {item.description} + {!!cant_buy_restricted && !!item.restricted && ( + + { + 'You cannot buy a restricted item from this console!' + } + + )} + budget_points ? 'red' : 'green' + }> + {'Cost: ' + item.cost} + + +
+
+
+
+
+
+ ); +}; diff --git a/tgui/packages/tgui/interfaces/ChemMaster.tsx b/tgui/packages/tgui/interfaces/ChemMaster.tsx new file mode 100644 index 000000000000..6b911c77ee7a --- /dev/null +++ b/tgui/packages/tgui/interfaces/ChemMaster.tsx @@ -0,0 +1,453 @@ +import { BooleanLike, classes } from 'common/react'; +import { capitalize } from 'common/string'; +import { useBackend, useLocalState } from '../backend'; +import { AnimatedNumber, Box, Button, Section, Table, NumberInput, Tooltip, LabeledList, ColorBox, ProgressBar, Stack, Divider } from '../components'; +import { Window } from '../layouts'; + +type Data = { + reagentAnalysisMode: BooleanLike; + analysisData: Analysis; + isPrinting: BooleanLike; + printingProgress: number; + printingTotal: number; + transferMode: BooleanLike; + hasBeaker: BooleanLike; + beakerCurrentVolume: number; + beakerMaxVolume: number; + beakerContents: Reagent[]; + bufferContents: Reagent[]; + bufferCurrentVolume: number; + bufferMaxVolume: number; + categories: Category[]; + selectedContainerRef: string; + selectedContainerVolume: number; + hasContainerSuggestion: BooleanLike; + doSuggestContainer: BooleanLike; + suggestedContainer: string; +}; + +type Analysis = { + name: string; + state: string; + pH: number; + color: string; + description: string; + purity: number; + metaRate: number; + overdose: number; + addictionTypes: string[]; +}; + +type Category = { + name: string; + containers: Container[]; +}; + +type Reagent = { + ref: string; + name: string; + volume: number; +}; + +type Container = { + icon: string; + ref: string; + name: string; + volume: number; +}; + +export const ChemMaster = (props) => { + const { data } = useBackend(); + const { reagentAnalysisMode } = data; + return ( + + + {reagentAnalysisMode ? : } + + + ); +}; + +const ChemMasterContent = (props) => { + const { act, data } = useBackend(); + const { + isPrinting, + printingProgress, + printingTotal, + transferMode, + hasBeaker, + beakerCurrentVolume, + beakerMaxVolume, + beakerContents, + bufferContents, + bufferCurrentVolume, + bufferMaxVolume, + categories, + selectedContainerVolume, + hasContainerSuggestion, + doSuggestContainer, + suggestedContainer, + } = data; + + const [itemCount, setItemCount] = useLocalState('itemCount', 1); + + return ( + +
+ + + {` / ${beakerMaxVolume} units`} + +
+
+ + + {` / ${bufferMaxVolume} units`} + +
+ {!isPrinting && ( +
+ { + setItemCount(value); + }} + /> + + {`${ + Math.round( + Math.min( + selectedContainerVolume, + bufferCurrentVolume / itemCount + ) * 100 + ) / 100 + } u. each`} + +
+ )} + {!!isPrinting && ( +
act('stopPrinting')} + /> + }> + + + {`Printing ${printingProgress} out of ${printingTotal}`} + + +
+ )} +
+ ); +}; + +const ReagentEntry = (props) => { + const { data, act } = useBackend(); + const { chemical, transferTo } = props; + const { isPrinting } = data; + return ( + + + {`${chemical.name} `} + + {`u`} + + + + + ) as any; +}; + +const AnalysisResults = (props) => { + const { act, data } = useBackend(); + const { + name, + state, + pH, + color, + description, + purity, + metaRate, + overdose, + addictionTypes, + } = data.analysisData; + const purityLevel = + purity <= 0.5 ? 'bad' : purity <= 0.75 ? 'average' : 'good'; // Color names + return ( +
act('stopAnalysis')} + /> + }> + + {name} + + + {purityLevel} + + + {pH} + {state} + + + {color} + + {description} + + {metaRate} units/second + + + {overdose > 0 ? `${overdose} units` : 'N/A'} + + + {addictionTypes.length ? addictionTypes.toString() : 'N/A'} + + +
+ ); +}; + +const GroupTitle = ({ title }) => { + return ( + + + + + + {title} + + + + + + ) as any; +}; diff --git a/tgui/packages/tgui/interfaces/ChemPress.tsx b/tgui/packages/tgui/interfaces/ChemPress.tsx new file mode 100644 index 000000000000..4ca021bfa8b8 --- /dev/null +++ b/tgui/packages/tgui/interfaces/ChemPress.tsx @@ -0,0 +1,111 @@ +import { useBackend, useLocalState } from '../backend'; +import { Box, Button, Input, LabeledList, NumberInput, Section } from '../components'; +import { capitalizeAll } from 'common/string'; +import { Window } from '../layouts'; + +type Product = { + ref: string; + class_name: string; +}; + +type Category = { + cat_name: string; + products: Product[]; +}; + +type Data = { + current_volume: Number; + product_name: string; + min_volume: Number; + max_volume: Number; + packaging_category: string; + packaging_types: Category[]; + packaging_type: string; +}; + +export const ChemPress = (props) => { + const { act, data } = useBackend(); + const { + current_volume, + product_name, + min_volume, + max_volume, + packaging_category, + packaging_types, + packaging_type, + } = data; + const [categoryName, setCategoryName] = useLocalState( + 'categoryName', + packaging_category + ); + const shownCategory = + packaging_types.find((category) => category.cat_name === categoryName) || + packaging_types[0]; + return ( + + +
+ + + {packaging_types.map((category, i) => ( + setCategoryName(category.cat_name)} + /> + ))} + + + + act('change_current_volume', { + volume: value, + }) + } + /> + + + + act('change_product_name', { + name: value, + }) + } + /> + + + {shownCategory.products.map((design, j) => ( + + ))} + + +
+
+
+ ); +}; diff --git a/tgui/packages/tgui/interfaces/DelamProcedure.tsx b/tgui/packages/tgui/interfaces/DelamProcedure.tsx new file mode 100644 index 000000000000..bc1c1f371f61 --- /dev/null +++ b/tgui/packages/tgui/interfaces/DelamProcedure.tsx @@ -0,0 +1,106 @@ +// THIS IS A SKYRAT UI FILE +import { BlockQuote, Box, NoticeBox, Section } from '../components'; +import { Window } from '../layouts'; + +export const DelamProcedure = () => { + return ( + + +
+ + + So you've found yourself in a bit of a pickle with a + delamination of a supermatter reactor. +
+
+ Don't worry, saving the day is just a few steps away! +
+
+
+ Locate the ever-elusive red emergency stop button. It's + probably hiding in plain sight, so take your time, have a laugh, and + enjoy the anticipation. Remember, it's like a treasure hunt, + only with the added bonus of preventing a nuclear disaster. +
+
+ Once you've uncovered the button, muster all your courage and + push it like there's no tomorrow. Well, actually, you're + pushing it to ensure there is a tomorrow. But hey, who doesn't + love a little paradoxical button-pushing? +
+
+ Prepare for the impending suppression of the supermatter engine + room, because things are about to get real quiet. Just make sure + everyone has evacuated, or else they'll be in for a surprise. + The system needs its space, and it's not known for being the + friendliest neighbour. +
+
+ After the delamination is successfully suppressed, take a moment to + appreciate the delicate beauty of crystal-based electricity. Take a + look around and fix any damage to those fragile glass components. + Feel free to put on your finest overalls and channel your inner + engiborg while doing so. +
+
+ Keep an eye out for fires and the infamous air mix. It's always + an adventure trying to strike the perfect balance between breathable + air and potential suffocation. Remember, oxygen plus a spark equals + fireworks - the kind you definitely don't want inside a + reactor. +
+ + + Did you know freon catches fire at low temperatures? +
+
+ It even forms hot ice between 120K and 160K! +
+
+ Remember you can always turn the engine room air alarm to + contaminated to assist in removing harmful gases! +
+
+
+ To avoid singeing your eyebrows off, consider enlisting the help of + a synth or a trusty borg. After all, nothing says "safety + first" like outsourcing your firefighting to non-living, + non-breathing assistants. +
+
+ Clear out any lightly radioactive debris and/or hot ice (The cargo + department will probably love to dispose it for you.) +
+
+ Finally, revel in the satisfaction of knowing that you've + single-handedly prevented a delamination. But, of course, don't + forget to feel guilty because SAFETY MOTH Knows. SAFETY MOTH knows + everything. It's always watching, judging, and probably taking + notes for its next safety briefing. So bask in the glory of your + heroism, but know that the all-knowing Moff is onto you. +
+ + Optional step, for the true daredevils out there + +
+ When it comes time for your second attempt at starting the SM: Take + this sign, give it a good toss towards the crystal, and watch it + soar through the air.
+
+ Nothing says "I'm dealing with a potentially catastrophic + situation" like engaging in some whimsical shenanigans. +
+ + + Hopefully you'll never need to do this. However, good luck! + + +
+
+
+ ); +}; diff --git a/tgui/packages/tgui/interfaces/GlassBlowing.tsx b/tgui/packages/tgui/interfaces/GlassBlowing.tsx new file mode 100644 index 000000000000..0017a32982a2 --- /dev/null +++ b/tgui/packages/tgui/interfaces/GlassBlowing.tsx @@ -0,0 +1,258 @@ +// THIS IS A SKYRAT UI FILE +import { toFixed } from 'common/math'; +import { BooleanLike } from 'common/react'; + +import { useBackend } from '../backend'; +import { AnimatedNumber, Box, Button, Flex, ProgressBar, Section, Stack, Table } from '../components'; +import { Window } from '../layouts'; + +type GlassData = { + hasGlass: BooleanLike; + inUse: BooleanLike; + glass: Glass; +}; + +type Glass = { + chosenItem: CraftItem; + stepsRemaining: RemainingSteps; + timeLeft: number; + totalTime: number; + isFinished: BooleanLike; +}; + +type CraftItem = { + name: string; + type: string; +}; + +type RemainingSteps = { + blow: number; + spin: number; + paddle: number; + shear: number; + jacks: number; +}; + +export const GlassBlowing = (_: any, context: any) => { + const { act, data } = useBackend(); + const { glass, inUse } = data; + + return ( + + +
act('Remove')} + /> + } + /> + {glass && !glass.chosenItem && ( +
+ + + What will you craft? + + + +
+ )} + {glass && glass.chosenItem && ( + <> +
+ + + + You are crafting a {glass.chosenItem.name}. +
+
+
+
+ + + {glass.stepsRemaining.blow !== 0 && ( + +
+
+
+
+ + +
+ + )} + {glass && glass.timeLeft !== 0 && ( +
+ + toFixed(value, 1)} + /> + {'/' + glass.totalTime.toFixed(1)} + +
+ )} + {glass && glass.timeLeft === 0 && ( +
+ + + +
+ )} + + + ); +}; diff --git a/tgui/packages/tgui/interfaces/KeycardAuth.jsx b/tgui/packages/tgui/interfaces/KeycardAuth.jsx index b29ac9de75e9..054ef6074889 100644 --- a/tgui/packages/tgui/interfaces/KeycardAuth.jsx +++ b/tgui/packages/tgui/interfaces/KeycardAuth.jsx @@ -49,6 +49,12 @@ export const KeycardAuth = (props) => { onClick={() => act('bsa_unlock')} content="Bluespace Artillery Unlock" /> + + + + + + + + ); +}; diff --git a/tgui/packages/tgui/interfaces/NifPanel.jsx b/tgui/packages/tgui/interfaces/NifPanel.jsx new file mode 100644 index 000000000000..97fa230aa4d4 --- /dev/null +++ b/tgui/packages/tgui/interfaces/NifPanel.jsx @@ -0,0 +1,340 @@ +import { useBackend, useLocalState } from '../backend'; +import { BlockQuote, Box, Button, Collapsible, Dropdown, Flex, Icon, Input, LabeledList, ProgressBar, Section, Table } from '../components'; +import { TableCell, TableRow } from '../components/Table'; +import { Window } from '../layouts'; + +export const NifPanel = (props) => { + const { act, data } = useBackend(); + const { + linked_mob_name, + loaded_nifsofts, + max_nifsofts, + max_power, + current_theme, + } = data; + const [settingsOpen, setSettingsOpen] = useLocalState('settingsOpen', false); + + return ( + + +
setSettingsOpen(!settingsOpen)} + /> + }> + {(settingsOpen && ) || } + {(!settingsOpen && ( +
+ {(loaded_nifsofts.length && ( + + {loaded_nifsofts.map((nifsoft) => ( + + + {} + {nifsoft.name + ' '} + + } + buttons={ +
+ )) || ( +
+ +
+ )} +
+
+
+ ); +}; + +const NifSettings = (props) => { + const { act, data } = useBackend(); + const { + nutrition_drain, + ui_themes, + current_theme, + nutrition_level, + blood_drain, + minimum_blood_level, + blood_level, + stored_points, + } = data; + return ( + + + act('change_theme', { target_theme: value })} + /> + + + + act('change_examine_text', { new_text: value }) + } + width="100%" + /> + + +
+
+ + + act('change_name', { new_name: value })} + width="100%" + /> + + + + act('change_message', { new_message: value }) + } + width="100%" + /> + + + + + + + + +
+
+
+ ); +}; diff --git a/tgui/packages/tgui/interfaces/NtosNifsoftCatalog.jsx b/tgui/packages/tgui/interfaces/NtosNifsoftCatalog.jsx new file mode 100644 index 000000000000..8962c31c7430 --- /dev/null +++ b/tgui/packages/tgui/interfaces/NtosNifsoftCatalog.jsx @@ -0,0 +1,116 @@ +import { useBackend, useSharedState } from '../backend'; +import { BlockQuote, Box, Button, Collapsible, Flex, Icon, LabeledList, Section, Tabs } from '../components'; +import { NtosWindow } from '../layouts'; + +export const NtosNifsoftCatalog = (props) => { + const { act, data } = useBackend(); + const { product_list = [], rewards_points, current_balance } = data; + const [tab, setTab] = useSharedState( + 'product_category', + product_list[0].name + ); + + const products = + product_list.find((product_category) => product_category.name === tab) + ?.products || []; + + return ( + + +
+ + + {current_balance} + + + {rewards_points} + + +
+ + {product_list.map((product_category) => ( + setTab(product_category.name)} + selected={tab === product_category.name}> + {product_category.name} + + ))} + + +
+
+ ); +}; + +const ProductCategory = (props) => { + const { act, data } = useBackend(); + const { target_nif, paying_account, rewards_points, current_balance } = data; + const { products } = props; + + return ( +
+ + {products.map((product) => ( + +
+ {} + {' ' + product.name} + + } + fill={false}> + +
{product.desc}
+
+ + + + Purchasing this item will give you:{' '} + {product.rewards_points_rate * product.price} rewards points + + {product.keepable ? ( + + This NIFSoft carries between shifts + + ) : ( + <> + )} +
+
+
+ ))} +
+
+ ); +}; diff --git a/tgui/packages/tgui/interfaces/NuclearBomb.jsx b/tgui/packages/tgui/interfaces/NuclearBomb.jsx index c2d42d8f8164..81b2e622e9d5 100644 --- a/tgui/packages/tgui/interfaces/NuclearBomb.jsx +++ b/tgui/packages/tgui/interfaces/NuclearBomb.jsx @@ -1,4 +1,5 @@ import { classes } from 'common/react'; + import { useBackend } from '../backend'; import { Box, Button, Flex, Grid, Icon } from '../components'; import { Window } from '../layouts'; @@ -7,7 +8,7 @@ import { Window } from '../layouts'; // and hand made width sets that changing pretty much anything // is going to require a lot of tweaking it get it looking correct again // I'm sorry, but it looks bangin -const NukeKeypad = (props) => { +export const NukeKeypad = (props) => { const { act } = useBackend(); const keypadKeys = [ ['1', '4', '7', 'C'], diff --git a/tgui/packages/tgui/interfaces/OpposingForcePanel.jsx b/tgui/packages/tgui/interfaces/OpposingForcePanel.jsx new file mode 100644 index 000000000000..e0574d898590 --- /dev/null +++ b/tgui/packages/tgui/interfaces/OpposingForcePanel.jsx @@ -0,0 +1,960 @@ +// THIS IS A NOVA SECTOR UI FILE +import { round } from 'common/math'; + +import { useBackend, useLocalState } from '../backend'; +import { Box, Button, Collapsible, Input, LabeledList, NoticeBox, NumberInput, Section, Slider, Stack, Tabs, TextArea } from '../components'; +import { Window } from '../layouts'; + +export const OpposingForcePanel = (props) => { + const [tab, setTab] = useLocalState('tab', 1); + const { act, data } = useBackend(); + const { admin_mode, creator_ckey, owner_antag, opt_in_enabled } = data; + return ( + + + + + + {admin_mode ? ( + <> + setTab(1)}> + Admin Control + + setTab(2)}> + Admin Chat + + + ) : ( + <> + setTab(1)}> + Summary + + setTab(2)}> + Equipment + + setTab(3)}> + Admin Chat + + {!!opt_in_enabled && ( + setTab(4)}> + Target List + + )} + + )} + + + + {admin_mode ? ( + <> + {tab === 1 && } + {tab === 2 && } + + ) : ( + <> + {tab === 1 && } + {tab === 2 && } + {tab === 3 && } + {tab === 4 && } + + )} + + + ); +}; + +export const OpposingForceTab = (props) => { + const { act, data } = useBackend(); + const { + creator_ckey, + objectives = [], + can_submit, + status, + can_request_update, + request_updates_muted, + can_edit, + backstory, + handling_admin, + blocked, + approved, + denied, + } = data; + return ( + + +
+ + +
+
+ +
+